Überblick
Platform Engineering ist eine Sparte innerhalb der Softwareentwicklung, die darauf abzielt, die Produktivität, die Dauer des Anwendungszyklus und die Markteinführungszeit zu verbessern.
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.
Das Hauptziel von Platform Engineering besteht darin, die Hindernisse 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.
Was ist Platform Engineering?
Platform Engineering kann sowohl eine spezifische Jobrolle als auch eine Fachrichtung oder Methodik sein, die von einer Gruppe von Personen als Teaminitiative übernommen wird.
Unternehmen profitieren vom Platform Engineering, da es Konsistenz und Effizienz verbessert. 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.
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. Zu diesem Zweck sind Platform Engineers und deren Teams für das Infrastrukturmanagement und 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.
Verschiedene Entwicklungsteams haben unterschiedliche Anforderungen (sogar innerhalb desselben Unternehmens), und die meisten Entwicklungsplattformen unterscheiden sich voneinander. Platform Engineers sind sich dessen bewusst und kuratieren ein benutzerdefiniertes Set von Tools und Prozessen, die zu den besonderen Anforderungen eines Unternehmens passen. 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 die Performance und Kosten besser kontrollieren sowie potenzielle Risiken oder Schwachstellen erkennen können.
Backstage with Platform Engineering Dauer des Videos: 2:31
Red Hat Ressourcen
Wie entstand das Platform Engineering?
Platform Engineering hat sich als Reaktion auf eine veränderte Auffassung in der Technologiebranche entwickelt: Entwicklungsteams sollen sich nicht um die Infrastruktur sorgen müssen, insbesondere bei Hybrid- und Multi Cloud-Umgebungen.
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.
Täglich kommen neue Tools auf den Markt, ständig gibt es neue Funktionen, die es zu beachten gilt, und es braucht Zeit, um die richtigen Tools für die jeweilige Aufgabe zu evaluieren und auszuwählen. Diese Zeit, die für das Erlernen neuer Tools, das Recherchieren neuer Technologien, das Anfordern von Infrastruktur- und Anwendungsservices sowie das Erkennen aktueller Sicherheitsbedrohungen aufgewendet wird, kann viel Energie und Ressourcen in Anspruch nehmen. Sie könnte stattdessen für das Weiterentwickeln des verkauften Produkts und die Verwirklichung geschäftlicher Prioritäten genutzt werden.
Was ist eine interne Entwicklungsplattform?
Im Bereich von Platform Engineering sind die Entwicklungsteams die Kunden, und die internen Entwicklungsplattformen (Internal Developer Platform, IDP) sind das Produkt.
Eine IDP wird von Platform Engineering-Teams konfiguriert und besteht aus einem standardisierten Set interner 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.
Die Entwicklung einer effektiven IDP bedeutet, aktiv nach Hindernissen für Entwicklungsteams zu suchen, um Tools und Technologien zu entwickeln, die diese Hindernisse 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 Engineering im Vergleich zu DevOps
Wie bei DevOpssoll auch Platform Engineering Entwicklungsteams und Abläufe durch mehr Automatisierung und Zusammenarbeit besser aufeinander abstimmen. Bei der Beziehung zwischen den beiden Methoden kann Platform Engineering als wichtiger und ergänzender Bestandteil betrachtet werden, um die Skalierungsherausforderungen von DevOps in einer Organisation zu bewältigen.
In der Regel werden Entwicklungsteams 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. Dies wirkt sich jedoch nicht immer positiv auf das Endergebnis aus, sondern führt zu einem zusätzlichen Verwaltungsaufwand für Entwicklungsteams und erhöht die kognitive Belastung.
Ein Team hat vielleicht das Interesse, eine Funktion bereitzustellen, aber nicht die dazu erforderlichen Kompetenzen. Vielleicht verfügt das Team über die erforderlichen Kompetenzen, hat aber kein Interesse daran, die Funktion zu entwickeln. Oder es hat die nötigen Kompetenzen und das Interesse, aber die Umsetzung der Idee ist nicht sicher oder kosteneffektiv. Und je mehr ein Unternehmen wächst und skaliert, desto komplizierter wird es.
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 bringt ein Stück Unabhängigkeit mit sich, kann aber auch zu einem Gefühl von lähmender Verantwortung und kognitiver Belastung 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.
Platform Engineer im Vergleich zu Site Reliability Engineer (SRE)
Sowohl beim Platform Engineering als auch beim Site Reliability Engineering geht es um die Erstellung und Verwaltung von Systemen. Der Unterschied zwischen den beiden Konzepten besteht im Fokus der jeweiligen Praktiken. SREs konzentrieren sich auf die IT-Operations-Teams und unterstützen sie dabei, Software als Tool zur Systemverwaltung, Problemlösung und Automatisierung von operativen Aufgaben einzusetzen.
Platform Engineers konzentrieren sich auf Entwicklungsteams und helfen ihnen, Plattformen für die Systemverwaltung, Problemlösung und Automatisierung von Entwicklungsaufgaben zu erstellen.
Der offizielle Red Hat Blog
Lernen Sie mehr über unser Ökosystem von Kunden, Partnern und Communities und erfahren Sie das Neueste zu Themen wie Automatisierung, Hybrid Cloud, KI und mehr.