Cloud Computing und OpenStack sind heute schon fast Synonyme. Trotz seiner noch relativ jungen Vergangenheit gilt das Opensource-Projekt als Nummer 1, wenn es darum geht, unternehmensspezifische Cloud-Lösungen zu realisieren.
Zahlreiche Konzerne und Organisationen setzen inzwischen auf OpenStack - darunter Walmart, Disney, Wells Fargo und die europäische Forschungsorganisation CERN. Profitieren können von der Cloud-Software aber nicht nur die Großen, sondern auch KMUs und kleine Startups, die sehr schnell wachsen.
Wer sich mit OpenStack etwas näher beschäftigt, merkt aber schnell: Aufgrund seiner Größe ist das Framework mittlerweile recht komplex und unübersichtlich geworden. Und wer sich nicht schon näher mit Clouds beschäftigt hat, kann kaum nachvollziehen, worum es bei der inzwischen riesigen Software-Sammlung eigentlich geht. Dieser Beitrag stellt deshalb die wichtigsten Fragen rund um OpenStack zusammen.
Was ist OpenStack?
OpenStack ist ein Software-Framework, das eine freie Architektur für Cloud Computing zur Verfügung stellt. Interessierten Organisationen werden quelloffene Software-Komponenten zur Verfügung gestellt, mit denen sie selbst eine Cloud-Struktur nach dem Vorbild von Amazon und anderen Service-Anbietern generieren können.
Im Wesentlichen zielt die OpenStack Software auf die Cloud-Kategorie Infrastructure as a Service (IaaS), mit der sich große Gruppen von virtuellen Servern in einem Rechenzentrum betreiben und verwalten lassen. Das Ziel des OpenStack-Projekts ist ein erleichterter und weitgehend standardisierter Aufbau von Public und Private Clouds.
Was ist der Vorteil von OpenStack?
Um die Integration über Cloud-Anbieter-Grenzen hinweg ist es bislang noch nicht so gut bestellt. Für den Aufbau und Betrieb flexibler "Multi-Cloud"-Umgebungen sind deutlich mehr Standardisierung und Kontrolle erforderlich, als die Anbieter mit ihren eigenen Produkten bislang ermöglichen können. Daher kommt der offenen, herstellerneutralen OpenStack-Infrastruktur so viel Aufmerksamkeit von Seiten der Anwender zu.
OpenStack-Unterstützer wie Dell und HP haben zudem ein Interesse daran, einen Gegenpol zu Amazons Diensten anzubieten. Die OpenStack-Community sieht deshalb ihr Projekt in direkter Konkurrenz zu Amazons Web Services - und bemüht sich um weitgehende Kompatibilität bei den Schnittstellen nach außen.
Foto: Crisp
Durch die definierten Schnittstellen können neue Komponenten oder Module in das Gesamtsystem oder den "Stack" eingefügt werden. Damit ist es möglich, Interoperabilität zwischen Cloud Services zu schaffen. Zudem können damit Amazon-ähnliche Cloud-Dienste im unternehmenseigenen Rechenzentrum relativ einfach aufgebaut werden.
Für OpenStack spricht dabei insbesondere die Kombination aus Skalierbarkeit und Quelloffenheit: Die Software eignet sich für eine kleine private Cloud aus wenigen Servern ebenso wie für eine Public Cloud auf Amazon-Niveau.
Wer ist die Zielgruppe von OpenStack?
OpenStack adressiert grundsätzlich alle Organisationen, die Cloud-Infrastrukturen in Form von Public oder Private Clouds aufbauen wollen. Das können Service Provider ebenso sein wie beliebige andere Unternehmen, Regierungsbehörden und akademische Einrichtungen. Aktuell nutzen zwar eher größere Unternehmen OpenStack, aber für kleinere Betriebe ist das Framework mindestens genauso interessant. Die in Frage kommenden Branchen reichen von IT & Telco-Unternehmen über SaaS und eCommerce-Anbieter bis zum Gesundheitswesen und zur wissenschaftlichen Forschung.
Wer steckt hinter OpenStack?
Hinter OpenStack steht eine Community, die es sich zur Aufgabe gemacht hat, eine freie Software für Private und Public Clouds lizenzfrei zur Verfügung zu stellen. Lizenziert wird OpenStack von der Apache Foundation, geschrieben ist die Software hauptsächlich in Pyhton.
Im Juli 2012 wurde die OpenStack Foundation gegründet. Die Non-Profit Organisation koordiniert die Entwicklung sowie Verteilung der OpenStack-Komponenten. Sie stellt insbesondere auch die quelloffene Testsoftware zur Verfügung und validiert die Ergebnisse.
Die Stiftung wird von einem Boards of Directors geführt, das aus 16 Vertretern der Supporter und acht Vertretern der Entwickler-Community besteht. Inzwischen beschäftigt die Foundation 15 Vollzeitmitarbeiter, die sich um die Koordination der Entwicklerteams, die Website, die Unternehmenskontakte und die Organisation von Veranstaltungen kümmert - einschließlich des zweimal jährlich stattfindenden OpenStack Summits.
Wer unterstützt OpenStack?
OpenStack wird von namhaften IT-Unternehmen unterstützt, darunter HP, IBM, Intel und VMware. Der Support erfolgt ideell, personell und finanziell. Die Supporter werden in Platin-, Gold- und Corporate Sponsoren unterteilt. Platin-Sponsoren wie zum Beispiel HP, IBM, Intel, Rackspace oder Red Hat zahlen einen Jahresbeitrag von 500.000 Dollar und stellen 2 Vollzeitmitarbeiter bereit. Gold-Sponsonen wie Cisco, Dell, DreamHost, EMC, Ericsson und Hitachi zahlen je nach Unternehmensgröße zwischen 50.000 und 200.000 Dollar, und die 90 Corporate- oder Start-up-Sponsoren 10.000 Dollar im Jahr.
Foto: Red Hat
Wie entstand OpenStack?
Die Geschichte von OpenStack beginnt 2009. Damals fängt der Cloud Provider Rackspace an, Teile seiner Cloud-Infrastruktur als Opensource-Software bereit zu stellen. Das Unternehmen erhoffte sich durch Einbezug der Opensource-Community, die teure Entwicklung auf eine breitere Basis zu stellen und Entwicklungskosten zu sparen. Zur gleichen Zeit hatte die US-Raumfahrtbehörde NASA ein ähnliches Ansinnen. Sie wollte brachliegende Rechenkapazitäten, die durch abgeschlossene Projekte entstanden, an zentraler Stelle bündeln, um sie anderen Abteilungen und Projekten, die Kapazität nachfragten, bereit zu stellen.
Foto: Openstack.org
Seit diesen Anfangstagen ist einiges passiert. Die Nasa ist heute nicht mehr involviert, dafür aber IT-Branchengrößen wie HP, IBM oder Intel. Die erste Version der Cloud-Umgebung mit dem Namen OpenStack erschien 2010. Bereits im ersten Jahr haben viele Entwickler und Unternehmen ihr Interesse bekundet, bei OpenStack mitzuarbeiten und das Projekt auch finanziell zu unterstützen. Das führte dann im Juli 2012 zur Gründung der Stiftung, die unabhängig von kommerziellen Interessen sein soll.
Ein bedeutendes Schritt in der OpenStack-Entwicklung war, als es zum Standard für Cloud Computing in Ubuntu 12.04 gemacht wurde und damit erstmals kommerziellen Support für das Projekt gab. Heute hat sich die Lösung fest etabliert, und alle großen Linux-Anbieter haben OpenStack-Anwendungen im Portfolio.
Warum ist OpenStack so erfolgreich?
Viele Unternehmen möchten gern eigene Cloud-Technologie in ihrem Rechenzentrum einsetzen. Public Clouds sind hier keine Alternative. Unternehmen, die mit Amazon AWS oder Microsoft Azure arbeiten, sind primär darauf aus, Kosten zu sparen oder in Spitzenzeiten bei Entwicklung, Verkauf oder anderen Projekten vorübergehend Rechen- und Speicherkapazitäten anzumieten. Das stellt langfristig keine von der unternehmeneigenen IT kontrollierte Lösung dar.
Wenn man Cloud als strategische Lösung sieht und die Cloud-Vorteile im eigenen Haus implementiert - also quasi sein eigenes Amazon einrichtet - bietet OpenStack mit seiner offenen Architektur gerade die richtigen Features.
Es führt Standards im Cloud Computing ein und nimmt Unternehmen, die eine Umsetzung planen, die Bedenken vor einem Vendor Lock-In - also der Abhängigkeit von einem Hersteller. Der Quellcode ist zudem komplett frei verfügbar und basiert auf der Apache-Lizenz. Wie bei allen Open Source-Projekten ist jeder, der sich beteiligt, dazu angehalten, seine Erfahrungen in der Community einfließen zu lassen.
Wie ist die Entwicklung organisiert?
OpenStack ist eine Sammlung mehrere Unterprojekte, die sich einzelnen Kategorien zuordnen lassen. Jedes Projekt unterliegt einem definierten Prozess, der von der Idee über die Realisierung, den Feinschliff bis hin zur Veröffentlichung führt. Der so genannte "Inkubator Status" zeigt an, dass eine Komponente bald einsatzreif ist.
Module in der Inkubationsphase werden zwar mit OpenStack ausgeliefert, sind jedoch noch nicht oder nur eingeschränkt für den produktiven Einsatz geeignet. Darüber hinaus existieren noch weitere Module die bisher nicht den Schritt in die Inkubationsphase geschafft haben. Aktuell (Juli 2015) arbeiten weltweit knapp 1500 Entwickler und 160 Organisationen am Opensource-Framwork mit.
Foto: Openstack.org
Wie ist OpenStack aufgebaut
OpenStack setzt sich aus einer Vielzahl von Komponenten zusammen, welche sich unter anderem um die Virtualisierung sowie die Bereitstellung von Storage kümmern.
Foto: Openstack.org
Grudsätzlich ist OpenStack modular aufgebaut. Jede Komponente des Modulsystems kümmert sich um eine bestimmte Aufgabe. Wie bei Opensource-Projekten üblich haben alle Kompontenten offizielle Funktionsbezeichnungen und Codenamen.
Beim modularen Aufbau von OpenStack wird zwischen verschiedenen Stufen der Komponenten unterschieden. Die Kernkomponenten von OpenStack bilden die Grundfunktionen für OpenStack ab und werden üblicherweise bei jeder Implementation von OpenStack installiert.
Was sind die grundlegenden Komponenten?
OpenStack besteht aus mehreren Kernkomponenten, die im folgenden in einem kurzen Überblick vorgestellt werden.
Die OpenStack-Hauptkomponente ist das Compute-Modul Nova. Mit ihr werden die Instanzen der Benutzer angelegt, verwaltet und gelöscht. Das Modul kümmert sich also um die Administration der verfügbaren Rechenleistung und startet und stoppt virtuelle Maschinen. Die Maschinen werden nicht nur administriert, sondern können auch mit diversen Tools kontrolliert werden. So können etwa Nutzerzugriffe auf die zur Verfügung gestellten Ressourcen gesteuert werden. Die Komponente unterstützt die wichtigsten Hypervisoren wie Vmware, KVM, Hyper-V und Xen.
Foto: Openstack.org
Neutron ist die Netzwerkkomponente von OpenStack. Sie setzt Netzwerke auf, konfiguriert sie, weist sie Compute-Instanzen zu und verwaltet dafür IP-Adressen und VLANs. Die Komponente enthält Software Defined Netzworking Funktionen wie Open vSwitch oder das von Juniper angebotene Opencontrail. Es kann fast alle Switches, Router und Netzwerk-Appiances der großen Hersteller ansteuern. Ein richtig konfiguriertes Neutron lässt den Kunden einer Cloud-Umgebung seine virtuelle Netzwerkumgebung nach Gutdünken gestalten.
Was sind die wichtigsten Storage-Komponenten?
Das Thema Storage ist so komplex, dass gleich mehrere Komponenten notwendig sind, um die unterschiedlichen Aspekte abzudecken. Das Modul Swift bietet Object Storage an und ergänzt "Computing on demand" um "Storage on demand". Es stellt damit ähnlich wie Amazons Simple Storage Service (S3) ein skalierbares und redundantes Speichersystem für Daten bereit. Dazu greift es auf verschiedene Backends zurück, die die Daten letztlich speichern. Swift bildet den Teil von OpenStack, der von Rackspace stammt.
Der Block-Datenspeicher Cinder dient als persistenter Block-Level Speicher und stellt Software zur Verfügung, um einen Service aufzubauen und zentral zu managen. Physikalischer Storage kann direkt an den Cinder Server angehängt werden oder aber an Drittanbieter. Letztere können ein spezielles Cinder Plug-in nutzen, um den externen Storage zu integrieren. Cinder bringt Treiber für alle großen Storage-Systeme mit wie HP, IBM, EMC oder Hitachi.
Object Storage wie Swift erlaubt es, redundante und skalierbare Storage Cluster mit einer Größe im Petabyte-Bereich aufzubauen. Hier sollen vor allem langfristig Daten gespeichert und archiviert werden.
Der Image Dienst Glance dient der Verwaltung von Datenträger-Abbildern. Er liefert in OpenStack-Clouds fertige Images von virtuellen Festplatten aus, die Kunden für ihre VMs verwenden können. Dabei ist Glance nicht als Speicher-, sondern als Verwaltungsdienst zu sehen. Die eigentlichen Daten können in Swift liegen. Der Begriff des Image kann übrigens sehr weit gesehen werden. Der Festplatteninhalt einer Betriebssystem-Installation gehört etwa ebenso dazu wie die vollständige Konfiguration einer virtuellen Maschine. Fertige Images muss der Anbieter nicht bereitstellen, denn die können sich Kunden auch selbst in OpenStack hochladen.
Wie erfolgt das Zusammenspiel der Komponenten?
Die vielen Komponenten müssen in irgendeiner Weise gesteuert werden. Dies erfolgt mit der OpenStack-Komponente Horizon. Mit dem Horizon Dashboard bietet OpenStack ein benutzerfreundliches Webinterface zur Verwaltung der eigenen Cloud. Über das Dashboard stehen die wichtigsten Cloud-Funktion zur Verfügung. Anwender können die Steuerzentrale beispielsweise nutzen, um - anbhängig von ihren Berechtigungen - Compute-Einheiten zu starten und zu stoppen sowie einzelne Parameter zu konfigurieren.
Die Berechtigung der User und die Zugriffsrechte für die Komponenten verwaltet Keystone. Das Modul ist zuständig für Authentifizierung, damit sich Benutzer in der Cloud anmelden und dort beispielsweise VMs starten und beenden können. Keystone unterscheidet dabei zwischen Mandanten (Tenant) und Benutzern. Ein Mandant ist ein Mieter in der Cloud und kann weitere Benutzer verwenden. Keystone setzt auf Grundlage der Einstellungen des Administrators auch Richtlinien um: So entscheidet es darüber, welcher Nutzer in der Cloud welche Berechtigungen hat.
Foto: Openstack.org
Welche weiteren OpenStack-Komponenten gibt es?
Neben den Kernkomponenten bietet OpenStack weitere integrierte Komponenten wie das Telemetrie-Modul mit dem Namen Ceilometer oder Heat zur Orchestrierung. In der Entwicklungsphase befinden sich noch viele weitere Komponenten wie aktuell das Projekt Ironic zum Provisionieren "echter" Hardware, Trove als Cloud Datenbank und Sahara für Elastic Map Reduce.
Wie ist die aktuelle Situation?
Aktuell ist das 11. Update von OpenStack verfügbar. Diese Version OpenStack Kilo zeichnet sich besonders durch bessere Interoperabilit mit externen Treibern und neuen Technologien wie Containern aus. Eines der prominenten Features ist eine Komponente namens Ironic, die es ermöglicht, OpenStack direkt auf der Hardware (Bare Metal) anstatt auf virtuellen Maschinen zu deployen.
Die weltweit erste verfügbare OpenStack-Distribution, die auf das Kilo-Release setzt ist Ubuntu 15.05 und die OpenStack-Distribution von Canonical. Laut Crip Research verwenden 64 Prozent der OpenStack-Nutzer die Ubuntu-Distribution für den produktiven Einsatz.
Ubuntu OpenStack ergänzt OpenStack mit einem umfangreichen Ökosystem zertifizierter Partner-Lösungen etwa aus den Bereichen Software-Defined-Network und Software-Defined-Storage. Für IT-Leiter stellt sich die Frage, wie einfach und in welchem Zeithorizont sie von diesen neuen Funktionen profitieren können.
Gibt es Konkurrenzprojekte zu OpenStack?
Ähnlich wie OpenStack sind auch Eucalyptus, openQRM und OpenNebula offene Cloud-Plattformen zur Verwaltung von virtuellen Maschinen. Mit allen drei Lösungen lassen sich private, hybride und öffentliche Clouds einrichten - inklusive umfangreicher Optionen zur Verwaltung von Benutzern und Gruppen sowie Quotas für Ressourcen. Die Projekte decken alle Teilbereiche des Cloud-Managements ab. Das momentan größte Projekt OpenStack ist inzwischen aber der De-facto-Standard in diesem Bereich.
Was bringt die OpenStack-Zukunft?
Derzeit gibt es in OpenStack vier große Baustellen: Diese betreffen zum Einen die Compute-Ebene, die der Hypervisor-Ebene bei den Virtualisierungsplattformen entspricht, zum Zweiten das Cloud Networking (Neutron), das im Bezug auf Skalierung noch verbesserungsbedürftig ist. Als Drittes die Entwicklung von Low-Cost-Speichern, um die Verlagerung von praktisch der gesamten Speicherintelligenz in die Cloud zu ermöglichen und viertens das Thema "Platform as a Service" (PaaS), dass über die Infrastruktur-Virtualisierung hinaus eine Software-Umgebung für vereinfachte Applikations-Entwicklung zur Verfügung stellt.