# OpenStack

OpenStack ist ein Softwareprojekt, das eine freie Architektur für Cloud-Computing zur Verfügung stellt. Initiiert wurde es von Rackspace sowie der NASA und wird von diversen anderen Firmen, unter anderem AT&T, Canonical, Hewlett-Packard Enterprise, Intel, Red Hat, Huawei und IBM unterstützt. Entwickelt wird OpenStack als freie Software in der Programmiersprache Python. OpenStack ist unter der Apache-Lizenz lizenziert.

## Komponenten

OpenStack setzt sich aus einer Vielzahl von Komponenten zusammen, welche sich unter anderem um die Virtualisierung sowie die Bereitstellung von Storage kümmern. Wegen seiner Größe gilt es als äußerst komplex.

### Compute (Nova)

Bei Compute, auch unter dem Namen Nova bekannt, handelt es sich um den Teil des Stacks, der Gruppen von virtuellen Maschinen verwalten kann.
Die virtualisierten Systeme können über beliebig viele sog. Compute-Knoten verteilt werden. Als Hypervisor werden unter anderem KVM und Xen unterstützt, deren Ansteuerung über die libvirt erfolgt. Weitere Hypervisor sind, teilweise mit eingeschränktem Funktionsumfang, nutzbar.
Zur Bereitstellung von Storage für die virtuellen Maschinen kann z. B. iSCSI, SheepDog oder das im gleichen Projekt entwickelte Swift verwendet werden. Der Dienst Glance, der zum Auffinden, Registrieren sowie Empfangen von Images verwendet wird, vereinfacht die Anbindung an den Object Storage.
Die Verwaltung erfolgt über eine REST API, die mit dem CLI von Eucalyptus angesteuert werden kann. Graphische Oberflächen befinden sich in der Entwicklung, derzeit ist bereits eine Extension für MediaWiki sowie das OpenStack Dashboard verfügbar. Für den Betrieb von Nova sind weitere Komponenten notwendig. Diese sind eine Datenbank, z. B. Redis oder MySQL, RabbitMQ und memcached.

### Identity (Keystone)

Das OpenStack Identity-Modul mit dem Namen Keystone wird als Authentifizierungs- und Rechtesystem zwischen den OpenStack-Komponenten verwendet. Keystone gliedert den Zugriff auf Projekte in der Cloud in sogenannte „Mandanten“ (engl. „Tenant“) auf. Ein Mandant ist ein Mieter der Cloud und hat mindestens einen zugeordneten Benutzer. Es ist möglich, mehrere Benutzer pro Mandant mit verschiedenen Rechten anzulegen. Keystone benutzt ein Token-System zur Autorisierung und unterstützt auch die Anbindung an weitere Authentifizierungsmöglichkeiten wie z. B. LDAP. Weiterhin ist es möglich über einen vorgeschalteten Webserver die Authentifizierung auf den Webserver zu abstrahieren und somit z. B. direkt eines der zahlreichen vorhandenen Authentifizierungsmodule des Apache-Webservers zur Autorisierung zu benutzen.

### Image Service (Glance)

Der OpenStack Image Service, auch Glance genannt, ist ein Dienst, der OpenStack-Benutzern Abbilder bzw. Images von virtuellen Maschinen zur Verfügung stellt. Diese Images werden von Nova als Vorlage verwendet, um Instanzen von virtuellen Maschinen zu kompilieren. Als Storage Backend können dabei sowohl lokale Festplatten als auch Object Storage Lösungen wie Swift oder Ceph genutzt werden.
Neben den Images kann Glance auch Metadaten wie das verwendete Betriebssystem oder die Kernelversion speichern. Der Zugriff auf sowohl diese Metadaten als auch die Images selbst erfolgt über eine REST-API. Glance unterstützt eine Reihe von Formaten wie VHD, VMDK und qcow2.

### Networking (Neutron)

Das OpenStack Networking-Modul Neutron stellt den Netzwerkdienst für OpenStack bereit. Mit Neutron lassen sich Netzwerke, Subnetze und IP-Adressen/Floating-IPs verwalten. Eine Floating IP in OpenStack bezeichnet eine offizielle IP, welche als Schnittstelle vom internen zum öffentlichen Netz dient. Neben einem LoadBalancer, dem HA-Proxy und einem HealthMonitor unterstützt Neutron auch Techniken wie VLAN und VPN. Zur Absicherung der Netze nutzt Neutron eine Firewall, die vielseitige Portregeln z. B. auf Sicherheitsgruppenbasis erlaubt. Aus markenrechtlichen Gründen musste das OpenStack-Networking-Modul in „Neutron“ umbenannt werden. Der vorherige Name lautete „Quantum“.
Für die Verwaltung der Sicherungsschicht bietet Neutron die Möglichkeit, mittels Plugins verschiedene bereits vorhandene Netzwerk-Software wie Open vSwitch oder die Bridge-Funktionalität des Linux-Kernels zu verwenden.

### Block Storage (Cinder)

OpenStack Block Storage oder Cinder stellt virtuellen Blockspeicher in Form virtualisierter Speichermedien (Festplatten, CDs etc.) zur Verfügung. Der Blockspeicher kann an virtuelle Maschinen angehängt werden. Über eine API-Schnittstelle lässt sich Cinder mit Swift verbinden, sodass Blockspeichermedien mit dem Objektspeicher kommunizieren können. Mittlerweile werden auch viele andere Storage-Backends ganz oder teilweise unterstützt. Ebenso gibt es die Möglichkeit, mehrere Backends zu definieren und für jedes Backend einen Volume Type anzulegen, sodass beim Erstellen eines neuen Volumes ausgewählt werden kann, auf welchem Storage-Backend das Volume erstellt wird.

### Object Storage (Swift)

Swift ist der sogenannte Object Storage, der von Nova genutzt werden kann. Dieser ist für die redundante Datenspeicherung verantwortlich. Swift lässt sich auch als Backend für Cinder oder Glance einsetzen. Objekte werden in sogenannten Containern gespeichert, welcher in erster Linie der Gruppierung von Objekten und dem Speichern von Metadaten dienen und wiederum einzelnen Accounts gehören. Der Zugriff auf Objekte und Container erfolgt über eine REST-API.
Für die Dateiverwaltung kann z. B. Cyberduck verwendet werden.

### Dashboard (Horizon)

Das OpenStack Dashboard mit dem Namen Horizon ist ein Webinterface zur Verwaltung der OpenStack Cloud und stellt die wichtigsten Funktionen der OpenStack-Komponenten in einer einheitlichen GUI bereit. Das Webinterface von Horizon ist templatebasiert und kann durch den Cloudanbieter optisch angepasst sowie durch eigene Funktionen erweitert werden.

## Entwicklungsgeschichte

| Releasename | Version | Datum der Veröffentlichung | Releasenotes |
| Austin | 2010.1 | 21. Oktober 2010 | Releasenotes zu Austin |
| Bexar | 2011.1 | 3. Februar 2011 | Releasenotes zu Bexar |
| Cactus | 2011.2 | 15. April 2011 | Releasenotes zu Cactus |
| Diablo | 2011.3 | 22. September 2011 | Releasenotes zu Diablo |
| Essex | 2012.1 | 5. April 2012 | Releasenotes zu Essex |
| Folsom | 2012.2 | 27. September 2012 | Releasenotes zu Folsom |
| Grizzly | 2013.1 | 4. April 2013 | Releasenotes zu Grizzly |
| Havana | 2013.2 | 17. Oktober 2013 | Releasenotes zu Havana |
| Icehouse | 2014.1 | 17. April 2014 | Releasenotes zu Icehouse |
| Juno | 2014.2 | 16. Oktober 2014 | Releasenotes zu Juno |
| Kilo | 2015.1 | 30. April 2015 | Releasenotes zu Kilo |
| Liberty | 2015.2 | 15. Oktober 2015 | Releasenotes zu Liberty |
| Mitaka | 2016.1 | 7. April 2016 | Releasenotes zu Mitaka |
| Newton | 2016.2 | 6. Oktober 2016 | Releasenotes zu Newton |
| Ocata | 2017.1 | 22. Februar 2017 | Releasenotes zu Ocata |
| Pike | 2017.2 | 30. August 2017 | Releasenotes zu Pike |
| Queens | 2018.1 | 28. Februar 2018 | Releasenotes zu Queens |
| Rocky | 2018.2 | 30. August 2018 | Releasenotes zu Rocky |
| Stein | 2019.1 | 10. April 2019 | Releasenotes zu Stein |
| Train | 2019.2 | 16. Oktober 2019 | Releasenotes zu Train |
| Ussuri | 2020.1 | 13. Mai 2020 | Releasenotes zu Ussuri |
| Victoria | 2020.2 | 14. Oktober 2020 | Releasenotes zu Victoria |
| Wallaby | 2021.1 | 14. April 2021 | Releasenotes zu Wallaby |
| Xena | 2021.2 | 6. Oktober 2021 | Releasenotes zu Xena |
| Yoga | 2022.1 | 30. März 2022 | Releasenotes zu Yoga |
| Zed | 2022.2 | 05. Oktober 2022 | Releasenotes zu Zed |
| Antelope | 2023.1 | 22. März 2023 | Releasenotes zu Antelope |
| Bobcat | 2023.2 | 4. Oktober 2023 | Releasenotes zu Bobcat |
| Caracal | 2024.1 | 3. April 2024 | Releasenotes zu Caracal |
| Dalmatian | 2024.2 | 2. Oktober 2024 | Releasenotes zu Dalmatian |

## Nutzung

Anfang März 2012 wurde bekannt, dass die Deutsche Telekom plant, ab Mitte des Jahres einen neuen Marktplatz mit dem Namen Business Marketplace ins Leben zu rufen, dessen Funktionalität auf OpenStack aufbaut. Der Marktplatz wurde mit dem Start weiterer OpenStack-Angebote, der InterCloud (mit Cisco) und der Open Telekom Cloud (mit Huawei), auf cloud.telekom.de überführt.
Ebenso verwendet die Plattform Wikimedia Labs der Wikimedia Foundation OpenStack als Plattform.
Das CERN, die Europäische Organisation für Kernforschung, setzt ebenfalls auf OpenStack als Plattform.
Auch die bwCloud der baden-württembergischen Universitäten und Hochschulen basiert auf OpenStack.
Auch die Schwarz-Gruppe (Lidl und Kaufland) benutzt eine Plattform basierend auf OpenStack für eine öffentliche Cloud-Infrastruktur, die ab Mitte 2021 starten soll.
Der deutsche Cloud-Anbieter PlusServer betreibt mit der pluscloud open ebenfalls eine Cloud-Infrastruktur, die auf OpenStack setzt. Die pluscloud open gibt es seit Dezember 2020. Sie war eine der ersten Clouds, die auf dem Sovereign Cloud Stack, einem Teil von Gaia-X basieren.

## Foundation

Die OpenStack Foundation koordinierte die Entwicklung und Verteilung von OpenStack. Die Mitgliedschaft ist kostenlos und unterliegt keinerlei Beschränkungen, obwohl die Foundation ihre Mitglieder dazu anhält, sich technisch oder gemeinschaftsbildend an OpenStack zu beteiligen. Firmen können sich als Platinum, Gold oder Corporate Sponsor beteiligen.
Technische Entscheidungen trifft das Technical Committee. Dessen 13 Mitglieder werden von den sich technisch an OpenStack Beteiligenden gewählt. Strategische und finanzielle Entscheidungen gehen vom Board of Directors aus, dem je acht Vertreter von Platin- und Gold-Sponsoren angehören, sowie acht aus der Foundation gewählte Mitglieder. Daneben gibt es das User Committee, welches Nutzer-Anliegen gegenüber Technical Committee und Board of Directors vertreten soll.
Im Jahre 2020 benannte sich die Stiftung um in „Open Infrastructure Foundation“ (OIF). Die OIF erweitert ihre Ziele über OpenStack hinaus und treibt die Entwicklung vieler Open-Source-Vorhaben für Cloudtechnologien und Container-Szenarien voran. Neben bisherigen Mitgliedern wie AT&T, Ericsson, Huawei, Red Hat und Tencent gehören neu der Finanztechnologie-Konzern Ant Group, die Intel-Tochter Wind River und der chinesische Netzwerk-Konzern FiberHome zu den Platin-Mitgliedern der OIF. Diese fördert neben OpenStack nun auch Magma, Airship, Kata Containers, OpenInfra Labs, StarlingX und Zuul. Im Jahre 2020 gehörten der OIF rund 100.000 Mitglieder in 187 Staaten an.