Beim schwäbischen Autobauer Mercedes-Benz hat in den letzten sieben Jahren ein Projektteam eine hauseigene Flotte von 900 Kubernetes-Clustern aufgebaut. Damit unterstützt es heute eine Vielzahl von Standalone-Entwicklerteams und kann dem Unternehmen eine skalierbare und einfach zu verwaltende Infrastrukturplattform zur Verfügung stellen.
"Die Anzahl der Cluster ist nicht das Problem"
Nachdem Google das Container-Orchestrierungssystem Kubernetes im Jahr 2014 Open Source zur Verfügung gestellt hat, begann der Automobilhersteller ab 2015 damit zu experimentieren. Seitdem hat die Tochtergesellschaft Mercedes-Benz Tech Innovation ausreichendes Fachwissen entwickelt, um Hunderte von Applikations-Teams verschiedener Fachbereiche mit Lösungen zu unterstützen, die deren individuellen, technologischen Bedürfnissen gerecht werden.
Jens Erat, DevOps-Spezialist bei Mercedes-Benz Tech Innovation, beschrieb das Vorgehen im Rahmen einer Keynote auf der KubeCon Europe 2022: "Uns war klar, dass weder ein einziger, gemeinsam genutzter Kubernetes-Cluster noch eine Anbieter-Distribution unseren Anforderungen genügen würde. Aber wir hatten das Fachwissen unserer Engineers. Also haben wir eine hundertprozentige Free-Open-Source-Softwareplattform aufgebaut - ganz ohne lästige Lizenzprobleme und Support-Anfragen."
Inzwischen betreibt Mercedes-Benz mit OpenStack 900 On-Premises-Kubernetes-Cluster in vier globalen Rechenzentren, die seit Ende 2021 auf Version 1.23 laufen. Bezieht man die Cloud-Provider mit ein, ist das zwar nicht der größte Kubernetes-Bestand, allerdings nutzen laut einer Umfrage der Cloud Native Computing Foundation (PDF) lediglich zehn Prozent der Anwender im Unternehmensumfeld mehr als 50 Cluster. Die "Sammlung" von Mercedes-Benz ist also bemerkenswert - und immerhin fünfmal so groß wie beispielsweise die der Europäischen Organisation für Kernforschung CERN (ebenfalls auf der KubeCon Europe vertreten).
"Wir haben uns viel Mühe gegeben, das ganze Konstrukt 'manageable' zu halten", sagte Peter Müller, Lead Expert bei Mercedes-Benz Tech Innovation, gegenüber unseren US-Kollegen von Infoworld.com. "Das funktioniert gut, weil alles automatisiert ist. Es ist kein so großer Unterschied, ob wir nun 500 oder 1000 Cluster verwalten. Um 500 Cluster hinzuzufügen, müssten wir nur einen weiteren Ingenieur einstellen."
Eine wichtige Rolle für das Management spielt die Cluster API von OpenStack - inzwischen ein Kubernetes-Projekt, das es ermöglicht, deklarative Cluster zu erstellen, zu konfigurieren und zu managen. Die API löste erst vor kurzem Terraform und einige benutzerdefinierte Tools ab, ist aber noch nicht perfekt. "Die Anzahl der Cluster ist nicht das Problem. Die Herausforderungen liegen eher in einigen der umgebenden Systeme und manchmal auch in OpenStack. Kubernetes läuft jedoch ziemlich gut, es skaliert", so Müller.
Kulturveränderung
Jedes einzelne der mehreren hundert Anwendungsteams von Mercedes-Benz kann nun einen eigenen Kubernetes-Cluster über einen automatisierten Prozess anfordern. Dabei kommt eine Reihe von selbstentwickelten Tools zum Einsatz, die von Müllers Team bei Mercedes-Benz Tech Innovation gemanagt werden. Im Ergebnis stehen vorbereitete Produktions- sowie kleinere Staging- und Entwicklungs-Cluster innerhalb von Stunden, manchmal auch Minuten, nach der Anfrage bereit.
"Aus organisatorischer Perspektive war DevOps vor fünf bis sechs Jahren der neue Trend und jeder sprach von 'you build it, you run it'", erklärt Jörg Schüler, Teamleiter bei Mercedes-Benz Tech Innovation. "Für einen Betreiber einer Shared Platform bedeutet das, dass jedes Anwendungsteam bei Mercedes-Benz seinen eigenen Kubernetes-Cluster erhält. Unser Ziel ist es, ein Ökosystem bereitzustellen und damit die Anwendungsteams zu befähigen. Dieses Ökosystem basiert auf dem Self-Service-Prinzip und ist API-driven."
Verwaltet wird das Ökosystem nicht von einem, sondern von fünf separaten Plattform-Teams. Davon bilden zwei ein kombiniertes Team (insgesamt etwa ein Dutzend Engineers), das sich rein auf die Kubernetes-as-a-Service-Plattform fokussiert. Die anderen Plattform-Teams konzentrieren sich auf die Bereiche:
Database-as-a-Service,
Monitoring-as-a-Service und
Container Security (inklusive Laufzeit-, Registry- und Image-Scanning).
Als schwierig erweist sich für Mercedes-Benz Tech Innovation, diese Teams weiter aufzustocken, wie Schüler verrät: "Gute Kubernetes-Experten sind schwer zu finden. Schulungen, Trainings und andere Angebote rund um die Plattform sind dabei wirklich hilfreich. Man braucht einen Community-Ansatz für Entwicklerteams, um sich gegenseitig mit Bootcamps, Schulungsportalen und Sandbox-Umgebungen zu unterstützen."
Goldene Wege in die Cloud
Nachdem die Mercedes-Benz-Tochtergesellschaft alles dafür getan hat, Kubernetes im großen Maßstab zu managen, laufen nun die Vorbereitungen dafür, mehr und mehr Workloads in die Public Cloud zu verlagern. Das würde die Möglichkeit eröffnen, Managed Services wie Azure Kubernetes Services und Elastic Kubernetes Services von AWS zu nutzen, um die kognitive Belastung für die Plattform und die DevOps-Teams zu verringern. "Wir befinden uns derzeit noch in der Evaluierungsphase und ziehen es im Moment vor, das selbst zu übernehmen, weil wir so On- und Off-Prem die gleiche Architektur haben", erklärt Müller.
Dennoch benötigen die Anwendungsteams immer noch Unterstützung dabei, sich auf Container und Kubernetes umzustellen. Ein Weg, um den Fortschritt in diesem Bereich zu beschleunigen, ist die Idee der "goldenen Pfade". Hierbei handelt es sich im Wesentlichen um Helm-Diagramme, die als Vorlagen für bestimmte Funktionen wie Identity & Access Management verwendet werden können, um den verschiedenen Teams repetitive Aufgaben zu ersparen: "Wir müssen einige Dinge als Service bereitstellen, um die kognitive Belastung zu reduzieren und es den Mitarbeitern zu ermöglichen, das zu tun, was sie am besten können: Business Value erzeugen", so Müller.
Natürlich sei der Reifegrad in den verschiedenen Anwendungsteams unterschiedlich ausgeprägt. Daher sieht Müller eine seiner Aufgaben darin, eine sichere Lernumgebung bereitzustellen. Sobald die Teams reif genug seien, könnten sie in die Cloud wechseln. Im Idealfall würden die "goldenen Pfade" schließlich in einem "Spotify-Backstage-ähnlichen Katalog" kodifiziert. "Wir arbeiten derzeit an Proof-of-Concepts für ein zentrales Entwickler-Portal, um alle Services dort zu integrieren - aber das braucht noch etwas Zeit", so Müller.
"Lassen Sie Entwicklerteams nicht alleine"
"Kubernetes bleibt schwierig, lassen Sie Ihre DevOps- und Entwickler-Teams nicht allein", appellierte Sabine Wolz, Product Owner bei Mercedes-Benz Tech Innovation, auf der Bühne der KubeCon Europe. Müller zeigte sich fest davon überzeugt, dass die Lernkurve jetzt auf die Anwendungsteams zukommt, nicht mehr auf die Plattformteams. "Kubernetes zu managen ist schwierig, wenn man nicht tief drin steckt. Aber wenn wir Kubernetes managen, dann wollen wir auch tief drin sein - für uns ist das nicht schwer. Geht es um Anwendungsprojekte oder DevOps, sieht die Sache ganz anders aus."
Müller hofft, dass sein Plattformteam den Anwendungsteams helfen kann, die zugrundeliegende Infrastruktur zu verstehen - ohne tiefes Fachwissen aufbauen zu müssen. "Einige Teams arbeiten noch mit virtuellen Maschinen und wechseln zu einem Kubernetes-Cluster. Sie müssen ihren Monolithen aufspalten, verstehen, wie Transaktionen gehandhabt werden, sich mit asynchroner Kommunikation auseinandersetzen und erkennen, wie Kubernetes funktioniert."
Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Infoworld.