« Alle Blog Einträge

Orchestrierung mit OpenStack: die Heat-Komponente

Als zentraler Bestandteil jeder Cloud-Ressource ist die Orchestrierung von hoher Bedeutung. OpenStack bietet Ihnen eine spezielle Komponente, die auf die Orchestrierung innerhalb dieser Plattform zugeschnitten ist. Das wichtigste Modul in diesem Programm trägt den Namen Heat. OpenStack Heat nutzt für Orchestrierungszwecke in IaaS-Ressourcen verschiedene Templates. Diese erfüllen hohe Anforderungen an die gewünschte Dynamik der IaaS-Cloud.

Überblick und Allgemeines zur Heat-Komponente

Orchestrierung bietet Ihnen als Administrator eine deutliche Vereinfachung im Deployment von Cloud-Services. In IaaS-Konzepten (Infrasctucture-as-a-Service) spielt die Orchestrierung daher eine wichtige Rolle. Cloud-Umgebungen sollten Anwendern größtmögliche Flexibilität bieten. Als Administrator wollen Sie verschiedene Ressourcen wie etwa Netzwerke, Nodes oder Instanzen nicht manuell hinzufügen. Daher profitieren Sie von einer dynamischen IaaS-Cloud.

Die OpenStack Foundation bezeichnet Heat als eine Art Orchestrationsmaschine, mit der sich mehrere zusammengesetzte Cloud-Programme auf der Basis von Templates als Textdateien starten lassen. Die Komponente ermöglicht es hierbei, eine gesamte Cloud-Infrastruktur in Form eines Codes darzustellen. Damit wird es möglich, die komplette Cloud-Infrastruktur zu automatisieren.

Anders ausgedrückt ermöglicht OpenStack Heat die Umsetzung einer Infrastructure as Code (IAC). Diese Art von Infrastruktur ermöglicht es Ihnen, Operations-Teams automatisch via Code zu verwalten und bereitzustellen. Manuelle Verfahrensweisen werden damit minimiert. Aus diesem Grund ist auch von automatisierter Infrastruktur die Rede. Als OpenStack-Anwender können Sie beispielsweise die Cloud-Komponenten wie Speichergeräte oder Nodes automatisiert hinzufügen.

OpenStack Heat als Tool für die Cloud-Orchestrierung

Heat ist als Komponente für die Zusammenstellung einzelner Ressourcen zuständig. Der Heat-Service lässt sich sowohl automatisiert durch Maschinen als auch manuell durch Nutzer verwenden. Als Anwender können Sie mit der Heat-Komponente verschiedene Ressourcen, virtuelle Maschinen (VMs) sowie Anwendungen anfordern und verwalten. Zu diesem Zwecke kommen in Heat vordefinierte Textdateien zum Einsatz, die Templates genannt werden. Das Template stellt einen der wichtigsten Begriffe in Heat dar. Es bezeichnet die Eigenschaften die angeforderten Ressource oder virtuellen Maschine. Ebenso definiert das Template die in dieser VM enthaltenen Bestandteile sowie die Relationen zwischen den einzelnen Komponenten. Als Nutzer legen Sie in den Templates fest, welche Ressourcen mit welchen Eigenschaften Sie für Ihre Cloud anfordern. Templates funktionieren als Vorlagen. Möchten Sie beispielsweise zu einem späteren Zeitpunkt exakt die gleiche Ressource erneut nutzen, so können Sie auf diese Vorlage erneut zugreifen. Dies bedeutet eine enorme Ersparnis an Zeit, Aufwand und Kosten. Der Begriff Ressource beschreibt in diesem Zusammenhang ein spezielles mit Heat erstelltes Objekt. Dieses kann beispielsweise eine bestimmte Menge Speicherplatz oder eine VM sein.

Orchestrierung mit OpenStack Heat: Erstellung von Stacks

Die Heat-Komponente ermöglicht Ihnen die Arbeit mit so genannten Stacks. Bei Stacks handelt es sich um Konfigurationen, die aus verschiedenen Cloud-Komponenten bestehen. Hierzu gehören Instanzen, Sicherheitsgruppen oder LoadBalancer. Anders ausgedrückt sind Stacks Gruppen miteinander verbundener Ressourcen. Diese lassen sich über ein Template anfordern. Entsprechende Heat-Befehle ermöglichen die Verwaltung der Stacks. Stacks sind die Komponenten, mit denen Sie Prozesse wie Deployment und AutoScaling sofort in OpenStack durchführen können.

Hierfür können Sie ein Heat-Orchestration-Template (HOT) verwenden. Dieses Template gibt die Konfigurationen im Format YAML aus. Es handelt sich hierbei um derart umfangreiche Konfigurationsmöglichkeiten, dass ein Heat-Template genügt, um die vollständige Struktur Ihrer Cloud automatisiert zu erstellen. Auch im laufenden Betrieb ist es möglich, weitere Instanzen zu erstellen. Zu diesem Zwecke bieten Heat-Templates die Option, Alarm beziehungsweise Trigger zu setzen. Diese überwachen die Last der einzelnen Instanzen innerhalb des LoadBalancer-Pools.

Aufbau der Templates und Einstieg in Heat

Über die Heat-Templates definieren Sie als Anwender, wie die von Ihnen gewünschte IT-Infrastruktur gestaltet sein soll. Über die Kommandozeile erfährt die Heat-Engine, worin ihre Aufgaben bestehen und welche Aktionen sie ausführen soll. Anschließend übernimmt die Heat-Engine selbst den Rest der noch ausstehenden Arbeit. Ist dieser Prozess abgeschlossen, stehen Ihnen als Anwender die Ressourcen ähnlich wie virtuelle Maschinen zur Verfügung.

Typischerweise folgen Templates hierbei stets demselben Aufbau. Hierzu gehört die Template-Version. Jeder neue OpenStack-Release ist mit einer neuen Template-Version verknüpft. Als Nutzer sollten Sie daher berücksichtigen, ob unter dem Punkt Template-Version stets die aktuelle Versionsnummer zu finden ist. Bei der Arbeit mit veralteten Versionen kann es vorkommen, dass Sie nicht vom vollen Funktionsumfang profitieren.

Der Punkt Description stellt eine optionale Angabe dar. Diese beschreibt Ihnen als Anwender, was das Template gerade tut. Der wesentliche Punkt namens Resources dient der Definition, welche IT-Ressourcen zu erstellen sind. Der Teil Outputs dient Ihnen als Nutzer der Bestimmung des gewünschten Ergebnisses.

Das Heat-Template und seine Funktionsweise

Heat-Templates beschreiben grundsätzlich, welche Aufgaben ausstehen und zu erledigen sind. Diese Aufgaben umfassen beispielsweise verschiedene Ressourcen der Infrastruktur, darunter IP-Adressen, Server, Laufwerke, verschiedene Adressen oder Anwender. Da das Template auch die Beziehungen zwischen den IT-Ressourcen verwaltet, ist auch eine automatisierte Bearbeitung der aufwändigen Konfigurationen eine Option.

Heat dient jedoch nicht nur der Erstellung von Ressourcen. Gleichermaßen verwaltet Heat den vollständigen Lebenszyklus der bereitgestellten Ressourcen. Um dies zu gewährleisten, integriert es sich in Konfigurations-Manager oder Automatisierungsdienste. Hierbei kommen oft Dienste aus dem Umfeld von DevOps zum Einsatz, beispielsweise Puppet. Damit lassen sich die Zustände verschiedener Software-Komponenten verwalten.

Die Heat-Komponente und ihre Integration

Heat ist eine Komponente, die separat integriert wird. Diese Eigenschaft teilt Heat mit den meisten grundlegenden Funktionen innerhalb OpenStacks. Die Integration erfolgt als Heat-Modul. In der Open-Source-basierten Version von OpenStack sind die meisten Module und Funktionen einzeln zu integrieren. Heat stellt eine Komponente dar, die sich sowohl von Menschen als auch gleichermaßen von Maschinen steuern lässt. Cloud-Infrastruktur sowie Cloud-Applikationen lassen sich über ihren gesamten Lebenszyklus hinweg verwalten.

Heat-Templates sind grundsätzlich mit dem Standard der AWS CloudFormation kompatibel. Doch erfolgt die Konfiguration der Instanzen eines Rechenzentrums mit eigenen Einstellungen. Aufgrund der funktionellen Kompatibilität zwischen OpenStack-Instanzen und AWS lässt sich auch eine hybride Cloud-Umgebung realisieren.

Skalierbarkeit: Auto-Scaling

Dank der Auto-Scaling-Funktion (Scale-in und Scale-out) ist das System dazu imstande, automatisch zu erkennen, ob bestimmte Elemente ausgelastet sind. Auf Basis zuvor festgelegter Schwellenwerte identifiziert das System, ob etwa Datenbanken oder Webserver ausgelastet sind. Eine Skalierung erfolgt automatisch und in beide Richtungen. Hierbei werden die zur Verfügung gestellten Cloud-Ressourcen bedarfsmäßig erhöht oder reduziert. Die Bereitstellung stärkerer Rechenressourcen erfolgt in Zeiten starker Auslastung, während die Ressourcen in Zeiten mit geringerer Nachfrage zurückgefahren werden. Sie wird realisiert über die Erstellung einer Auto-Scaling-Gruppe über die Orchestrierungs-API. Auch diese Auto-Scaling-Option trägt deutlich zu einer Minimierung des Administrationsaufwands bei.