CloudLand 2023, Juni 2023, Robert Hoffmann (Amazon Web Services) & Alex Krause (QAware)
How can your company help developers to fly, but not crash down? The answer is platform engineering, which is the discipline of building and operating self-service internal developer platforms (IDPs) to simplify software delivery and life cycle management for product teams. In this talk, you will learn how platform engineering evolved from the DevOps movement and what principles and best practices make a good implementation. Finally, we take a look at reference architectures that can power your platform.
4. 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.
5. 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
10. 12
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 improves developer
experience and productivity by providing
self-service capabilities with automated
infrastructure operations.
Platform engineering is trending because of its
promise to optimize the developer experience
and accelerate product teams’ delivery of
customer value.
Gartner
28. 31
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
30. 33
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