Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
anleitungen:virtuelle_maschinen [2024/01/24 16:39] – angelegt mike | anleitungen:virtuelle_maschinen [Unbekanntes Datum] (aktuell) – Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Virtuelle Maschinen und Container ====== | ||
+ | Linux-Container und virtuelle Maschinen (VM) sind paketierte Computing-Umgebungen, | ||
+ | |||
+ | ===== Was ist der Unterschied zwischen einer virtuelle Maschine und einem Container? ===== | ||
+ | |||
+ | ===== Virtuelle Maschinen ===== | ||
+ | |||
+ | Eine virtuelle Maschine (VM) emuliert durch Software ein Computersystem. Dadurch ist es möglich, viele dieser " | ||
+ | |||
+ | === Vorteile von VM´s === | ||
+ | |||
+ | * Dank der zahlreichen, | ||
+ | |||
+ | === Nachteile von VM´s === | ||
+ | |||
+ | * Jede einzelne VM muß getrennt voneinander administriert werden, da diese ja komplett getrennt sind. Dadurch ist der Verwaltungs- und Zeitaufwand beispielsweise bei Updates durch ein vielfaches höher. | ||
+ | * Ausserdem sind VM´s eine enorme Belastung an Systemressourcen. Jede VM führt nicht nur eine vollständige Kopie eines Betriebssystems aus, sondern auch eine virtuelle Simulation der gesamten Hardware, die dieses Betriebssystem zur Ausführung benötigt. Dies summiert sich schnell zu einer Menge an Arbeitsspeicher und CPU-Zyklen, die blockiert werden. | ||
+ | * VM´s haben eine geringere Performance (sind langsamer) als reale Maschinen, da sie indirekt über den Hypervisor auf die Hardware zugreifen. | ||
+ | |||
+ | ===== Container ===== | ||
+ | |||
+ | In einen Container werden nur die App und alle zum Ausführen erforderlichen Dateien paketiert. Häufig werden darin auch einzelne Funktionen paketiert, die bestimmte Aufgaben (sogenannte Microservices) ausführen. Container können aufgrund ihrer geringen Größe und ihres gemeinsam genutzten Betriebssystems (OS) sehr einfach in verschiedenen Umgebungen hin- und hergeschoben werden. | ||
+ | |||
+ | Wie VM´s sind auch Container ein Weg zur Virtualisierung. Doch sie virtualisieren dabei nicht ein ganzes Computersystem, | ||
+ | |||
+ | Daher sind Container außergewöhnlich klein – sie sind nur wenige Megabyte groß und benötigen daher auch nur Sekunden zum Starten. VM´s dagegen brauchen oft Minuten, bis sie am laufen sind. Durch die geringe Größe von Containern kann man eine sehr große Zahl gleichzeitig auf einem Host-Server ausführen. | ||
+ | |||
+ | Container spielen heute eine große Rolle bei der agilen Softwareentwicklung, | ||
+ | |||
+ | Die am häufigsten verwendete Plattform zur Container-Virtualisierung ist Docker. Ihr Name wird oft auch als Synonym für die Technologie benutzt. Auch die Cloud Container Engine der Open Telekom Cloud basiert auf Docker. | ||
+ | |||
+ | === Vorteile von Containern === | ||
+ | |||
+ | * Weniger Kosten: Container benötigen weniger Systemressourcen als herkömmliche oder virtuelle Maschinen, da sie nur die erforderlichen Daten zur Ausführung der Applikation enthalten. Unternehmen können durch Container die Zahl ihrer Server und notwendiger Lizenzen stark reduzieren. | ||
+ | * Portabilität: | ||
+ | * Größere Effizienz: In Containern können Anwendungen schneller bereitgestellt, | ||
+ | |||
+ | === Nachteile von Containern === | ||
+ | |||
+ | * Schwierige Persistenz von Daten: Das Design von Containern sieht vor, dass alle Daten verschwinden, | ||
+ | * Nicht alle Anwendungen profitieren von Containern: Im Allgemeinen können nur Anwendungen, | ||
+ | * Sicherheit: Der gemeinsam genutzte Linux-Kernel bietet weit mehr Angriffsfläche für Attacken als ein Hypervisor in einer VM. Gelingt es einem Angreifer, von einem Container aus auf den Kernel zuzugreifen, | ||
+ | |||
+ | ===== Wissenswertes zu diesem Thema ===== | ||
+ | |||
+ | * VM´s können in VM´s ausgeführt werden (VM-Kaskade) | ||
+ | * Container können in VM´s ausgeführt werden, nicht aber VM´s in Containern | ||
+ | * Container und VM´s sind keine konkurrierenden, |