Slide 1

Slide 1 text

ENABLING DEVELOPERS IN A MULTI-CLOUD WORLD A KUBERNETES JOURNEY MAURICIO SALATINO @SALABOY GOTO AARHUS, DENMARK 2023

Slide 2

Slide 2 text

ENABLING DEVELOPERS IN A MULTI-CLOUD WORLD A KUBERNETES JOURNEY MAURICIO SALATINO @SALABOY GOTO AARHUS, DENMARK 2023

Slide 3

Slide 3 text

β€’ The not-so-easy Kubernetes Journey β€’ The rise of Platforms on top of Kubernetes β€’ We are just starting to enable Developers AGENDA

Slide 4

Slide 4 text

@SALABOY MAURICIO SALATINO / WWW.SALABOY.COM

Slide 5

Slide 5 text

PLATFORMS ON K8S CODE: SALATINO40

Slide 6

Slide 6 text

WHERE DOES THE JOURNEY STARTS? 🎬

Slide 7

Slide 7 text

KUBERNETES

Slide 8

Slide 8 text

#1 LEARNING πŸ€” YAMLs Containers

Slide 9

Slide 9 text

#2 MORE THAN ONE

Slide 10

Slide 10 text

#3 OWNERSHIP Production Staging/QA Dev Envs

Slide 11

Slide 11 text

#4 TOOLING 🀯

Slide 12

Slide 12 text

#5 MULTI-TENANCY πŸ€” πŸ€” πŸ€” πŸ€” πŸ€” πŸ€” πŸ€”

Slide 13

Slide 13 text

#6 COSTS πŸ€”πŸ’ΈπŸ’°

Slide 14

Slide 14 text

THE PLATFORM ENGINEERING BUZZ πŸ€”

Slide 15

Slide 15 text

PLATFORM TEAM πŸ‘·πŸ”§ πŸͺ“πŸ‘· Devs Infra SREs Data Scientists { }

Slide 16

Slide 16 text

LET’S BUILD A PLATFORM My Platform Platform APIs Self Service Golden Paths Cross-Cutting Concerns

Slide 17

Slide 17 text

TAG APP DELIVERY WHITE PAPER https://tag-app-delivery.cncf.io/whitepapers/platforms/

Slide 18

Slide 18 text

Platform Tools EXAMPLE PLATFORM Platform APIs πŸ€“ Hey Platform, Can I have a new Dev Env? Prettry Please

Slide 19

Slide 19 text

Platform Tools EXAMPLE PLATFORM Platform APIs πŸ€“ Sure, give me a second! βš™

Slide 20

Slide 20 text

EXAMPLE PLATFORM Platform πŸ€“β€ Here you go! Env Tools Your App

Slide 21

Slide 21 text

CROSSPLANE + VCLUSTER

Slide 22

Slide 22 text

DEMO #1 πŸ™ πŸ™ πŸ™

Slide 23

Slide 23 text

Platform APIs πŸ€“ Environment Resource My Platform

Slide 24

Slide 24 text

Platform APIs Environment Resource My Platform My Env

Slide 25

Slide 25 text

πŸ€“ My Environment My Application

Slide 26

Slide 26 text

WHAT ABOUT DEVELOPERS? πŸ€“πŸ’»

Slide 27

Slide 27 text

β€’ The importance of experimentation β€’ De f ining the platform boundaries (platform capabilities) WHAT DO DEVELOPER NEED?

Slide 28

Slide 28 text

KNATIVE

Slide 29

Slide 29 text

->

Slide 30

Slide 30 text

RUN MY CONTAINER apiVersion: serving.knative.dev/v1 kind: Service metadata: name: helloworld-cobol spec: template: spec: containers: - image: cobol-app env: - name: TARGET value: β€œcobol-app Sample v1"

Slide 31

Slide 31 text

CAAS - image: cobol-app env: - name: TARGET value: β€œcobol-app Sample v1"

Slide 32

Slide 32 text

ADVANCED TRAFFIC MANAGEMENT Application V1 Application V2 πŸ€“πŸ’» Application V3

Slide 33

Slide 33 text

ADVANCED TRAFFIC MANAGEMENT Application V1 Application V2 πŸ€“πŸ’» Application V3 80% 20% TAG

Slide 34

Slide 34 text

SCALE DOWN TO ZERO Application V1 πŸ€“πŸ’»

Slide 35

Slide 35 text

DEMO #2 πŸ™ πŸ™ πŸ™

Slide 36

Slide 36 text

πŸ€“ Frontend v1.0 Frontend v1.1 `red` tag 100%

Slide 37

Slide 37 text

PLATFORM CAPABILITIES App APIs Exchanging Messages/ Events Storing and Reading Data Observability Resiliency Dynamic Scaling Release Strategies Feature Flags Work f lows Traf f ic Management Tools Capabilities App App

Slide 38

Slide 38 text

https://www.aviransplace.com/post/platform-as-a-runtime-paar-beyond-platform-engineering

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

->

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

PATTERNS AND BEST PRACTICES ENCODED Application A Storing and Reading Data Application B Application C Statestore

Slide 43

Slide 43 text

PATTERNS AND BEST PRACTICES ENCODED Application A Exchanging Messages/ Events Application B Application C PubSub

Slide 44

Slide 44 text

PATTERNS AND BEST PRACTICES ENCODED Application A Application C ServiceInvocation ResiliencyPolicies

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

App A 1.5.0 (Java) App B 3.4.0 (Go) Abstractions / Frameworks Abstractions / Frameworks Dapr Sidecar Dapr Sidecar Local HTTP/GRPC Local HTTP/GRPC Dapr StateStore Component Dapr PubSub Component Dapr Resiliency Policies

Slide 47

Slide 47 text

Read App Write App Subscribe App Frontend App Dapr StateStore Component Dapr PubSub Component Dapr Resiliency Policies Dapr Service Discovery

Slide 48

Slide 48 text

DEMO #3 πŸ™ πŸ™ πŸ™

Slide 49

Slide 49 text

Read App Write App Subscribe App Frontend App πŸ€“ App Devs πŸ‘· Platform Team Platform APIs πŸ‘¨πŸš’ Operations Platform Capabilities

Slide 50

Slide 50 text

β€’ Kubernetes is not so easy, we need a platform engineering approach to it β€’ Tools like `vcluster` and Crossplane can help to provision and con f igure cost ef f icient tools to enable our developers β€’ Tools like Dapr and Knative can provide platform capabilties to make our developers more ef f icient SUM UP

Slide 51

Slide 51 text

THANKS! @SALABOY / HTTPS://WWW.SALABOY.COM

Slide 52

Slide 52 text

THANKS! @SALABOY / HTTPS://WWW.SALABOY.COM

Slide 53

Slide 53 text

PLATFORMS ON K8S CODE: SALATINO40