Suchen
Verloren im Labyrinth der IT-Begriffe? Hier finden Sie Definitionen und Basiswissen zu Rechenzentrums-IT und -Infrastruktur.

Orchestrierung und Kubernetes-as-a-Service für das Rechenzentrum und die Cloud Was ist SAP Gardener?

Autor / Redakteur: Anna Kobylinska und Filipe Martins* / Ulrike Ostler

Unter der Bezeichnung „Gardener“ hat SAP eine quelloffene Software zur Verwaltung von Kubernetes-Clustern im Köcher. Dank seiner ausgeklügelten Kontrollebene meistert Gardener die Bereitstellung von „K8s„“ as-a-Service als einen vollständig verwalteten Dienst im Rechenzentrum wie auch in der Wolke. Ist das der Orchestrierer für die Multi-Cloud?

Firmen zum Thema

„SAP Gardener“ basiert auf „Kubernetes“ und ermöglicht Unternehmen, ihre Workloads kontinuierlich neu zu erfinden, um auf die Anforderungen zeitnah zu reagieren.
„SAP Gardener“ basiert auf „Kubernetes“ und ermöglicht Unternehmen, ihre Workloads kontinuierlich neu zu erfinden, um auf die Anforderungen zeitnah zu reagieren.
(Bild: markus-spiske auf Unsplash)

Ohne die SAP SE, eine der größten Erfolgsgeschichten der deutschen Softwareindustrie, die in im Baden-Württembergischen Walldorf ihre Wurzeln schlug, würde die idyllische Ortschaft sicherlich kaum jemand kennen. SAP hat den Standort weltberühmt gemacht. Rund 20 Kilometer von der Firmenzentrale entfernt liegt der ebenfalls renommierte Botanische Garten der Universität Heidelberg, mittlerweile im 427 Jahr seines Bestehens – ein Paradebeispiel der Widerstandsfähigkeit und ein guter Lehrmeister für einen Multicloud-Orchestrierer von K8s-Clustern.

Gärtnerei als Metapher

Das Management einer Bereitstellung von Kubernetes-Clustern und die Gartenkunst haben so einiges gemeinsam. Wer schon mal Saat ausstreute, welche später aus dem Boden spross, oder eine Hecke trimmen musste, kann sich die Analogien vermutlich sehr gut vorstellen.

So heißt die Entsprechung zu einem Kubernetes-Pod ein „Shoot-Cluster“ (von: Sprießen). Das Äquivalent zu einem Node nennt sich ein „Seed-Cluster“ (von: Aussaat). Einem Kubelet, also dem primären Node-Agenten von K8s, entspricht bei SAP Gardener ein „Gardenlet“, logisch. Bei der gewählten Metapher dürfte sich eigentlich jeder schnell zurechtfinden – jedenfalls schneller als bei Kubernetes selbst.

Gardener ist eine quelloffene, Kubernetes-native Erweiterung, die auf der Aggregationsebene des Orchestrierers aufsetzt. Quelloffen und SAP in einem Satz? Das scheint fast ein Paradox; denn immerhin fließen 77 Prozent aller Umsätze der globalen Wirtschaft über ein proprietäres ERP-System von SAP. Auch wenn die Idee einer quelloffenen SAP-Plattform noch nicht überall angekommen sein sollte, ist das Unternehmen schon länger mit Open-Source-Lösungen unterwegs und ist damit bisher auch sehr gut gefahren.

Vor-Ort-Bereitstellung: Rund jeder zweite Entwickler führt seinen Code im unternehmenseigenen Rechenzentrum aus, wenn auch zusätzlich zu einer Cloud.
Vor-Ort-Bereitstellung: Rund jeder zweite Entwickler führt seinen Code im unternehmenseigenen Rechenzentrum aus, wenn auch zusätzlich zu einer Cloud.
(Bild: CNCF)

Warum gerade Kubernetes leuchtet eigentlich ein. Der führende Container-Orchestrierer zur Automatisierung der Bereitstellung, Skalierung und Verwaltung von Cloud-nativen Anwendungen ist Cloud-agnostisch ausgelegt, selbst quelloffen und kann auf eine massive Nutzergemeinde verweisen. Seit Google das Projekt an die Cloud Native Computing Foundation (CNCF) übertragen hatte, wächst die Verbreitung von Kubernetes – und damit der Bedarf an Steuerungssoftware – außer Rand und Band.

Laut dem aktuellen Bericht der Cloud Native Computing Foundation vom Mai 2020 unter dem Titel „The State of Cloud-native Development“ vertrauen rund sechs von zehn Entwicklern, die ihre Anwendungen orchestrieren, auf Kubernetes. Somit ist die Gemeinde 1,7 Millionen stark.

71 Prozent dieser Entwickler haben bei Kaufentscheidungen Mitsprache, entweder beratend oder als Mitentscheider, rund 25 Prozent mehr als ihre Kollegen, die mit Kubernetes nichts am Hut haben. So lag es für die SAP nahe, seinen Orchestrierer von Multi-Cloud-Bereitstellungen auf Kubernetes aufzusetzen. So bekommt SAP in ganz vielen Unternehmen den sprichwörtlichen Fuß in die Türe.

Zu ähnlichen Erkenntnissen wie die CNCF-Umfrage in Bezug auf die Verbreitung von Kubernetes gelangte im März 2020 das Marktforschungsinstitut Dimensional Insight in einer Umfrage im Auftrag von VMware. Diese Studie brachte aber auch noch eine andere relevante Erkenntnis ans Tageslicht: Sie hat gezeigt, dass Kubernetes vor allem im unternehmenseigenen Rechenzentrum an Fahrt gewinnt. Satte 64 Prozent der Befragten hätten Kubernetes (auch) in einer On-Premise-Bereitstellung am Laufen.

Kubernetes dominiert die Container-Orchestrierung, bestätigt auch Stackrox. Das Engagement von SAP hat in diesem Kontext wenig mit Idealismus zu tun, sondern zeugt vielmehr vom ergebnisorientierten Pragmatismus.

Ein Gewächshaus für Cluster

Bei Gardener handelt es sich im Wesentlichen um einen Kubernetes-nativen Server für Erweiterungs-APIs, der mit einem Paket benutzerdefinierter Controller daher kommt. Kubernetes (K8s) unterstützt das Einrichten eines solchen Servers für die Aggregationsschicht, damit Nutzer den Kubernetes-eigenen API-Server um zusätzliche Schnittstellen erweitern können – nämlich um APIs, die zu der Standarddistribution nicht dazu gehören. Das erlaubt es wiederum, Kubernetes zum Beispiel in neue Umgebungen zu integrieren.

SAP Gardener beinhaltet ein vollständig validiertes Erweiterungs-Framework, welches sich an jeden beliebigen programmatischen Cloud- oder Infrastrukturdienst anpassen lässt. Gardener kann derzeit den gesamten Lebenszyklus konformer Kubernetes-Cluster auf AliCloud, AWS, Azure, GCP, OpenStack, Packet, MetalStack und vSphere in einer as-a-Service-Bereitstellung mit minimalen Gesamtbetriebskosten verwalten.

Im Detail: Das Architekturdiagramm von „SAP Gardener“
Im Detail: Das Architekturdiagramm von „SAP Gardener“
(Bild: SAP)

Gardener läuft selbst in dem Kubernetes-Cluster, dessen API er erweitern soll. Die Erweiterung registriert sich über ein API-Service-Objekt. Nach der Initialisierung des ersten so genannten Seed-Clusters richtet Gardener die verschiedenen Komponenten der Kontrollebene als einfache Kubernetes-Pods ein: den API-Server, den Scheduler, den Controller-Manager und dergleichen andere.

Gardener fügt neue API-Objekte in ein vorhandenes Kubernetes-Cluster ein. Hier ist von dem so genannten Garden-Cluster die Rede. Mit Hilfe dieser Objekte verwaltet Gardener die benutzereigenen Cluster, die „Shoot-Cluster“ (quasi: die „Sprossen“).

Shoot-Cluster entstehen mit Hilfe deklarativer Cluster-Spezifikationen, die wiederum durch die betreffenden Controller beobachtet werden. Das Hosting der zugehörigen Kontrollebenen übernehmen die „Worker“-Knoten in den betreffenden Seed-Clustern. Sie rufen diese Cluster auf, gleichen ihren Status ab, führen automatisierte Aktualisierungen durch und stellen die kontinuierliche Betriebsbereitschaft dieser Cluster sicher.

Ein neuer Shoot-Cluster lässt sich über das Gardener-Dashboard oder durch das Hochladen einer neuen Shoot-Ressource in den Garden Cluster ins Leben rufen. Der Gardener-Scheduler hat die Aufgabe, das geeignete Seed-Cluster für die Kontrollebene des betreffenden Shoot-Clusters zu identifizieren, ähnlich wie der Kube-Scheduler einen geeigneten Knoten für neu erstellte Pods findet.

Nächstes startet das Gardenlet einen „Terraform“-Job, um die erforderlichen IaaS-Komponenten zu erzeugen, und initiiert die Bereitstellung der Kontrollebene des Shoot-Cluster im Seed-Cluster samt der hierzu erforderlichen Add-Ons. Das Gardenlet führt etwaige Aktualisierungs- oder Löschvorgänge ebenfalls vollautomatisch durch.

Gardener benötigt mindestens je ein Seed-Cluster pro IaaS und Region. Das Seed-Cluster kann Kontrollebenen mehrerer Shoot-Cluster hosten. Diese Implementierung erlaubt den Verzicht auf dedizierte Hardware oder Virtual Machine-Instanzen für die Kontrollebenen der Shoot-Cluster. Durch die Bereitstellung mehrerer Seed-Cluster pro Region (oder pro Cloud-Plattform) lässt sich die Last verteilen und die Reichweite potenzieller Probleme einschränken.

Der Unterschied von Kubernetes und Gardener

Der hauptsächliche Unterschied zwischen der Architektur von Kubernetes und derjenigen von Gardener besteht darin, dass Kubernetes auf jedem Knoten einen primären „Agenten“ – den so genannten kubelet – ausführt. Dieser Agent zeichnet vorrangig für die Verwaltung von Pods und Containern auf seinem jeweiligen Knoten verantwortlich. Gardener nutzte ursprünglich seinen einzigen Controller-Manager, der für alle Shoot-Cluster auf allen Seed-Clustern verantwortlich war, und durchlief seine Abstimmungsschleifen zentral vom Garden-Cluster aus durch.

Während dies im großen Maßstab, also etwa für Tausende von Clustern, gut funktioniert, wollten die Entwickler granulare Skalierbarkeit nach bewährten Kubernetes-Prinzipien jenseits der Kapazität eines einzelnen Controller-Managers umsetzen. Hierzu haben sie nach dem Vorbild von Kubelet eine Komponente mit der Bezeichnung Gardenlet eingeführt.

Schematische Darstellung der Kontrollebenenfunktionsweise von „Gardener“ und der Worker-Knoten
Schematische Darstellung der Kontrollebenenfunktionsweise von „Gardener“ und der Worker-Knoten
(Bild: SAP)

Gardenlet ist der primäre „Agent“ in jedem Seed-Cluster von Gardener. Er zeichnet nur für diejenigen Shoot-Clusters verantwortlich, die sich in dem jeweiligen Seed-Cluster befinden.

Der Gardener-Control-Manager führt weiterhin seine Kontroll-Loops in Bezug auf andere Ressourcen der Gardener-API aus, darf jedoch mit Seed/Shoot-Clustern nicht mehr plaudern. Durch diese Umkehrung des Kontrollflusses können Unternehmen ihre Seed/Shoot-Cluster sogar hinter Firewalls platzieren, ohne die direkte Erreichbarkeit dieser Ressourcen zu beeinträchtigen. Ein VPN-Tunnel ist nicht erforderlich.

Gardener in der SAP Cloud

SAP nutzt Gardener für die Bereitstellung von Kubernetes-Clustern auf AWS, Azure, GCP, AliCloud und OpenStack. Auf Gardener laufen bei SAP so diverse Arbeitslasten wie „SAP HANA“ und andere Datenbanken, Big Data-Anwendungen wie „SAP Data Hub“, IoT-Workloads, KI/ML-Lösungen wie „SAP Leonardo“ sowie Server-loser Funktionscode und eine Vielzahl von Geschäftsanwendungen.

SAP Gardener findet auch bei anderen Kubernetes-Nutzern großen Zuspruch. Die Finanz Informatik Technologie Services GmbH (FI-TS) nutzt SAP Gardener als einen Managed Service von Kubernetes für Kunden der Finanzbranche in Deutschland. Der Dienst basiert auf einer Metal-as-a-Service-Infrastruktur, die unter Berücksichtigung der Kubernetes-Workloads von Grund auf neu implementiert wurde. Die (FI-TS) ist ein Tochterunternehmen der Finanz Informatik (FI), die ihrerseits als der IT-Dienstleister der Sparkassen-Finanzgruppe für die digitalen Aspekte des Bankgeschäfts verantwortlich zeichnet.

Das Team der FI-TS hatte recht anspruchsvolle Anforderungen an seine Infrastrukturplattform. Die Gewährleistung robuster Isolation sensibler Umgebungen im Kontext einer Kubernetes-Bereitstellung forderte gehöriges Fingerspitzengefühl bei der Implementierung der Netzwerk-Architektur und ein Höchstmaß an granularer Kontrolle über alle relevanten Aspekte der Runtime. Die Cloud-nativen Workloads sollten zudem in den eigenen Rechenzentren des Unternehmens ausgeführt werden. Gardener hat ermöglicht.

SAP Gardener bildet das Herzstück der SAP Cloud Platform „Extension Factory“/„Kyma“ Runtime, ein vollständig verwalteter Service für Kyma auf der Basis von SAP Gardener. So können Unternehmen im Rahmen der SAP Cloud Platform neben Cloud Foundry und der „ABAP“-Runtime (kurz für Advanced Business Application Programming a.k.a. Allgemeiner Berichts-Aufbereitungs-Prozessor, eine SAP-eigene Sprache der höheren Ebene) auch Kubernetes-gestützte Bereitstellungen verwalten.

Mit der Einführung der SAP Kyma Runtime SAP sollen SAP-Nutzer die benötigten Erweiterungen wahlweise ereignisgetrieben oder API-basiert, wahlweise als Microservices oder als serverless Funktionscode implementieren. Die erste Release von Kyma vom Juni 2020 basiert auf „Microsoft Azure“.

* Das Autorenduo Anna Kobylinska und Filipe Pereira Martins arbeitet für McKinley Denali Inc. (USA).

(ID:46765925)