Gegenüberstellung¶
Wir wollen also mit einem Vergleich von Virtualisierung mit Hypervisor und Containertechnik beginnen und betrachten hier zunächst die Architekturen und versuchen eine technische Zusammenfassung.
Hypervisor (VMM) basierte Virtualisierung
Jede virtuelle Maschine (VM) enthält ein eigenes Betriebssystem, Anwendungen und Abhängigkeiten. Der Hypervisor abstrahiert die Hardware und ermöglicht die Ausführung mehrerer VMs auf einem physischen Server
Virtualisierung ist für Anwendungen mit hohen Sicherheitsanforderungen oder unterschiedlichen Betriebssystemen geeignet. Die vollständige Isolation schützt vor Ausfällen anderer VMs, benötigt aber deutlich mehr Ressourcen.
Container
Die Container teilen sich den Kernel des Host-Betriebssystems und verpacken nur Anwendungen mit ihren Abhängigkeiten. Sie nutzen eine Container-Engine zur Koordination mit dem Host-Betriebssystem.
Container sind für agile Entwicklung oder auch schnelle Bereitstellung und Cloud-Umgebungen optimiert. Durch die gemeinsame Kernel-Nutzung sind sie ressourceneffizienter, jedoch anfälliger bei Kernel-Problemen und können auch hinsichtlich Security eine Herausforderung darstellen.
Versuchen wir auch noch die Eigenschaften (Vor- und Nachteile) gegenüberzustellen. Das ist allerdings auch immer sehr abhängig von der eigenen IT-Infrastruktur und den Anforderungen, Wünschen oder auch Kosten.
Infofern soll die folgende Tabelle nur eine Annäherung an die Techniken darstellen.
Kriterium |
Virtualisierung |
Container |
|---|---|---|
Ressourcenverbrauch |
deutlich höher - im GB-Bereich pro VM, eigenes OS notwendig! |
viel geringer - im MB-Bereich, geteilter Kernel |
Isolation & Sicherheit |
jvollständige Isolation durch eigenes vollständiges Betriebssystem |
Teilisolierung - Risiko bei Kernel-Schwachstellen |
Portabilität |
begrenzt - abhängig vom Betriebssystem der VM) |
hoch - konsistent über diverse Container-Umgebungen hinweg |
Startzeit |
langsam - komplette OS-Initialisierung erforderlich |
sehr schnell im Sekundenbereich - kein OS-Overhead |
Skalierbarkeit |
komplex - ressourcenintensiv |
einfach und schnell - durch geringe Größe und optimierte Tools und Umgebungen |
Kosten |
hoch - Betriebssystem-Lizenzen, Hardware |
geringer - weniger Lizenzen, effizientere Nutzung |
Anwendungsfälle |
Legacy-Anwendungen (z.B. alte SW lauffähig halten) - Multi-OS-Umgebungen (Linux nutzen - Windows per VM für das Büro |
Standardservices deployen, Microservices, CI/CD-Pipelines, Cloud-native Apps, Homelab, … |
Aber wie gesagt: das soll nur den Versuch einer Annäherung darstellen, da die individuellen Anforderungen und Rahmenbedingungen unterschiedliche Gewichtungen erzeugen.