kalafoto - stock.adobe.com
Micro-VMs schließen Lücke zwischen Container und Standard-VM
Micro-VMs stehen als Technologie zwischen Standard-VMs und Containern, sie vereinigen die Vorteile beider Technologien ohne Sicherheitseinschränkungen oder andere Nachteile.
virtuelle Maschinen (VMs) und Container sind sehr verbreitet. Allerdings erschweren einige ihrer Eigenschaften das Management VM- oder containerbasierter Infrastrukturen. Dazu gehören verringerte Mobilität und schwache Sicherheit. Als Zwischenlösung vereinen Micro-VMs die erwünschten Funktionen beider ohne die jeweiligen Nachteile.
Micro-VMs ermöglichen es den Administratoren, eine große Anzahl kleiner VMs auf einem Host betreiben zu können. Da sich diese Mikro-VMs im Laufe der Zeit ansammeln, wird der Host zunehmend belastet.
Das bedeutet unter Umständen eine reduzierte Systemleistung und überbeanspruchte Ressourcen. Eine Alternative dazu bildet AWS Firecracker. Diese Plattform kombiniert Micro-VMs mit Managementfunktionen, um hohe Performance sicherzustellen.
Was sind und was können Micro-VMs?
Die Eigenschaften, Vor- und Nachteile von Micro-VMs, Containern und VMs unterscheiden sich: Auf VMs können mehrere Instanzen des Betriebssystems unabhängig voneinander ablaufen. Das bedeutet zusätzliche Isolierungsmöglichkeiten, verschlingt aber viele Ressourcen. Verglichen mit VMs sind Container kleiner und weniger ressourcenintensiv. Dafür können sie das gesamte System einem Risiko aussetzen, denn die Container eines Hosts greifen auf dasselbe Betriebssystem zu.
Micro-VMs vereinigen das Beste beider Welten. Im Grunde besitzt eine Micro-VM eine Container-Architektur, bietet aber gleichzeitig Isolationsmöglichkeiten für jede Instanz. So können Administratoren schnell viele VMs erzeugen und bereitstellen, ohne überbeanspruchte Ressourcen zu riskieren. Und dies bei intakter Sicherheit.
Wann setzt man Container, Micro-VM und VM ein?
Zu entscheiden, wann es am besten ist, eine Standard-VM, einen Container oder eine Micro-VM einzusetzen, ist manchmal schwer. Im Grunde eignet sich jeder Instanzentyp für bestimmte Einsatzzwecke, die meist von der jeweiligen Workload abhängen.
Container sind die beste Lösung, wenn es um Skalierbarkeit und Mobilität der Workloads geht. Da sie nicht isoliert sind, passen sie besser zu Anwendungen ohne strenge Sicherheitsanforderungen.
Müssen traditionelle, monolithische Anwendungen unterstützt werden, sind Skalierbarkeit und Mobilität gefordert, sollte man Micro-VMs in Betracht ziehen. Sie bieten die Vorteile von Containern, aber auch die Sicherheit und Isolierung kompletter VMs.
Herausforderungen beim Management von Micro-VMs
Micro-VMs stehen also zwischen Containern und vollständigen virtuellen Maschinen. Administratoren profitieren von den Vorteilen beider. Allerdings erzeugen Micro-VMs spezielle Managementprobleme.
So entstehen oft mit der Zeit viele Micro-VMs, sammeln sich an und drohen, die Grenzen des Hypervisors hinsichtlich der VM-Zahl und der verfügbaren Softwarelizenzen zu überschreiten.
Zudem kann der Einsatz von Micro-VMs in großem Maßstab ebenfalls die Ressourcen überlasten. Ein verbreitetes Missverständnis ist es anzunehmen, dass Micro-VMs wegen ihrer geringen Größe nicht viele Ressourcen verbrauchen. Aber die Größe der VM sagt nicht unbedingt etwas darüber, wie viele Ressourcen sie benötigt. Viel öfter verursacht die schiere Menge an VMs auf einem einzigen Host Überlastungssymptome. Und werden zu viele Micro-VMs in kurzer Zeit erzeugt, können sie den Host förmlich überwältigen.
So funktioniert AWS Firecracker
Um mit den Managementherausforderungen von Micro-VMs umzugehen, gibt es verschiedene Anwendungen und Plattformen, die Administrationsaufgaben wirksam unterstützen, zum Beispiel AWS Firecracker. Diese Open-Source-Virtualisierungstechnologie ermöglicht Administratoren, Micro-VMs für containerisierte Applikationen zu bauen.
AWS verwendet Firecracker als Basis einiger seiner Cloud-Services, beispielsweise Lambda und Fargate. Aber auch Admins, die lokale Umgebungen verwalten, können die Software nutzen. Firecracker mit seinen Isolierungs- und Sicherheitsfunktionen, die wie Standard-VMs, kombiniert mit der Mobilität von Containern, funktionieren, wurde im November 2018 vorgestellt.
AWS Firecracker eignet sich besonders für ereignisgesteuerte, kurzlebige Workloads wie serverloses Computing. Wer mehrere Isolations- und Schutzebenen benötigt, profitiert von dem Service. Im Kern basiert Firecracker auf einem in Linux integrierten KVM-Modul. Damit lassen sich „leichte“ Micro-VMs in nicht virtualisierten Umgebungen erzeugen.
Wie man AWS Firecracker nutzt
Nach der Entscheidung für Micro-VMs als Instanzform einer spezifischen Workload, lassen sich die benötigten Instanzen mit AWS Firecracker erzeugen. Der Dienst bietet ein minimalistisches Design, das die Speicheranforderungen verringert und besser gegen bösartige Angriffe schützt.
Als erstes müssen aber die Firecracker-Binärdateien heruntergeladen werden. Danach brauchen Administratoren eine unkomprimierte Linux-Kernbinärdatei, die als Gastbetriebssystem dienen kann. Weiter ist ein Root-Filesystem wie etwa ein ext4-Filesystem-Image nötig.
Sind alle erforderlichen Binärdateien vorhanden, öffnet man eine Shell-Eingabeaufforderung, um Firecracker zu starten und ablaufen zu lassen und eine weitere, um auf die Firecracker-API zu schreiben. Beide Shells müssen im selben Verzeichnis laufen wie die Firecracker-Binärdateien.
Danach legt man die Settings für den Kern des Gastbetriebssystems und das Gast-Root-Filesystem in der zweiten Shell fest, um die Gastmaschine zu starten. Schließlich geht es zurück zu ersten Shell, um sich über die Eingabeaufforderung dort in die Gastmaschine einzuloggen.