« Alle Blog Einträge

OpenStack Cloud Guide – Alles, was Sie wissen müssen

Was genau ist OpenStack und wie schneidet es im Vergleich zu Kubernetes und Openshift ab? Welche Vorteile bietet die OpenStack Cloud? Was hat es mit OpenStack Swift auf sich und lassen sich OpenStack und Terraform gemeinsam verwenden? Diese Fragen und mehr beantworten wir in diesem ausführlichen OpenStack Cloud Guide. 

OpenStack: Die Basics

OpenStack ist eine frei verfügbare Open-Source-Software für die Virtualisierung und die Bereitstellung von Storage. Ursprünglich angestoßen von Rackspace und der NASA wird es ebenfalls von zahlreichen anderen Firmen wie beispielsweise Red Hat, Huawei, Intel und IBM unterstützt. OpenStack bildet eine optimale Basis für eine Cloud-Infrastruktur und ermöglicht, diese mit größtmöglicher Datensicherheit auszustatten. 

OpenStack wird jedoch nicht nur von namhaften Firmen unterstützt, es ist auch die am weitesten verbreitete Open-Source-Software für die Cloud. Es wurde geschaffen, um große Mengen an Speicher und Netzwerkressourcen über ein gemeinsames Datacenter zu verwalten. 

Die allererste Version von OpenStack wurde im Herbst 2010 veröffentlicht. Die derzeit neueste und zweiundzwanzigste Version, Version 2021.1 mit Namen Wallaby, wurde am 14. April 2021 released. Programmiert wird OpenStack in der Programmiersprache Python. Verfügbar ist OpenStack unter einer Apache-Lizenz. 

Die Vorteile von OpenStack

Ein großer Vorteil von OpenStack ist seine hohe und flexible Skalierbarkeit. Gerade, wenn sich die Anforderungen und Auslastung Ihrer IT-Infrastruktur stetig ändert, können Sie mithilfe von OpenStack Ihre Kosten und Ressourcen flexibel gestalten und müssen nicht permanent alle Ressourcen für die Maximalauslastung bereithalten. Sie bezahlen nur, was Sie auch in dem Moment nutzen und benötigen. 

Davon profitieren beispielsweise Websites, die saisonal oder durch Werbung bedingt kurzfristig viel Traffic erhalten, der jedoch schnell wieder abflacht. Diese Lastspitzen müssen gut abgefangen werden können, um Ausfälle und Hardwareüberlastung zu vermeiden. Die OpenStack Cloud leistet genau das. 

Zudem sind Ihre Daten dank Redundanz gut vor Verlusten geschützt. Dadurch, dass der Zugang ortsunabhängig über das Internet möglich ist, vereinfacht es kollaboratives Arbeiten und benötigt keine spezielle Hardware. Somit können auch Teammitglieder mit unterschiedlichen technischen Voraussetzungen gut miteinander über OpenStack arbeiten. 

Die Bestandteile von OpenStack

OpenStack ist ein komplexes System aus mehreren Komponenten, die jeweils ihre eigenen Funktionen haben. Dank dieses Aufbaus kann OpenStack für viele verschiedene Anwendungen eingesetzt werden. Wir werden Ihnen die sieben Komponenten und ihre Funktionen detailliert vorstellen.

OpenStack Swift – Skalierbarer Objekt-Storage 

OpenStack Swift ist die Komponente von OpenStack, die für die Bereitstellung des Objektspeichers zuständig ist. Der Speicher ist beinahe beliebig skalierbar und eignet sich daher perfekt für große Datenmengen. Dazu zählen nicht nur Bilder und Videos, sondern auch beispielsweise Virtual-Machine-Images. 

Die redundante Speicherung der Daten ist zudem bereits integriert, sodass Ihre Daten gut gegen Ausfälle gesichert sind. Eine dreifache Replikation ist problemlos möglich, aber auch weitere Backups können eingestellt werden. Fällt ein Speicherplatz aus, wird sofort eine neue Kopie an einem anderen Ort abgelegt, sodass zu jedem Zeitpunkt die geforderte Anzahl an Replikationen vorliegt. 

In OpenStack Swift werden die Daten über HTTP gespeichert und abgerufen. Eine REST-HTTP-API ermöglicht den Zugriff auf die Daten. Bei der Speicherung der Daten arbeitet OpenStack Swift zudem mit Containern, in denen die Daten abgelegt werden. Diese Container speichern ebenfalls Metadaten und können verschiedenen Accounts zugeordnet werden. 

OpenStack Swift kann außerdem als Backend für die OpenStack Komponenten Cinder und Glance eingesetzt werden. 

OpenStack Nova – Verwalter virtueller Maschinen

Die OpenStack-Komponente Nova ist für Gruppen von virtuellen Maschinen zuständig. Mithilfe von Nova können virtuelle Maschinen erstellt werden, es kann jedoch auch für physische Server genutzt werden. Auch Systemcontainer werden begrenzt von OpenStack Nova unterstützt. 

Sie erstellen eine beliebige Anzahl an Compute-Knoten, auf die Sie anschließend die virtuellen Maschinen aufteilen können. Um Nova zu verwenden, benötigen Sie eine Datenbank. Für die Verwaltung von Nova existiert eine REST API. Auch weitere OpenStack-Services und -Komponenten sind für den Betrieb von OpenStack Nova notwendig. Keystone, Glance und Neutron werden wir im Folgenden ebenfalls vorstellen, für Nova wird zusätzlich noch Placement benötigt, was für das Tracking verfügbarer Cloud-Ressourcen verwendet wird. 

Über den OpenStack Client können Sie den Großteil der relevanten Befehle, nicht nur für die Nova-Komponente, sondern auch für die restlichen Bestandteile, eingeben. Falls Sie jedoch sehr spezifische, fortgeschrittene Funktionen und Befehle nutzen möchten oder als Admin agieren, gibt es noch den Nova Client, der diese speziellen Befehle unterstützt. 

OpenStack Glance – Der Image-Service

Glance ist der Image-Service von OpenStack. Er stellt den Nutzern Images der virtuellen Maschinen zur Verfügung. Nova benötigt diese Images zur Verwaltung der einzelnen VM-Instanzen. Auch die Metadaten können von OpenStack Glance bereitgestellt werden. 

Diese Images können an verschiedenen Orten gespeichert werden, von einfachen Dateisystemen bis hin zu Objektspeichern wie OpenStack Swift. Glance verfügt über einen Metadef-Katalog, der auf OpenStack-Ressourcen angewandt werden kann. Der Zugriff erfolgt über eine RESTful API. 

OpenStack Keystone – Zuweisung von Rechten

Die Keystone-Komponente wird für das Zuweisen von Rechten für Nutzer der Cloud verwendet. Sie ist also unverzichtbar für die Administratoren der Cloud. Auch die Authentifizierung über ein Tokensystem oder andere Authentifizierungsmethoden wie LDAP kann mithilfe von Keystone geregelt werden. Für den Zugriff auf ein Projekt wird ein sogenannter Mandant angelegt, dem wiederum mehrere Benutzer zugeordnet werden können. 

OpenStack Cinder – Virtueller Blockspeicher

Mithilfe von Cinder können Sie virtuellen Blockspeicher bereitstellen. Dieser steht in Form von virtualisierten Speichermedien zur Verfügung, die Sie mit virtuellen Maschinen verbinden können. Sie können ebenfalls eine Verbindung zwischen OpenStack Cinder und OpenStack Swift herstellen und so die Kommunikation zwischen Blockspeichermedien und Objektspeicher ermöglichen. 

Außerdem können Sie mehrere Backends definieren und Speicherklassen, bei OpenStack Volume Type genannt, anlegen und bei der Erstellung eines neuen Volumes ein bestimmtes Storage-Backend zuweisen. 

OpenStack Neutron – Der Netzwerkdienst

OpenStack Neutron ist ein Modul zur Verwaltung von Netzwerken, Subnetzen und IP-Adressen. Auch sogenannte Floating IPs, die Schnittstellen zwischen dem internen und dem öffentlichen Netz, lassen sich von OpenStack Neutron verwalten. Es bietet quasi “Network connectivity as a service”. 

Mandanten können mit Neutron mehrere private Netzwerke erstellen und kontrollieren, welche IP-Adressen auf diese Netzwerke zugreifen dürfen. Für die Sicherheit Ihres Netzwerkes ist Neutron also unerlässlich. 

OpenStack Horizon – Das Web Interface

Das Web Interface von OpenStack, ein Dashboard namens Horizon, ist templatebasiert. Es vereint die wichtigsten Komponenten und ihre Funktionen in einem einzigen Dashboard. Provider von Cloud Hosting Services können das Dashboard optisch personalisieren und weitere Funktionen integrieren. Je nachdem, bei welchem Anbieter Sie OpenStack Cloud-Dienste beziehen, kann das Dashboard also unterschiedlich aussehen und einen unterschiedlichen Funktionsumfang bieten. 

OpenStack vs. Kubernetes

Nachdem wir nun ausführlich die verschiedenen Hauptkomponenten von OpenStack behandelt haben, möchten wir aus das Thema OpenStack vs. Kubernetes eingehen. Wobei, so ganz stimmt dies nicht, denn es muss nicht unbedingt ein entweder-oder sein. Obwohl Kubernetes und OpenStack teils ähnliche Funktionen anbieten, bedeutet dies keinesfalls, dass sie einander ersetzen müssen. Im Gegenteil, es kann sogar von Vorteil sein, Kubernetes und OpenStack zu kombinieren. 

Was ist Kubernetes und wo liegen die Unterschiede zu OpenStack?

Kubernetes ist in erster Linie ein Tool zur Orchestrierung und Skalierung von Containern. Genau wie OpenStack ist Kubernetes als Open-Source-Software verfügbar. Container können anstelle von und in Kombination mit virtuellen Maschinen verwendet werden. 

Ein Container kann als kleines, kompaktes Softwarepaket bezeichnet werden. Anstelle für jede Anwendung eine virtuelle Maschine zu erstellen, können sie in Containern voneinander getrennt auf derselben Maschine laufen und sich die Ressourcen teilen. Innerhalb von Kubernetes existieren Cluster, die wiederum aus Nodes bestehen. In diesen Nodes liegen Pods, in denen sich wiederum die Container selbst befinden. 

Kubernetes überwacht die Performance der Container innerhalb der Cluster. Ähnlich wie OpenStack kann auch in Kubernetes eine Redundanz eingebaut werden und das Cluster kann so programmiert werden, dass es im Falle von Ausfällen quasi selbstheilend ist. 

Im Gegensatz zu Kubernetes ist OpenStack nicht nur auf Container festgelegt, sondern eignet sich auch für virtuelle Maschinen und physische Server. Die beiden Programme sind jedoch untereinander kompatibel. In Kombination kann die schnelle Skalierbarkeit und Automatisierung noch besser genutzt werden. OpenStack kann beispielsweise die Grundlage für ein Cloud-Netzwerk bieten, während Kubernetes die Performance der Container optimiert und auf diesem Netzwerk läuft. 

OpenStack vs. OpenShift

Bei OpenShift handelt es sich um einen wirklichen Konkurrenten von OpenStack. Die Plattformen bieten ähnliche Funktionen, setzen jedoch den Fokus auf unterschiedliche Methoden. Während OpenStack verschiedene Komponenten bietet, sind es bei OpenShift verschiedene Features. 

Ähnlich wie Kubernetes legt OpenShift den Fokus auf Container-Technologie. Um OpenShift zu nutzen, sollten Sie mit Container-Tools wie Docker und Kubernetes vertraut sein. Die Funktionen von OpenShift sind zudem perfekt auf die Appentwicklung zugeschnitten, während OpenStack etwas breiter aufgestellt ist. OpenShift bietet seinen Nutzern Templates für die Appentwicklung für alle gängigen Programmiersprachen und unterstützt viele beliebte Entwicklungsumgebungen.

Sowohl OpenStack als auch OpenShift erlauben den Zugriff auf das Dashboard beziehungsweise in OpenShift die Web Console über den Browser, sodass nicht zwingend besondere Software für den Verwaltungszugang vorhanden sein muss. 

Welches System Sie nutzen sollten, hängt also davon ab, was genau Sie in der Cloud-Umgebung machen möchten. Wenn Sie überwiegend mit Containern arbeiten, könnte OpenStack für Sie eine gute Lösung darstellen. Aber auch eine Kombination aus OpenStack und Kubernetes würde sich anbieten. So halten Sie sich weitere Optionen offen und können auch hybride Umgebungen gestalten. Theoretisch ist allerdings auch die Nutzung von OpenShift und OpenStack gemeinsam möglich.

Wie Sie OpenStack gemeinsam mit Terraform nutzen

Gerade, wenn Sie sich entscheiden, mit OpenStack in Kombination mit anderen Programmen und Anbietern zu arbeiten, können Sie noch mehr von OpenStack profitieren, wenn Sie es mit Terraform kombinieren. Was ist Terraform? Terraform erfüllt letztendlich dieselbe Funktion wie OpenStack Heat, eine weitere OpenStack Komponente. Indem es Konfigurationsdateien definiert, hilft es dabei, die Cloud-Infrastruktur effizient zu managen. 

Während OpenStack Heat jedoch nur für OpenStack gedacht ist, ist Terraform mit vielen Anbietern kompatibel. Von Containern über virtuelle Maschinen und physische Server assistiert Terraform bei der Verteilung von Ressourcen und ermöglicht es Ihnen, unterschiedliche Anbieter gemeinsam zu koordinieren. 

Mit Terraform können Sie einen Plan erstellen, wie der gewünschte Zustand Ihrer Infrastruktur aussehen soll und wie dieser erreicht werden soll. Dann setzt es diesen Plan um und passt auf, dass alle Prozesse in der richtigen Reihenfolge ausgeführt werden. 

Gerade für komplexe Systeme und mehrere Anbieter, die gemanaged werden müssen, eignet sich daher eine Kombination aus OpenStack und Terraform. Wenn Sie aber noch mehr über OpenStack Heat erfahren möchten, können Sie sich auch hier im Detail einlesen, wie die Orchestrierung mit OpenStack Heat gelingt. 

Die OpenStack Cloud – So finden Sie den richtigen Anbieter

OpenStack ist ein weit verbreitetes Tool für Cloudumgebungen. Darum ist es gar nicht so einfach, den richtigen Anbieter zu finden, auf dessen OpenStack-basierte Cloud Sie setzen möchten. Zudem ist wie oben bereits angesprochen das Horizon-Dashboard in Teilen personalisierbar und bietet nicht bei jedem Anbieter denselben Funktionsumfang. 

Für reibungslose und sichere Prozesse in der OpenStack Cloud ist vor allem wichtig, dass die Redundanzeinstellungen so konfiguriert sind, dass genügend Replikationen erstellt werden und Ihre Daten vor Verlusten geschützt sind. Bei servinga setzen wir beispielsweise nicht nur auf eine dreifache Replikation Ihrer Daten, auch Festplatten, Netzteile und Netzwerkanbindung sind redundant abgesichert. 

Als Objektspeicher nutzen wir bei servinga Ceph Storage. Hier werden auch unsere virtuellen Instanzen abgelegt. Dabei kommen ausschließlich hochwertige SSD-Festplatten zum Einsatz. Diese Festplatten sind sehr robust und ermöglichen den schnellen Zugriff auf Speicher und Daten. 

Zur Vernetzung verschiedener Standorte bieten wir ebenfalls VPN as a service an. Sie können so einfach eine sichere Verbindung zwischen Ihrer lokalen Infrastruktur und der OpenStack Cloud herstellen. Hinzu kommt noch unser Firewall as a service Angebot, mit dem Sie bis ins kleinste Detail regeln können, wer auf Ihre Cloud-Ressourcen zugreifen darf und wen Sie blockieren möchten. 

Auch, wenn Sie OpenStack gemeinsam mit Kubernetes nutzen möchten, bieten wir Ihnen eine Lösung. Unsere Managed Kubernetes Services bieten Ihnen Ihr eigenes Kubernetes Cluster basierend auf der servinga OpenStack Cloud. 

Sie möchten mehr über die OpenStack Cloud von servinga erfahren? Hier erhalten Sie einen Überblick über unsere Leistungen und bei Fragen können Sie uns selbstverständlich jederzeit gerne kontaktieren. 

Zusammenfassung

OpenStack ist ein komplexes, aber auch sehr leistungsstarkes Tool zum Aufbau und Management einer Cloud-Infrastruktur. Nicht umsonst ist es eines der beliebtesten Cloud-Computing-Tools. Da es sehr breit aufgestellt ist, eignet es sich auch für hybride Umgebungen, während ähnliche Tools den Fokus oft auf eine bestimmte Technologie legen. 

Aufgrund der guten Skalierbarkeit sowie der hohen Datensicherheit ergibt es Sinn, auf einen Anbieter zu setzen, dessen Cloud auf OpenStack basiert. Services wie OpenShift, Kubernetes und Terraform stellen nicht nur Konkurrenz dar, sondern können ebenfalls komplementär zur OpenStack Cloud verwendet werden, um das Beste aus allen Tools herauszuholen.