Slide 1

Slide 1 text

Mauricio Salatino & Thomas Vitale KubeCon + CloudNativeCon Europe May 18th, 2022 A Polyglot Developer Experience on Kubernetes Docker-less and YAML-less @salaboy @vitalethomas

Slide 2

Slide 2 text

Mauricio Salatino VMware - Knative OSS • a.k.a @Salaboy • Sta ff Engineer - Knative Eventing tech lead for VMware • Knative OSS core contributor • Passionate about Functions, Platforms, Open Source and Kubernetes salaboy.com

Slide 3

Slide 3 text

Systematic • Software Architect at Systematic, Denmark. • Author of “Cloud Native Spring in Action” (Manning). • Spring Security and Spring Cloud contributor. Thomas Vitale thomasvitale.com @vitalethomas

Slide 4

Slide 4 text

Quiz Game thomasvitale.com @vitalethomas @salaboy @vitalethomas Building applications using functions

Slide 5

Slide 5 text

Serverless @salaboy @vitalethomas

Slide 6

Slide 6 text

Serverless Architectures Developers focus on code Focus on business logic @salaboy @vitalethomas Developer Platform Infrastructure Provisioning Workload Management Dynamic Scaling

Slide 7

Slide 7 text

Knative Serving Serverless Containers on Kubernetes Developer-friendly abstractions From code to URL Autoscaling Scaling to zero Progressive Rollouts Request-driven Event-driven @salaboy @vitalethomas Cloud agnostic

Slide 8

Slide 8 text

buildpacks.io

Slide 9

Slide 9 text

Demo thomasvitale.com @vitalethomas @salaboy @vitalethomas Knative Serving and Buildpacks - From code to URL

Slide 10

Slide 10 text

Platform 1 - Serverless experience From containers to deployment with autoscaling @salaboy @vitalethomas Image pack kn URL Kubernetes Cluster Container Container Container Knative Serving

Slide 11

Slide 11 text

Functions @salaboy @vitalethomas

Slide 12

Slide 12 text

Functions Functional programming model Triggered by requests or events Stateless Smaller scope Cold start Cost optimization @salaboy @vitalethomas

Slide 13

Slide 13 text

Functions Patterns Topologies for functional programming @salaboy @vitalethomas Asynchronous processing Event-based Data stream via chained functions Synchronous Asynchronous Fire and Forget Request/ Response Request/ Response (State)

Slide 14

Slide 14 text

Demo thomasvitale.com @vitalethomas @salaboy @vitalethomas Knative Functions - From idea to URL

Slide 15

Slide 15 text

More on Knative Functions In active development, join the community! External templates repository Run locally with func run On-cluster build, no Docker required Roadmap to 1.0 GA @salaboy @vitalethomas Works with multiple languages and frameworks

Slide 16

Slide 16 text

Platform 2 - Polyglot Functions From idea to deployment with autoscaling @salaboy @vitalethomas URL func create Image func deploy Kubernetes Cluster Container Container Container Knative Serving

Slide 17

Slide 17 text

Events @salaboy @vitalethomas

Slide 18

Slide 18 text

CloudEvents Interoperability and standardization Metadata Data Id Source Type Payload JSON AMQP Kafka MQTT @salaboy @vitalethomas

Slide 19

Slide 19 text

Knative Eventing Event routing and triggers Developer-friendly abstractions Event-driven architectures Event routing Polyglot support with CloudEvents Pluggable @salaboy @vitalethomas Cloud agnostic

Slide 20

Slide 20 text

Platform 3 - Knative Eventing Event-driven and reactive functions @salaboy @vitalethomas URL func create + trigger Image func deploy Kubernetes Cluster Container Container Knative Serving & Eventing Knative Broker Knative Event Sources Trigger A Trigger B

Slide 21

Slide 21 text

Game - Architecture @salaboy @vitalethomas

Slide 22

Slide 22 text

Kubernetes Cluster Game - Functions Synchronous functions with Knative React Application Game FrontEnd Start Game Level X … Get LeaderB Redis (State) HTTP SYNC Level 1 …

Slide 23

Slide 23 text

Game - Eventing Knative Eventing, CloudEvents & RSocket Kubernetes Cluster React Application Game FrontEnd Level X … Redis HTTP SYNC Broker Trigger Score CloudEvent RSocket GameScore CloudEvent Trigger Another Function

Slide 24

Slide 24 text

Discount codes Manning • 35% discount code, valid for all products in all format • ctwkucoeu22 • manning.com

Slide 25

Slide 25 text

Resources Source code • Learn more about the game: • https://github.com/salaboy/from-monolith-to-k8s/tree/main/game • Deploy the game on Kubernetes: • https://github.com/ThomasVitale/eventing-game • Knative: https://knative.dev • Knative Functions: https://github.com/knative-sandbox/kn-plugin-func

Slide 26

Slide 26 text

Mauricio Salatino & Thomas Vitale KubeCon + CloudNativeCon Europe May 18th, 2022 A Polyglot Developer Experience on Kubernetes Docker-less and YAML-less @salaboy @vitalethomas