Sergey Nivens - stock.adobe.com
Entscheidungshilfe: VM, Container-VM oder Micro-VM?
Die Wahl für VM, Container- oder Micro-VM bestimmt sich anhand des Isolations- und Sicherheitsbedarfs. Administratoren sollten über das zugehörige Detailwissen verfügen.
Wenn Sie sich zwischen virtueller Maschine (VM), Container und Micro-VM entscheiden müssen, denken Sie zuerst daran, dass Sie das eigentlich nicht müssen. Denn alle drei Technologien können gemeinsam in einem Rechenzentrum, wenn nicht sogar auf demselben Server problemlos und friedlich koexistieren.
Es ist zum Beispiel keineswegs ungewöhnlich, auf einer VM eine Container-Engine zu installieren und die VM mit Containern zu bestücken. Damit steht die Isolation der VM außerhalb der Containergruppe zur Verfügung. Letzten Endes kommt es also nur darauf an, dass Softwareentwickler und Betriebsverantwortliche diejenige Technologie für Virtualisierung auswählen, die für ihre Workloads und Geschäftsprozesse die Passendste ist.
Nachdem wir das festgestellt haben, schließt sich als Frage unmittelbar an: Welche Szenarien passen denn am besten zu welcher Technologie? Jede der virtuellen Instanzen bietet eine Reihe an Vor- und Nachteilen eigener Art. Diese Unterschiede sollte kennen, wer sich mit den technischen Entscheidungen für die Virtualisierungslösung beschäftigt.
Anwendungsfälle für VMs
Eine virtuelle Maschine (VM) kennt wohl jeder IT-Verantwortliche, der nicht erst kürzlich erst aus einem Dornröschenschlaf erwacht ist. Man spricht dabei auch von einer Bare-Metal Typ-1-Virtualisierung. Jede VM bietet eine komplett abgeschirmte Umgebung mit einem vollständigen und uneingeschränkten Betriebssystem und genug Ressourcen für die erfolgreiche Bearbeitung von konzerntypischen Workloads. Eine VM ist also im Wesentlichen ein vollständiger und unabhängiger Server.
Aus eben diesem Grund werden VMs in der Regel eingesetzt, um herkömmliche, monolithische Workloads abzuarbeiten. Ein klassisches Beispiel ist die Bereitstellung einer komplexen Legacy-Anwendung wie etwa einer Datenbank, die heutzutage auf einer VM statt auf einem physischen Bare-Metal-Server ausgerollt wird.
VMs wird nicht ganz zu Unrecht nachgesagt, dass sie von Natur aus etwas klobig und ineffizient seien, zumindest im Vergleich zu Micro-VMs. Zur Verteidigung des Klassikers sei angemerkt, dass VMs aus einer Zeit stammen, in der die Herausforderungen der IT in der Anzahl physischer Server, dem Energieverbrauch, Kühlungsproblemen und der Rechenzentrumsbewirtschaftung lagen. Die damalige Idee, zwei, fünf oder sogar zehn VMs auf demselben Server unterbringen zu können stellte für jegliche Unternehmen einen enormen Vorteil da – und tut das auch heute noch.
Anwendungsfälle für Container
Bei einem Container handelt es sich um einen vergleichsweise neuen Instanzentyp, der eher an den Ansatz gehosteter Typ-2-Virtualisierungen erinnert. Dabei teilen sich mehrere Instanzen ein Betriebssystem. Da die einzelne Instanz nun kein eigenes Betriebssystem mehr benötigt, können Container klein sein und deutlich schneller bereit sein als klassische VMs.
Aus genau diesem Grund werden Container oft bevorzugt, wenn Skalierung und die Mobilität der Workloads hohe Anforderungen stellen, ohne besonders hohe Anforderungen an die Isolierung der Instanzen untereinander zu stellen.
Ein typisches Einsatzszenario für Container wären etwa kleinere Anwendungen wie Webserver. Durch die Unterbringung in Containern können auf einfache Weise zusätzliche Instanzen bereitgestellt werden, um höhere Belastungen eines Webauftritts zu kompensieren.
Container sind besonders für modernere Softwarearchitekturen attraktiv, etwa solche, die mit Microservices arbeiten. Statt eine monolithische Anwendung zu erstellen, werden Anforderungen auf eine Reihe von Diensten verteilt. Diese kleinen Einheiten können dann als eine Ansammlung von Containern modulweise bereitgestellt werden und mittels API untereinander kommunizieren.
Container ermöglichen schnelle Entwicklungen und unverzügliche Skalierung für kapazitätshungrige Module, ohne dass dabei nicht benötigte Dienste mit dupliziert werden müssten. Dies ermöglicht dank des moderneren Softwareentwurfs eine ressourceneffizientere Skalierung.
Anwendungsfälle für Micro-VMs
Micro-VMs trumpfen damit auf, dass sie die beliebten Vorteile der Containerarchitektur mit vielen der Vorteile herkömmlicher VMs in Bezug auf Sicherheit, Isolation und umfangreiche VM-Erstellung verbinden. Micro-VMs lassen sich grundsätzlich überall einsetzen, wo sie für gewöhnlich Container verwenden würden, eignen sich aber besser für Instanzen, die einen höheren Bedarf an Isolation und eigenständigem Betriebssystem aufweisen.
Natürlich werden die daraus entstehenden Micro-VMs damit auch größer als entsprechende Container, denn sie müssen ja wieder ihr eigenes Betriebssystem beherbergen. Sie sind aber in aller Regel kleiner und schneller als herkömmliche VMs.