Platform Engineering: Alles unter einem Hut
Autorin/Redakteur: Hope Lynch, Senior Director, Plattform bei CloudBees/gg
IT-Führungskräfte müssen sich hauptsächlich um zwei Gruppen kümmern, die häufig im Widerspruch zueinander agieren: Die Unternehmensleiter und die Entwicklerteams, die die Anwendungen erstellen, auf die sich Unternehmen verlassen, um ihren Umsatz zu steigern und die Rentabilität zu maximieren.
Die Führungsetage will natürlich, dass qualitativ hochwertige Anwendungen so schnell wie möglich und zu den geringstmöglichen Kosten entwickelt werden. In aller Regel wollen Entwicklerteams das Gleiche – und etwas mehr. Sie wollen die Freiheit haben, mit dem besten Tool für die jeweilige Aufgabe innovativ zu sein. Ohne diese Flexibilität ist es in der Regel nur eine Frage der Zeit, bis die besten Entwickler mit den Füßen abstimmen und ihr Fähigkeiten einem anderen Unternehmen zur Verfügung stellen, das Innovationen genauso schätzt wie sie selbst.
Glücklicherweise bietet der Trend in Richtung Platform Engineering IT-Führungskräften die Gelegenheit, den Bedürfnissen beider Gruppen gerecht zu werden. Dabei geht es darum, Best Practices für DevOps in großem Umfang mittels interner Entwicklerplattformen (IDPs) zu implementieren.
Platform Engineering erklärt
Platform Engineering definiert eine Methode zur automatisierten Verwaltung von DevOps-Plattformen, die auch das Entwicklererlebnis (DevX) verbessert. Entwicklerteams müssen nicht mehr ihre eigene DevOps-Plattform verwalten, weil Platform Engineering das Management dieser Plattformen zentralisiert, um Engpässe zu beseitigen und die Gesamtkosten der Anwendungsentwicklung zu senken.
Ein solcher Ansatz sorgt dafür, dass Entwicklerteams ihre Zeit nicht damit verschwenden, die Eigenheiten verschiedener Plattformen in Einklang zu bringen, und dass die Arbeitsabläufe zwischen mehreren Teams wesentlich reibungsloser werden. Dies wiederum bietet die Möglichkeit, Standards einzuführen und zu automatisieren, sodass manuelle Aufgaben eliminiert werden, die aktuell noch das Tempo der Anwendungsentwicklung verringern. Platform Engineering schafft somit Ordnung in den oft chaotischen Prozessen der Anwendungsentwicklung.
Der Gesellschaftsvertrag
Das Kernproblem, mit dem IT-Führungskräfte regelmäßig konfrontiert sind, ist die Tatsache, dass Entwickler ihre Privilegien schätzen. Die meisten Entwickler sind misstrauisch gegenüber jeder Platform-Engineering-Initiative, die sie bei der Wahl ihrer Tools einzuschränken scheint. Für IT-Führungskräfte ist es somit entscheidend, das richtige Gleichgewicht zu finden. Laut dem Global Code Time Report von Software.com verbringen Entwickler im Moment einen Großteil ihrer Arbeitszeit mit anderen Aufgaben als dem Schreiben von Code. Wenn ein Platform-Engineering-Team also nachweisen kann, dass die kognitive Belastung der Entwicklerteams reduziert wird, werden entsprechende Initiativen vermutlich eher angenommen. Je mehr Zeit Entwickler für das Schreiben von qualitativ hochwertigem Code gewinnen, desto eher sind sie bereit, ein bisschen Entscheidungsfreiheit zu opfern. Das bedeutet nicht, dass sich die Entwickler nicht das Recht vorbehalten, ein neues Tool oder eine neue Plattform für die Erstellung einer Anwendung zu nutzen. Aber es bedeutet, dass sie sich der Vorteile der Zusammenarbeit bewusst sind.
Im Grunde arbeiten die IT-Verantwortlichen dadurch mit einem Äquivalent zum Gesellschaftsvertrag, wie er von Philosophen wie John Locke und Jean-Jacques Rousseau postuliert wurde: Wenn ein solcher Ansatz für eine Demokratie gut genug ist, sodass auf Basis von Zustimmung regiert wird, ohne dass es zu einem Aufstand kommt, sollte er auch für Entwicklerteams in Unternehmen gut genug sein. Entwickler werden – wie jeder Bürger – implizit erkennen, dass die potenziellen Vorteile den Verlust (oder den vermeintlichen Verlust) der persönlichen Freiheit bei weitem überwiegen.
Die Herausforderung besteht darin, diese Vorteile allen Beteiligten klarzumachen, ohne dabei das nötige Gespür zu vernachlässigen. Es müssen Leitplanken errichtet werden, um die Sicherheit der Anwendungen zu gewährleisten, aber sie müssen so implementiert werden, dass die Entwickler sie eher als hilfreich denn als hinderlich empfinden.
Mit Platform Engineering arbeiten
Unternehmen werden die von ihnen verwendete CI/CD-Plattform (Continuous Integration/Continuous Delivery) in der Regel nicht durch Plattform Engineering ersetzen – die Kosten wären einfach zu hoch. Es ist jedoch möglich, dass ein Platform-Engineering-Team eine moderne IDP als Erweiterung der bestehenden CI/CD-Plattform einsetzt. Die Entwickler können dann mithilfe einer Reihe von Vorlagen die Entwicklungsumgebungen in wenigen Minuten aufsetzen und selbst verwalten.
Zu einer IDP gehört viel mehr als der Zugriff auf eine Reihe von Vorlagen, die stark in eine CI/CD-Plattform integriert sind. Es muss auch eine Steuerungsebene vorhanden sein, die es den Entwicklern ermöglicht, Codeversionen einfach zu verwalten. Auch bedarf es einer Registry, die die Zusammenarbeit fördert, Überwachungs-, Analyse- und Beobachtungstools, Frameworks für die Verwaltung von Secrets und die Umsetzung von Richtlinien sowie schließlich eines vereinfachten Zugangs zur Infrastruktur, die als Code bereitgestellt werden kann. Secrets sind Authentifizierungsdaten, die in DevOps-Diensten und -Anwendungen verwendet werden, darunter API-Tokens, Verschlüsselungsschlüssel, Benutzernamen, Passwörter und Secure Shell (SSH)-Schlüssel. Jedes Unternehmen muss selbst entscheiden, ob es die verschiedenen Komponenten, aus denen sich eine IDP zusammensetzt, von einem Plattform-Engineering-Team kombinieren und pflegen lassen möchte.
Ausweg Platform Engineering
Die Probleme, die das Platform Engineering adressiert, sind den Verantwortlichen seit langem bekannt. Sie lassen sich natürlich nicht über Nacht lösen, aber eine IDP, die eng in eine CI/CD-Plattform integriert ist, legt den Grundstein für einen kulturellen Wandel. Ein Wandel, der bei viel zu vielen Unternehmen längst überfällig ist. Zu einem sinnvollen Wandel gehört auch ein Dialog, der am Anfang des Prozesses steht. Die Entwickler erwarten von den IT-Führungskräften zurecht, dass sie schnell konkrete Maßnahmen ergreifen, um den Developern tatsächlich ein besseres Arbeitsumfeld zu bieten. Andernfalls besteht die Gefahr, dass Entwickler Platform Engineering nur als ein weiteres leeres Versprechen betrachten.
Unabhängig von der Herangehensweise kann jeder in einem Unternehmen die Bedeutung eines produktiveren Software-Developments leicht erkennen. Der schwierige Teil besteht darin, alle Beteiligten davon zu überzeugen, dass Platform Engineering der richtige Weg ist, dieses Ziel zu erreichen.