Wie kann ein Unternehmen die Vorteile der Virtualisierung am besten nutzen? Der Markt bietet hierfür zahlreiche Möglichkeiten, sowohl von kommerziellen Anbietern wie auch von Open-Source-Seite. Eine Option, die immer beliebter wird, ist Openstack, ein Open-Source-Projekt für das Cloud Computing, das virtualisiertes Rechnen, Speichern und Networking ermöglicht.
Der Kontrast zwischen Openstack und herkömmlich - zum Beispiel mittels VMware Vsphere - virtualisierten Umgebungen ist entweder eklatant oder subtil, je nach Sichtweise. Die eigentliche Frage ist jedoch: Was ist besser für die eigene Umgebung? Sollten Unternehmen sich für eine branchenführende Virtualisierungsumgebung entscheiden oder für eine eher integrierte Umgebung wie Openstack? Wer braucht Virtualisierung und wer Cloud-Computing - und was ist der Unterschied?
Rein technisch betrachtet ist Virtualisierung die Aufteilung einer einzelnen Ressource in mehrere Ressourcen. Die offensichtlichste Anwendung ist ein Server, der viele virtuelle Maschinen (VMs) hostet, doch bereits die Partitionierung einer Festplatte bedeutet Virtualisierung: Sie führt dazu, dass ein physisches Laufwerk wie zwei oder mehr logische Laufwerke erscheint. Bei der Netzwerkvirtualisierung wiederum wird ein einzelnes physisches Netzwerk in mehrere logische aufgeteilt.
Unternehmen gehen aus einer Vielzahl von Gründen zur Virtualisierung über, so zur Vereinfachung von Arbeitsabläufen, für Daten-Backup oder Disaster Recovery. Der häufigste Grund ist jedoch die Verbesserung der Server-Auslastung, die ohne Virtualisierung typischerweise bei niedrigen fünf bis zehn Prozent liegt, sowie die Reduzierung der Anzahl erforderlicher Server.
Man könnte leicht glauben, dass Virtualisierung und Cloud Computing Synonyme sind. Doch Cloud Computing erfordert Funktionen, die über die von traditioneller Virtualisierungssoftware gebotenen hinausgehen. Das National Institute of Standards and Technology (NIST) in den USA nennt fünf Anforderungen an eine echte Cloud-Computing-Plattform:
On-Demand-Service: Ein System muss Verbrauchern die Möglichkeit bieten, Ressourcen selbsttätig bereitzustellen.
Breiter Netzwerkzugriff: Ein System muss diversen Geräten wie Desktops und Smartphones Zugriff auf das Netzwerk bieten. (Dies bedeutet nicht, dass die Cloud öffentlich verfügbar sein muss.)
Ressourcen-Pooling: Dabei handelt es sich um die Aufspaltung einer physischen Ressource wie eines Servers oder Netzwerks in viele logische Geräte. Nutzern sollte es egal sein, welche physische Ressource ihre logische Ressource bereitstellt.
Schnelle Elastizität: Das System muss in der Lage sein, sich zu vergrößern, um bei Bedarf mehr Ressourcen zu bieten, und Ressourcen stillzulegen, die nicht mehr im Einsatz sind. Für den Nutzer sollte es so aussehen, als sei die Bereitstellung von Ressourcen praktisch unendlich (obwohl Nutzungslimits nicht ausgeschlossen sind).
Gemessene Leistung: Es sollte ein Mess-, Abrechnungs- oder Auswertungssystem vorhanden sein. Diese Abrechnung ist nicht unbedingt zur Einkommensgenerierung oder Rückerstattung gedacht. Denn mit leichter zugänglichen und einfacher nutzbaren Ressourcen steigt auch der Verbrauch. Auswertung und Abrechnung sind deshalb als Mittel zur Kontrolle und Optimierung des Verbrauchs gedacht.
Betrachtet man diese Anforderungen in Hinblick auf die Virtualisierung, so springt "On-Demand-Service" ins Auge. Für viele Experten sind es die Self-Service-Funktionen, die Cloud Computing definieren. Denn obwohl Virtualisierung mehr Ressourcen liefert als ein einzelner Server, sind die Ressourcen im Unternehmens-RZ doch immer endlich und die Elastizität ist limitiert.
Openstack liefert mittels virtualisierter Rechner-, Netzwerk- und Speicherressourcen per API oder Self-Service-UI zahlreiche Vorteile, einschließlich verringerter Kosten und steigender Agilität. Virtualisierung kann die Anzahl physischer Server verringern, die ein Unternehmen managen muss. Die Gesamtzahl der Ressourcen muss dennoch ausreichen, um den aktuellen Bedarf abzudecken und den künftigen zu antizipieren - mit zusätzlicher Kapazität, um Spitzen abzudecken.
Vorteile der Cloud
Zugleich bedeutet die Fähigkeit von Openstack, hybride Clouds zu erzeugen, dass Unternehmen einen Grundstock an Hardware beibehalten, während sie Workloads in eine öffentliche Cloud auslagern können, wenn die Belastung zu groß wird. Geht die Belastung zurück, kann das Unternehmen externe Ressourcen abschalten und durch interne ersetzen. So zahlt das Unternehmen nur für das, was es tatsächlich genutzt hat, statt Investitionen auf Spekulationen hin zu tätigen.
Ressourcen müssen stets zur Verfügung stehen, weil der zweite Vorteil - die Agilität - zwar weniger offensichtlich, dafür aber vielleicht sogar wichtiger ist. Wenn Nutzer ihre eigenen Ressourcen sofort bereitstellen können, sind sie in der Lage, neue Ideen unmittelbar auszuprobieren und aufzubauen, anstatt Tage oder Wochen auf jemanden aus der IT-Abteilung zu warten. Sie können neue Funktionen schneller erstellen und freischalten, Experimente durchführen und validieren. Da heute alles nur eine Smartphone-App weit weg zu sein scheint, ist diese Art von Schnelligkeit entscheidend - nicht nur, um die Erwartungen der Kunden zu erfüllen, sondern um sich einen Vorsprung vor den Wettbewerbern zu verschaffen und zu erhalten.
Möglichkeiten und Grenzen von Openstack
Openstack bietet hierfür eine offene Architektur. So lässt sich eine Anbieterbindung vermeiden und der späterer Anbieterwechsel erleichtern, falls sich Bedürfnisse oder die Umstände des Anwenders ändern. Openstack bietet auch eine Standard-API, die es Unternehmen ermöglicht, Devops-Methoden anzuwenden, um die Stabilität und Agilität der Anwendungen noch weiter zu erhöhen.
Leider gibt es immer noch einige Dinge, die Openstack nicht kann. Es bietet Self-Service-Management über sein eigenes Dashboard, aber seine Funktionen sind im Vergleich zu Virtualisierungs-Dashboards wie VMware Vcenter rudimentär. Es kann Software-Defined Networking (SDN) bieten, doch die Funktionalität auf Unternehmensebene erfordert typischerweise Treiber und Plug-ins von Drittanbietern. Zuden liefert es ein grundlegendes Berichtswesen und Telemetrie, für eine umfassende Abrechnungslösung ist jedoch externe Software erforderlich.
Wenn Virtualisierung und Openstack beide hinter dem Ideal zurückbleiben, ist es dann möglich, alle Cloud-Anforderungen zu erfüllen? Die Antwort lautet ja - mit einer integrierten Cloud. Zu einer integrierten Cloud gehören beide Tools: die einer ausgereiften Virtualisierungsumgebung wie VMware Vcenter und die Cloud-bezogenen Werkzeuge von Openstack wie die Self-Service-Bereitstellung. Ein Weg, dies zu erreichen, ist die Einführung von Openstack, wobei Instanzen direkt über ESX eingeführt werden. Somit sind Openstack-VMs auch VMware-VMs und lassen sich entsprechend von beiden Seiten verwalten.
Integrierte Cloud
Um eine integrierte Cloud einzuführen, ist eine Openstack-Distribution erforderlich, die den entsprechenden Hypervisor liefert. Diese sollte zusätzlich zu Qemu und KVM die Möglichkeit bieten, VMware Vcenter zu wählen. Sobald die Cloud eingeführt ist, können Nutzer das Openstack-Dashboard Horizon verwenden, um selbstständig Instanzen anzufordern oder sonstige Openstack-Management-Aufgaben auszuführen. Ist jedoch intensive Betriebs- oder Wartungsarbeit erforderlich, kann der Administrator oder Operator Vcenter nutzen.