Des silos au Platform Engineering en passant par le DevOps : adopter GitOps et aller au-delà de l’hype

A presentation at Devoxx France 2024 in April 2024 in Paris, France by Horacio Gonzalez

Slide 1

Slide 1

Des silos au Platform Engineering en passant par le DevOps Adopter GitOps et aller au-delà de l’hype Horacio Gonzalez Clever Cloud @Sebi2706 - @LostInBrittany Sébastien Blanc Aiven DEVOXX FRANCE 2024

Slide 2

Slide 2

Who are we? Sébastien Blanc DevRel Aiven @sebi2706 @Sebi2706 - @LostInBrittany Horacio Gonzalez DevRel Clever Cloud @LostInBrittany DEVOXX FRANCE 2024

Slide 3

Slide 3

What are we going to see? 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. IT in the 90s Tooling evolves XP, agility and DevOps Enter the Cloud Declarative infrastructure Operators to the rescue GitOps? Platform Engineering? Build your own platform Some examples What about not using K8s? @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 4

Slide 4

IT in the 90s Once upon a time… @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 5

Slide 5

In a time almost forgotten When even internet was young… @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 6

Slide 6

When Windows 95 was the cutting edge And a 100 Mb disk was huge… @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 7

Slide 7

Big companies still used mainframes Bigger, fancier, but still the same old IBM @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 8

Slide 8

Bare-metal based IT reigned Control, reliability, security… But cost, rigidity, logistics… @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 9

Slide 9

Applying the industrial model Trying to shoehorn IT into a model where it doesn’t fit @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 10

Slide 10

Walls & Silos And procedures, and hierarchy, and corporate politics @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 11

Slide 11

Tooling evolves CVS, Ant and (Leeeroy) Jenkins @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 12

Slide 12

Old school procedures @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 13

Slide 13

Tooling empowering changes Theory existed since 1999 But without the right tooling… @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 14

Slide 14

Source control tools Better than copying and renaming folders… @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 15

Slide 15

Dependency management & build Better than grabbing each dependency in their website and running javac by hand… @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 16

Slide 16

Unit testing and continuous integration Hudson CI If Testing is Doubting, let’s doubt automatically @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 17

Slide 17

Monitoring tools No more spending nights looking at a status screen @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 18

Slide 18

Too many changes in a few years Old ways were difficult to change @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 19

Slide 19

@Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 20

Slide 20

XP, agility and DevOps Buzzwords that changed the IT @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 21

Slide 21

Extreme Programming @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 22

Slide 22

Manifesto for Agile Software Development @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 23

Slide 23

Breaching walks, breaking down silos @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 24

Slide 24

The business of Agility The Dark Side rises @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 25

Slide 25

Agile Tooling @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 26

Slide 26

Back to industrial practices ? @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 27

Slide 27

Is DevOps the same than Agility? Can you have one without the other? @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 28

Slide 28

You could have Agility without DevOps Even if I fail to see why you would want… @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 29

Slide 29

DevOps is a reaction to the wall of confusion Making the different stakeholders to work together in sync @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 30

Slide 30

You cannot have DevOps without agility DevOps is about shorter development sprints, increased focus on testing, increasing automation @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 31

Slide 31

DevOps comes with Agility DevOps is an extension of Agile that includes systems and operations @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 32

Slide 32

Enter the Cloud Renting server time in other’s people infra @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 33

Slide 33

From virtualisation to the cloud How to use the infrastructure at its full capacity @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 34

Slide 34

The five pillars of the Cloud @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 35

Slide 35

Cloud demands automation @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 36

Slide 36

It changes the way how IT works And it demands a mentality change @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 37

Slide 37

Empowering developers Infrastructure is only a click away @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 38

Slide 38

Distributed is the new black Cloud Native architectures and services @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 39

Slide 39

Sysadmins who code Creating tools: automation, monitoring, observability… @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 40

Slide 40

New roles appear: SRE WTF is a System Reliability Engineer? @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 41

Slide 41

@Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 42

Slide 42

Declarative Infrastructure The intern metaphor @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 43

Slide 43

Containers make dev life easier @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 44

Slide 44

Less simple if you must operate them Like in a production context @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 45

Slide 45

And what about microservices? Are you sure you want to operate them by hand? @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 46

Slide 46

And what about microservices? Are you sure you want to operate them by hand? @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 47

Slide 47

Kubernetes: a full orchestrator @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 48

Slide 48

Kubernetes - Desired State Management @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 49

Slide 49

Terraform - Declarative infra as code @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 50

Slide 50

Operators to the rescue Helping to tame the complexity of K8s and using K8s in heterogeneous systems @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 51

Slide 51

Taming microservices with Kubernetes @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 52

Slide 52

What about complex deployments @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 53

Slide 53

Tools like Helm helps with complexity @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 54

Slide 54

Helm Charts are configuration Operating is more than installs & upgrades @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 55

Slide 55

What about legacy? Because not everything needs/wants to be in Kubernetes @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 56

Slide 56

Kubernetes is about automation How about automating human operators? @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 57

Slide 57

Kubernetes Operators A Kubernetes version of the human operator @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 58

Slide 58

Building operators Basic K8s elements: Custom Resources & Controllers @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 59

Slide 59

Custom Resource Definitions Extending Kubernetes API @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 60

Slide 60

Extending Kubernetes API By defining new types of resources, internal or external to the cluster @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 61

Slide 61

With a CRD you can create CR in the cluster They are the blueprints of the Custom Resources @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 62

Slide 62

Custom Resources are simply data All the logic must be in the Controller @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 63

Slide 63

Kubernetes Controllers Keeping an eye on the resources @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 64

Slide 64

A reconcile loop Controllers watch the state of the cluster, and make or request changes where needed @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 65

Slide 65

Kubernetes Operator Automating operations @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 66

Slide 66

What’s a Kubernetes Operator? @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 67

Slide 67

Example: databases Things like adding an instance to a pool, doing a backup, sharding… @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 68

Slide 68

Knowledge encoded in CRDs and Controllers @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 69

Slide 69

Custom Controllers for Custom Resources Operators implement and manage Custom Resources using custom reconciliation logic @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 70

Slide 70

Operator Capability Model Gauging the operator maturity @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 71

Slide 71

GitOps @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 72

Slide 72

Les devs n’ont pas vocation à avoir accès au cluster Comment faire ? Les devs utilisent déjà Git, et c’est leur source de vérité. Utilisons Git comme source de vérité pour l’infra déclarative @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 73

Slide 73

A central source of truth @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 74

Slide 74

Continuous Integration(CI) & Continuous Delivery (CD) Build Test Security Checks Release Deploy Stage Deploy Prod Continuous Integration Continuous Delivery @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 75

Slide 75

What is GitOps? Git is the single source of truth @Sebi2706 - @LostInBrittany Treat everything as code Operations through Git workflows DEVOXX FRANCE 2024

Slide 76

Slide 76

Platform What is it? Why is it useful? Why do we need Platform Engineers? @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 77

Slide 77

A fancy name for something already there Most companies already have some kind of platform Often homemade… @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 78

Slide 78

So many options … @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 79

Slide 79

So many options … @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 80

Slide 80

Shift left and Cognitive Load @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 81

Slide 81

Managing the self-service commodity @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 82

Slide 82

“The discipline of designing and building toolchains and workflows that enable self-service capabilities for software engineering organizations in the cloud-native era. Platform engineers provide an integrated product most often referred to as an “Internal Developer Platform” covering the operational necessities of the entire lifecycle of an application.” Lucas Galante @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 83

Slide 83

@Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 84

Slide 84

IDP is the new Facade Pattern @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 85

Slide 85

Team Topologies “Organizations that consider establishing such a platform team should be very cautious not to accidentally create a separate DevOps team, nor should they simply relabel their existing hosting and operations structure as a platform.” TechRadar, October 2021 @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 86

Slide 86

Team Topologies Stream-aligned team Enabling team Complicated Subsystem team Platform team @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 87

Slide 87

Platform as a Product The Internal Dev Platform is the Product ● Conduct user research ○ Run friction logs ○ Empathy meetings ● Create a roadmap ● … @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 88

Slide 88

@Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 89

Slide 89

Build your own Platform And becoming Platform Engineer @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 90

Slide 90

How to glue those all together ? @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 91

Slide 91

Kubernetes Operators A Kubernetes version of the human operator @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 92

Slide 92

How to assemble all those building bricks ? @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 93

Slide 93

Platform Building Frameworks Custom Resource / Promise Pipeline 2 Custom Resource X Pipeline 1 “A framework for building platforms” @Sebi2706 - @LostInBrittany Custom Resource Y DEVOXX FRANCE 2024

Slide 94

Slide 94

@Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 95

Slide 95

Example: How to build an operator Because they are easier than you think… @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 96

Slide 96

Example: Using several operators They are made to work together @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 97

Slide 97

Example: Building a K8s-based Platform If you’re already a Kubernetes user @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024

Slide 98

Slide 98

Example: Using a PaaS provider There is a world outside Kubernetes @Sebi2706 - @LostInBrittany DEVOXX FRANCE 2024