IaaS-Ressourcen mit OpenStack Heat-Templates bereitstellen

OpenStack Heat arbeitet zur Orchestrierung von IaaS-Ressourcen mit Templates. Dieses Beispiel erklärt die grundlegende Arbeitsweise.

Um Administratoren das Deployment von Cloud-Services zu vereinfachen, ist Orchestrierung eine wichtige Komponente...

von IaaS-Lösungen (Infrastructure as a Service). Eine IaaS-Cloud wie OpenStack sollte dabei sehr dynamisch sein, denn wenn Administratoren Ressourcen wie Cloud-Nodes, Instanzen und Netzwerke manuell hinzufügen müssen, dann eliminiert dies einen großen Teil der eigentlich gewünschten Flexibilität der Cloud-Umgebung.

Wie für die meisten grundlegenden Funktionen in OpenStack gilt auch für die Orchestrierung, dass sie als separate Komponente integriert wird, nämlich als Heat-Modul. Wer sich tatsächlich für die Open-Source-Variante von OpenStack entscheidet, der wird die meisten Funktionen also als einzelne Module integrieren. Heat dient dabei als ein von Menschen und Maschinen gleichermaßen steuerbarer Service, der den gesamten Lebenszyklus von Cloud-Infrastruktur und Cloud-Applikationen verwaltet. Hierfür verwendet Heat eine Orchestration-Engine, die mit Templates arbeitet.

Obwohl Heat-Templates mit dem De-facto-Standard AWS CloudFormation kompatibel sind, werden die Instanzen eines OpenStack-Rechenzentrums doch mit eigenen Einstellungen konfiguriert. So lange es eine gewisse Funktionskompatibilität zwischen AWS und den OpenStack-Instanzen gibt, ist eine hybride Cloud-Umgebung also durchaus möglich. Allerdings decken sich die Funktionen von OpenStack eben nicht zu einhundert Prozent mit denen von AWS.

Ein Heat-Template beschreibt in Form einer Textdatei (siehe untenstehendes Beispiel), welche Aufgaben zu erledigen sind. Zu den möglichen Optionen gehören zum Beispiel unterschiedliche Infrastrukturressourcen wie Server, IP-Adressen, Laufwerke oder auch Nutzer. Das Template verwaltet dabei auch die Beziehungen zwischen diesen Ressourcen, wodurch die automatisierte Bearbeitung komplexer Konfigurationen möglich wird.

Heat erstellt aber nicht nur Ressourcen. Heat verwaltet den gesamten Lebenszyklus der Ressourcen. Zu diesem Zweck integriert es sich sehr tief in Automatisierungsdienste aus dem DevOps-Umfeld wie Puppet oder Chef, mit denen der Zustand unterschiedlicher Software-Komponenten verwaltet wird.

Beispiel eines OpenStack-Heat-Templates

heat_template_version: 2013-05-23

description: Simple template to deploy a single compute instance with parameters

parameters:

key_name:

type: string

label: Key Name

description: Name of key-pair to be used for compute instance

image_id:

type: string

label: Image ID

description: Image to be used for compute instance

instance_type:

type: string

label: Instance Type

description: Type of instance (flavor) to be used

resources:

my_instance:

type: OS::Nova::Server

properties:

key_name: { get_param: key_name }

image: { get_param: image_id }

flavor: { get_param: instance_type }

In diesem Beispiel wird eine einzelne virtuelle Instanz bereitgestellt. Das Heat-Template besteht hierzu aus zwei Bereichen. Der erste Teil definiert die Parameter durch key_name, image_id und instance_type. Der zweite Teil definiert die Ressourcen, die durch das Template verwaltet werden, in diesem Fall also my_instance. Um diese Ressource zu verwalten, werden die drei eingangs definierten Parameter herangezogen. An diesem Punkt definiert get_param, dass der Wert dieser Eigenschaften angefragt werden soll.

Dieses simple Heat-Template mag anwendbar sein, dürfte aber kaum nützlich sein, wenn ein Administrator hunderte von OpenStack-Instanzen definieren muss. Die Parameterwerte werden einer nach dem anderen angefragt, was große Deployments enorm verzögern würde – und gerade um große Bereitstellungen geht es bei OpenStack ja meistens.

Wie nutzerfreundlich ist OpenStack Heat?

Auch wenn Heat relativ einfach durch automatisierte Tools genutzt werden kann, kann man es nicht unbedingt als besonders nutzerfreundlich bezeichnen. Administratoren arbeiten sich nun einmal nicht gerne durch große ASCII-Dateien, die alle nötigen Konfigurationen enthalten. Hierfür gibt es durchaus auch einfacher zu nutzende Tools, beispielsweise von Cloudyn, Dell oder RightScale.

Kann man von der OpenStack-Community selbst etwas einfacher zu Nutzendes erwarten? Trotz der jüngsten Verbesserungen in OpenStack Liberty wahrscheinlich eher nicht. Auch wenn Heat nicht besonders intuitiv ist, bietet es doch effiziente Templates zur Verwaltung großer Cloud-Deployments. Letztlich handelt es sich bei Heat um eine funktionale Backend-Grundlage für alle, die darauf ein flexibles Frontend aufbauen wollen.

Es gibt ein ganz fundamentales Problem mit Frontends für Cloud-Orchestration-Tools: Um ein wirklich effizientes Management der Cloud-Umgebung zu ermöglichen, müssen die Tools einen ähnlichen Umfang an Parametern und Konfigurationsmöglichkeiten bieten wie Heat-Templates. Entsprechende Lösungen dürften also kaum weniger komplex und umständlich sein.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+ und Facebook!

Artikel wurde zuletzt im November 2015 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Private-Cloud-Infrastruktur

0 Kommentare

Älteste Beiträge 

Passwort vergessen?

Kein Problem! Tragen Sie Ihre E-Mail-Adresse unten ein. Wir werden Ihnen eine E-Mail mit Ihrem Passwort schicken.

Ihr Passwort wurde an die folgende E-Mail-Adresse gesendet::

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchEnterpriseSoftware.de

Close