Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OCB: Event-driven Applications with Kogito Serverless Workflows and Knative Ricardo Zanini (Red Hat)

OCB: Event-driven Applications with Kogito Serverless Workflows and Knative Ricardo Zanini (Red Hat)

Benefits of business automation such as increased productivity, cost reduction, and improved visibility and communication are important across architectures and runtime platforms. Often thought of as monolithic, business automation has gained high interest in cloud and container-based architectures. Workflow orchestration and automation are now key pieces in developing serverless applications in multi-cloud environments. Using Kogito, a cloud-native business automation runtime, and CNCF Serverless Workflow Project, a vendor-neutral and portable workflow language, we will show how to get up and running with business automation in the cloud and create highly productive and scalable cloud-native applications on top of Knative infrastructure.

YouTube: https://youtu.be/BrJJ4IeArPs

Red Hat Livestreaming

April 19, 2021
Tweet

More Decks by Red Hat Livestreaming

Other Decks in Technology

Transcript

  1. V0000000
    Event-driven Applications
    with Kogito Serverless
    Workflows and Knative
    OpenShift Commons Briefing 2021
    Ricardo Zanini
    Senior Software Engineer

    View Slide

  2. V0000000
    Agenda Use Case Example
    Short Demo
    Event-driven Applications with Kogito Serverless Workflows and Knative
    CNCF Serverless Workflow
    Specification
    Kogito Project

    View Slide

  3. V0000000
    Event-driven Applications with Kogito Serverless Workflows and Knative
    CNCF Serverless
    Workflow Specification

    View Slide

  4. V0000000
    CNCF Serverless Workflow Specification
    Serverless Workflow Specification is a CNCF Sandbox Project: https://www.cncf.io/sandbox-projects/
    CNCF Serverless Workflow Specification Website
    "A specification focused on defining a
    declarative workflow language that targets
    the serverless computing technology
    domain."

    View Slide

  5. V0000000
    Serverless Workflow Specification
    Source: https://github.com/serverlessworkflow/specification/blob/main/specification.md#Overview
    Why?
    Workflows can capture and organize business
    requirements in a unified manner
    The specification addresses the need for a
    vendor-neutral, platform-independent and
    declarative workflow language
    Having a common way to define workflows increases the
    potential for common libraries, tooling and infrastructure
    Being vendor-neutral, increases portability,
    productivity and learning curve

    View Slide

  6. V0000000
    Source: https://github.com/serverlessworkflow/specification/blob/main/specification.md#focus-on-standards
    Focus on Standards

    View Slide

  7. V0000000
    Workflow Data Handling
    Source: https://github.com/serverlessworkflow/specification/blob/main/specification.md#workflow-data

    View Slide

  8. V0000000
    Workflow Definition Structure
    Source: https://github.com/serverlessworkflow/specification/blob/main/specification.md#workflow-definition-structure

    View Slide

  9. V0000000
    Meet Kogito
    Kogito is a work in progress
    implementation of the CNCF
    Serverless Workflow specification

    View Slide

  10. V0000000
    What’s Kogito?
    A cloud-native solution to build business
    applications
    https://kogito.kie.org/

    View Slide

  11. V0000000
    Kogito Capabilities
    Rules: Describe business rules in specific domain-driven DSL
    Decisions: Design complex decisions with DMN
    Serverless Orchestration: Execute workflows based on CNCF
    Serverless Workflow specification
    Business Process: Design, execute and track business-driven
    process based on BPMN
    Cloud native: Tools to model and run business applications for
    cloud-native architectures

    View Slide

  12. V0000000
    Supporting Services
    Cloud-native services to support
    your business applications
    VSCode plugins, online and
    standalone editors
    Based on battle tested
    frameworks such as Drools, jBPM
    and OptaPlanner
    Editors Engine
    The Kogito Project
    Kubernetes Operator and a CLI
    to deploy and manage Kogito
    services
    Cloud Tools

    View Slide

  13. V0000000
    Example Use Case
    Online Store Order Processing

    View Slide

  14. V0000000
    Online Store Order Processing
    Order Approval
    Service
    New Order event

    View Slide

  15. V0000000
    Online Store Order Processing
    John Doe, CEO
    An online store needs to perform Shipping
    and Fraud verification before proceeding
    with the Order process

    View Slide

  16. V0000000
    Online Store Order Processing
    Order
    Pre-Processing
    Workflow
    Order Approval
    Service
    International
    Shipping Validation
    Service
    Domestic Shipping
    Validation Service
    Fraud Evaluation
    Service
    1
    New Order event
    2
    After evaluating the order, the
    workflow can emit up to two
    events: Fraud evaluation and
    Shipping Handling
    3
    When finishing the Shipping
    Validation, a new event will be
    emitted, so the order can
    continue to the approval
    process
    5
    This service will correlate all
    the consumed events to
    proceed (or not) with the
    approval process
    4
    The Fraud Evaluation
    service emits a new event
    with the result of the
    evaluation

    View Slide

  17. V0000000
    Workflow source files: https://red.ht/kogito-sw-order
    The Order Pre-Processing Workflow
    Receive
    Order
    Process
    Order
    Fraud
    Handling
    Shipping
    Handling
    Produce
    Shipping Event
    Produce Fraud Event
    Consume New Order Event

    View Slide

  18. V0000000
    OpenShift
    Kogito Serverless Workflow Development Model
    Workflow
    definition
    file(s)
    Kogito Framework
    Kogito Codegen Kogito Process
    Engine
    Internal
    Image
    Registry
    Kogito Operator
    Kubernetes
    Resources
    Knative
    Resources
    Image Build
    Image Pull
    OpenShift Serverless Platform (Knative)
    kogito deploy order-sw

    View Slide

  19. V0000000
    Knative Infrastructure

    View Slide

  20. V0000000
    Short Demonstration

    View Slide

  21. V0000000
    Want to know more?

    View Slide

  22. V0000000
    Resources
    CNCF Serverless Workflow Specification: https://serverlessworkflow.io/
    Kogito: https://kogito.kie.org/
    KIE Blog: http://blog.kie.org/
    Demonstration source code: https://red.ht/kogito-sw-order
    KubeCon 2020 US Presentation: https://www.youtube.com/watch?v=noVf6qzyP1U

    View Slide

  23. V0000000
    linkedin.com/company/red-hat
    youtube.com/user/RedHatVideos
    facebook.com/redhatinc
    twitter.com/RedHat
    Thank you! :)
    Linkedin https://www.linkedin.com/in/ricardozanini/
    Twitter https://twitter.com/zaninirica

    View Slide