Was ist Platform Engineering?
Platform Engineering ist eine Sparte innerhalb der Softwareentwicklung, die darauf abzielt, die Produktivität, die Dauer des Anwendungszyklus und die Markteinführungszeit zu verbessern. Das Hauptziel von Platform Engineering besteht darin, die Problempunkte für Entwicklungsteams zu identifizieren und sie durch das Bereitstellen gemeinsamer, wiederverwendbarer Tools und Funktionen über eine interne Entwicklungsplattform (Internal Developer Platform, IDP) zu beseitigen.
Platform Engineering sollte als multidisziplinärer Ansatz betrachtet werden, der die Arbeitskultur und Produktivität verbessert und sich positiv auf das Endergebnis auswirkt. Aus Unternehmensperspektive optimieren die Platform Engineering-Programme die Abläufe und verbessern die Markteinführungszeiten sowie die Effizienz beim Entwickeln, Bereitstellen, Managen und Verwalten von Anwendungen. Kulturell gesehen soll Platform Engineering die Zusammenarbeit zwischen den Teams verbessern und die kognitive Belastung verringern. Dazu werden den Entwicklungsteams die erforderlichen Tools und die benötigte Unterstützung bereitgestellt, damit sie sich auf die wichtigsten Aspekte ihrer Arbeit konzentrieren können.
Welche Rolle spielt das Platform Engineering?
Platform Engineering soll Unternehmen dabei unterstützen, Konsistenz und Effizienz zu verbessern. Es fördert eine bessere Zusammenarbeit zwischen den Teams und reduziert die Lernkurve für neue Teammitglieder, indem es eine effizientere teamübergreifende Kooperation ermöglicht. Platform Engineering kann sowohl eine spezifische Jobrolle als auch eine Fachrichtung oder Methodik sein, die von einer Gruppe von Personen als Teaminitiative übernommen wird.
Im Wesentlichen soll Platform Engineering den Zeitaufwand für administrative Aufgaben reduzieren, die die Produktivität der Entwicklungsteams beeinträchtigen und zu Engpässen im Anwendungs-Lifecycle führen können.
Wie werden Entwicklungsteams durch Platform Engineers unterstützt?
Platform Engineers und deren Teams sind für das Infrastrukturmanagement und das Entwickeln von Tools verantwortlich, die Entwicklerinnen und Entwickler durch einen Workflow führen, der auf ihre Anforderungen ausgerichtet ist. Ein solcher Workflow wird auch als „Golden Path“ bezeichnet.
Die benutzerdefinierten Tools und Prozesse, die Platform Engineers kuratieren, passen zu den besonderen Anforderungen eines Unternehmens. So profitieren Softwareentwicklungsteams von Self Service-Funktionen und einer automatisierten Infrastruktur. Diese Anpassbarkeit sorgt dafür, dass Entwicklungsteams nicht durch Universallösungen eingeschränkt werden und ermöglicht es ihnen, mit den Tools zu arbeiten, die am besten zu den Projektanforderungen passen. Gleichzeitig reduziert dies die Notwendigkeit für Entwicklungsteams, neue Kompetenzen zu erlernen und überflüssige Arbeit zu verrichten, sodass sie sich auf das Wesentliche konzentrieren können: das Programmieren.
Platform Engineering-Teams sorgen außerdem dafür, dass robuste Governance-Frameworks eingeführt werden, um die Kontrolle über Ressourcen, Sicherheit und Compliance in den verschiedenen Umgebungen zu gewährleisten. Dies hat den zusätzlichen Vorteil, dass Unternehmen besser die Performance und Kosten kontrollieren sowie potenzielle Risiken oder Schwachstellen erkennen können.
Backstage with Platform Engineering. Dauer des Videos: 2:31
Was ist eine Anwendungsplattform?
Was ist eine interne Entwicklungsplattform?
Eine interne Entwicklungsplattform (Internal Developer Platform, IDP) ist ein standardisiertes Set von Self Service-Tools und -Technologien, mit denen Entwicklungsteams Code über den gesamten Anwendungs-Lifecycle hinweg entwickeln, bereitstellen und verwalten können. Die in eine IDP integrierten Toolchains ermöglichen einen positiveren und produktiveren Workflow für Entwicklungsteams, berücksichtigen Faktoren wie Sicherheit und Skalierbarkeit und sorgen letztendlich dafür, dass Unternehmen einen größeren Mehrwert für ihre Kunden schaffen.
Platform Engineering im Vergleich zu DevOps
DevOps ist ein Konzept der Softwareentwicklung, mit dem Unternehmen Entwicklungs- und IT-Operations-Funktionen zu iterativen Workflows zusammenfassen. Beim Platform Engineering liegt der Fokus mehr auf dem Erstellen der internen Plattformen und Tools, die diese Workflows unterstützen.
Platform Engineering hilft dabei, eine Reihe standardisierter Tools, Expertise, Services und Prozesse zu etablieren, die für viele Entwicklungsteams im Unternehmen hilfreich sind. Kuratierte Plattformen ermöglichen Entwicklungsteams das Entwickeln, Bereitstellen, Besitzen und Unterstützen ihrer Komponenten, während das Plattformteam die Komponenten der Plattform entwickelt, bereitstellt, besitzt und unterstützt.
Entwicklungsteams werden durch DevOps-Praktiken dazu ermutigt, Software selbst auszuwählen, zu erlernen, bereitzustellen und zu verwalten, wodurch sie mehr Einblick und Kontrolle über die Software in der Produktion erhalten.
Die Einführung von DevOps und Continuous Delivery hat zu längeren Pipelines und Toolchains geführt. Mit dem zusätzlichen Druck von „Shifting Left“ (ein umfassendes Verständnis für die Sicherung der einzelnen Phasen des Workflows beim Entwickeln und Verwalten von Anwendungen) sind die Entwicklungsteams nun dafür verantwortlich, die Feinheiten der entwickelten Anwendungen besser zu verstehen.
Diese Autonomie kann zu Verantwortung und kognitiven Belastungen führen, die letztendlich weder für den Einzelnen noch für das Unternehmen von Vorteil sind.
Durch die stärkere Fokussierung auf Empathie und Benutzererlebnis baut Platform Engineering als Strategie auf DevOps auf und bietet bessere Möglichkeiten, die Anwendungsbereitstellung zu automatisieren sowie die Zusammenarbeit und Kommunikation zu verbessern. Darüber hinaus können Fehler reduziert, die Sicherheit und Compliance verbessert, die Effizienz gesteigert und besonders die Stärken der Entwicklungsteams auf die Bereiche konzentriert werden, in denen sie am dringendsten benötigt werden.
Wie werden Entwicklungsteams durch Platform Engineering unterstützt?
Platform Engineering entlastet Entwicklungsteams von der Verantwortung für die Infrastruktur. Dies ist insbesondere in Hybrid Cloud- und Multi Cloud-Umgebungen erforderlich.
Traditionell war es die Aufgabe von Entwicklungsteams, entweder ein Tool zu finden, das für die jeweiligen Anforderungen geeignet ist, oder das Tool von Grund auf neu zu entwickeln. Während frühere, einfachere Iterationen der Technologie diese Aufgabenerwartung unterstützten, mussten Entwicklerinnen und Entwickler auf Unternehmensebene nun feststellen, dass mit dem Wachstum eines Unternehmens die Unterstützung der Nutzenden und die effektive Skalierung zunehmend komplexer und fragmentierter werden.
Platform Engineers schaffen eine effektive IDP, indem sie aktiv nach Reibungspunkten beim Entwicklungserlebnis suchen und Tools und Technologien kuratieren, die diese Reibungspunkte beseitigen oder verringern können. Sie sollten mit einem minimalistischen Ansatz beginnen und nur die Tools einbeziehen, von denen Sie wissen, dass sie für Ihr Entwicklungsteam von Nutzen sein werden. Erweitern Sie dann schrittweise die Funktionen, um sie an die Anforderungen Ihres Entwicklungsteams anzupassen, und holen Sie dabei Feedback ein.
Platform Engineer im Vergleich zu Site Reliability Engineer (SRE)
Ein Site Reliability Engineer (SRE) kümmert sich um die zugrunde liegende IT-Infrastruktur, und SRE-Teams entwickeln Prozesse und Automatisierung, um die Integrität der Infrastruktur und die Verfügbarkeit sicherzustellen. SRE-Teams und Platform Engineers haben gleiche Ziele, aber während sich SRE auf die Performance, Zuverlässigkeit und Skalierung von Software konzentriert, liegt beim Platform Engineering der Schwerpunkt auf Systemen, die darauf abzielen, das Entwicklungserlebnis zu verbessern.
Sowohl beim Platform Engineering als auch beim Site Reliability Engineering geht es um die Erstellung und Wartung von Systemen. Der Unterschied zwischen den beiden Konzepten besteht im Fokus der jeweiligen Praktiken.
Was sind die größten Herausforderungen beim Platform Engineering?
Platform Engineering ist nur dann erfolgreich, wenn die Plattform als Produkt und die internen Entwicklerinnen und Entwickler als Kunden behandelt werden. Die Einführung von Platform Engineering scheitert am häufigsten, wenn Unternehmen es als starre IT-Vorgabe und nicht als ein für interne Entwicklungsteams entwickeltes Produkt behandeln. Wenn ein Engineering-Team eine interne Entwicklungsplattform (Internal Developer Platform, IDP) entwickeln würde, ohne die tatsächlichen Entwicklungsprobleme zu kennen, würden Entwicklungsteams die Plattform wahrscheinlich umgehen, um ihre Geschwindigkeit beizubehalten.
Ebenso kann es vorkommen, dass ein Unternehmen für eine Plattform ein Under- oder Over-Engineering durchführt. Platform Engineering bedeutet nicht einfach nur, die UI eines Entwicklungsportals (wie Backstage) zu starten. Für eine sinnvolle Nutzung von Self Services ist eine tiefgreifende Automatisierung und Orchestrierung der Infrastruktur erforderlich. Ebenso führt ein Over-Engineering der Plattform für potenzielle zukünftige Use Cases zu enormer Komplexität und einer steilen Lernkurve.
Darüber hinaus stellt die Konsolidierung fragmentierter Tools und der Komplexität des Unternehmens in optimierten, automatisierten Workflows eine enorme technische Herausforderung für Plattformteams dar. Um Anwendungsentwicklungsteams von dieser Komplexität zu befreien, ist eine kontinuierliche Abstraktion und Wartung erforderlich, die ein unterbesetztes Team schnell überfordern kann.
Um diese Hindernisse zu überwinden, wechseln erfolgreiche Unternehmen zu einem strikten „Produkt-Mindset“ und starten eine Thinnest Viable Platform (TVP), die zuerst einen einzelnen agilen technischen Engpass löst. Indem sie mit einer Pilotgruppe aus engagierten Entwicklerinnen und Entwicklern zusammenarbeiten, um diese anfänglichen Workflows zu entwerfen, schaffen sie nahtlose „Golden Paths“ im Self Service, die von den Engineers aktiv genutzt werden. Anstatt die Akzeptanz zu erzwingen, machen sie die Nutzung der Plattform zum Weg des geringsten Widerstands und nutzen den organischen internen Erfolg, um die Infrastrukturautomatisierung im gesamten Unternehmen schrittweise zu skalieren.
Die Rolle von Red Hat beim Platform Engineering
Red Hat® OpenShift® und Red Hat Advanced Developer Suite bieten eine umfassende Platform Engineering-Lösung für den gesamten Softwareentwicklungs-Lifecycle. Red Hat OpenShift bietet eine robuste Basis zum Bereitstellen, Managen und Skalieren von Anwendungen in der Produktion. Mit Red Hat Advanced Developer Suite können Plattformteams die Entwicklungsproduktivität steigern, Risiken mindern und KI-gestützte Entwicklung ermöglichen. Beide Produkte tragen sowohl zu unmittelbaren operativen Gewinnen als auch zu einer langfristigen Transformation bei. Red Hat OpenShift wird durch Red Hat Advanced Developer Suite zusätzlich um ein internes Entwicklungsportal und eine verlässliche Softwarelieferkette erweitert und bietet so eine umfassende interne Entwicklungsplattform (Internal Developer Platform, IDP).
Platform Engineering: Der aktuelle Stand im KI-Zeitalter
Diese Darstellung bietet einen umfassenden Überblick zur Illuminas-Umfrage „State of Platform Engineering in the Age of AI“. Sehen Sie sich die Ergebnisse an!