Anzeige

Open Source

Der Betrieb einer eigenen private Cloud ist komplex und aufwändig. Die neue Open-Source-Lösung Yaook setzt sich das Ziel, die Bereitstellung und Verwaltung von OpenStack-Clouds zu automatisieren.

Wer eine eigene private Cloud bauen möchte und dabei auf Open-Source-Software setzt, kommt um OpenStack nicht herum. OpenStack ist eine Sammlung unterschiedlicher Projekte, die zusammen eine Infrastructure- und Platform as a Service-Lösung ergeben können. Durch die Aufteilung der einzelnen Features auf die unterschiedlichen Projekte und Services ist es jedem selbst überlassen, welche Features in seiner Cloud verfügbar sein sollen.

OpenStack selbst hat für das Deployment und den Betrieb mehrere eigene Projekte. Diese basieren dabei jeweils auf unterschiedlichen Technologien (beispielsweise ansible, docker oder helm). Ihnen gemein ist dabei ein enger Fokus auf OpenStack selbst. Viele weitere reguläre Tätigkeiten (z. B. Softwareupdates, Hardwaredeployment oder Maintenance von einzelnen Systemen) sind dem jeweiligen Nutzer selbst überlassen.

Das neue Open-Source-Projekt Yaook hat sich das Ziel gesetzt, diese regulären Tätigkeiten ebenfalls mit zu integrieren. OpenStack wird bei Yaook innerhalb eines Kubernetes-Clusters deployed. Dabei deckt Yaook die Verwaltung von den physischen Servern, der Kubernetes-Umgebung sowie dem OpenStack-Cluster ab.

Allgemeiner Aufbau einer OpenStack-Umgebung

Eine OpenStack-Umgebung lässt sich in 3 Teile untergliedern:

Der erste Teil beinhaltet alle "zentralen" Komponenten. Hierzu zählen alle APIs, die dem Nutzer zur Verfügung stehen, aber auch die notwendigen Datenbanken, Message Queues, oder Scheduling Services. Die zentralen Komponenten sind anhand eines Microservice-Ansatzes gebaut.

Der zweite Teil beinhaltet alle Compute Nodes. Hierunter werden alle Server verstanden, auf denen die virtuellen Maschinen der Cloud-Nutzer laufen. Die Menge der Compute Nodes einer OpenStack-Cloud kann dabei sehr unterschiedlich sein. Die meisten Umgebungen haben jedoch 20-500 dieser Systeme.

Der dritte Teil beinhaltet die Netzwerkservices von OpenStack. Dieser Teil kann bei kleineren Umgebungen auch mit dem ersten zusammenfallen. Hier werden die virtuellen Netze der Cloud-Nutzer mit der physischen Netzwerkumgebung (z. B. einer Internetanbindung) gekoppelt.

Der Bare-Metal Layer

Als erste Schicht eines Yaook Deployments verwaltet der Bare-Metal Layer alle physischen Server der Umgebung. Systeme werden automatisiert inventarisiert und mit einem Betriebssystem versorgt. Dabei kommt OpenStack Ironic für das Deployment der Systeme sowie Netbox für die Inventarisierung zum Einsatz.

Hiermit ist es möglich, mit wenigen Handgriffen neue Server in einen Cluster einzufügen oder einen neuen Cluster aufzubauen. Ab der Installation des Betriebssystems anhand eines vorgefertigten Abbildes werden alle Dienste der Kubernetes-Schicht vollautomatisch auf den Knoten installiert und die Knoten zu einem Cluster zusammengeführt.

Der Kubernetes Layer

Um die einzelnen OpenStack-Komponenten und deren Abhängigkeiten zu verwalten, setzt Yaook auf Kubernetes als Abstraktionsschicht.

Die zentralen Services (APIs, Datenbanken, etc.) profitieren durch die Features von Kubernetes, um eine hohe Stabilität und einfache Änderungen zu ermöglichen. Yaook kann sich damit auf die Änderung eines Openstack-Services konzentrieren (z. B. eine Aktualisierung von Keystone), Kubernetes übernimmt die Umsetzung auf die einzelnen Prozesse (z. B. das sequenzielle Aktualisieren der Keystone API um sicherzustellen, dass es zu keinen Ausfällen kommt).

Die dezentralen Services (vor allem die Compute Nodes) profitieren von der konsistenten Verteilung der Software auf alle Nodes. Dies ermöglicht es sowohl Yaook als auch ggf. dem Nutzer, die Software auf jeder Compute Node einfach laufen zu lassen.

Der Operator Layer

Die Yaook-Operator orchestrieren Dienste und Ressourcen im Kubernetes-Cluster auf Basis der jeweiligen Nutzeranforderungen. Der Nutzer definiert dabei, welcher OpenStack-Service mit welchen Parametern (z. B. Version, Konfiguration, Anzahl Replikas, Größe der Datenbank) erstellt werden soll. Zudem erfolgt hier die Zuweisung, welcher Service(-Teil) auf welcher physischen Node laufen soll.

Der Operator erstellt daraufhin die finale Konfiguration des Services und validiert sie. Dabei werden einige Parameter, die der Operator selbst generiert, automatisch eingebaut (z. B. Datenbank-Credentials). Danach werden die jeweiligen Kubernetes-Ressourcen erstellt, die benötigt werden, um den Service tatsächlich bereitzustellen (z. B. Deployments oder StatefulSets). Die Erstellung dieser Ressourcen folgt gewissen Abhängigkeiten, um z. B. notwendige Datenbankschemata anzupassen, bevor der eigentliche Service startet.

Darüber hinaus kann weitergehende Logik implementiert werden, um automatisierte Operationen gegen menschliche oder Codefehler abzusichern. Beispielsweise enthält der Operator für Compute Nodes zusätzliche Logik: Zum einen wird für diese Systeme sichergestellt, dass alle virtuellen Maschinen vor einer Wartung auf andere Systeme migriert werden. Zum anderen werden virtuelle Maschinen automatisch neu gestartet, sollte die jeweilige Compute Node ausfallen.

Weitere Informationen:

Yaook ist unter https://yaook.cloud kostenfrei unter der Apache-2 Lizenz verfügbar. Die Dokumentation ist unter https://docs.yaook.cloud zu finden.

Autoren:

Jonas Schäfer, DevOps Engineer bei Cloud&Heat Technologies & Felix Hüttner, Senior Professional bei Schwarz IT.

Nach seinem Informatik-Master-Abschluss ist Jonas Schäfer seit 2018 als DevOps Engineer bei Cloud&Heat Technologies angestellt. Er fokussiert sich vor allem auf das Life-Cycle-Management der Clouds. Dabei geht es vor allem um die Herausforderungen des täglichen Betriebs wie Updates, Monitoring und Behandeln von Fehlerzuständen. Zum anderen beschäftigt er sich mit längerfristigen Themen wie den Upgrades der eingesetzten OpenStack- oder Betriebssystem-Versionen.

Felix Hüttner, Senior Professional
Felix Hüttner
Senior Professional, Schwarz IT

Weitere Artikel

Open Source

Die Open-Source-Revolution ist in den Fachabteilungen angekommen

Viele IT- und Entwicklungsabteilungen in Unternehmen haben die Fesseln von Closed Source inzwischen abgeworfen und setzen auf quelloffene Software. Schließlich müssen sie im Zuge der Digitalen Transformation sich schnell ändernde IT-Anforderungen umsetzen und…
Dokumentenmanagement

5 Ansatzpunkte, die ein DMS in der Logistikbranche abdecken sollte

Digitalisierung ja – aber wie packen wir es an? Diese Frage treibt viele Verantwortliche für Prozessmanagement und in der Unternehmensführung um. Der «Digital Office Index» der Bitkom zeigte deutlich, dass der deutsche Mittelstand beim Thema Digitalisierung…
Remote Monitoring

IT optimieren mit Remote Monitoring und Management

Schon mal von RMM gehört? Noch nicht? Dann wird es Zeit, denn mit Remote Monitoring und Management können kleine und mittelständische Unternehmen in der IT-Verwaltung massiv entlastet werden – zudem wird ihre Infrastruktur stabiler und ausfallsicherer. Wir…
Geschäftsmann

Mein Companion, der Business Messenger

Bei aller Agilität, die New Work ermöglicht: Je mehr Nachrichten und unterschiedlichste Kommunikationstools eingesetzt werden, umso komplizierter wird der schnelle und mühelose Austausch unter Kollegen. Höchste Zeit, die interne Kommunikation in der New Work…
IT Helpdesk

Was sind Service-Level im Support-Bereich?

IT-Systeme unterstützen Unternehmen in allen Branchen und über die unterschiedlichsten Anwendungsbereiche. Sie haben in der Landwirtschaft genauso ihren Platz wie in Industrieunternehmen, Anwaltskanzleien oder stationären Geschäften mit oder ohne Onlineshop.
Low-Code

Auch mit Low-Code entwickeln?

Low-Code, das visuelle Programmieren von Unternehmenssoftware, ist in aller Munde. Zdenek Prochazka, Head of Rapid Application Development bei Schwarz IT, spricht mit uns über seine Erfahrungen mit Low-Code.

Anzeige

Jetzt die smarten News aus der IT-Welt abonnieren! 💌

Mit Klick auf den Button "Zum Newsletter anmelden" stimme ich der Datenschutzerklärung zu.