In diesem Blog-Beitrag behandeln wir die erste Frage: Was ist der Unterschied zwischen Virtual Machines (VMs) und Containern? Was sind Virtual Machines (VMs)? Bare-Metal-Applikationen konnten bisher die zunehmende Server-Rechenleistung und Kapazität nicht entsprechend ausnutzen. Daher wurden VMs entwickelt. VMs werden als Software auf physischen Servern ausgeführt, um ein bestimmtes Hardwaresystem zu emulieren. Ein Hypervisor oder ein Virtual Machine Monitor ist eine Software, Firmware oder Hardware, die VMs erstellt und ausführt. Ein Hypervisor ist zwischen der Hardware und der Virtual Machine angesiedelt und ist zur Virtualisierung des Servers erforderlich.
Auf jeder virtuellen Maschine wird ein eindeutiges Gastbetriebssystem ausgeführt. VMs mit verschiedenen Betriebssystemen können auf demselben physischen Server ausgeführt werden – eine UNIX-VM kann neben einer Linux-VM eingesetzt werden usw. Jede VM verfügt über eigene Binärdateien, Bibliotheken und Applikationen, die von ihr bereitgestellt werden, und die VM kann mehrere Gigabyte groß sein.
Die Servervirtualisierung bietet eine Vielzahl von Vorteilen, wobei einer der wichtigsten die Möglichkeit ist, Applikationen auf einem einzigen System zu konsolidieren. Vorbei die Zeiten, in denen eine einzelne Applikation auf einem einzelnen Server lief. Die Virtualisierung führte zu Kosteneinsparungen durch einen geringeren Platzbedarf, schnellere Serverbereitstellung und bessere Disaster Recovery (DR), da die Hardware des DR-Standorts nicht mehr das primäre Datacenter spiegeln musste.
Auch die Entwicklung profitierte von dieser physischen Konsolidierung, da durch die höhere Auslastung auf größeren, schnelleren Servern nachträglich ungenutzte Server freigesetzt wurden, die für Qualitätssicherung, Entwicklung oder Laborgeräte verwendet werden konnten. Dieser Ansatz hat jedoch auch Nachteile. Jede VM verfügt über ein separates Betriebssystem-Image, was wiederum den Speicher- und Storage-Platzbedarf erhöht. Dieses Problem führt nun in allen Phasen des Software-Entwicklungslebenszyklus zu mehr Komplexität – von der Test und Entwicklung bis hin zur Produktion und Disaster Recovery. Durch diesen Ansatz wird die Portabilität von Applikationen zwischen Public Clouds, Private Clouds und herkömmlichen Datacentern ebenfalls stark eingeschränkt. Was sind Container? Die Virtualisierung von Betriebssystemen hat in den letzten zehn Jahren an Popularität gewonnen; Software kann jetzt bei einem Wechsel von einer Serverumgebung in eine andere vorhersehbar und effizient ausgeführt werden. Container bieten jedoch eine Möglichkeit, diese isolierten Systeme auf einem einzelnen Server oder Host-Betriebssystem auszuführen.
Container befinden sich auf einem physischen Server und dessen Host-Betriebssystem – wie beispielsweise Linux oder Windows. Jeder Container verwendet den Kernel des Host-Betriebssystems und in der Regel auch die Binärdateien und Bibliotheken. Gemeinsam genutzte Komponenten sind schreibgeschützt. Container sind daher außergewöhnlich „leicht“: Sie sind nur einige Megabyte groß und können innerhalb von Sekunden gestartet werden, gegenüber Gigabyte und Minuten für eine VM.
Container reduzieren auch den Managementaufwand. Da sie ein gemeinsames Betriebssystem verwenden, muss nur ein einziges Betriebssystem für Fehlerbehebungen, Patches usw. instandgehalten werden. Dieses Konzept ähnelt dem, was wir von Hypervisor-Hosts kennen: Weniger Verwaltungspunkte, aber eine etwas höhere Fehlerdomäne. Kurz gesagt: Container sind leichter und portabler als VMs. Fazit: Virtual Machines und Container unterscheiden sich in mehrfacher Hinsicht. Der Hauptunterschied liegt jedoch darin, dass Container eine Möglichkeit bieten, ein Betriebssystem zu virtualisieren, damit mehrere Workloads auf einer einzigen Betriebssysteminstanz ausgeführt werden können. Mithilfe von VMs wird Hardware virtualisiert, damit mehrere Betriebssysteminstanzen ausgeführt werden können. Die Geschwindigkeit, Agilität und Portabilität von Containern machen sie zu einem weiteren Tool zur Optimierung der Softwareentwicklung.
Wir bei NetApp® sind von der Container-Technologie überzeugt und arbeiten daran, Innovationen zu liefern, die die Softwareentwicklung noch schneller und flexibler machen. Wir haben Trident mit dem Ziel entwickelt, persistenten Storage automatisch und nahtlos zu gestalten. Schauen Sie sich unsere neueste Version von Trident auf GitHub an, und auch auf unserer Seite mit Container-Lösungen. Weitere Informationen finden Sie in thePub unter netapp.io.
Doug Jones ist Senior Product Services Manager bei NetApp und leitet die Portfolio-Strategie für Migrationsservices. Er besitzt einen MBA der Duke Fuqua School Business in General Management sowie einen Bachelor in Informatik der Florida Atlantic University. Er lebt im Großraum Asheville, NC.