Was ist Platform Engineering?

05.05.2023
Von 
Matthew Tyson ist Java-Entwickler und schreibt unter anderem für unsere US-Schwesterpublikation Infoworld.com.
Platform Engineering ist einer der wichtigsten Trends im Bereich Development. Das sollten Sie zum Thema wissen.
Platform Engineering ist kein Wundermittel, aber ein nützlicher Ansatz, um der Komplexität moderner Entwicklungslandschaften Herr zu werden.
Platform Engineering ist kein Wundermittel, aber ein nützlicher Ansatz, um der Komplexität moderner Entwicklungslandschaften Herr zu werden.
Foto: Quatrox Production - shutterstock.com

Die Auguren von Gartner sehen Platform Engineering als einen der wichtigsten Entwicklungstrends des Jahres 2023. Dieser Artikel verrät Ihnen, was das ist und wie es funktioniert.

Platform Engineering - Definition

Platform Engineering ist ein noch relativ junges Konzept, das darauf abzielt, die in der Devops-Praxis gelernten Lektionen in eine konkretere, reproduzierbare Form zu bringen. Devops wiederum ist ein weiterhin starker Trend in der Softwareentwicklung, weil er dazu beiträgt, Barrieren im Lebenszyklus der Softwareentwicklung zu überwinden.

Platform Engineering kann Softwareunternehmen unter folgenden Aspekten zugute kommen:

Weil es sich mit den Einzelheiten von Technologien und Prozessen befasst, ist Platform Engineering ein konkreter Ausdruck von Devops. Darüber hinaus erfreut sich der Technologieansatz auch einer wachsenden Community, wie ein Schaubild der Cloud Native Computing Foundation unterstreicht:

Ein Blick auf die Entwicklung des Platform-Engineering-Ökosystems im Zeitverlauf.
Ein Blick auf die Entwicklung des Platform-Engineering-Ökosystems im Zeitverlauf.
Foto: Cloud Native Computing Foundation

Der erste offizielle "State of Platform Engineering Report" von Humanitec hält weitere Einblicke in dieses Marktsegment bereit.

Platform Engineering vs. Devops

Beim Devops-Ansatz geht es in erster Linie darum, den Lebenszyklus der Softwareentwicklung ganzheitlich zu betrachten, um ihn besser zu verstehen - und zu managen. Ein wesentlicher Aspekt ist dabei auch, Development und Operations als zwei Teile desselben Prozesses zu begreifen. Das zielt darauf ab, dass die Menschen, die entwickeln, auch die Lösung bereitstellen. So wird die Feedback-Schleife geschlossen und der Softwareentwicklungsprozess in seiner Gesamtheit optimiert. Platform Engineering ist ein Bereich der Softwareentwicklung, der darauf fokussiert, zentralisierte Tools und Support bereitzustellen, um die Komplexität von Development Lifecycles zu bewältigen. Da es sich um ein junges Konzept handelt, ist die Definition noch etwas unscharf - und kann sich noch verändern.

Obwohl bei einigen Branchenbeobachtern der Eindruck entsteht, dass Platform Engineering auf dem Weg ist, Devops zu ersetzen, kann davon keine Rede sein, wie Matt Gowie, CEO der Cloud-Beratung Masterpoint.io, unterstreicht: "Die Leute schreien 'Devops ist tot', aber eigentlich ändert sich lediglich die Art und Weise, wie wir Devops implementieren und neu gestalten. Diese neue Denkschule kommt bei der Mehrheit gut an. Der Sinn von Plattform-Teams besteht darin, Entwicklern die Möglichkeit zu geben, Ops-bezogene Aufgaben zu erledigen, aber mit Hilfe von Abstraktionen - oder 'golden paths', wie sie gerne genannt werden. Das optimiert die Developer Experience, weil die Entwickler dann kein Ticket ausstellen müssen, um etwas zu erledigen. Sie leben den Grundsatz 'You build it, you run it.'"

Platform Engineering und das Entwicklerportal

Das ist auch das Motto für Devops und soll sicherstellen, dass diejenigen, die die Hebel in der Hand haben und wissen, was funktioniert, auch in der Lage sind, den Prozess zu steuern. Das größte Problem in der Devops-Praxis ist es, dieses Konzept effektiv umzusetzen. Nur anspruchsvolle und finanziell gut ausgestattete Unternehmen sind in der Lage, ein unabhängiges Devops-Team auf die Beine zu stellen und es mit ausreichend Ressourcen und Aufmerksamkeit auszustatten. Die Folge: Devops heißt allzu oft, dass Entwickler sowohl mit Dev- als auch mit Ops-Aufgaben betraut werden. Das zieht eine grundlegende Neuausrichtung der Entwickler-Rolle nach sich, die sich bei dieser Art von Devops über den gesamten Lebenszyklus erstreckt. Platform Engineering ist insofern eine Weiterentwicklung von Devops, die die cross-funktionale Rolle der Entwickler noch deutlicher herausstellt.

Der wichtigste Mechanismus des Platform Engineering manifestiert sich im Entwicklerportal. Dessen Hauptaufgabe besteht darin, Tools, Dokumentationen und interaktive Bestandteile an einem Ort zu bündeln - eine Art Frontend für die Entwicklerinfrastruktur eines Unternehmens. Entwicklerportale (auch Developer Portals oder Developer Platforms) haben sich aus verschiedenen Bedürfnissen und Trends heraus entwickelt. Dieser Blogbeitrag identifiziert drei wesentliche Typen von Entwicklerportalen:

  • Universal Service Catalog,

  • API Catalog (in Verbindung mit einem API-Gateway) und

  • Microservices Catalog.

Weil die Einführung der Microservices-Architektur die Komplexität für moderne Softwareteams entscheidend erhöht hat, spielen APIs bei der Plattformentwicklung eine wichtige Rolle. Microservices in einer großen Organisation zu orchestrieren, kann eine Challenge darstellen - alleine schon wenn es darum geht, ein Verständnis darüber zu erlangen, welche an bestimmten Use Cases beteiligt sind. Ein Entwicklerportal schafft an dieser Stelle Abhilfe und bietet eine einheitliche Sicht auf das gesamte Microservices-Netz.

Darüber hinaus stellt ein Developer Portal auch ein Standard-Framework bereit, um die im Unternehmen verwendeten Tools miteinander zu kombinieren. So können die Teams auf reproduzierbare und nachvollziehbare Weise Tools in Selbstverwaltung einführen. Schließlich kann ein Entwicklerportal auch dazu genutzt werden, Dokumentationen in einer Art universellem Entwickler-Wiki zu hosten. Eine Volltextsuche ist dabei im Regelfall mit an Bord und ermöglicht einen globalen, organisationsübergreifenden Zugriff auf Informationen. Darüber hinaus kann ein solches Portal auch als Warn- und Ticketing-System dienen.

Im Allgemeinen ist das Konzept des Entwicklerportals darauf ausgelegt, so viele Entwicklungsaufgaben wie möglich zu bündeln. Tritt ein Bedarf auf, ist es der zentrale Ort für die entsprechende Lösung. Das Developer Portal fungiert für Organisationen also als Knotenpunkt für Richtlinien und Best Practices - erhält dabei aber gleichzeitig die Entwicklerautonomie so weit wie möglich aufrecht. Platform Engineering umfasst:

  • Den Aufbau dieses internen Entwicklerportals, sowie

  • der dazugehörigen Toolchains und Workflows.

Backstage.io als Platform-Engineering-Beispiel

Backstage.io ist eine quelloffene Entwicklerplattform von Spotify, die sich besonders gut eignet, verständlich zu machen, worum es beim Platform Engineering geht. Backstage ist eine Webanwendung, die ein erweiterbares Framework für eine Vielzahl von Development-Tools, -APIs und -Services bietet. Weil es sich um eine Build-your-own-Lösung handelt, ist sie vergleichbar mit Jenkins in der CI/CD-Welt. Je mehr Akteure in diesen Bereich vordringen, desto mehr Software-as-a-Service (SaaS)-Plattformen mit ähnlichen Funktionen werden entstehen. Um die Platform-Engineering-Ziele zu verwirklichen, verfügt Backstage über vier wesentliche Funktionen:

  • Einen Software Catalog, um Tools wie Microservices, Bibliotheken, Daten-Pipelines, Websites und mehr von einem zentralen Ort aus zu steuern;

  • Software Templates, um Best Practices für neue Projekte zu definieren und durchzusetzen;

  • das zentrale, standardisierte Dokumentations-Repository TechDocs;

  • Plugins, die die Funktionalitäten der Kernplattform erweitern.

Im Rahmen einer Live-Demo können Sie sich mit Backstage vertraut machen.

Das Herzstück von Backstage (und anderen Entwicklerportalen) ist dabei der Software Catalog. Hier können APIs, die für Microservices zum Einsatz kommen (sowohl intern als auch von Drittanbietern) automatisch entdeckt, gemanagt und genutzt werden - allerdings in einem konsistenten Format. Dabei werden die Schnittstellen als ein "Web of Dependencies" modelliert, um einen Überblick über alle Services im Unternehmen sowie die Teams die diese nutzen und deren Interaktionen zu schaffen.

Zusätzlich zu den APIs kann eine ganze Reihe weiterer Tools in das Portal eingebunden und dort in Bezug auf die von ihnen unterstützten APIs orchestriert werden. CI/CD-Plattformen wie CircleCI und Code-Repositories wie GitHub können mit den Projekten verknüpft werden, auf die sie sich beziehen. Die Idee: Die Technologielandschaft des Unternehmens in das Portal einzubringen und sie sowohl für Teams, die es als Self-Service nutzen, als auch für die Führungskräfte zugänglich zu machen.

Korrekt konfiguriert kann ein Developer Portal Auskunft über den Status und Zustand komplexer Microservices-Architekturen geben - selbst, wenn diese auf homogenen Stacks und über mehrere Cloud-Anbieter hinweg bereitgestellt werden. Platform Engineering bringt also die Vision von Devops ein Stück näher an die Unternehmensrealität. (fm)

Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Network World.