Slide 1

Slide 1 text

@hguerreroo Event-driven Joy Using Quarkus, Kafka & Knative Hugo Guerrero (@hguerreroo) APIs & Messaging Developer Advocate Red Hat

Slide 2

Slide 2 text

@hguerreroo 2 Hugo Guerrero Mexicano @ MA, USA Especialista de APIs & mensajeria | Promotor de open source | Viajero entusiasta de la historia y la comida @hguerreroo | hellokube.dev AGENDA Quarkus Overview Developer Joy Apache Kafka Overview Kafka Streams Serverless with Knative Overview with OpenShift KafkaSource

Slide 3

Slide 3 text

@hguerreroo Request/Response & Event-driven 3 Synchronous & ephemeral Low composability Simplified model Low tolerance to failure Best practices evolved as REST Asynchronous and persistent Decoupled Highly composable Complex model High tolerance to failure Best practices are still evolving

Slide 4

Slide 4 text

@hguerreroo 4 Quarkus Photo credit: HawkeyeUK on Visualhunt.com

Slide 5

Slide 5 text

@hguerreroo Kubernetes-native Java framework 5 Monolith Cloud Native Microservices Serverless Event-Driven Architecture Istio Knative

Slide 6

Slide 6 text

@hguerreroo Developer Joy 6 • Zero config, live reload in the blink of an eye • Remote development with Openshift • Integration with Dev Console • CodeReady Workspaces • Based on standards, but not limited • Unified configuration • No hassle native executable generation

Slide 7

Slide 7 text

@hguerreroo Developer Joy 7 Quarkus + Native 12 MB Quarkus + JVM 73 MB Traditional Cloud-Native Stack 136 MB Reduced Memory Footprint Quarkus + Native (.016 secs) Quarkus + JVM (0.943 secs) Traditional Cloud-Native Stack (4.3 secs) Fast Startup Time Smaller Disk Footprint

Slide 8

Slide 8 text

@hguerreroo 8 APACHE KAFKA

Slide 9

Slide 9 text

@hguerreroo Source: http://kafka.apache.org What is Apache Kafka? • Project originally created by LinkedIn ▪ publish/subscribe messaging system ▪ data-streaming platform ▪ distributed commit log 9

Slide 10

Slide 10 text

@hguerreroo Source: http://kafka.apache.org What is Apache Kafka? • Project originally created by LinkedIn ▪ publish/subscribe messaging system ▪ data-streaming platform ▪ distributed commit log • Broader ecosystem besides broker Streams API Producer API Consumer API 3rd party tools Mirror Maker Connect 10

Slide 11

Slide 11 text

@hguerreroo 11 Kafka Streams

Slide 12

Slide 12 text

@hguerreroo Source: http://kafka.apache.org Kafka Streams • Stream processing framework • Streams are Kafka topics (as input and output) • It’s really just a Java library to include in your application • Creates a topology of processing nodes (filter, map, join etc) acting on a stream ▪ Low level processor API ▪ High level DSL 12

Slide 13

Slide 13 text

@hguerreroo Source: http://kafka.apache.org Kafka Streams Topology 13 source processor processor processor processor sink

Slide 14

Slide 14 text

@hguerreroo 14 Knative: Kubernetes Serverless

Slide 15

Slide 15 text

@hguerreroo Source: http://kafka.apache.org Evolution to Serverless 15 Service Microservice Function > Single Purpose > Stateless > Independently Scalable > Automated > Single Action > Ephemeral > Autonomous > Loosely-coupled f( )

Slide 16

Slide 16 text

@hguerreroo Common infrastructure for consuming and producing events that will stimulate applications. Source: http://kafka.apache.org Knative 16 Knative Serving Knative Eventing An event-driven model that serves the container with your application and can "scale to zero".

Slide 17

Slide 17 text

@hguerreroo Source: http://kafka.apache.org Knative Eventing 17 ■ Brokers ✓ Built-in Event Filtering ✓ Based on types or attributes ✓ Multiple event types ✓ Multi-tenant ■ Channels ✓ Event Fanout to multiple subscribers ✓ Same event type ✓ Single-tenant

Slide 18

Slide 18 text

@hguerreroo THANK YOU! FOLLOW ON @hguerreroo https://www.youtube.com/user/hguerreroo https://hellokube.dev