s wo kf ow - events.redhat.com · red hat microservices day, atlanta. introduction - serverless *...

37
S e wo kf ow R V E R L S S A new approach to Business Automation Tihomir Surdilovic Maciej Swiderski Red Hat Microservices Day, Atlanta

Upload: others

Post on 31-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

S e

wo kf owR V E R

L

S

SA new approach to

Business Automation

Tihomir Surdilovic Maciej Swiderski

Red Hat Microservices Day, Atlanta

Page 2: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Introduction - Serverless* Managed platforms that run our code (event-triggered functions)

* Serverless platform characteristics:

Managed Servers

Automatic Scaling

Pay for value

Red Hat Microservices Day, Atlanta

Page 3: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Introduction - Serverless Functions

* Event-driven (consume / produce)

* Loosely-coupled (Microservices)

* Polyglot

* Main Focus: solve business requirements or be part/step of solution

Red Hat Microservices Day, Atlanta

Messages

Timer

Docs

DB Web

Events

Page 4: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Introduction - Serverless Functions* Are we actually solving business requirements?

Red Hat Microservices Day, Atlanta

implementation

When a todo item is

completed, remove it.

business req

Focus on business requirements… …Orchestrate everything else

Page 5: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Evolving towards serverless workflows

* Sequential Functions:

* Queues:

* Workflows:

A B C D

A

B

C

D

E

F

parallelexecution

handle failure

ABC

D

E

F

Red Hat Microservices Day, Atlanta

Page 6: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Benefits of Serverless Workflows:* Clear separation of concerns:

* Many more: * Visualization * Quick turnaround and maintenance * State/data management (between functions) * Flow control patterns!! * Human readable definition * Extensible and embeddable

business logic orchestration logic

Red Hat Microservices Day, Atlanta

Page 7: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Serverless Workflows: Cost* Will not necessarily reduce cost!

* Have to think about workflow and function cost

* Workflow cost typically based on transitions

Step 1

Step 2

Step 3

S

S

S

Step 1

Step 3

S

S

Sor

Step 2

higher cost lower cost

Step 2 does not need to be performed

Red Hat Microservices Day, Atlanta

Page 8: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Current state of Serverless Workflow Implementations

Apache Airflow

AWS

Netflix

Fn Flow

Orquesta

FunctionGraph

WorkflowsLogic Apps

Flow

Red Hat Microservices Day, Atlanta

Page 9: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Current state of Serverless Workflow Implementations* Proprietary and different workflow models and definitions * Not portable / vendor neutral * Definition not covering stateless and stateful orchestration * Integration with proprietary services / events / etc * Different workflow notations

… sounds to me like we need a

portable and vendor-neutral specification for

Serverless Workflows!

Red Hat Microservices Day, Atlanta

Page 10: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

CNCF - Serverless WG - Serverless Workflow Spec.

Serverless Working Group

Community

https://github.com/cncf/wg-serverless/tree/master/workflow/spec

Red Hat Microservices Day, Atlanta

Page 11: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Serverless Workflow Specification* Lightweight + Embeddable (JSON and YAML)

* Human-readable:

Red Hat Microservices Day, Atlanta

Page 12: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Serverless Workflow - Event Triggers* Define incoming events that trigger Actions * Events defined via CloudEvents specification * Control flow decisions based on event data * Correlate incoming events to same workflows instances

Red Hat Microservices Day, Atlanta

Page 13: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

f

f

f

f

Cloud Providers

Serverless Workflow - Serverless Functions* Reusable serverless functions definitions * Consumed by workflow Actions * Actions can pass parameters to functions

Red Hat Microservices Day, Atlanta

Page 14: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Serverless Workflow - States* Building blocks in workflows * Define application control flow * Can perform Actions * Make decisions based on data (JSON) * Manage cross-cutting concerns (error handling, retries, timeouts, etc) * Filters data (JSONPath)

State

{ ; }JSON

{ ; }JSON

Red Hat Microservices Day, Atlanta

Page 15: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Workflow - Event State* Triggered by events from event sources * Perform one or more Actions (if defined events are exist)

Process Order Action

Send OrderConfirmation

Handle Invalid Order

Red Hat Microservices Day, Atlanta

Page 16: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Workflow - Switch State* Workflow gateways * Define transitions based on data input

CheckApplication

StartApplication

Process

RejectApplication

Process

age >= 18age < 1

8

{ “name” : “…”, “age” : 21 }

JSON

Red Hat Microservices Day, Atlanta

Page 17: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Workflow - Parallel State* Define collection of branches to execute in parallel * Branches contain one or more states

Parallel Exec

ShortDelay

Branch 1

LongDelay

Branch 2

Red Hat Microservices Day, Atlanta

Page 18: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Workflow - SubFlow State* Embed a sub-workflow and start its execution * Promotes reusability and logical grouping

Parallel Exec

SubFlow 1

Branch 1

SubFlow 2

Branch 2State 1

State 2

Start

End

State 1

Start

End

Red Hat Microservices Day, Atlanta

Page 19: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Workflow - ForEach State* Define looping over data array

Confirmations

{ "orders": [ { "orderNumber": "1234", "completed": true, "email": "[email protected]" }, { "orderNumber": "9910", "completed": false, "email": "[email protected]" } ] }

JSON

foreach completedorder

SendEmail

Red Hat Microservices Day, Atlanta

Page 20: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Workflow Data - Initial input* All workflow data in JSON format * Workflow data passed as input to starting state

Start

End

{ ; }

JSON

State

becomes data input of

starting state

Red Hat Microservices Day, Atlanta

Page 21: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

State Data - Information passing* States receive data (data input) * States produce data (data output)

CurrentState

PreviousState

Data output

Data input

Data output

NextState

Data input

Red Hat Microservices Day, Atlanta

Page 22: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

State Data - Data filtering* States access and manipulate data via Filters * Filters are defined with JSONPath * Filters can have three Paths

* InputPath: select portion of states data input * OutputPath: select portion of states data output * ResultPath: select action results and combine with state data output

{ "orders": [ { "orderNumber": "1234", "completed": true, "email": "[email protected]" }, { "orderNumber": "9910", "completed": false, "email": "[email protected]" } ] }

JSON{ "orders": [ { "orderNumber": "1234", "completed": true, "email": "[email protected]" } ] }

JSON

"$.orders[?(@.completed == true)]"

Red Hat Microservices Day, Atlanta

Page 23: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

State - Error Handling* Explicitly model logic in case of runtime errors * Transitions based on error info

State

Error 1State

Error 2State

Error 3State

handle errors

Red Hat Microservices Day, Atlanta

Page 24: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Serverless Workflow Specification - Current Status

* Still in “Sandbox” state * Looking for contributions * Community sightings:

* JSON Linter - https://github.com/serverless-workflow/workflow-linter-cli

* VSCode plugin (JSON Schema) - https://marketplace.visualstudio.com/items?itemName=tsurdilovic.workflow-schema-vscode

* JAVA API/SPI - https://github.com/serverless-workflow

https://github.com/cncf/wg-serverless/tree/master/workflow/specContributions Welcome!!

Red Hat Microservices Day, Atlanta

Page 25: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Kogito - Introduction

Cloud-Native Business Automation for building intelligent applications, backed

by battle-tested capabilities

Red Hat Microservices Day, Atlanta

Page 26: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Kogito - Introduction

Next generation business automation toolkit based on:

* Drools - the open source rule engine to provide decision and rule management capabilities

* jBPM - the open source process engine to provide automation and orchestration capabilities

It takes advantage of years of battle-tested features, while at the same time modernizing usage to fit the cloud-native ecosystem

Red Hat Microservices Day, Atlanta

Page 27: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Kogito - Business Domain

Focus on business domain instead of technology* Adapts to your business domain instead of the other way around * No more leaking of abstractions of the platform into your client

applications * Stay focused on business requirements instead of implementation

technology

Kogito ergo domain

Red Hat Microservices Day, Atlanta

Page 28: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Kogito - Business Domain

* Described and discoverable * swagger/openapi documentation * labels

* Backbone for complete and holistic business context * Follow up lists * Dashboards * Task lists

Not a little enhancement but a game changer

Red Hat Microservices Day, Atlanta

Page 29: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Kogito - Developer experience

Offers a powerful developer experience* Achieve instant developer efficiency by having

* Tooling embeddable wherever you need it * Code generation taking care of 80% of the work * Flexibility to customize, only use what you need * Simplified local development with live reload

Kogito ergo power

Red Hat Microservices Day, Atlanta

Page 30: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Kogito - Developer experience

Developer Focused

* Provides unified developer experience in an IDE that allows to work effectively with various asset types

* VSCode as the main target to allow * Model processes and decisions * Develop data model and services * Build and deploy * Iterative development experience with live reload

Red Hat Microservices Day, Atlanta

Page 31: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Kogito - Developer experience

Business Friendly* Out of the box task inbox that can be

* Customized * Embedded

* Business context based * Searches * Dashboards

* It’s based on domain specific aspect of services that emit events that are index to provide business view instead of raw process or decision details

Red Hat Microservices Day, Atlanta

Page 32: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Kogito - Developer experience

Use existing and well-known tools

* Optionally equipped services with monitoring and tracing capabilities * Monitoring

* Prometheus * Tracing

* Open Tracing/Jeager * Visualization

* Grafana

Red Hat Microservices Day, Atlanta

Page 33: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Kogito - Cloud

Designed from ground up to run at scale* If you think about business automation think about the cloud as

this is where your business logic lives these days

* Achieves amazingly fast boot time and low memory footprint by leveraging newest technology * Quarkus * Kubernetes/OpenShift/KNative

Kogito ergo cloud

Red Hat Microservices Day, Atlanta

Page 34: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Kogito - Cloud

Operation centric

* Responsible for building with selected runtime * Quarkus * Spring Boot

* Provision services on demand and remove them when no longer needed

* Manage deployed services including their dependencies * Service discovery based on labels * Guarding services of losing their dependants * Security provisioning and propagation

Red Hat Microservices Day, Atlanta

Page 35: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

http://kogito.kie.org

Red Hat Microservices Day, Atlanta

Kogito - Get started

Page 36: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Demo

Serverless Workflow Kogito

Quarkus

Red Hat Microservices Day, Atlanta

Page 37: S wo kf ow - events.redhat.com · Red Hat Microservices Day, Atlanta. Introduction - Serverless * Managed platforms that run our code (event-triggered functions) * Serverless platform

Red Hat Microservices Day, Atlanta

Questions?