Slide 1

Slide 1 text

Principal Software Engineer @ Red Hat Cristiano Nicolai Powering Business Automation in the Cloud http://kogito.kie.org Follow @kogito_kie Kogito

Slide 2

Slide 2 text

What are cloud-native applications? “Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach. These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.” Cloud Native Computing Foundation (CNCF)

Slide 3

Slide 3 text

What are cloud-native applications? ● Small, independent, and loosely coupled services ○ Microservices ● Container based ● Allows rapidly iteration to deliver business value ● Private, public, and hybrid clouds ● Scalable, resource efficient

Slide 4

Slide 4 text

Cloud Native Applications Architecture OpenShift / Kubernetes Operators KNative Service Mesh Serverless SaaS Cloud Vendor Services

Slide 5

Slide 5 text

● Runtimes ● Add-ons ● Services ● Operator Kogito Cloud Native Building Blocks

Slide 6

Slide 6 text

Kogito Runtimes

Slide 7

Slide 7 text

Automagically REST! ● Kogito resources ○ BPMN ○ DMN ○ Serverless Workflow i. JSON ii. YAML

Slide 8

Slide 8 text

Kogito Runtimes Quarkus Spring Boot

Slide 9

Slide 9 text

Kogito Add-ons

Slide 10

Slide 10 text

Kogito Runtimes - Add-ons ● Building blocks ○ Choose and pick the ones that are relevant to your service ● Maven dependencies ● Codegen integration ● Runtime specific dependencies: ○ Quarkus ○ SpringBoot org.kie.kogito kogito-cloudevents-quarkus-addon

Slide 11

Slide 11 text

Management add-on ● Retrieve process nodes ● Abort an active process instance ● Cancel or re-trigger a node instance, or trigger a new node instance ● Retrieve error details for a process instance, or skip or re-trigger a failed node instance

Slide 12

Slide 12 text

Management add-on

Slide 13

Slide 13 text

Persistence add-ons ● Infinispan ● MongoDB ● File system ● Disclaimer: Persist your process state while it is running!

Slide 14

Slide 14 text

Kogito Runtimes - Process SVG

Slide 15

Slide 15 text

Process SVG add-on

Slide 16

Slide 16 text

Process SVG add-on

Slide 17

Slide 17 text

Prometheus Monitoring add-on

Slide 18

Slide 18 text

Reactive Messaging add-on Kogito Visas Data Index Service Kafka CloudEvents Jobs Service Audit Service Business Monitoring Service

Slide 19

Slide 19 text

Kogito Runtimes - Reactive Messaging ● Events ○ Process Instance Event ○ User Task Event ○ Process Variables Event

Slide 20

Slide 20 text

BPMN Messages and Cloud Events

Slide 21

Slide 21 text

BPMN Messages and Cloud Events

Slide 22

Slide 22 text

Cloud Events add-on ● Route CloudEvent types to specific BPMN message events in the process ● Codegen glues producer and consumer code to specific node in the process ● Enabler for easily integrating with external systems. ○ Example: Using Kogito to orchestrate multiple services

Slide 23

Slide 23 text

Cloud Events add-on

Slide 24

Slide 24 text

KNative Eventing add-on

Slide 25

Slide 25 text

KNative Eventing add-on

Slide 26

Slide 26 text

Kogito Services

Slide 27

Slide 27 text

Kogito - Scaling to multiple services Visa Service Travels Service Customer Service Notification Service

Slide 28

Slide 28 text

Data Index ● Distinct focus on domain data ● Flexible data structure ● Distributable and cloud-ready format ● Infinispan-based persistence support ● Message-based communication with Kogito runtime (Apache Kafka, CloudEvents ) ● Powerful querying API using GraphQL

Slide 29

Slide 29 text

Data Index - GraphQL

Slide 30

Slide 30 text

Infinispan Kogito Visas Data Index Service Kafka Kogito Travel Agency Data Index - Architecture MongoDB CloudEvents CloudEvents

Slide 31

Slide 31 text

Data Index - Summary

Slide 32

Slide 32 text

Jobs Service

Slide 33

Slide 33 text

Jobs Service

Slide 34

Slide 34 text

Kogito Visas Data Index Service Jobs Service - Architecture Jobs Service REST / Callback Infinispan REST / Schedule Kafka CloudEvents

Slide 35

Slide 35 text

Jobs Service - Summary ● Distributions ○ Quay.io image ○ Runner JAR ○ Operator

Slide 36

Slide 36 text

Process Management ● How to support process operation? ● Bring visibility about status? ● Have an overview about all runtimes deployed? ● Tooling to support fixing any issues during the execution of the process?

Slide 37

Slide 37 text

Management Console ● List process instances ○ Search by status and business key ○ Agregation by parent process ○ Bulk Operations ■ Abort/Skip/Retry ● View process details ○ Abort instance ○ Navigation between parent/child processes ○ Re/Trigger a node in the process ○ Timeline ■ View nodes in error ● Retry or Skip ● Jobs management ● Domain Explorer ○ View and find processes based on domain data ○ Allows for creating domain specific views to easily find related processes

Slide 38

Slide 38 text

Management Console - Process Details

Slide 39

Slide 39 text

Management Console - Domain Explorer

Slide 40

Slide 40 text

Kogito Visas Data Index Service Kogito Travel Agency Management Console - Architecture Management Console REST REST GraphQL

Slide 41

Slide 41 text

Management Console ● Distributions ○ Quay.io image ○ Runner JAR ○ Operator

Slide 42

Slide 42 text

Kogito - User Tasks

Slide 43

Slide 43 text

Task Console ● Out of the box Task Inbox experience ● Forms generated dynamically ○ Based on JSON Schema format ● Keycloack/SSO integration ● Task Management ( coming soon ) ○ Delegate tasks

Slide 44

Slide 44 text

Task Console

Slide 45

Slide 45 text

Kogito Visas Data Index Service Kogito Travel Agency Task Console - Architecture Task Console REST REST GraphQL

Slide 46

Slide 46 text

Task Console ● Distributions ○ Quay.io image ○ Runner JAR ○ Operator

Slide 47

Slide 47 text

Trusty AI ● Runtime Monitoring Service ● Tracing and Accountability Service ● Explanation Service

Slide 48

Slide 48 text

Kogito Services Distribution ● Quay.io container image ● Runner JAR

Slide 49

Slide 49 text

Kogito Operator ● Deploy Kogito runtimes into OpenShift and Kubernetes ● Build runtimes from source (only on OpenShift) ● Connect every piece of infrastructure that the services and runtimes might need ● Dependency management

Slide 50

Slide 50 text

Infinispan Kogito Visas Data Index Service Kafka Prometheus Grafana Kogito Travel Agency Strimzi Kogito Data Index (CR) Infinispan Operator Prometheus Operator Kogito Service (CR) Kogito Service (CR) Kogito Operator on Openshift

Slide 51

Slide 51 text

Kogito.Next ● Addons ○ Kafka persistence ( experimental ) - Quarkus ○ SVG process image - Spring Boot ○ OpenTracing ○ Monitoring using Micrometer ● Services ○ Automatic Task Assignment using Optaplanner

Slide 52

Slide 52 text

Thank you! @cris_nicolai @kogito_kie @rhdevelopers kogito-development@googlegroups.com

Slide 53

Slide 53 text

Resources ● https://kogito.kie.org/ ● https://blog.kie.org ● https://github.com/kiegroup/kogito-runtimes/blob/master/CONTRIBUTING.md ● https://operatorhub.io/operator/kogito-operator ● https://serverlessworkflow.io ● https://github.com/kiegroup/kogito-examples ● https://quarkus.io/ ● https://quay.io/repository/kiegroup