iX 11/2017
S. 130
Praxis
Virtualisierungsumgebung
Aufmacherbild

OpenStack-Deployment mit Kolla

Einfach aufgeschichtet

OpenStack händisch zu installieren ist zwar lehrreich, für den Produktiveinsatz allerdings kaum zu empfehlen. Kolla verspricht ein einfaches, anpassbares und automatisiertes Setup.

OpenStack besteht aus einem immer komplexeren Ökosystem von Projekten: schwierig zu überschauen und noch schwieriger zu verwalten. Gängige Deployment-Frameworks vereinfachen das nur zum Teil. Während eine zum großen Teil automatisierte Installation mittlerweile zum Standard gehört, fehlen oft die Möglichkeiten zum nahtlosen Upgrade der einzelnen Dienste. Auch Anpassbarkeit und Herstellerunabhängigkeit sind nicht immer gegeben. Kolla verpackt einzelne Dienste in Docker-Containern und setzt zur Konfiguration und Orchestrierung auf Ansible oder Kubernetes. Es ist flexibel und ermöglicht relativ einfach ein tief greifendes Anpassen der Umgebung.

Wer einmal versucht hat, eine funktionstüchtige OpenStack-Umgebung von Hand zu bauen, kennt deren Komplexität. Eine interessante Erfahrung, keine Frage – und wer viel Zeit und Frustrationstoleranz mitbringt, lernt auf diese Weise wahrscheinlich am schnellsten etwas über das Innenleben von OpenStack und das Zusammenspiel der einzelnen Komponenten. Für den Produktiveinsatz ist ein manuelles Deployment aber nicht tauglich. Dafür gibt es zu viele Konfigurationsmöglichkeiten, zu viele Stolpersteine, zu viel, was schiefgehen kann, und zu viele Einzelteile, die aufeinander abgestimmt sein wollen. Mittlerweile besteht die Software aus über dreißig Einzelprojekten. Hinzu kommen zahlreiche weitere Projekte, die nicht offiziell Teil von OpenStack sind, aber in dessen Umfeld existieren.

Ein Monster an Komplexität

Es liegt nahe, Installation und Konfiguration der Einzelkomponenten zu automatisieren. Deployment-Frameworks für OpenStack gibt es schon länger. Deren Bandbreite ist groß: vom dünnen Wrapper um bekannte Konfigurationsmanagement-Tools wie Ansible, Puppet oder Chef bis zu hübschen Webinterfaces, von der Installation direkt aus den Sourcecode-Repositories bis zu vorgefertigten Paketen. Die verschiedenen Ansätze haben ihre Stärken und Schwächen. Eine Entscheidung für das richtige Deployment-Framework ist deshalb vor allem eine Frage der Anforderungen.

Zunächst wäre da die Anpassbarkeit. Leider scheint der Wunsch danach dem nach einer hübschen Oberfläche entgegenzulaufen. Wer täglich mit einem so komplexen Gebilde wie OpenStack arbeiten muss, wird vermutlich mehr Wert auf Funktion als auf Aussehen legen. Natürlich ist nicht alles schlecht, was nicht auf der Kommandozeile passiert. Es ist aber wichtig, immer einen Blick hinter den Vorhang zu werfen. Denn allzu oft kommt man in Situationen, die die Entwickler des Deployment-Frameworks nicht im Kopf hatten. Und dann ist es von Vorteil, sich nicht durch viele Abstraktionsebenen zu arbeiten, sondern nah am tatsächlichen Geschehen zu sein und Änderungen an der untersten Ebene durchführen zu können – ohne die Konsistenz zu gefährden und ohne dass diese Änderungen bei der nächsten Gelegenheit wieder überschrieben werden.