Slide 1

Slide 1 text

@tsurdilo tsurdilo S e wo kf ow R V E R L S S New approach to Business Automation

Slide 2

Slide 2 text

Agenda 1 Introduction 2 Kogito 3 Current State (Ochestration) 4 5 Kogito + Serverless Workflow 6 Demo Serverless Workflow

Slide 3

Slide 3 text

1 I n t r o d u c t i o n Current Architectures Platform A Platform B Serverless Microservices Event-driven Loosely coupled Polyglot Focus on business Scalable Isolation Monolith Cloud

Slide 4

Slide 4 text

1 I n t r o d u c t i o n Current Architectures From To

Slide 5

Slide 5 text

1 I n t r o d u c t i o n Seeing the big picture “Knowledge / Domain Is Everything”

Slide 6

Slide 6 text

1 I n t r o d u c t i o n Service Orchestration parallel execution handle failure A B C D E F A B C D Sequential Execution Queues / Topics Workflows A B C D E F

Slide 7

Slide 7 text

1 I n t r o d u c t i o n Why Workflows? business logic orchestration logic Separation Of Concerns Business Domain Driven Marketing Sales HR Finance

Slide 8

Slide 8 text

1 I n t r o d u c t i o n Why not “traditional" BPM Solutions? Traditional BPM Modern BPM Big product suites Difficult to maintain Difficult to scale Tightly Coupled Decoupled Scalable Polyglot Cloud-native “Still provide Value to the Business”

Slide 9

Slide 9 text

2 K o g i t O Cloud-native Business Automation “Battle tested” “Mature” “Based on Standards” “Open Source” “Event-driven” “Cloud-native” “Based on Standards” “Open Source”

Slide 10

Slide 10 text

2 K o g i t O Cloud-native Business Automation Domain-specific Microservices DRL BPMN DMN Custom Code Gen Optimization

Slide 11

Slide 11 text

2 K o g i t O Kogito CLI and Operator Kogito Operator Container / Cloud Deployment Kogito Services Runtime Services Persistence Services Event / Message Services Data Index Services Security Services Service Discovery … Container Services Infinispan Prometheus Kafka/AMQ Knative Eventing … Deployment + On-demand Provisioning and Scaling Kogito CLI

Slide 12

Slide 12 text

2 K o g i t O What about Orchestration? First Idea: “Just use BPMN”…failed: * Orchestration has much smaller scale * Needs to be embeddable * Needs to be machine / human readable * Should have clear, “serverless” constructs / patterns So we went out looking and found…a ton of stuff :)

Slide 13

Slide 13 text

3 C u r r e n t S t a t e Serverless Orchestration - current state Apache Airflow AWS Netflix Fn Flow Orquesta FunctionGraph Workflows Logic Apps Flow Workflow Tekton Pipeline Cloud Workflow . . .

Slide 14

Slide 14 text

3 C u r r e n t S t a t e Serverless Orchestration - current state Workflow Infrastructure Runtime Vendor Lock Workflow Model Vendor Lock We need a portable and vendor-neutral specification!

Slide 15

Slide 15 text

3 C u r r e n t S t a t e Serverless Orchestration - current state But then …. Specification Serverless Workflow

Slide 16

Slide 16 text

4 W o r k f l o w S p e c Serverless Workflow Spec Serverless Working Group Community https:/ /github.com/cncf/wg-serverless/tree/master/workflow/spec

Slide 17

Slide 17 text

Specification Goals SPI TCK . API . JSON SCHEMA { } . We provide… Implementors provide… RUNTIME IMPL conforms to… uses… JSON/YAML Runtime Runtime Runtime To be able to…

Slide 18

Slide 18 text

4 W o r k f l o w S p e c Serverless Workflow - Model

Slide 19

Slide 19 text

4 W o r k f l o w S p e c Serverless Workflow - Function Def

Slide 20

Slide 20 text

4 W o r k f l o w S p e c Serverless Workflow - Event Def CloudEvent

Slide 21

Slide 21 text

4 W o r k f l o w S p e c Serverless Workflow - State Def Unique Name Can be start state Can be end state Can Transition or Defined Type

Slide 22

Slide 22 text

4 W o r k f l o w S p e c Serverless Workflow - State Types Name Description Consumes events? Produces events? Executes actions? Handles errors? Allows parallel execution? Event Define events that trigger action execution yes yes yes yes (includes retries) yes Operation Execute one or more actions no yes yes yes (includes retries) yes Switch Define data-based workflow transitions no yes no yes no Delay Delay workflow execution no yes no yes no Parallel Causes parallel execution of branches (set of states) no yes no yes (includes retries) yes SubFlow Represents the invocation of another workflow from within a no yes no yes no Relay Relay state data input to output no yes no yes no ForEach Parallel execution of states for each element of a data no yes no yes (includes retries) yes Callback Manual decision step. Executes a function and waits for callback yes yes yes (including retries) yes no

Slide 23

Slide 23 text

4 W o r k f l o w S p e c Serverless Workflow - Get Involved!

Slide 24

Slide 24 text

5 K o g i t o + W O r k f l o w Kogito + Serverless Workflow Domain-specific Microservices DRL BPMN DMN Custom Code Gen Optimization Serverless Workflow Domain-specific Orchestration

Slide 25

Slide 25 text

5 K o g i t o + W O r k f l o w Kogito + Serverless Workflow Event Gateway Integration Pipeline Workflow

Slide 26

Slide 26 text

6 D e m o Demo - New Order Approval Rest Camel K A F K A Severless Worflow Human Task Service Rule Service /tsurdilo/serverless-workflow-kogito-demo