Make Developers Fly – Helping developers to build better applications
Cloud Native Night, Mainz, November 2023, Alex Krause
Platform Engineering is the next stage of DevOps and accelerates software developers even more to build applications faster and bring products rapidly to the customers. In this meetup, we show you the key principles of platform engineering, as we experienced them in our projects, and additionally show you a better way to manage your internal software platforms.
PRINCIPLES FOR PLATFORM ENGINEERING, Alex Krause
How do we help our developers to fly instead of crashing miserablely? The answer is Platform Engineering, a discipline for building internal developer platforms (IDPs) to simplify software delivery for product teams. In this talk, you'll learn how Platform Engineering evolved from the DevOps movement and what principles and best practices make for a good implementation. Finally, we'll take a look at reference architectures that can support your platform.
2. Robert Hoffmann
2
2
ehemaliger Product Owner bei
Hallo Magenta
co-ideation für diesen Talk
“Solutions Architect @awscloud
ex @DeutscheTelekom, @Samsung
I move boxes around to help people
move boxes around.”
coole Socke 😎 🐦 @robhoffmax
5. 5
QAware
DevOps: Wall of Confusion
Entwicklung Betrieb
Zentrale Aufgaben:
● Schnell auf
Marktänderungen
reagieren und neue
Funktionalitäten
entwickeln.
● Erfolg wird häufig am
Durchsatz der
Auslieferungen gemessen.
Zentrale Aufgaben:
● Stabile, sichere und
zuverlässige Dienste für
die Kunden.
● Erfolg wird häufig an der
Zuverlässigkeit der
Systeme gemessen.
Folgen:
● Gegensätzliche Ziele führen zum Konflikt, Misstrauen und schlussendlich zur Bildung von Silos.
● Software wird “über den Zaun geworfen”, ohne Rücksicht auf Betriebsführbarkeit oder betriebliche Aspekte.
● Der Betrieb erschwert das Ausliefern durch bürokratische Prozesse um die Kontrolle zurückzuerhalten.
● Im schlimmsten Fall kommt es zu ständigen Ausfällen, schlechten Antwortzeiten und zum Stillstand der
Wertschöpfungskette. Dies bedroht alle Geschäftsbereiche.
6. 6
QAware
DevOps: Definition
“DevOps beschreibt einen Prozessverbesserungs-Ansatz
aus den Bereichen der Softwareentwicklung und
Systemadministration. [...] DevOps soll durch gemeinsame
Anreize, Prozesse und Software-Werkzeuge eine
effektivere und effizientere Zusammenarbeit der Bereiche
Dev, Ops und Qualitätssicherung (QS) ermöglichen. Mit
DevOps sollen die Qualität der Software, die
Geschwindigkeit der Entwicklung und der Auslieferung
sowie das Miteinander der beteiligten Teams verbessert
werden.”
Wikipedia
11. 11
QAware
Platform Engineering
● Spezialisierung der Rollen,
dadurch geringerer Cognitive Load
● immer noch DevOps,
zentrale Schnittstelle: Die Plattform
● Wiederverwendung und
organisatorische Skalierung
● Automatisierte Integration bedeutet
mehr Software 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.”
Humanitec
28. 28
QAware
“Platforms reduce cognitive load by
exposing useful abstractions.
Good abstractions form a cohesive
language and useful mental model.
Omitting relevant details is tempting
but ends up with dangerous illusions.”
Gregor Hohpe @ PlatformCon 2023
Autor von Cloud Strategy
Aufgabe für Developer Platforms:
● Verständliche Abstractions mit Escape
Hatches bauen
● Die Limitationen der eigenen
Abstraktionen verstehen (z.B. Build vs
Runtime) ...
● ... und für die DevEx bedenken
(Debugging, Alerting)
● Cloud Services bieten fertige
Abstraktionen
29. 29
QAware
Inner Source
● Aller Code ist intern offen
● jede Instanz einer IDP ist offen
● Referenz IDP ist offen
○ Issue Tracker
○ Roadmap
○ PRs welcome
● Community Events
Neue Features, Austausch…
31. 31
QAware
Self-Service
Der Lebenszyklus einer IDP ist unter voller Kontrolle des Nutzers und
benötigt im Regelfall keine Interaktion seitens des Platform Teams.
● Erzeugen, Löschen, Upgraden einer IDP Instanz wird durch Nutzer angestoßen
● Werkzeuge: CLI, UIs, Pipelines
● automatisierte Prozesse überwachen und enforcen die Compliance und Qualität
● wenige PE sind notwendig, um eine große Menge an IDPs zu betreiben