Beliebte Suchanfragen

Cloud Native

DevOps

IT-Security

Agile Methoden

Java

|
//

Platform Engineering – Eine Einordnung

12.9.2022 | 4 Minuten Lesezeit

Aktuell kocht mit Platform Engineering gerade ein Thema hoch, das in den Weiten des World Wide Web für viele Reaktionen sorgt. Gerade auch Kunden aus dem Enterprise-Umfeld führt es zu interessanten Nebeneffekten, wenn aus DevOps-Teams plötzlich Platform-Engineering-Teams werden. Ich möchte mit diesem Blogpost das Wording entmystifizieren und Möglichkeiten aufzeigen, die sich daraus ergeben.

Aber zuerst gehen wir ein paar Jahre in der Geschichte von codecentric zurück. Genauer gesagt, in das Jahr 2014. Zu dieser Zeit gab es die Idee der Agile Software Factory, die Teams befähigen sollte, die Idee eines Softwareprodukts schnell umsetzen zu können. Dazu zählt auch die Implementierung einer gesamten Toolchain zur Softwareentwicklung. Damit sprachen wir indirekt schon Themen wie Developer Experience und Governance an, ohne sie konkret zu benennen. Somit war in relativ kurzer Zeit die Lieferfähigkeit hergestellt, zumindest hinsichtlich eines ersten Inkrements. Wie gesagt, das war 2014!

Heutzutage haben wir es beim Software Development Lifecycle mit vielen Tools zu tun. Gerade in großen Unternehmen führt das zu einem Problem, da jede Abteilung ihre eigene Vorstellung hinsichtlich des Lebenszyklus der Software mitbringt. Folglich lohnt es sich, über eine Vereinheitlichung des Tool-Zoos nachzudenken. Das führt dazu, dass mehr und mehr die Idee entsteht, Entwickler mit Self-Service-Ansätzen zu unterstützen. Im Laufe der Zeit benötigen Unternehmen mehr Regeln und Richtlinien für die Entwicklung der Produkte oder gar einer Plattform. Genau das ist der erste Hebel, an dem Platform Engineering ansetzen möchte, in dem den Entwicklern in einem Unternehmen die Möglichkeit geboten wird, sich auf eingeschlagenen Pfaden oder entlang eines Golden Path zu bewegen, um wieder das Ursprüngliche der Softwareentwicklung zu fokussieren – Ideen schnell lauffähig umzusetzen.

Golden Path?

Die Schritte in Richtung Golden Path hat Spotify auch im Jahr 2014 unternommen. Hier zeigt sich, dass codecentric mit der Idee der Agile Software Factory auf der Höhe der Zeit war,das ganze Thema aber noch nicht zu einem Begriff zusammenfassen konnte. Man vermutet, dass Spotify den Begriff Golden Path der Dune-Trilogie entlehnt hat. Nach der Erklärung des Dune Fandom stellt der Golden Path einen optimalen Weg durch die zahllosen Fäden von Ursache und Wirkung dar, denen die Menschheit begegnet ist. Dieser optimale Weg war das, was man im Zeichen von Wachstum in der damaligen Zeit bei Spotify erreichen wollte, um bei der Entwicklung von Softwarekomponenten keine Geschwindigkeit zu verlieren. Aber es geht nicht darum, einen Entwicklern zu gängeln oder Standards durchzusetzen. Vielmehr sollten Teams das Rad nicht neu erfinden und auch weniger Entscheidungen treffen müssen. Unter diesem Gesichtspunkt sollten Unternehmen Plattformangebote auch aufsetzen: als sichtbare und spürbare Unterstützung für Entwickler.

Somit wird die Idee des Golden Path nicht nur auf CI/CD-Prozesse beschränkt, sondern hat im Sinne von Platform Engineering die ganze Kette von Deployment-Prozessen im Blick, wie 

– Hinzufügen von Umgebungsvariablen und Ändern von Konfigurationen

– Hinzufügen von Services und Abhängigkeiten

– Rollback und Fehlersuche 

– Eine neue Umgebung aufsetzen

– Hinzufügen/Ändern von Ressourcen

– Rollenbasierte Zugriffskontrolle umsetzen

Hierbei steht aber immer der Self-Service-Aspekt im Vordergrund. Das führt zu einer Internal Developer Platform, die nach Evan Bottcher „eine Grundlage von Self-Service-APIs, Tools, Services, Wissen und Support“ darstellt. Eine solche Plattform ist ein entsprechender zweiter Hebel von Platform Engineering, den mittlerweile einige Hersteller bedienen. 

Ein Blick in die Tool-Landschaft rund um Platform Engineering zeigt, dass zwei Produkte aktuell im Markt sehr präsent sind: Backstage und Humanitec . Mein Kollege Jonas hat in seinem letzten Blogpost mit Crossplane noch ein weiteres Tool vorgestellt, das ich in diesem Post nicht näher beleuchte.

Backstage

Spotify hat Backstage entwickelt und dem Markt als Open-Source-Produkt zur Verfügung gestellt. Frei nach meinem Kollegen Pascal Sochacki gilt es aber Backstage mehr als Framework zu verstehen, mit dem Unternehmen in die Lage versetzt werden, ein Frontend für die interne Entwicklungsplattform zu liefern. Hierzu bietet Backstage die Möglichkeit, Softwarekomponenten durch Software-Templates bereitzustellen. Das bedeutet im konkreten Fall, dass ein Git-Repo inkl. Docker- und Pipelinefile erstellt wird. Nach erfolgreichen Deployment wird die Komponente dann im Anschluss in Backstage gelistet. Daneben lässt sich das Framework durch Plugins, um weitere Funktionalitäten auch hinsichtlich der Sichtbarkeit auf das Deployment erweitern.

Humanitec

Humanitec versteht sich im Vergleich zu Backstage als Plattform-Orchestrator und somit als zentrale Einheit einer Internal Developer Platform. Es stellt die Grundlage für ein dynamisches Konfigurationsmanagement dar, das vom Hersteller als Declarative Application Model beschrieben wird. Dieses Modell beschreibt hierbei den Workload eines Deployments möglichst agnostisch. Eine Grundlage für diese Art der Beschreibung entsteht gerade mit der Platform-Agnostic Workload Specification (PAWS ). 

Mit Backstage, Humanitec und Crossplane sehen wir nun Tools. Ihre Wirksamkeit beschränkt sich zum einen auf die Sichtbarkeit und zum anderen auf die Deployment-Orchestrierung von Services. Aber genau diese zwei Punkte sollen innerhalb der Arbeit eines Entwicklers automatisiert werden und auch die Automatisierung soll auf einfache Weise erfolgen. Somit weisen diese genannten Tools stellvertretend einen Weg zu einer Internal Developer Platform, die die häufig angesprochene Developer Experience gewährleisten kann.

Fazit

Platform Engineering ist somit keine wirklich neue Idee, sondern es  sollen die Prozesse rund um CI/CD bei der Entwicklung von Software End-2-End betrachtet werden. Ebenso geht es auch darum, eine Art Einheitlichkeit im Bezug auf die Tool-Landschaft, die Komponenten und deren entsprechende Nutzung zu erzeugen. Das setzt auch die Kommunikation zwischen einzelnen Personen und Teams voraus. 

Lasst uns gerne darüber diskutieren. Was ist euer Verständnis von Platform Engineering? Was macht ihr vielleicht schon? Was wollt ihr gerne auf eure Situation adaptieren?

|

Beitrag teilen

Gefällt mir

3

//

Weitere Artikel in diesem Themenbereich

Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.

//

Gemeinsam bessere Projekte umsetzen.

Wir helfen deinem Unternehmen.

Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.

Hilf uns, noch besser zu werden.

Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.