Open Telekom Cloud für Geschäftskunden

Container oder VM – was ist für Ihr Projekt besser geeignet?

von Redaktion
Bereitstellung virtueller Ressourcen innerhalb der Cloud mithilfe von Virtual Machines oder Containern
Bereitstellung virtueller Ressourcen innerhalb der Cloud mithilfe von Virtual Machines oder Containern

In diesem Artikel lesen Sie,

  • was die Unterschiede von VM und Containern sind,
  • wann man welche der beiden Virtualisierungsformen nutzen sollte
  • und welche Services die Open Telekom Cloud dafür bietet.


Docker und andere Systeme zur Container-Virtualisierung revolutionieren die IT mit einer verblüffenden Geschwindigkeit. Sie sind im Unternehmensumfeld quasi überall. Ein aktueller Trendreport von DZone vom Oktober 2023 unterstreicht das: Dort geben 88 % aller Unternehmensvertreter an, dass sie Container einsetzen und mit Tools wie Docker und Kubernetes (K8) nutzen. 81 % nutzen Docker, 71 % Kubernetes, um die Container in Entwicklung und Produktion zu verwalten.

VM und Container – was sind die Unterschiede?

Schon sehen einige das Ende der Virtual Machines (VM) kommen. Schließlich sind sowohl Container als auch VM Wege, virtuelle Ressourcen bereitzustellen, auf denen Anwendungen gehostet werden. Wenn Sie auf der Suche nach der besten Lösung für den Betrieb Ihrer eigenen Dienste in der Cloud sind, müssen Sie diese Virtualisierungstechnologien verstehen. Was sind also die Unterschiede zwischen Virtual Machines und Containern?

Was ist eine Virtual Machine?

Eine Virtual Machine emuliert durch Software ein Computersystem. Dadurch ist es möglich, viele dieser „virtuellen Maschinen“ getrennt voneinander auf einer einzigen Hardware zu betreiben, dem Host-Server. Dabei teilen sich die Softwares der VM – also Betriebssysteme wie Linux oder Windows und entsprechende Anwendungen – die Hardware-Ressourcen wie Festplatten, Arbeitsspeicher und CPU des Host-Servers. 

Jede VM hat dabei ein eigenes, vollständiges Betriebssystem, das auf einer emulierten Hardware läuft. Diese wird durch eine Software simuliert, die man Hypervisor nennt. Sie sitzt zwischen dem Betriebssystem des Host-Servers und der Virtual Machine. Auch die Open Telekom Cloud bietet Virtual Machines an. Diese basieren auf dem Open-Source-Hypervisor KVM (Kernel-based Virtual Machine).

Vorteile von Virtual Machines

  • Wirtschaftlichkeit: Der Hauptvorteil von Virtual Machines gegenüber „echten“ Servern ist ihre Wirtschaftlichkeit: Es ist effizienter, auf einem Host-Server mehrere Systeme zu emulieren, anstatt die gleiche Anzahl von Systemen auf jeweils dedizierter Hardware, sogenannten Bare-Metal-Servern, zu betreiben. 
  • Einfachere Verwaltung: Anwendungen sind oft einfacher zu managen, wenn sie sich auf getrennten Systemen befinden. Programme wie Exchange- oder Datenbankanwendungen benötigen oft ihre eigene Hardware, da die zu ihrer Steuerung erforderliche Rechenleistung viel größer ist als bei anderen Anwendungen. 
  • Flexibilität: Virtual Machines ermöglichen es, auf einem Server unterschiedliche Betriebssysteme laufen zu lassen.

Nachteile von Virtual Machines

  • Belastung von Systemressourcen: Jede Virtual Machine 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.
  • Performance: Virtuelle Maschinen sind langsamer als reale Maschinen, da sie indirekt über den Hypervisor auf die Hardware zugreifen.

Eine schematische Darstellung von Containern und VMs

Was sind Container?

Wie Virtual Machines sind auch Container ein Weg zur Virtualisierung. Doch sie virtualisieren dabei nicht ein ganzes Computersystem, sondern nur das Betriebssystem. In der Regel enthält ein Container nur eine Anwendung mit allen Binärdateien, Bibliotheken und Konfigurationsdateien, welche diese braucht. Dabei teilt sich jeder Container den Kernel des Host-Betriebssystems und normalerweise auch dessen Binärdateien und Bibliotheken. Diese von allen Containern verwendeten Komponenten sind schreibgeschützt. Durch diese gemeinsame Nutzung ist es nicht notwendig, dass der Code des Betriebssystems mehrmals kopiert werden muss. 

Daher sind Container außergewöhnlich klein – sie sind nur wenige Megabyte groß und benötigen daher auch nur Sekunden zum Starten. Virtual Machines 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, da man mit ihnen unzählige Versionen einer Anwendung mit all ihren Abhängigkeiten gleichzeitig testen kann. Zudem machen sie es möglich, sehr große und komplexe Softwarearchitekturen in Softwarekomponenten, sogenannte Microservices, zu zerlegen. Dabei läuft jeder Anwendungsprozess als Microservice in einem eigenen Container und kommuniziert über eine Schnittstelle mit anderen Prozessen. Dadurch ist es möglich, jederzeit einzelne Microservices unabhängig von den anderen zu ändern oder neu zu deployen, ohne die Stabilität der gesamten Softwarearchitektur zu gefährden. Firmen können so schnell große Architekturen aufbauen, skalieren und im laufenden Betrieb entwickeln. Beispiel von Unternehmen, die auf Microservices setzen, sind Google, Amazon und Netflix. 

Die am häufigsten verwendete Plattform zur Container-Virtualisierung ist Docker. Ihr Name wurde in der Vergangenheit auch als Synonym für die Technologie benutzt. Doch Docker hat seine Grenzen. Immer dann, wenn große Container-Installationen (über Server oder Cluster hinweg) verwaltet werden müssen. Dann empfiehlt sich ein Umstieg auf Kubernetes. Kubernetes kann große Container-Mengen „orchestrieren“ und Workloads effizient ausgleichen. Zudem bietet K8 zusätzliche Möglichkeiten für die Nutzerauthentifizierung und Sicherheit. Auch die Cloud Container Engine der Open Telekom Cloud basiert auf Kubernetes – und ist Docker-kompatibel.

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: Einmal „containerisiert“, können Anwendungen auf jeder beliebigen Infrastruktur bereitgestellt und verschoben werden – auf virtuellen Maschinen, auf Bare Metal und auf verschiedenen Public Clouds mit unterschiedlichen Hypervisoren.  DevOps-Teams wissen, dass Anwendungen in Containern unabhängig vom Einsatzort immer gleich ausgeführt werden.
  • Größere Effizienz: In Containern können Anwendungen schneller bereitgestellt, gepatcht oder skaliert werden als in Virtual Machines. Container können daher zum Beispiel Entwicklungs-, Test- und Produktionszyklen stark beschleunigen.

Nachteile von Containern

  • Schwierige Persistenz von Daten: Das Design von Containern sieht vor, dass alle Daten verschwinden, wenn der Container heruntergefahren wird, es sei denn, Sie speichern sie zuerst an einem anderen Ort. 
  • Nicht alle Anwendungen profitieren von Containern: Im Allgemeinen können nur Anwendungen, die für die Ausführung als Mikrodienste ausgelegt sind, das meiste aus Containern herausholen. 
  • 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, sind in der Regel alle an ihn geknüpften Container betroffen. VMs isolieren daher Anwendungen in der Regel besser als Container. 

Container oder VM – wann verwende ich was?

Wenn in Ihrem Unternehmen eine große Anzahl von Instanzen desselben Betriebssystems ausgeführt wird, sollten Sie prüfen, ob Container für Sie geeignet sind. Sie könnten Ihnen gegenüber VMs erhebliche Zeit- und Kosteneinsparungen bringen. Im Vergleich zu VMs sind Container am besten für diese Anwendungsfälle geeignet: 

  • Erstellen von Cloud-nativen Anwendungen
  • Betrieb von Microservice-Architekturen
  • Durchführen von DevOps-Praktiken in der Entwicklung
  • Verschieben von IT-Projekten über unterschiedliche Infrastrukturen hinweg, die das gleiche Betriebssystem verwenden.

VMs sind die bessere Wahl für die Ausführung von Anwendungen, die alle Ressourcen und Funktionen des Betriebssystems benötigen, wenn Sie mehrere Anwendungen auf Servern ausführen müssen oder eine Vielzahl von Betriebssystemen zu verwalten haben. Im Vergleich zu Containern sind VMs am besten für diese Fälle geeignet: 

  • Bereitstellung infrastruktureller Ressourcen wie Netzwerke, Server und Daten
  • Ausführen eines Betriebssystems innerhalb eines anderen Betriebssystems (z. B. Unix unter Linux)
  • Betrieb von Legacy-Systemen in der Cloud
  • Isolierung riskanter Entwicklungszyklen

Container und VMs als Team

Obwohl Container viele Vorteile gegenüber Virtual Machines bieten, werden sie diese nicht vom Markt verdrängen, da es weiterhin noch Anwendungsfälle gibt, in denen VMs praktikabler sind. Zudem haben die VMs weiter eine Daseinsberechtigung, solange stark nachgefragte Softwarehersteller noch keine produktiven Container-Lösungen anbieten.

Ohnehin sollten Container und Virtual Machines als komplementäre und nicht als konkurrierende Technologien angesehen werden. Das liegt daran, dass Container auch in virtuellen Maschinen ausgeführt werden können. Zum einen, um die Isolierung und damit die Sicherheit zu erhöhen. Und zum anderen, um durch Virtualisierung das Management der Hardware-Infrastruktur wie Netzwerke, Server und Speicher zu erleichtern, die zum Betrieb von Containern benötigt wird. Die Flexibilität von VMs und der minimale Ressourcenbedarf von Containern schaffen zusammen IT-Umgebungen mit maximaler Funktionalität. 

Die Cloud Container Engine (CCE) der Open Telekom Cloud unterstützt den Aufbau von Container-Clustern sowohl mit Virtuellen Maschinen (ECS) als auch mit Bare-Metal-Servern. Über Software Repository for Container lassen sich Container-Repositories mit Versionierung und Berechtigungskonzept nutzen.  Unsere Berater helfen Ihnen gerne dabei, die für Sie passende Systemarchitektur zu finden.


Diese Inhalte könnten Sie auch interessieren

 
Daten, die sich im Serverraum bewegen, mit dem Open Telekom Cloud Logo im Vordergrund.

Elastic Cloud Server (ECS)

Elastic Cloud Hosting nach Bedarf: Flexibel VM-Kapazitäten buchen und für SAP, virtuelle Arbeitsplätze, grafische Anwendungen oder Big Data optimal nutzen.

 
CPU mit Cloud Icon versehen

Cloud Container Engine (CCE)

Cloud Container Engine ermöglicht plattform-unabhängiges Arbeiten via Container, Docker und Kubernetes – inkl. Application & Resource Management.

 
Personen in einem Meetingraum arbeiten gemeinsam an einem Projekt.

Use Cases der Cloud-Technologien

Lernen Sie anhand von Use Cases unser Portfolio aus innovativen Cloud-Lösungen für Unternehmen kennen.

  • Communities

    Die Open Telekom Cloud Community

    Hier treffen sich Nutzer, Entwickler und Product Owner um sich zu helfen, auszutauschen und zu diskutieren.

    Jetzt entdecken 

  • Telefon

    Kostenfreie Experten-Hotline

    Unsere zertifizierten Cloud-Experten stehen Ihnen mit persönlichem Service zur Seite.

     0800 3304477 (aus Deutschland)

     
    +800 33044770 (aus dem Ausland)

     
    24 Stunden am Tag, 7 Tage die Woche

  • E-Mail

    Unser Kunden-Service steht Ihnen per E-Mail-Support kostenlos zur Verfügung.

    E-Mail schreiben