Was ist ein Golden Path?
Ein Golden Path bezieht sich auf eine gut dokumentierte und unterstützte Methode zur Entwicklung und Bereitstellung von Software in einem Unternehmen. Mit einem unterstützten „Path“ sind Entwicklungsteams in der Lage, effizienter zu arbeiten und die Unternehmensstandards zu erfüllen. Golden Paths bieten einen präzisen Ansatz für Platform Engineers, um DevOps-Teams, KI/MLOps-Teams, Sicherheits-, Netzwerk- oder andere IT-Organisationen anzuleiten und für Konsistenz, Zuverlässigkeit sowie eine effiziente Nutzung von Zeit und Ressourcen zu sorgen.
Je nach Größe und Status eines Entwicklungsteams kann die Anzahl der Golden Paths variieren. Ein Unternehmen mit einem noch jungen Platform Engineering-Team könnte über Golden Paths verfügen, die Schlüsselprozesse wie Microservice-Entwicklung, CI/CD-Pipelines, Provisionierung von Infrastruktur und Beobachtbarkeit behandeln. Im Gegensatz dazu verfügt ein erfahreneres Team möglicherweise über Hunderte von granularen Golden Paths, wie für die Entwicklung von Front-End-Anwendungen, Daten-Pipelines für Analysen oder ML-Workloads (Machine Learning), Entwicklung von Serverless-Anwendungen sowie Sicherheits- und Compliance-Workflows. Unabhängig von Größe und Entwicklungsstand des Teams verfügen Golden Paths über mehrere gemeinsame Komponenten:
- Softwarevorlagen: Eine vorkonfigurierte Microservice-Boilerplate, wie eine Python FastAPI-Vorlage mit Docker- und CI/CD-Pipelines.
- Provisionierung von Infrastruktur: Vorgefertigte Terraform- oder Pulumi-Module für Cloud-Ressourcen.
- Pipelines für Entwicklung und Bereitstellung: Vorkonfigurierte GitHub Actions oder Jenkins-Skripte.
- Beobachtbarkeitstools: Integrierte Lösungen zur Protokollierung und Überwachung.
- Sicherheitsrichtlinien: Vorgefertigte Richtlinien und in den Workflow eingebettete Scans.
Das Golden Path-Konzept
Der Begriff Golden Path wurde vom Autor Frank Herbert in seinem Science Fiction-Roman „Children of Dune“ geprägt. Das Konzept einer Vorlage (inspiriert von Herberts Golden Path) für Software wurde von Spotify entwickelt, um Engineering Teams bei der Ausrichtung auf Tools und Prozesse zu unterstützen. Dieser Ansatz hat sich inzwischen auch bei anderen Unternehmen wie Google und Netflix durchgesetzt. Manche geben ihm sogar einen eigenen Namen. Netflix nennt es „Paved Road“.
Ein Golden Path ist vergleichbar mit dem Backen eines Kuchens. Zum Backen eines Kuchens ist es erforderlich, den Ofen auf eine bestimmte Temperatur vorzuheizen, die richtigen Backutensilien zu besorgen und die erforderlichen Zutaten bereitzuhalten. Man muss sich nicht nur an ein Rezept halten, sondern auch die passenden Geräte und Methoden einsetzen. Wenn Sie wollen, dass mehr Menschen denselben Kuchen backen, müssen Sie Wege zu mehr Konsistenz und Effizienz finden. So verhält es sich auch beim Golden Path. Je genauer eine bestimmte Vorlage für die Softwareentwicklung eingehalten wird, desto ausgefeilter werden der Prozess und das Produkt. Die Schritte beim Backen eines Kuchens sind mit der Implementierung eines Golden Paths vergleichbar – nur mit weniger Zucker.
Welche Eigenschaften besitzt ein Golden Path?
Software Architects, darunter auch die von Red Hat®, beschreiben 4 Merkmale, die ein Golden Path aufweisen sollte. Er sollte optional, transparent, erweiterbar und anpassbar sein.
Optional
Ein Golden Path sollte optional für Entwicklung und Deployment sein. Um Innovationen zu ermöglichen und zu fördern, sollte die Möglichkeit zur Abweichung von Standard-Workflows gegeben sein. Engineering Teams können Situationen beobachten, in denen ein Golden Path nicht genutzt wird, und Situationen identifizieren, in denen ein neuer Golden Path von Vorteil sein könnte.
Transparent
Die im Rahmen eines Golden Paths eingesetzten Prozesse und Tools sollten transparent sein. Golden Paths erstellen Vorlagen, die verschiedene Ansätze ermöglichen, ohne dass man die zugrunde liegende Technologie erlernen muss. Mit transparenten Golden Paths können Entwicklungsteams besser verstehen, was im Hintergrund passiert.
Erweiterbar
Ein Golden Path sollte erweiterbar sein, damit neue Fähigkeiten und Funktionen hinzugefügt werden können. Golden Paths sind bereits anpassbar, da es sich um Vorlagen handelt, die Sie je nach Situation ändern können. Erfordert jedoch ein bestimmter Use Case eine zusätzliche Fähigkeit, muss ein Golden Path flexibel genug sein, diese Erweiterung zu ermöglichen.
Anpassbar
Ein Golden Path sollte in hohem Maße an die Anforderungen der (internen oder externen) Entwicklungsteams angepasst werden können und auf den Erfahrungen beruhen, die das Unternehmen bereits mit manuellen Verfahren gemacht hat. So lassen sich Standards schaffen, die in diesen Golden Path implementiert werden und die Sicherheit im Prozess erhöhen.
Golden Paths können sich je nach Einsatzzweck unterscheiden. Sie sollten jedoch über die 4 Merkmale verfügen und optional, transparent, erweiterbar und anpassbar sein.
Entwicklungsproduktivität mit Technologien von Red Hat
Wer erarbeitet Golden Paths und für wen sind sie gedacht?
Im Allgemeinen erstellen und verwalten Platform Engineers Golden Paths, um Entwicklungsteams mit Best Practices, definierten Tools, Services, Ressourcen und Prozessen zu versorgen, die ihre Produktivität erhöhen können. Das Platform Engineering soll Produktivität und Zusammenarbeit von Teams verbessern, indem es die Konsistenz und Effizienz fördert. Platform Engineering-Teams konzentrieren sich darauf, Herausforderungen bei der Entwicklung zu identifizieren und sie durch das Bereitstellen von standardisierten, wiederverwendbaren Tools und Funktionen über eine interne Entwicklerplattform (Internal Developer Platform, IDP) zu beseitigen. Eine IDP besteht aus einem standardisierten Set von Self Service-Tools und -Technologien, die Entwicklerinnen und Entwickler für das Erstellen und Bereitstellen von Code benötigen.
Golden Paths können unter anderem folgende Use Cases unterstützen:
Anwendungsentwicklung
Anwendungsentwicklungsteams sind bestrebt, Anwendungen standardisiert und sicherheitsorientiert zu entwickeln, zu testen und bereitzustellen. Golden Paths helfen ihnen dabei, indem sie den Weg für Onboarding und Entwicklung effizienter gestalten. Mit Golden Paths können Anwendungsteams eine einheitliche Basis nutzen, die den Austausch von Informationen ermöglicht, das Erstellen gemeinsamer Tools fördert sowie Agilität und Mobilität im gesamten Unternehmen verbessert.
Data Science
Data Scientists sammeln, analysieren und interpretieren Daten zur Gewinnung verwertbarer Insights. Sie können auch auf Entwicklung und Deployment von KI- und ML-Systemen spezialisiert sein. Golden Paths helfen MLOps-Teams (ML Operations) bei der Integration von ML-Modellen in die Softwareentwicklung. Golden Paths können Data Scientists bei der Entwicklung von KI-Modellen unterstützen, und Entwicklungsteams können Golden Paths nutzen, um diese Modelle zu implementieren.
Site Reliability Engineering (SRE)
SRE-Teams sind verantwortlich für die Bereitstellung, Konfiguration und Überwachung von Code sowie Verfügbarkeit, Latenz, Änderungsmanagement, Notfallreaktion und Kapazitätsmanagement von Services in der Produktion. Golden Paths bieten Konsistenz für SREs bei der Erstellung skalierbarer Softwaresysteme mit hoher Zuverlässigkeit.
Systemadministration (Sysadmin)
Systemadministrationsteams installieren, konfigurieren und warten die Computersysteme eines Unternehmens. Sysadmins benötigen skalierbare und nachhaltige Methoden zur Verwaltung von Tausenden von Rechnern. Golden Paths bieten ein klares Framework für allgemeine Aufgaben und Prozesse, indem sie Routinen vereinfachen oder automatisieren. So kann die Komplexität der Verwaltung reduziert und das Risiko von Fehlern verringert werden.
Vorteile eines Golden Path
Als Self Service-Vorlagen bieten Golden Paths viele Vorteile zur Unterstützung der Produktivität von Entwicklungsteams, darunter:
Geringere kognitive Belastung: Standardisierte Prozesse reduzieren die kognitive Belastung der Entwicklerinnen und Entwickler und schaffen so geistigen Freiraum für Innovationen.
Schnellere Entwicklung: Mit definierten Aufgaben können Entwicklungsteams erfolgreich arbeiten, ohne nach Tools suchen und Prozesse ausarbeiten zu müssen, da sie sich auf bestehende und etablierte Best Practices verlassen können, die bereits im Unternehmen vorhanden sind.
Verbesserte Konsistenz: Gemeinsam nutzbare Vorlagen und bessere interne Prozesse tragen zur Konsistenz zwischen den Projekten bei, was zu verbesserten Ergebnissen und höherer Qualität führt, unabhängig davon, ob es sich um ein internes oder ein externes Entwicklungsteam handelt.
Mehr Automatisierung: Die Automatisierung sich wiederholender Aufgaben, wie beispielsweise Deployments oder das Testen von Code, erleichtert die Anwendung von Praktiken wie CI/CD-Pipelines, IaC (Infrastructure as Code) und API-Management (Application Programming Interface).
Vereinfachtes Onboarding: Mit leicht auffindbaren Dokumentationen und Tools können sich neue Teammitglieder schneller in einen Workflow einarbeiten, ohne für jede Aufgabe die beste Vorgehensweise herausfinden zu müssen.
Verbesserte Sicherheit: Vorlagen sorgen dafür, dass Sicherheitsstandards mit integrierten Praktiken eingehalten werden, was spätere Audits vereinfacht.
Design eines Golden Paths
Das Design eines Golden Paths (auch als „Paving“ bezeichnet) umfasst die Erstellung einer Roadmap zur Gewährleistung eines einfachen und effektiven IT-Erlebnisses. Was zu einem Golden Path gehört, kann je nach Zielsetzung variieren. Es gibt jedoch einige Best Practices, die zur Steigerung der Produktivität von Entwicklungsteams berücksichtigt werden sollten.
- Nutzende definieren: Ein Golden Path wird in der Regel von einem Entwicklungsteam genutzt. Da Vorlagen von mehr als einem Team oder Teammitglied erstellt und gewartet werden, handelt es sich bei den Nutzenden um eine bestimmte Personengruppe mit unterschiedlichen Kompetenzen, etwa in den Bereichen Programmierung, Profiling und Sicherheit.
- Zweck bestimmen: Der generelle Zweck eines Golden Paths ist die Steigerung der Entwicklungsproduktivität durch die Automatisierung bestehender Praktiken.
- Golden Path-Layout Schritt für Schritt festlegen: Das Erstellen klarer Schritte und Richtlinien stellt sicher, dass Nutzende ihre Aufgaben mit einem einheitlichen und zuverlässigen Framework erledigen können.
- Tools und Ressourcen bereitstellen: Das Angebot von Dokumentationen und Tools für die Ausführung trägt dazu bei, dem Golden Path einen Kontext zu verleihen.
- Mit einer IDP integrieren: Auf IDPs sollten Golden Paths verfügbar und leicht zugänglich sein. Die Integration eines Golden Paths stellt seine Verfügbarkeit über die IDP sicher und ermöglicht Self Service für Entwicklungsteams.
- Erfolg messen und iterieren: Um den Erfolg eines Golden Paths zu ermitteln, sollten Sie seinen Erfolg anhand von Metriken messen. Zu diesen Metriken gehören unter anderem DORA-Metriken (DevOps Research and Assessment), SPACE-Framework oder Flow-Framework. Sammeln Sie außerdem Feedback von Nutzenden und wiederholen Sie den Prozess zur Verbesserung der Effizienz.
Beispiele für einen Golden Path
Entwicklung von Microservices
Ein Beispiel für die Verwendung eines Golden Paths ist die Erstellung eines neuen Microservices aus von den Operations-Teams erstellten, vorgefertigten Vorlagen.
Microservices bezeichnen eine Art von Anwendungsarchitektur, bei der eine Sammlung unabhängiger Services über schlanke APIs miteinander kommuniziert. Eine Microservices-Architektur bietet einen effizienteren Ansatz für die Anwendungsentwicklung, bei dem jede Kernfunktion innerhalb einer Anwendung unabhängig agieren kann. Mit getrennten Anwendungselementen können DevOps-Teams zusammenarbeiten, ohne sich gegenseitig zu behindern. Das heißt, dass mehrere Entwicklerinnen und Entwickler gleichzeitig an derselben App arbeiten und so die Entwicklungszeit deutlich reduziert werden kann.
Ein Golden Path kann die Produktivität des Entwicklungsteams noch weiter steigern, indem er einen effizienten Prozess für die Entwicklung, Bereitstellung und Verwaltung von Microservices schafft. Ein erfolgreicher Golden Path für Microservices integriert eine gut strukturierte Pipeline mit einem starken Fokus auf Automatisierung, Best Practices und Beobachtbarkeit.
MLOps-Bereitstellung
Golden Paths können Sie bei der MLOps-Bereitstellung unterstützen. Mit MLOps soll die Integration von ML-Modellen in Softwareentwicklungsprozesse kontinuierlich weiterentwickelt werden. Dazu orientiert sich MLOps an den Grundsätzen von DevOps und GitOps. Durch eine optimierte Zusammenarbeit zwischen verschiedenen Teams fördern MLOps eine agile Entwicklung und eine datengesteuerte Entscheidungsfindung in Unternehmen. Durch die Einführung von MLOps-Praktiken wird der manuelle Aufwand für die Pflege eines ML-Modells auf ein Minimum reduziert und gleichzeitig seine kontinuierliche Performance und Zuverlässigkeit sichergestellt.
Die Verwendung eines Golden Paths als Richtlinie für die ML-Bereitstellung kann Teams bei der Entwicklung, Bereitstellung und Verwaltung von ML-Modellen helfen. Golden Paths helfen bei MLOps durch das Etablieren von Workflows und Praktiken, wie beispielsweise automatisierte Pipelines, um für eine zuverlässige und konsistente Modellbereitstellung zu sorgen.
MLOps-Teams können von Golden Paths profitieren, die Vorlagen zur Unterstützung der verschiedenen Kriterien von MLOps-Standards bereitstellen, aber auch die Möglichkeit bieten, diese je nach Bedarf an die Use Cases anzupassen.
Agentische KI
Agentische KI (Agentic AI) ist ein Softwaresystem, das für die Interaktion mit Daten und Tools ausgelegt ist, sodass nur minimale menschliche Eingriffe erforderlich sind. Sie kann Aufgaben erledigen, indem sie eine Liste von Schritten erstellt und diese eigenständig ausführt. Agentische KI unterscheidet sich von der herkömmlichen Automatisierung durch die Verwendung von Echtzeitdaten, ML-Modellen und Feedbackschleifen, um kontextabhängige Entscheidungen zu treffen.
Zur Implementierung agentischer KI wird ein System geschaffen, über das ein LLM (Large Language Model) Zugang zu externen Tools und Algorithmen erhält, die vorgeben, wie KI-Agenten diese Tools nutzen sollen. Wie Golden Paths beinhaltet auch agentische KI einen optimierten und autonomen Prozess zur Erreichung eines Ziels oder zur Erfüllung einer Aufgabe, der bei Bedarf lernt und sich anpasst.
Warum Red Hat für die Softwareentwicklung?
Die Produkte und Services von Red Hat unterstützen gemeinsam die Softwareentwicklung und bieten Unternehmen die nötige Flexibilität, um die Teamproduktivität zu erhöhen und gleichzeitig den Self Service zu steigern, das Onboarding zu beschleunigen und sich wiederholende Aufgaben in verschiedenen Teams zu reduzieren.
Red Hat Developer Hub bietet ein Self Service-Portal, auf das die einzelnen Entwicklungsteams im Unternehmen zugreifen können, um die Golden Paths zu nutzen und eine zentrale Stelle für sämtliches Wissen und relevante technische Dokumentation für ein bestimmtes Projekt zu haben. Mit Red Hat Developer Hub haben Unternehmen die Möglichkeit zur Nutzung vorhandener Softwarevorlagen zum Starten einer neuen Anwendung oder eines Microservices. Alternativ können sie ihre eigenen benutzerdefinierten Vorlagen für ihre spezielle Umgebung erstellen und nutzen.
In Verbindung mit Red Hat Developer Hub ermöglicht Red Hat OpenShift® den Entwicklungsteams die Nutzung bewährter Anwendungstools, darunter cloudnative, Legacy- und modernisierte Anwendungen. Red Hat OpenShift Pipelines und Red Hat OpenShift GitOps, Red Hat OpenShift Service Mesh, Red Hat OpenShift Serverless und viele weitere Technologien sind bereits in Red Hat OpenShift enthalten und integriert, um Entwicklungs-Workflows zu optimieren und die Integration mit vielen anderen Open Source-Tools zu unterstützen.
Da Sicherheit immer an erster Stelle steht, können Unternehmen mit Red Hat Trusted Software Supply Chain von Anfang an Sicherheit in die Komponenten, Prozesse und Praktiken ihrer Softwareentwicklung integrieren. Entwicklungsteams können Software programmieren, erstellen, bereitstellen und überwachen, die den Sicherheitsrichtlinien des Unternehmens entspricht.