Beim Betrieb von Applikationen haben klassische Virtualisierungsinfrastrukturen von VMware oder Hyper-V genauso ihre Berechtigung wie moderne Cloud-Lösungen von Amazon, Google, Microsoft oder OpenStack und OpenNebula im Open-Source-Bereich.
Wie aber kann ein Unternehmen bei dem vielfältigen Angebot entscheiden, welche Virtualisierungsart für die eigene Infrastruktur am besten passt? Neben fachlichem Know-how und Innovationsfreudigkeit bringt der Vergleich der verschiedenen Formen neue Erkenntnisse
Seitdem virtuelle Server die Hardware-Maschinen in vielen IT-Bereichen ersetzt haben, hat sich auch die Wahrnehmung von Servern zusehends geändert. Früher waren Server extrem teuer und sehr umständlich in ihrer Handhabung. Um Kosten beim Betrieb zu sparen, wurden möglichst viele Applikationen auf einen Server gepackt. Mit der Zeit wurde die Server-Hardware so stark, dass sie der „normale“ Anwender nicht mehr komplett ausnutzen konnte. Zu diesem Zeitpunkt wurde ein alter Gedanke aus der Zeit der Großrechner (Mainframe) wiederentdeckt: die Virtualisierung.
Auswirkungen der Virtualisierung auf den Server-Betrieb
Mit Einzug der Virtualisierung liefen Standard-Server plötzlich so schnell, dass sie mithilfe eines Hypervisors (z. B. VMware ESX(i), Microsoft Hyper-V oder KVM/QUEMU im Opensource-Umfeld) mehrere Betriebssysteme simultan betreiben konnten. Infolgedessen konnten neue Server schneller angelegt werden und es musste nicht mehr die maximale Anzahl an Services auf einmal auf ihnen betrieben werden. Vielmehr wurden die Dienste sauber getrennt und auf einzelnen Servern auf der Virtualisierungs-Infrastruktur verwaltet und betrieben.
Bekannte Virtualisierer wie VMware oder Hyper-V werden üblicherweise genauso betrieben wie früher Hardware-Server. So benötigt ein Server bestimmte Ressourcen (CPU, RAM, Festplatte), die der VM zugewiesen werden. Anschließend wird die VM nach bestimmten Vorgaben – wie ihren Anforderungen an Speicher- sowie Netzwerkgeschwindigkeit und Verfügbarkeit – in der Infrastruktur abgelegt. Themen wie Storage (NAS, SAN, lokal) und Netzwerkanbindung spielen dabei ebenfalls eine Rolle. Es wird deutlich: Im Vergleich zum Server-Betrieb vor der Virtualisierung hat sich hier kaum etwas geändert. Die Sicht auf Server und Ressourcen in der IT hat sich erst dann einmal komplett gedreht, als innovative Cloud-Lösungen von Google, Microsoft und Amazon den Virtualisierungsmarkt eroberten.
Virtueller Server-Betrieb in der Cloud
In einer Cloud-Umgebung geben Parameter vor, wie die VM angelegt wird. Im Gegensatz zur klassischen Lösung fehlt hier der direkte Einfluss auf die virtuelle Maschine. Meistens ist der lokale Speicher auf der VM sogar nur noch “ephemeral” vorhanden. Das bedeutet, dass alle Daten, die nicht auf einem dedizierten, gesharten Speicher abgelegt werden, nach einem Neustart nicht mehr vorhanden sind. Das ist einer der größten Unterschiede der Virtualisierungsarten. Eine schöne Analogie dazu stellt das sogenannte “Cat versus Cattle” dar. Darüber hinaus beschreibt das Szenario sehr gut den Nutzen beider Technologien.
„Cat versus Cattle” oder „Haustier gegen Herde”
Als „CAT” werden Server mit eigenem Namen (z. B. garfield.example.com) bezeichnet. Der Name dient nicht nur der Erkennung des Servers, sondern man sieht daran auch, dass die Maschine per Hand groß gezogen und für ihre Rolle ausgewählt wurde. Wenn auf solchen Servern ein Problem entsteht, werden diese sorgsam umsorgt und gepflegt, bis sie wieder gesund sind.
„CATTLE” stellt das andere Ende des Spektrums dar. Hier haben die Server meistens keinen direkten eigenen Namen, sondern nur Nummern wie etwa web001.example.com. Die VMs werden in der Regel über ein Skript angelegt und mit ihrer Konfiguration bespielt. Der Server mit der Nummer Eins ist quasi identisch mit web002.example.com und anderen Servern mit derselben Aufgabe. Wenn auf einem der Server ein Problem auftritt, wird er gelöscht und ein neuer Server aufgesetzt.
CAT-Server nutzen VMware und Hyper-V
VMware und Hyper-V sind hauptsächlich Dienstleister für CAT-Server. Da solche Server aber oft noch zur Kerninfrastruktur vieler Unternehmen gehören, existieren beim Server-Betrieb starke Abhängigkeiten, die kritisch für die gesamte Unternehmensinfrastruktur sein können. Darüber hinaus werden auf den Maschinen auch Applikationen betrieben, die nicht flexibel skalierbar sind, oder die sehr spezielle Anforderungen an ihre Umgebungen haben (Hardware-Dongel, hohe IOPS (Input/Output Operations Per Second) oder besondere Hardware).
CATTLE-Server nutzen Amazon, Google, Microsoft sowie OpenStack und OpenNebula
Amazon, Google, Microsoft sowie Open-Source-Lösungen von OpenStack und OpenNebula bieten die Umgebungen und Voraussetzungen für CATTLE-Server. Sie stellen eine Infrastruktur bereit, die der Anwender meistens nicht mehr im Detail kennt. In dieser Umgebung lassen sich bestimmte Ressourcen wie CPU oder RAM reservieren. Bei der Platzierung des Servers, gibt es außer der Wahl des Rechenzentrums kaum Einflussmöglichkeiten. CATTLE-Server stellen zusätzlich persistenten Storage bereit (z. B. Amazon S3, Google Cloud Storage, Ceph Rados/OpenStack Swift), auf dem die Server ihre Daten hinterlegen können.
Techniken genügen den Anforderungen an Hochverfügbarkeit
Bei den verschiedenen Techniken wurden jeweils eigene Herangehensweisen entwickelt, um den modernen Anforderungen an die Verfügbarkeit zu genügen. Die klassische Virtualisierung nutzt “alte” Techniken wie Cluster-Betrieb oder HA-Optionen der Virtualisierer (z. B. bei VMware HA/FT/(storage)vmotion). HA bedeutet in diesem Zusammenhang, dass ein Server beim Ausfall des Virtualisierungsknotens auf einem anderen Knoten neugestartet wird. FT hingegen bietet eine Besonderheit. Hier werden alle Server-Befehle auf einem zweiten Knoten gespiegelt ausgeführt. Bei einem Ausfall arbeitet der gespiegelte Server in Echtzeit weiter, und zwar im gleichen CPU-Zyklus in dem der ausgefallene Server aufgehört hat.
Die Technik hinter (storage)vmotion beschreibt die Möglichkeit vorhandene Server im laufenden Betrieb ohne Ausfall auf einen anderen Knoten zu verschieben. Damit werden beispielsweise die Wartbarkeit der darunterliegenden Infrastruktur sowie die Ressourcenverwaltung vereinfacht.
Scale-out: Infrastrukturerweiterung durch Server-Einsatz
In Cloud-Infrastrukturen nutzt man bevorzugt die Scale-out-Technik. So erhöhen etwa VMware und Hyper-V die Hardware-Ressourcen der VM zum Zwecke der Leistungssteigerung. Zur besseren Lastverteilung werden in der Cloud normalerweise zusätzliche Server installiert. Das dynamische Starten und Stoppen der VMs ermöglicht zusätzlich eine kurze Reaktionszeit bei Lastspitzen oder Ruhezeiten.
Immutable Infrastructure: moderne Technik für Applikationsentwicklung und -betrieb
Für den Betrieb und die Entwicklung von Applikationen haben sich im Lauf der Zeit vollständig neue Technologien entwickelt. Ein prominentes Beispiel ist “Immutable Infrastructure”. Diese Technik trennt den bereitgestellten Service nach “Nutzdaten” und “alles andere”. Die Daten werden in einem persistenten Ort vorgehalten, von wo auf sämtliche Anwender auf sie zugreifen. Der Server in der Cloud wird als Teil der Anwendung betrachtet. Für jedes Deployment wird ein eigenes Image der VM erstellt und getestet. Danach wird die neue Applikationsversion mit dem neuen Image in der Cloud verteilt. Zeitgleich werden die Server mit der alten Applikation gelöscht und abgeschaltet. Damit können Probleme im Update-Prozess der Applikation oder der Server minimiert werden.
Beide Virtualisierungsformen bieten Vorteile
Ob klassische Virtualisierung oder modernes Cloud-Konzept, beide Virtualisierungsarten haben ihren Platz beim Betrieb von aktuellen Applikationslösungen. Das hat zur Folge, dass Unternehmen in Zukunft verstärkt vor der Herausforderung stehen, genauestens zu evaluieren, welche Applikation auf welcher Virtualisierung am besten aufgehoben ist.
Um diese Anforderungen jedoch aufrechterhalten zu können, sollten Unternehmen die Techniken der Virtualisierung kennen und sie entsprechend ihrer Vorteile einsetzen können. In Europa herrscht noch die gewohnte Sicht der CAT-Server vor. Die Beteiligten haben sich an ihre Applikationen und LAMP Stacks gewöhnt, dieser Weg wird jedoch langsam aufgebrochen. Das zeigt sich beim aktuellen Hype um die Open-Source-Software Docker, die bei Linux zum Einsatz kommt, um Applikationen mithilfe von Virtualisierung in Containern zu isolieren. Mit den Zielen die Bereitstellung von Applikationen zu vereinfachen und die auf einem Rechner genutzten Ressourcen von einander zu trennen. Docker treibt die Nutzung von CATTLE voran und stellt Entwickler und Hoster vor neue Herausforderungen im Umgang mit Stacks für Applikationen. Die Zusammenarbeit zwischen Entwicklern und Betreibern wird damit immer enger, in Zukunft werden viele Übergänge sogar fließend sein. Speziell Techniken wie “Immutable Infrastructure” können nicht von einer Seite alleine betrieben werden, sondern es wird Fachwissen von beiden Seiten benötigt, um zuverlässige und sichere Lösungen bereitstellen zu können.