From Silos to DevOps to Platform Engineering: embracing GitOps and going behind the hype

A presentation at BCN JUG in May 2024 in Barcelona, Spain by Horacio Gonzalez

Slide 1

Slide 1

From Silos to DevOps to Platform Engineering Embracing GitOps and going behind the hype Horacio Gonzalez 2024-05-23

Slide 2

Slide 2

Horacio Gonzalez @LostInBrittany Spaniard Lost in Brittany

Slide 3

Slide 3

Adding layers of shiny complexity Last 30 years in software development

Slide 4

Slide 4

From write-compile-exec to Kubernetes

Slide 5

Slide 5

From write-compile-exec to Kubernetes

Slide 6

Slide 6

If I were a student now, I would feel scared

Slide 7

Slide 7

Platform Engineering to the rescue Empowering developers while reducing complexity

Slide 8

Slide 8

IT in the 90s Once upon a time…

Slide 9

Slide 9

In a time almost forgotten When even internet was young…

Slide 10

Slide 10

When Windows 95 was the cutting edge And a 100 Mb disk was huge…

Slide 11

Slide 11

Big companies still used mainframes Bigger, fancier, but still the same old IBM

Slide 12

Slide 12

Bare-metal based IT reigned Control, reliability, security… But cost, rigidity, logistics…

Slide 13

Slide 13

Applying the industrial model Trying to shoehorn IT into a model where it doesn’t fit

Slide 14

Slide 14

Walls & Silos And procedures, and hierarchy, and corporate politics

Slide 15

Slide 15

Why are we managing IT like factories? Because we didn’t know otherwise?

Slide 16

Slide 16

Slide 17

Slide 17

Tooling evolves CVS, Ant and (Leeeroy) Jenkins

Slide 18

Slide 18

Old school procedures

Slide 19

Slide 19

Tooling empowering changes Theory existed since 1999 But without the right tooling…

Slide 20

Slide 20

Source control tools Better than copying and renaming folders…

Slide 21

Slide 21

Dependency management & build Better than grabbing each dependency in their website and running javac by hand…

Slide 22

Slide 22

Unit testing and continuous integration Hudson CI If Testing is Doubting, let’s doubt automatically

Slide 23

Slide 23

Monitoring tools No more spending nights looking at a status screen

Slide 24

Slide 24

So many more possibilities… So much more complexity!

Slide 25

Slide 25

Slide 26

Slide 26

XP, agility and DevOps Buzzwords that changed the IT

Slide 27

Slide 27

Extreme Programming

Slide 28

Slide 28

Manifesto for Agile Software Development

Slide 29

Slide 29

Breaching walks, breaking down silos

Slide 30

Slide 30

The business of Agility The Dark Side rises

Slide 31

Slide 31

Agile Tooling

Slide 32

Slide 32

Back to industrial practices ?

Slide 33

Slide 33

DevOps: breaking Dev and Ops Silos

Slide 34

Slide 34

DevOps is a reaction to the wall of confusion Making the different stakeholders to work together in sync

Slide 35

Slide 35

DevOps anti patterns More in DevOps Topologies site

Slide 36

Slide 36

DevOps also has another Dark Side WTF is a DevOps Engineer? And a DevSecOps? A DevMlOps? A DevAiDataSecOps? A Dev*Ops?

Slide 37

Slide 37

So we have Cults of Agility and Dev*Ops And so much more complexity!

Slide 38

Slide 38

Slide 39

Slide 39

Enter the Cloud Renting server time in other’s people infra

Slide 40

Slide 40

From virtualisation to the cloud How to use the infrastructure at its full capacity

Slide 41

Slide 41

Cloud demands automation

Slide 42

Slide 42

It changes the way how IT works And it demands a mentality change

Slide 43

Slide 43

Empowering developers Infrastructure is only a click away

Slide 44

Slide 44

Distributed is the new black Cloud Native architectures and services

Slide 45

Slide 45

Sysadmins who code Creating tools: automation, monitoring, observability…

Slide 46

Slide 46

New roles appear: SRE WTF is a System Reliability Engineer?

Slide 47

Slide 47

250 cloud products only in this provider… And so much more complexity!

Slide 48

Slide 48

Slide 49

Slide 49

Declarative Infrastructure The intern metaphor

Slide 50

Slide 50

Containers make dev life easier

Slide 51

Slide 51

Less simple if you must operate them Like in a production context

Slide 52

Slide 52

And what about microservices? Are you sure you want to operate them by hand?

Slide 53

Slide 53

And what about microservices? Are you sure you want to operate them by hand?

Slide 54

Slide 54

Kubernetes: a full orchestrator

Slide 55

Slide 55

Kubernetes - Desired State Management

Slide 56

Slide 56

Infrastructure as Code

Slide 57

Slide 57

Containers? Pods? Ansible? Terraform? So much more complexity!

Slide 58

Slide 58

Slide 59

Slide 59

Becoming a developer in 2024 Do I need to know all that?

Slide 60

Slide 60

So many things to learn…

Slide 61

Slide 61

So many options …

Slide 62

Slide 62

Managing the self-service commodity

Slide 63

Slide 63

Shift left and Cognitive Load

Slide 64

Slide 64

Platform Engineering to the rescue Without adding more complexity?

Slide 65

Slide 65

What’s Platform Engineering? Platform engineering is 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. Lucca Galante

Slide 66

Slide 66

A fancy name for something already there Most companies already have some kind of platform Often homemade…

Slide 67

Slide 67

The purpose of Platform Engineering Empowering developers while reducing complexity

Slide 68

Slide 68

But how can we create them?

Slide 69

Slide 69

GitOps

Slide 70

Slide 70

What is GitOps? Git is the single source of truth Treat everything as code Operations through Git workflows

Slide 71

Slide 71

Benefits of GitOps

Slide 72

Slide 72

Team Topologies It’s not only a tool, but an organisation

Slide 73

Slide 73

Team Topologies https://teamtopologies.com/

Slide 74

Slide 74

Team Topologies https://teamtopologies.com/

Slide 75

Slide 75

Team Topologies https://teamtopologies.com/

Slide 76

Slide 76

Principles of Platform Engineering To make it work

Slide 77

Slide 77

Paving golden paths Platform engineering is about binding process and tools into a paved road. Rather than letting everybody operate everything and having to understand the entire toolchain to do so, platform engineers provide the glue to bind everything into a consistent self-service experience.

Slide 78

Slide 78

Clear mission and role

Slide 79

Slide 79

Platform as a Product

Slide 80

Slide 80

Focus on common problems

Slide 81

Slide 81

Glue is valuable

Slide 82

Slide 82

Don’t reinvent the wheel

Slide 83

Slide 83

Slide 84

Slide 84

An IDP over Kubernetes What could I use?

Slide 85

Slide 85

Don’t put everything into Kubernetes

Slide 86

Slide 86

Operators simplify Kubernetes integration

Slide 87

Slide 87

Lots of available operators

Slide 88

Slide 88

Hey JUG, operators ❤ Java

Slide 89

Slide 89

So you have a bunch of operators… Too many options again…

Slide 90

Slide 90

Use a Platform Engineering framework

Slide 91

Slide 91

Set-up a robust CI/CD/GitOps pipeline

Slide 92

Slide 92

An IDP without Kubernetes There is a life outside K8s…

Slide 93

Slide 93

What if developers only developed?

Slide 94

Slide 94

PaaS as cornerstone of a dev-centered IDP

Slide 95

Slide 95

Clever Cloud

Slide 96

Slide 96

Some Links to go further - There Is No Such Thing as a DevOps Engineer DevOps Topologies What is Platform Engineering Team Topologies Kratix Aiven Clever Cloud