Open Telekom Cloud für Geschäftskunden

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

von Redaktion
Zwei Frauen und zwei Männer betrachten etwas auf einem Bildschirm

Docker und andere Systeme zur Container-Virtualisierung revolutionieren die IT mit einer verblüffenden Geschwindigkeit. Die Analysten-Firma Gartner prognostiziert, dass bis 2022 über 75 % der Unternehmen Anwendungen betreiben werden, die auf Containern wie Docker basieren – zurzeit sind es etwa 30 %. Docker ist nicht nur erfolgreich, sondern auch beliebt bei Entwicklern: Bei einer Umfrage der Entwickler-Community Stackoverflow aus dem Jahr 2019 erreichte Docker den ersten Platz in der Kategorie “Most wanted platform” und den zweiten in “Most loved platform”.

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 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: 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. Unsere Berater helfen Ihnen gerne dabei, die für Sie passende Systemarchitektur zu finden. 


Jetzt direkt buchen und 250 € Startguthaben sichern

 

Haben Sie Fragen?

Wir beantworten Ihre Fragen zu Testmöglichkeit, Buchung und Nutzung – kostenfrei und individuell. Probieren Sie es aus! Hotline: 24 Stunden am Tag, 7 Tage die Woche
0800 3304477 aus Deutschland / 00800 33044770 aus dem Ausland

  • 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