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
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…)
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 !