Wie Entwicklungsplattformen die Developer Experience verbessern, Teil 3 Platform Engineering: Open-Source-Lösungen im Überblick

Von Christian Rentrop 4 min Lesedauer

Anbieter zum Thema

Platform-Engineering ist sinnvoll, um die Systeme in einem Unternehmen zu homogenisieren. Allerdings muss die Plattform nicht von Grund auf neu entwickelt werden: Open-Source-Tools können dabei eine wertvolle Vorarbeit leisten.

Die passende Open-Source-Plattform zu finden, kann eine Herausforderungen darstellen.(Bild:  Gorodenkoff - stock.adobe.com)
Die passende Open-Source-Plattform zu finden, kann eine Herausforderungen darstellen.
(Bild: Gorodenkoff - stock.adobe.com)

Platform-Engineering ist aufwändig – von der Erstellung der Plattform, dem Umstieg auf das System bis hin zum zuverlässigen Betrieb – Platform-Engineering stellt keine einfache Aufgabe dar. Allerdings gibt es einige gute Open-Source-Softwares, die beim Platform-Engineering und dem Aufsetzen einer leistungsfähigen Technikplattform hilfreich sein können. Wir stellen Ihnen in diesem Artikel unserer Serie zu den Entwicklerplattformen, die die Developer Experience verbessern, acht Open-Source-Softwares vor, die Sie nutzen können, um Ihre Platform-Engineering Erfahrung zu verbessern:

Infrastructure as Code: OpenTofu

Wer Plattformen entwirft, muss sich natürlich auch mit Infrastructure-as-Code befassen. Ein beliebtes und bewährtes Tool für den Einsatz ist das Tool Terraform. Das Tool ist bei der Automatisierung von Infrastrukturen in der Cloud behilflich. Allerdings hat Terraform – obwohl ursprünglich Open-Source – den Nachteil, dass es von einem einzelnen Unternehmen gepflegt wird. Darüber hinaus hat der Hersteller HashiCorp die Software 2023 auf die Business Source License umgestellt und damit proprietär gestaltet. Das hat sich in der Vergangenheit oft als suboptimal erwiesen, weil derartige Projekte kostenpflichtig oder nicht mehr ausreichend gepflegt wurden.

Dagegen gibt es jedoch ein Heilmittel: Das Tool OpenTofu, es ist als Drop-In-Replacement für Terraform gedacht. OpenTufu ist ein echtes Open-Source-Produkt, das von der Linux Foundation und einer großen Community betreut wird. Damit dürfte es deutlich zukunftssicherer sein als Terraform. Zumal Unternehmen die Software frei nach ihren Wünschen anpassen und weiterentwickeln können.

Doch was kann OpenTofu? Es besitzt vier Schlüsselfunktionen, die bei der Erstellung einer Technikplattform helfen können: Infrastructure-as-Code, sogenannte Execution-Plans, die eine Vorschau der Änderungen innerhalb Software erlaubt, Ressourcenmanagement und komplexe Automatisierungsfunktionen.

Cloud aufbauen und orchestrieren: Crossplane

Auch Crossplane ist ein Open-Source-Tool, um Plattformen aufzubauen und zu verwalten. Es gibt gewisse Überschneidungen mit Terraform/OpenTofu. Zum Beispiel die Möglichkeit für Platform-Ingenieure, die Infrastruktur als deklarative Konfiguration anzulegen oder große Mengen an Infrastruktur zu verwalten. Der Hauptunterschied ist jedoch, dass Crossplane ein sogenanntes Control Plane ist, also eine Kontrollebene, während Terraform/OpenTofu als Kommandozeilentool dazu gedacht sind, Kontrollebenen zu verwalten. Damit ist Crossplane eine Ebene „höher“ angesiedelt und macht die Verwaltung der Plattform einfacher – insbesondere, wenn mehrere Plattform-Ingenieure kollaborativ arbeiten müssen.

Es bricht nach Aussage der Entwickler mit der monolithischen Konfiguration der Infrastruktur, die Terraform/OpenTofu zu eigen ist und hilft gleichzeitig bei der Integration und Automatisierung der Plattform.

Programmiersprache für die Cloud: Wing

Platform-Engineering und Cloud gehen Hand in Hand. Da liegt es nahe, auch eine moderne, für die Cloud angepasste Programmiersprache zu verwenden. Wing ist so eine Sprache, die Infrastruktur und Code nahtlos miteinander verbinden kann. Dabei wurde das Augenmerk darauf gelegt, Entwickler im „Flow“ zu halten und den Bruch zwischen Vorstellung und Umsetzung deutlich zu reduzieren.

Wing wurde mit dem DevOps-Gedanken im Hinterkopf entworfen. Die Syntax ist an moderne Programmiersprachen wie Swift, TypeScript oder JavaScript angelehnt, wodurch Entwickler sich nicht umgewöhnen müssen.

Entwicklerportale bauen: Backstage

Der Musikstreaming-Dienst Spotify zählt zu den Vorreitern in Sachen Platform-Engineering und hat das hausinterne Framework zum Aufbau von Entwicklerportalen unter der Apache-Lizenz als Open-Source-Software veröffentlicht: Backstage erlaubt den Aufbau einer zentralisierten Entwicklerplattform ganz im Sinne des Platform-Engineering- und DevOps-Gedankens.

Eine zentralisierte, standardisierte Toolbox, die es erlaubt, sämtliche Software zentral zu verwalten und entwickeln. Dazu bedient sich Backstage eines sogenannten Software-Catalogs, der auf YAML-Dateien basiert. Hier können Dienste, Websites, Bibliotheken, Datenquellen und vieles mehr zentral verwaltet werden.

Front- und Backend entwickeln: JHipster

Bei JHipster handelt es sich um einen modernen Java-Code-Generator, der auf bewährte Frameworks und Tools wie Yeoman, Spring Boot und AngularJS aufbaut. JHipster ist in der Lage, mit wenigen Shell-Kommandos Java-Web-Projekte zu erstellen und verwalten. Mit an Bord sind REST API, Testing sowie Sicherheits- und Datenbank-Integration.

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

Ziel des Projekts ist es, die Produktivität zu steigern, und zwar durch das Einbinden von verbreiteten Datenbanken, Virtualisierungen, Testumgebungen und Monitoring-Lösungen. Dadurch hilft es dabei, den Programmierprozess zu vereinheitlichen, da es auch Continouus-Integration und -Deployment unterstützt.

Überwachungslösung für die Plattform: Grafana Loki

Wer eine Plattform aufbaut, muss diese natürlich auch überwachen. Mit Grafana Loki gibt es eine kostenlose Open-Source-Lösung zur Überwachung und Verwaltung von Log-Dateien. Loki kann sowohl in der Cloud als auch auf der eigenen Infrastruktur gehostet werden. Sie hilft dabei, Log-Dateien zentral zu verwalten. Das Tool integriert sich nahtlos mit Grafana, Prometheus und Kubernetes.

Kostenverwaltung für Cloud und Co.: OpenCost

Cloudspeicher im großen Stil ist leider teuer – und ein aus dem Ruder laufender Microservice kann schnell enorme Kosten verursachen. Dagegen hilft das Tool OpenCost, das Echtzeit-Kostenkontrolle für Kubernetes-Cluster, einzelne Nodes, Services und Pods in AWS-, Azure- und GCP-Clouds ermöglicht. Gleichzeitig kann das Tool auch den Ressourcenbedarf überschlagen und eine Kosteneinschätzung liefern. Voraussetzung ist ein Kubernetes-Cluster.

Dokumentieren: MkDocs

Das Aufsetzen einer Dokumentation oder eines Handbuchs ist beim Platform-Engineering teils notwendig. Hierbei kann MkDocs helfen, ein Static-Site-Generator auf Open-Source-Basis, der aktiv bei Dokumentationen hilft. Die Verwaltung erfolgt über einzelne Textdateien anstelle von aufwändigen Datenbanken. Durch die Markdown-Unterstützung ist es leicht, die Dokumentation (oder auch andere textbasierte Websites) zu erstellen und verwalten. Über Themes und Plugins kann die Site schnell an die internen Bedürfnisse der Plattform angepasst werden. Diese können per YAML-Datei definiert werden.

Dies waren nur einige interessante Tools. Es gibt zahlreiche Alternativen, die sich je nach Anwendung oder Plattform-Design möglicherweise besser eignen. Auf GitHub führt der Entwickler Serg Hospodarets eine kuratierte Liste von Anwendungen und Tools, die beim Plattform-Engineering helfen können.

(ID:50106057)