OpenShift vs. OpenStack

Mit OpenShift und OpenStack werden hochverfügbare und skalierbare Cloud-Plattformen aufgebaut. In Kombination decken die Systeme die komplette Bandbreite von der Provisionierung virtualisierter Hardware bis zu Entwicklung und Betrieb containerisierter Anwendungen ab. Besonders attraktiv ist die Nutzung zur Umsetzung von Hybrid Cloud-Strategien. OpenShift und OpenStack erfreuen sich bei großen, global operierenden Organisationen besonderer Beliebtheit.

OpenShift vs. OpenStack im Überblick

Historisch betrachtet, entstand OpenStack etwas früher als OpenShift. Die Entwicklung der beiden Projekte steht auch stellvertretend für den Übergang von virtuellen Maschinen zu Anwendungs-Containern. Die Container-Virtualisierung hat sich über das vergangene Jahrzehnt als vorherrschende Virtualisierungs-Technologie etabliert.

Was für Gemeinsamkeiten und Unterschiede haben OpenShift und OpenStack?

Zunächst handelt es sich bei OpenShift und OpenStack um Open Source-Projekte, welche um die Jahre 2010/2011 entstanden. Beide dienen zum Aufbau hochverfügbarer, skalierbare Systeme in Hybrid Cloud-Umgebungen. Sie werden von großen, global agierenden Organisationen eingesetzt und lassen sich auf einem breiten Spektrum unterliegender Rechen-Infrastruktur betreiben.

Man kann sowohl OpenShift als auch OpenStack als eine Art „Cloud-Betriebssystem“ verstehen. Jedoch kommt jeweils eine andere Betrachtungsebene zum Tragen. OpenShift wird für Entwicklung und Betrieb containerisierter Anwendungen genutzt. Nutzer können selbsttätig Anwendungen und Dienste provisionieren, betreiben und überwachen. Dabei liegt der Fokus auf optimierten Entwicklungs- und DevOps-Workflows.

OpenStack setzt auf einer tieferen Abstraktionsebene an. Mit der Plattform wird auf Basis verteilter Hardware eine virtualisierte Cloud-Infrastruktur aufgebaut. Provisioniert werden virtuelle Maschinen mit CPU-Kernen und Arbeitsspeicher, sowie virtuelle Netzwerke und verteilte Massenspeicher. Dem Self-Service Modell folgend, fordern Nutzer selbsttätig Ressourcen an. Schauen wir uns an, wie OpenShift vs. OpenStack in Hinsicht auf ihre Unterschiede aufgestellt sind:

Eigenschaft

OpenShift

OpenStack

Hersteller

Red Hat

OpenInfra Foundation

Virtualisierungstyp

Container-Virtualisierung

Virtuelle Maschinen bzw. virtualisierte Hardware

Virtualisierungs-Technologie

K8s

Hypervisor wie KVM, XEN, ESXi

Kontroll-Ebene

Verteilt

Zentralisiert

Service-Modell

Platform-as-a-Service (PaaS)

Infrastructure-as-a-Service (IaaS)

Nutzung von Cloud-Ressourcen

Nutzt Cloud-Ressourcen für den Aufbau der Anwendungsschicht

Stellt Cloud-Ressourcen auf Basis virtualisierter Hardware zur Verfügung

Wie werden OpenShift und OpenStack eingesetzt?

Mit OpenStack baut eine Organisation dem Infrastructure-as-a-Service (IaaS)-Modell folgend eine eigene Cloud-Umgebung auf. Dabei entsteht eine interne Cloud, mit man sie von AWS und Alternativen gewohnt ist. Geographisch verteilte Hardware wird als Cloud-Ressourcen provisioniert und über verschiedene Schnittstellen im System verfügbar gemacht.

OpenShift hingegen übernimmt die zentralisierte Verwaltung von Anwendungs-Entwicklung und -Betrieb. Die Software basiert auf Kubernetes (K8s) und steuert K8s-Cluster über Cloud-Grenzen hinweg. Dem Platform-as-a-Service (PaaS)-Modell folgend lassen sich die Funktionen des Systems über eine Web-Oberfläche verwalten.

Trotz des ähnlich klingenden Namens handelt es sich bei OpenShift und OpenStack nicht um verwandte Systeme. Sie lassen sich unabhängig voneinander einsetzen. Jedoch ist es ebenfalls möglich, beide in Kombination zu nutzen. Als Teil einer Hybrid Cloud-Strategie lässt sich mit OpenStack eine Private Cloud aufbauen. OpenShift nutzt die darin enthaltenen Ressourcen, um Anwendungen und Dienste bereitzustellen und zu verwalten. Ferner ist es möglich OpenStack-Komponenten auf K8s- bzw. OpenShift-Clustern zu deployen.

Schauen wir uns im Folgenden die Vorteile und Nachteile der beiden Technologien im Detail an. Wir gehen dabei auch auf besonders lohnende Einsatzszenarien ein und schließen unsere Betrachtung mit einer vergleichenden Übersicht ab.

OpenStack — die offene Cloud-Plattform

Mit OpenStack steht eine offene Plattform zum Aufbau skalierender Cloud-Umgebungen zur Verfügung. Die Software liegt als Abstraktionsebene über dezentralisierter Hardware-Infrastruktur. Die Kernfunktionalität besteht im Provisionieren und Zuweisen von Rechen- Netzwerk-, und Massenspeicher-Kapazitäten. Dem Infrastructure-as-a-Service (IaaS) Modell folgend fordern Nutzer eigenständig die benötigten Ressourcen an. Für die Verwaltung des Systems steht neben obligatorischen APIs eine Web-Oberfläche zur Verfügung.

Über die Ressourcen-Provisionierung hinausgehend umfasst OpenStack eine Reihe weiterer Funktionalitäten. Dazu gehören u.A. Identitätsmanagement der Nutzer, Verwaltung von DNS-Einträgen, sowie ein Image-Service für die Verwaltung von VM-Images. Praktischerweise sind die einzelnen Funktionen als individuelle Komponenten gekapselt. In der aktuellen OpenStack Version existieren mehr als drei Dutzend Komponenten; für gewöhnlich kommen innerhalb eines Projekts nicht alle davon zum Einsatz. Wir geben einen kurzen Überblick der wichtigsten Komponenten:

OpenStack-Komponente

Funktionalität

Beschreibung

Nova

Compute-Service

Virtualisierte CPU-Kerne und Arbeitsspeicher provisionieren.

Swift

Objekt-Speicher

Speichern von S3-artigen Objekten auf Grundlage virtualisierter, redundanter Massenspeicher.

Glance

Image Service

VM-Images für den Betrieb der Plattform verwalten.

Horizon

Web-Dashboard

Nutzer loggen sich über das Dashboard ein und verwalten von dort aus die einzelnen Systemkomponenten.

Keystone

Identitäts-Service

Systemübergreifende, API-basierte Authentifizierung und Autorisierung der Nutzer bereitstellen.

Cinder

Block-Speicher

Hochverfügbare, fehlertoleranter Massenspeicher, welcher wie eine skalierende, Cloud-Festplatte funktioniert.

Neutron

Netzwerk-Verwaltung

Die Virtuelle Netzwerk Infrastruktur (VNI) des Systems verwalten.

Ironic

„Bare metal“-Provisionierung

Bare metal-Infrastruktur verwalten; umfasst den kompletten Lifecycle der Bare metal-Maschinen, inklusive Erfassung, Provisionierung, Pflege und Stilllegung.

Trove

Datenbank-Service

Skalierbare, verlässliche Cloud-Datenbanken provisionieren und verwalten.

Magnum

Container-Orchestrierung

Container-Engines wie K8s und Alternativen auf Basis virtueller Maschinen oder auf Bare metal-Infrastruktur bereitstellen.

Was sind die Vorteile von OpenStack?

Zunächst eröffnet OpenStack Organisationen die Möglichkeit, eine eigene Cloud-Infrastruktur auf Basis existierender Technologie aufzubauen. Daraus ergeben sich dramatische Einsparungen, da nicht komplett bei null angefangen werden muss. OpenStack besteht aus einzelnen Komponenten, welche den Anforderungen nach konfiguriert werden. Es handelt sich um Open Source-Software, welche für jedermann frei zur Verfügung steht. Weiterentwicklung und Dokumentation der Plattform werden von der OpenStack-Community vorangetrieben.

Was sind die Nachteile von OpenStack?

Aufgrund der Komplexität der Software gilt die Installation von OpenStack als herausfordernd. Das Gesamtpaket umfasst eine Vielzahl einzelner Komponenten, welche einzeln konfiguriert werden müssen. Auch die von der Community beigesteuerte Dokumentation hinkt manchmal den tatsächlichen Gegebenheiten hinterher. Beiden Nachteilen kann durch Einsatz von Spezialisten oder Zusammenarbeit mit Tech-Partnern gegengesteuert werden, wodurch sich jedoch zusätzliche Kosten ergeben. Da OpenStack fast ausschließlich für größere Projekt zum Einsatz kommt, dürfte in den meisten Fällen ein entsprechendes Budget zur Verfügung stehen.

Für welche Einsatzzwecke ist OpenStack am besten geeignet?

OpenStack eignet sich am besten dazu, eigene Cloud-Infrastruktur auf dezentralisierter Rechen-Hardware aufzubauen. Besonders stark ist die Software im Bereich der virtuellen Maschinen (VM). In Kombination mit OpenShift oder vergleichbarer K8s Management-Lösungen lassen sich VM- und Container-basierte Anwendungen Seite an Seite betreiben. Auch nativ gehört die Container-Virtualisierung mit der „Magnum“-Komponente mittlerweile zum Funktionsumfang dazu.

OpenShift — die mächtige Anwendungs- und Entwicklungs-Plattform

OpenShift wird zum Aufbau verteilter, skalierender Anwendungs- und Entwicklungsumgebungen nach dem Platform-as-a-Service (PaaS) Modell eingesetzt. Die Software stellt eine komplette Ausführungsumgebung bereit, in der Container deployt, ausgeführt, verwaltet und orchestriert werden. Die integrierten Werkzeuge vereinfachen moderne Entwicklungs- und Deployment-Workflows.

Als Unterbau kommt bei OpenShift eine spezielle Kubernetes (K8s) Distribution zum Einsatz. Diese lässt sich über Cloud- und Infrastruktur-Grenzen hinweg deployen, wobei eine konsistente Nutzererfahrung erzielt wird. Die K8s-Kernfunktionalität wird um Sicherheits- und Monitoring-Features ergänzt und fußt auf zentralisiertem Policy-Management. So wird über die Softwarelandschaft einer gesamten Organisation hinweg ein hoher Qualitätsstandard gewährleistet. Zur Implementierung kommen größtenteils OpenShift-Operatoren zum Einsatz:

OpenShift-Komponente

Erklärung

OpenShift API Server

Der OpenShift API Server überprüft und konfiguriert OpenShift-Ressourcen, wie Projekte, Routes und Templates.

OpenShift Controller Manager

Der OpenShift Controller Manager überwacht etcd auf Änderungen von OpenShift-Objekten, wie Projekte, Routes und Template Controller-Objekte und benutzt die API, um den gewünschten Zustand zu erzielen.

OpenShift OAuth API Server

Der OpenShift OAuth API Server überprüft und konfiguriert die Daten für die Authentifizierung auf der OpenShift Container Platform. Dazu gehören Benutzer, Gruppen und OAuth Token.

OpenShift OAuth Server

Benutzer erfragen ein Token vom OpenShift OAuth Server, um sich gegenüber der API zu authentifizieren.

Was sind die Vorteile von OpenShift?

OpenShift bändigt die operative Komplexität, welche mit der Administration selbstverwalteter K8s-Cluster einhergeht. So lassen sich mehrere K8s-Cluster über die Grenzen öffentlicher und privater Cloud-Infrastrukturen hinweg zentralisiert verwalten. Dem PaaS-Ansatz folgend können Entwickler über eine Web-Schnittstelle selbsttätig Ressourcen für ihre Projekte anfordern. Integrierte Tools und Workflows für Continuous Integration und Continuous Delivery (CI/CD) runden den Funktionsumfang ab Daraus ergeben sich drastisch gesenkte Auslieferungszeiten.

Generell überzeugt OpenShift mit den integrierten Sicherheitsvorkehrungen. Mit „Quay“ steht eine speziell abgesicherte Container-Registry zur Verfügung. Durchgängige Autorisierung und Authentifizierung begrenzt den Zugriff der Nutzer auf die einzelnen Bereiche des Systems. Die Möglichkeit, einzelne Cluster in verschiedenen geographischen Regionen zu hosten, erlaubt in Hinsicht auf Datenschutz und Datenhoheit bessere Compliance.

Was sind die Nachteile von OpenShift?

OpenShift läuft nur auf speziellen Betriebssystemen von Red Hat, wie „Red Hat Enterprise Linux CoreOS“ (RHCOS) und „Red Hat Enterprise Linux“ (RHEL). Die Installation gilt als ausgesprochen aufwendig. So kann die Einrichtung für größere Projekte mehrere Wochen in Anspruch nehmen. Aufgrund der strengeren Sicherheitsvorkehrungen kommen speziell abgesicherte Container-Images aus Red Hat’s „Quay“ Container-Registry zum Einsatz.

Für welche Einsatzzwecke ist OpenShift am besten geeignet?

Auf Basis von OpenShift werden Firmen-eigene Platform-as-a-Service- (PaaS)-, Software-as-a-Service- (SaaS)- und Containers-as-a-Service- (CaaS)-Lösungen implementiert. Dabei liegt der Fokus ganz klar auf großen Organisationen. Für einzelne Entwickler ist OpenShift sicherlich zu groß und zu schwer zu handhaben.

OpenShift vs. OpenStack — der direkte Vergleich

Eigenschaft

OpenShift

OpenStack

Bezugsquelle der Software

Neben den von Red Hat angebotenen Enterprise-Versionen steht mit OKD eine frei verfügbare Community-Edition zur Verfügung.

Die Entwicklung von OpenStack unterliegt der Community, geleitet durch die OpenInfra Foundation. Neben der offiziellen, frei verfügbaren Version bieten große IT-Häuser kostenpflichtige Distributionen an.

Deployment-Modell

Multi- und Hybrid-Cloud Deployments sind möglich, jedoch ggf. komplex. Es lohnt sich, auf standardisierte Deployment-Mechanismen zurückzugreifen.

OpenStack wird oft „On-premises“ auf der eigenen Recheninfrastruktur betrieben. Das Deployments aufwendig sind, stehen angepasste Distributionen großer Anbieter samt dediziertem Support zur Verfügung. Ferner gibt es verschiedene Cloud-basierte Ansätze und Managed-Lösungen.

Unterstützte Cloud-Plattformen

Als Self-managed Lösung lässt sich OpenShift auf praktisch jeder Infrastruktur betreiben. Als Managed-Lösung läuft die Software auf den Cloud-Plattformen AWS, Azure, Google Cloud und IBM Cloud.

OpenStack läuft auf so ziemlich allen Cloud-Plattformen in virtuellen Maschinen, sowie auf „Bare metal“-Maschinen per Hypervisor. Ferner lassen sich die Komponenten in Container-Umgebungen aller großen Anbieter installieren.

Installation

Benötigt Cluster bzw. Cloud-Umgebung für Installation.

Die Installation der OpenStack-Controller erfolgt entweder On-premises, oder auf von einem Anbieter bereitgestellter Infrastruktur.

Releases

Es finden bis zu drei Releases pro Jahr statt.

Regulär gibt es zwei Releases pro Jahr.

Update-Verwaltung

Updates werden durch den „Cluster Version Operator“ vereinfacht.

Updates sind komplex und bergen ein Risiko, das System zu beschädigen. Updates der einzelnen Komponenten müssen in einer bestimmten Reihenfolge vorgenommen werden.

Image-Verwaltung

Red Hat’s eigene „Quay“ Container-Registry enthält auf Schwachstellen überprüfte Container-Images.

Die „Glance“-Komponente verwaltet die bei der Provisionierung des Systems genutzten VM-Images.

Nutzung von Templates

Neben den OpenShift-eigenen Templates kommen mächtige „Operators“ zum Einsatz, um Deployment und Betrieb von Anwendungen zu standardisieren.

Die Deployment von OpenStack wird durch Industrie-Tools wie Chef, Puppet und Ansible erleichtert und reproduzierbar gemacht. Ferner existieren Helm- bzw. Charms-basierte Tool für das Deployment in Containern.

Netzwerk-Verwaltung

OpenShift unterstützt Software-defined-networking (SDN), inklusive Overlay-Netzwerke via Open vSwitch (OVS).

OpenStack’s „Neutron“-Komponente stellt SDN nach dem „Networking-as-a-service“ (NaaS) Modell zur Verfügung.

Web-Schnittstelle

Die ausgefeilte, komfortable Web-Schnittstelle von OpenShift gilt als eine der besten der Industrie.

Mit dem „Horizon“ Dashboard steht ab Werk eine erprobte Web-Oberfäche zur Verwaltung von OpenStack zur Verfügung.

Integrierte CI/CD-Pipeline

Nutzten ältere Versionen noch den Industriestandard „JenkinsÚ, kommt mittlerweile standardmäßig das neuere „Tekton“ zum Einsatz.

Da der Fokus von OpenStack primär auf der Provisionierung virtualisierter Ressourcen liegt, ist von Haus aus keine dedizierte CI/CD-Lösung integriert.

Lernkurve

OpenShift gilt als leichter zu handhaben, als „nacktes“ K8s. Kommt eine Managed-Lösung zum Einsatz, lässt sich die Software relativ flüssig nutzen.

Aufgrund der Komplexität von OpenStack gilt die Lernkurve als recht steil. Die Vielzahl der einzelnen Komponenten bedingt ggf. ein neues Einlernen bei Bereitstellung zusätzlicher Funktionalität.

Sicherheitsfeatures

Die umfangreichen Sicherheitsfeatures zählen zu den herausragenden Vorteilen beim Einsatz von OpenShift.

Die „Keystone“-Komponente stellt grundlegende Funktionen zur Authentifizierung und Autorisierung der Nutzer bereit.

Enterprise-Nutzung

Die Software wird von mehr als zweitausend Organisationen weltweit eingesetzt. Viele große IT-Firmen haben spezielle OpenShift-Lösungen im Angebot.

Große IT-Firmen bieten spezifische Distributionen und Support für OpenStack an. Dazu gehören u. A. Red Hat, VMware, IBM, SUSE, Canonical, OVH, Rackspace, Mirantis und Dell.