Wie Entwicklungsplattformen die Developer Experience verbessern, Teil 2 Platform Engineering sinnvoll umsetzen

Von Christian Rentrop 4 min Lesedauer

Anbieter zum Thema

Platform Engineering kann erhebliche Vorteile bringen. Allerdings ist es nicht möglich, „von jetzt auf gleich“ zu migrieren. Die Umstellung auf eine Technikplattform benötigt Vorarbeit und möglicherweise auch einen Mentalitätswechsel.

Von der Architektur über Sicherheitsaspekte bis hin zu Metriken gibt es bei Erinführung einer Developer-Plattform einige grundlegende Aspekte zu berücksichtigen.(©  ZinetroN - stock.adobe.com)
Von der Architektur über Sicherheitsaspekte bis hin zu Metriken gibt es bei Erinführung einer Developer-Plattform einige grundlegende Aspekte zu berücksichtigen.
(© ZinetroN - stock.adobe.com)

Gut umgesetztes Platform Engineering kann die Software-Entwicklung beflügeln: Steht die passende Infrastruktur bereit, laufen Entwicklungsprozesse deutlich effizienter und schneller ab. Allerdings ist der Umstellungsprozess nicht selten schmerzhaft. Mitarbeiter und Developer müssen bewährte Handlungsweisen aufgeben, Code, Daten und Technologien möglicherweise anders verwalten oder gar in der Cloud speichern. Hinzu kommt, dass die Umstellung eine Weile dauern kann.

Platform-Ingenieure sollten also zunächst im Kopf behalten, dass es nicht „die“ Technikplattform gibt. Zunächst ist daher eine Anforderungsanalyse notwendig, in der Ziele und Erwartungen an die Plattform zusammengestellt werden. Dabei ist es wichtig, beteiligte Entwicklerinnen und Entwickler ins Boot zu holen, um sie nach ihren Bedürfnissen zu befragen.

Gleichzeitig hat natürlich auch die Teamleitung oder Geschäftsführung ein Wörtchen mitzureden. Das Unternehmen hat möglicherweise andere, langfristigere Vorstellungen einer optimalen Technikplattform als einzelne Entwickler, was zu einem Anforderungskonflikt führen kann. So verwenden Entwickler vielleicht gerne Kommandozeilen, während Anwender im Management vielleicht lieber auf eine Web-GUI setzen.

Derartige „Konflikte“ muss die Technologieplattform auflösen können. Gleichzeitig gilt es, eine solide Plattform aufbauen, die viele Jahre ihren Zweck erfüllt und alle Anforderungen interner und externer Compliance erfüllt. Der Kompromiss wäre in diesem Fall, Erweiterbarkeit mittels Add-Ons und Plug-ins anzubieten oder eine gesicherte „Entwickler-Sandbox“ zu schaffen, in der der persönliche Lieblings-Features, Kommandozeilen oder Unix-Tools sicher verwendet werden können, während die Bedienung ansonsten per GUI erfolgt.

Architekturdesign: Welche Technik soll’s denn sein?

Sind die Anforderungen geklärt, geht es darum, die passende Technologie auszuwählen. Hierbei müssen Aspekte der Plattform an sich geklärt werden. Grundsätzlich sollte, bis auf wenige Ausnahmen, dafür heutzutage eine Cloud verwendet werden. Das stellt die nötige Skalierbarkeit in Sachen Leistung und Speicherplatz bei gleichzeitiger Wirtschaftlichkeit sicher.

Cloud-Anbieter wie Amazon, Google oder Microsoft sind hier in der Regel eine gute Wahl, wobei jeder seine eigenen Pros und Contras besitzt. Alternativ kann mit dem entsprechenden Kapital aber freilich auch on-premises eine „Inhouse-Cloud“ etabliert werden. Hierbei ist wichtig, dass – Stichwort neue, derzeit noch nicht verwendete Technologien und Sonderaufgaben – die nötige Modularität zur Verfügung steht. Das verhindert technische Sackgassen und aufwändige Neustrukturierung in der Zukunft.

Vor allem im Hinblick auf die kommende KI-Nutzung sollte daher genau geschaut werden, welche Möglichkeiten benötigt werden und benötigt werden könnten. Hierbei sind Container wie Docker und Kubernetes sowie Microservices eine gute Wahl. Sie erlauben eine kleinteilige Orchestrierung bei gleichzeitiger Übertragbarkeit der Anwendungen und ermöglicht das schnelle Zu- oder Abschalten neuer und alter Funktionen.

„Weiche“ Anforderungen sind die an die Software innerhalb der Plattform: Pipelines für Kontinuierliche Entwicklung und -Integration sind ebenso Pflicht wie die üblichen Tools, die im Unternehmen oder durch die Entwickler verwendet werden. Automatische Tests und Reviews sind ebenfalls auf der Anforderungsliste.

Datenspeicherung und -sicherung sind wichtige Aspekte

Ebenfalls essenziell ist, einen Blick auf die Datenspeicherung zu werfen: Wo und wie werden die Daten abgelegt? Hier geht es darum, eine Speicherungsmethode zu finden, die einerseits bestehenden und künftigen Anforderungen gerecht wird – und andererseits die Anforderungen an Sicherheit, Stabilität und Geschwindigkeit erfüllt.

Diese Daten müssen auch gesichert werden können, einerseits für die Archivierung und Dokumentation, andererseits, um im Fall der Fälle ein Recovery durchführen zu können. Hier spielen nicht nur Dinge wie das eigentliche Backup hinein, sondern auch Aspekte der Daten-Kohärenz, der Übertragbarkeit, der Anwendung künftiger Technologien und damit einhergehend der Zukunftssicherheit sowie natürlich des Schutzes der Backup-Daten vor Angriffen oder Korrumpierung.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Cloud Computing

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Technologie aufbauen

Sind Anforderungen und Architektur geklärt, geht es an den eigentlichen Aufbau der Entwickler- oder Technologieplattform. Dass Infrastructure-as-Code dabei eine wichtige Rolle spielt, liegt auf der Hand: Was technologisch ohne konkrete Hardware-Bindung umsetzbar ist, passt gut in Cloud-Services und ist in Zukunft gut übertragbar. Wichtig ist daher, nicht auf eine bestimmte Technologie zu setzen, sondern die Plattform flexibel genug zu gestalten, um zum Beispiel einen künftigen Wechsel des Cloud-Dienstleisters reibungslos zu ermöglichen.

Natürlich kann eine Technikplattform nicht von jetzt auf gleich ins Leben gerufen werden. Die Umsetzung kann Monate, möglicherweise sogar Jahre dauern, in denen der Betrieb des Unternehmens weiterhin sichergestellt werden muss. Sinnvoll ist daher, die Plattform-Nutzung nach und nach „zuzuschalten“.

Es gilt also, Punkt für Punkt die Funktionen zu etablieren, zu evaluieren und anschließend im Unternehmen auszuspielen. Auf diese Weise migrieren Entwickler und andere Mitarbeiter schon im laufenden Prozess nach und nach auf die neue Plattform, ohne dass es – wie bei einer plötzlichen Umstellung – zu Reibungsverlusten kommt. Gleichzeitig stellt diese Vorgehensweise sicher, dass jeder Einzelschritt für sich überprüft und gegebenenfalls optimiert werden kann.

Messen, messen, messen!

Jeder Umsetzungsschritt und jede neue Funktion sollte anschließend auf Effizienz überprüft werden: Steigert eine Maßnahme die Effizienz nicht – oder senkt sie sogar – kann es notwendig werden, gegenzusteuern. Auch hier hilft es, kleinschrittig vorzugehen und jeden Aspekt der Umsetzung mit Measuring-Tools zu überwachen und zu überprüfen. Auch kleinteilige Effekte sind dabei von Belang: Was im Kleinen ein wenig Zeitersparnis bringt, kann im Großen über die Jahre enorme Kosten vermeiden.

Nicht abhängig machen – und Open Source verwenden

Zu guter Letzt ist eine gute Technikplattform so entworfen, dass sie sich nicht abhängig macht. Unternehmen neigen dazu, „einfache“ Lösungen einzukaufen – um nach vielen Jahren zu merken, dass sie sich in einer ebenso teuren wie komplexen Sackgasse befinden. Das Platform Engineering soll dem natürlich entgegenwirken, allerdings müssen Platform-Entwickler darauf achten, solche Sackgassen zu vermeiden.

Eine heute praktische oder kostensparende Lösung eines bestimmten Plattform- oder Cloud-Anbieters kann sich in einigen Jahren als teurer Fehler herausstellen. Umso wichtiger ist es also, auf Standards zu setzen und – wo möglich – Open-Source-Technologie einzusetzen, um im Fall der Fälle einen Wechsel oder eine Weiterentwicklung so einfach wie möglich zu gestalten.

(ID:50083638)