2024-05-30_meetup_devops_aix-marseille.pdf

FredericLeger 111 views 55 slides Jun 07, 2024
Slide 1
Slide 1 of 55
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55

About This Presentation

Slides de notre meetup DevOps AixMarseille du 30 mai 2024 chez SmarTribune

Sujets: platform engineering / terragrunt / test containers


Slide Content

Maker May - SmartTribune
Platform Engineering et
quickies
30/05/2024

Un grand merci à

Qui sommes-nous ?
Thomas Perelle
Freelance
Frédéric Léger
Emilien Escalle

I.Annonces
II.Smart Tribune
III.Platform Engineering
IV.Quickies (terragrunt & test containers)
V.Jeu + goodies
VI.Apéro / Buffet
Sommaire

6/6/24 | WAX
https://www.waxconf.fr/

Ici vont les slides SmartTribune

Platform Engineering

Platform Engineering
Overview
Thomas Perelle

Definition of 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”
(IDP) covering the operational necessities of the entire lifecycle of an application.”
– Humanitec, What is platform engineering

Who am I?
Thomas Perelle
?????? Lead Platform Engineering - Freelance

♥ Transformation/Innovation projects and strategy
♥ Working in team and sharing knowledges
♥ Making things working better


@tperelle
@thomasperelle

Definition of 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”
(IDP) covering the operational necessities of the entire lifecycle of an application.”
– Humanitec, What is platform engineering

It’s always about organizational concerns

Trendy but not always essential
You don’t need it:
●Small team
●Few teams
●Few projects in parallel
●Good pace to deliver

KISS is always better when
possible!

When is it appropriate?
You encounter difficulties at scale:
●Federating a lot of development teams
●Ensuring compliance
●Managing technical debt
●Slow innovation
●Frictions between teams
●Unclear responsibility boundaries

The amount of trouble outweighs the
investment in getting organised!

Methodology landscape
Platform engineering does not
replace any other approach, it
complements what already exists!
●Lean
●Agile
●Scrum
●SAFe
●DevOps
●…

Lean management
Inspired from the Toyota Production System
(TPS) in the 90’s.

Eliminate waste that reduces the efficiency and
performance

Agile methodology
Describe in the Manifesto for Agile Software
Development written in 2001.

Fights against the high failure rate of software
development projects

Scaled Agile Framework (SAFe)
SAFe is a framework designed for large-scale
deployment of Agile and Lean methods.

Get several Agile teams working together at scale

DevOps
The DevOps movement appeared around 2007 with Patrick Debois.

Breaking the “wall of confusion” between DEV and OPS teams

What’s about platform engineering?
Answer frustration following DevOps adoption:
●High cognitive load in Dev teams
●Ops overwhelmed by tickets

Platform Engineering, concepts and terminology

Platform team
Team Topologies is a model for describing the organization of software
development teams

Related to the Conway’s law:
“Conway's law describes the link between communication structure of
organizations and the systems they design.” - Wikipedia

Platform team
Source: Building a successful platform team at
CROZ
Stream-aligned teams
●Own an entire slice of the business domain end-to-end
●“You Built It, You Run It” teams
●Outcome / Business oriented

Platform team or group
●May be a group of teams
●Provide an internal product to accelerate delivery by
Stream-aligned teams
●Reduce cognitive load

Improving Developer Experience is not the only objective
Platform Team
Executives
Product owners
Dev teams Ops teams
Security team
Other
Think holistically!

Platform team ≠ SRE
While SREs focus on the reliability of the production environment, platform
engineers focus on building an Internal Developer Platform to enable developer
self-service with low cognitive load.
SRE vs. DevOps vs. Platform Engineering: What’s The Difference?

The concept of “Platform”
Automotive manufacturers use the platform concept for a long
time:
●The first is General Motors in 1908!
●The platform sharing is common since 1960s

The concept of platform is widely used:
●Automotive
●E-commerce - Amazon, eBay, etc.
●Media - Facebook, Netflix, etc.
●IT - Cloud Platforms!
“Most definitions portray platforms as amplifier: they create
something bigger than just the sum of their parts.” - Gregor
Hohpe

Internal Developer Platform
Internal Developer Platform (IDP):
●Expose golden paths
●Hide complexity
●Many tech and tools glued together
○Requires multiple skills (dev, ops, cyber,
network, iam, etc.)
●Managed “as a Product”, not a project
Organization
Responsibility
boundaries
Templates
Golden paths
Well defined
processes
Portal
Self service
Skills
Documentation
Tooling

Internal Developer Portal
The Internal Developer Portal (IDP) is the interface
of the platform.
Key capabilities:
●Service catalog
●Dashboard
●Integrations
●Score cards
●Developer self-service
●RBAC
●Auto documentation

Source: https://humanitec.com/internal-developer-portal

Platform Orchestrators
CI/CD Pipelines and
triggers

IDP Architecture example

Golden path principles
The Cloud Native Computing Foundation
defines a Golden Path as a "templated
composition of well-integrated code and
capabilities for rapid project development." 
=> It is a self-service template for common
tasks
1.Provide a single, clear, opinionated method 
2.Reduce the cognitive load 
3.Integrate with existing internal developer platforms
4.Light the complete path from development to production
5.Be self-service
6.Provide a transparent abstraction
7.Address your organization's specific needs
8.Allow for flexibility
9.Be optional

Don’t build pyramids…
●Require to anticipate all user’s needs
●The build is more complex and expensive
●Avoid creativity and diversity
●Platform team holds responsibility
Allow building on top!
●Hide complexity
●Offer simple and ready-to-use interface
●Engage users
●Allow innovation to answer new needs
●Shared responsibility model

API Governance
APIs become a cross-functional and cross-technical
language, allowing both technical and business
stakeholders to communicate.
●Leverage existing APIs to offer transparent
integration in golden path
●Create your own APIs to provide additional services
or business-specific
●Use API specification format to ensure uniformity
across the organization: OpenAPI, AsyncAPI or AWS
RAM for example
●Share and reuse Data Object Schemas to avoid
having multiple representations for a same thing
●Communicate about the API ecosystem and
governance rules (self-service portal, documentation,
talks, etc…)

Generated with Midjourney

Platform tooling landscape
https://platformengineering.org/platform-tooling

Advices and reminders

Getting organised costs money

Change organization requires strong
sponsorship

A bad organization can also disorganized

Don’t forget change management

Customer onboarding and support are
very expensive

Without a positive return on investment of the
platform engineering initiative within the first 12
months - the initiative does not deserve to survive

Resources to go further
●Internal Developer Platform
●Platform Engineering blog - Humanitec
●Platform as a product
●How to build a Minimum Viable Product (MVP)
●Why putting a pane of glass on a pile of sh*t doesn’t solve your
problem
●Platform Orchestrator: the Platform Engineering game changer

PlatformCon 2024 - 10-14 June 2024
Platform Engineering Community

Thank you!

Any questions ?

Quickies

Terragrunt
●Gruntwork (terragrunt.gruntwork.io)
●Une autre façon de gérer du multi environnement avec terraform
●Plus facile de gérer les dépendances entre modules / ressources
●Approche basée sur les modules terraform
●Pas mal de fonctions et hooks pratiques

Terragrunt

Terragrunt

Testcontainers

Testcontainers est un framework open source permettant de fournir des instances légères et jetables de
bases de données, de brokers de messages, de navigateurs web ou de tout ce qui peut fonctionner dans un
conteneur Docker.
https://testcontainers.com/

Differences with Docker and Docker Compose
Docker and Docker Compose approach has downsides.
-It may result in port conflicts,
-Containers not being fully initialized or ready for interactions when the tests start, etc.
Testcontainers libraries leverage the full power of Docker containers under the hood and expose them to
developers via idiomatic APIs.

Testcontainers workflow

Configuration

DevOps needs you !
●Speakers pour les prochains meetups
●Volontaires
Oui nide iou !

meetup.com/Devops-Aix-Marseille
ibd.sh/openbar

Quizz !!

Apéro