Docker vs. VMWare: Wie schneiden sie ab?


Dies ist ein Kampf der Virtualisierungstätanen: Die eine virtuelle Maschine, die andere eine Containerisierungstechnologie. In Wirklichkeit handelt es sich bei beiden um komplementäre Technologien, da Hardware-Virtualisierung und Containerisierung jeweils ihre unterschiedlichen Qualitäten haben und für kombinatorische Vorteile zusammen verwendet werden können. Werfen wir einen Blick auf die beiden, um herauszufinden, wie sie sich im Vergleich zueinander behaupten und wie die beiden zusammen verwendet werden können, um maximale Agilität zu erreichen.

Container vs. virtuelle Maschinen

Einfach ausgedrückt bieten Container eine Prozessisolation auf Betriebssystemebene, während virtuelle Maschinen eine Isolation auf der Hardware-Abstraktionsschicht (d. h. Hardware-Virtualisierung) bieten. In IaaS-Anwendungsfällen ist die Maschinenvirtualisierung also ideal geeignet, während Container am besten für die Verpackung/den Versand von tragbarer und modularer Software geeignet sind. Auch hier können die beiden Technologien in Verbindung miteinander verwendet werden, um zusätzliche Vorteile zu erzielen - zum Beispiel können Docker-Container in VMs erstellt werden, um eine Lösung ultraportabel zu machen.

VMware (Englisch)

Dieser branchenführende Anbieter von Virtualisierungssoftware muss nicht vorgestellt werden, da seine Produkte und Lösungen den Weg für eine Generation von Virtualisierungstechnologien geebnet haben. vSphere ist das Flaggschiff unter den Virtualisierungs-Suites von VMware, das aus einer Vielzahl von Tools und Services wie ESXi, vCenter Server, vSphere Client, VMFS, SDKs und mehr besteht. Die Suite fungiert als eine Art Cloud-Computing-Virtualisierungsbetriebssystem und erweist sich als virtuelle Betriebsplattform für Gastbetriebssysteme wie Windows, *nix und so weiter.

Das Herzstück der vSphere Suite ist ESXi: die wichtigste Hypervisor-Technologie, die die Hardware-Virtualisierung ermöglicht. Hypervisoren ermöglichen es, dass mehrere Betriebssysteme auf einem einzigen Host mit ihren eigenen dedizierten Ressourcen ausgeführt werden, sodass jedes Gastbetriebssystem über CPU-, Arbeitsspeicher- und andere Systemressourcen zu verfügen scheint, die für die eigene Nutzung reserviert sind. ESXi kann direkt auf Bare-Metal-Serverhardware ausgeführt werden, da kein bereits vorhandenes zugrunde liegendes Betriebssystem erforderlich ist. Nach der Installation erstellt und betreibt es einen eigenen Mikrokernel, der aus 3 Schnittstellen besteht:

  • Hardware
  • Gastsystem
  • Konsole Betriebssystem/Servicekonsole

Obwohl VMware ein früher Pionier der Virtualisierung war, ist es nicht mehr die einzige Messe in der Stadt: Microsoft Hyper-V, Citrix XenServer und Oracle VirtualBox sind ebenfalls beliebte Hypervisor-Technologien. Immer mehr Unternehmen begrüßen Docker auch als potenziellen VMware-Disruptor, aber wie wir bald sehen werden, konkurriert es nicht direkt mit VMware, obwohl es den Virtualisierungsbereich im Sturm erobert.

Hafenarbeiter

Die Hauptabsicht des Docker-Projekts besteht darin, Entwicklern das Erstellen, Bereitstellen und Ausführen von Anwendungen durch die Verwendung von Containern zu erleichtern. Für DevOps- und CI/CD-Initiativen sind Anwendungsportabilität und -konsistenz wichtige Anforderungen, die Docker sehr gut erfüllt. Container, die aus Containerimages erstellt werden, ermöglichen es, eine Anwendung mit allen erforderlichen Bibliotheken, Abhängigkeiten und Ressourcen für eine einfache Bereitstellung zu bündeln. Durch die Verwendung von Linux-Kernel-Funktionen wie Namepacing und Steuerungsgruppen zum Erstellen von Containern auf dem Host-Betriebssystem kann die Anwendungsbereitstellung von der Entwicklung bis zur Produktion automatisiert und optimiert werden.

Docker-Architektur. Quelle: Docker.

In der Version 0.9 ersetzte Docker LXC durch eine eigene libcontainer-Bibliothek, die in Go geschrieben wurde, was eine breitere native Unterstützung für verschiedene Anbieter ermöglichte. In Version 19.x bietet Docker jetzt native Unterstützung für Windows und optimiert so die Verwaltung von Docker-Hosts und -Containern auf Windows-Entwicklungsmaschinen. In der Zwischenzeit wurde das Docker-Enterprise-Geschäft von Mirantis, dem Kubernetes-As-a-Service-Anbieter, übernommen.

Sowohl für Entwickler als auch für Betreiber bietet Docker unter anderem folgende Vorteile auf hohem Niveau:

  • Bereitstellungsgeschwindigkeit/Agilität - Docker-Container erfüllen die minimalen Anforderungen für die Ausführung der Anwendung und ermöglichen eine schnelle und schlanke Bereitstellung.
  • Portabilität - Da Container im Wesentlichen unabhängige, autarke Anwendungspakete sind, können sie ohne Kompatibilitätsprobleme auf mehreren Computern ausgeführt werden.
  • Wiederverwendung - Container können versioniert, archiviert, freigegeben und zum Zurücksetzen früherer Versionen einer Anwendung verwendet werden. Plattformkonfigurationen können im Wesentlichen als Code verwaltet werden.

Docker vs. VMware Seite an Seite

Obwohl sowohl VMware als auch Docker als Virtualisierungstechnologien kategorisiert werden können, können die optimalen Anwendungsfälle für beide sehr unterschiedlich sein. VMware emuliert beispielsweise virtuelle Hardware und muss alle zugrunde liegenden Systemanforderungen berücksichtigen - daher sind Images virtueller Maschinen deutlich größer als Container. Allerdings ist es mit VMware auch möglich, viele diskrete Betriebssysteminstanzen parallel auf einem einzigen Host auszuführen - so können Unternehmen echte IaaS-Lösungen intern entwickeln.

Da Docker-Container von der Docker-Engine (im Gegensatz zu einem Hypervisor) ausgeführt werden, sind sie nicht vollständig isoliert. Der Kompromiss ist jedoch ein geringer Platzbedarf: Im Gegensatz zu VMware erstellt Docker kein vollständiges virtuelles Betriebssystem, sondern alle erforderlichen Komponenten, die nicht bereits auf dem Host-Computer ausgeführt werden, werden mit der Anwendung im Container verpackt. Da der Host-Kernel von Docker-Containern gemeinsam genutzt wird, werden Anwendungen nur mit dem ausgeliefert, was sie zum Ausführen benötigen - nicht mehr und nicht weniger. Dadurch lassen sich Docker-Anwendungen einfacher und einfacher bereitstellen und schneller starten als virtuelle Maschinen.

Docker-Container sind in der Regel schneller und weniger ressourcenintensiv als virtuelle Maschinen, aber die vollständige VMware-Virtualisierung hat immer noch ihre einzigartigen Hauptvorteile, nämlich Sicherheit und Isolation. Da virtuelle Maschinen eine echte Isolation auf Hardwareebene ermöglichen, ist die Wahrscheinlichkeit von Interferenzen und/oder Ausnutzung geringer als bei Docker-Containern. Für die Portabilität von Anwendungen/Software ist Docker also die sicherste Wahl. Für die Portabilität von Maschinen und eine bessere Isolierung sollten Sie sich für VMware entscheiden. Unabhängig davon, für welche Virtualisierungstechnologie Sie sich entscheiden, kann UpGuard die Integrität und Sicherheit Ihrer virtuellen Maschinen, Docker-Container, Web-Apps und mehr automatisch validieren.

Docker vs. VMware - Häufig gestellte Fragen

Was sind die Hauptunterschiede?

VMware emuliert die Maschinenhardware, während Docker das Betriebssystem emuliert, auf dem Ihre Anwendung ausgeführt wird. Docker ist eine viel leichtere Virtualisierungstechnologie, da keine Serverhardwareressourcen emuliert werden müssen. Der Fokus liegt auf der Abstraktion der Umgebung, die von der App benötigt wird, und nicht des physischen Servers. Mit VMware können Sie, genau wie die Hardware von Maschinen, Betriebssysteme und andere Aufgaben installieren, für die ein vollständiger Server erforderlich ist.

Ist Docker nur ein Hype oder eine Verbesserung gegenüber VMware?

Die Anwendungsfälle für Docker werden durch Fortschritte bei der Architektur und Bereitstellung von Anwendungen vorangetrieben. Anstatt sich auf monolithische Anwendungen zu verlassen, haben Web-Scale-Unternehmen die Vorteile der Microservice-Architektur entdeckt, zu denen Skalierbarkeit und Hochverfügbarkeit gehören. Docker-Container bieten sowohl Agilität als auch Zuverlässigkeit für Microservices. Das Ökosystem, das um Container herum aufgebaut wurde, einschließlich Tools wie Kubernetes und Apache Mesos, macht die Vorteile für IT-Organisationen greifbar. Die Tools von Docker, einschließlich der CLI, Docker Compose und Docker Swarm, bieten eine hervorragende Unterstützung für die Bereitstellung cloudnativer Anwendungen.

Ist Docker schneller als VMware?

Das Bereitstellen und Starten eines Docker-Containers ist notwendigerweise schneller als das Starten eines VMware-Containers. Schließlich ist ein Docker-Container eine viel leichtere Ressource. Der Container hat im Vergleich zum RAM und anderen Anforderungen einer virtuellen Maschine wenig Overhead. Das bedeutet jedoch nicht, dass Ihre Apps beim Ausführen von Containern unbedingt schneller sind als diejenigen, die auf einem virtuellen VMware-Computer ausgeführt werden. Plattformen für virtuelle Maschinen wie VMware ESXi, Xen und KVM bieten eine Leistung, die mit der von Bare-Metal-Plattformen mithalten kann. Die spezifische Umgebung der Anwendung bestimmt die Geschwindigkeit, einschließlich der Maschinenspezifikationen, des Arbeitsspeichers und anderer Faktoren.

Können Sie Docker in einer virtuellen Maschine ausführen?

Da sich VMware und Docker auf unterschiedlichen Ebenen mit der Virtualisierung beschäftigen, handelt es sich nicht um streng konkurrierende Technologien, sondern auch um komplementäre Technologien. Es ist möglich, sie zusammen zu verwenden, und viele Organisationen tun dies. Sie können Docker daher in einem Betriebssystem wie Ubuntu oder Photon von VMware ausführen, das auf einer virtuellen VMware ESXi-Maschine ausgeführt wird.

Kombination von Docker und VMware

Das Ausführen von Docker auf virtuellen VMware-Maschinen ist nicht nur möglich, sondern viele IT-Teams verlassen sich bei der Bereitstellung ihrer Anwendungen auf dieses Setup. Ein Desktop-Produkt, VMware Workstation, steht Entwicklern zwar zur Verfügung, um sie während der Entwicklung zu verwenden, aber es ist nicht das Setup, das für die Produktion funktioniert. Stattdessen sollten Sie VMware-Produkte wie VMware vSphere und ESXi verwenden, die Sie mit hochleistungsfähigen virtuellen Maschinen für Produktions-Workloads ausstatten. VMware ESXi ist ein Bare-Metal-Hypervisor vom Typ 1, der speziell für Sicherheit und Effizienz entwickelt wurde. Es wird direkt auf Ihrem Server installiert und hat die direkte Kontrolle über die Ressourcen des physischen Servers. ESXi hat einen geringen Platzbedarf von nur 150 MB und unterstützt die Konfiguration virtueller Maschinen mit bis zu 6 TB RAM, 128 CPUs und 120 Geräten.

Sie haben zahlreiche Optionen für das tatsächliche Betriebssystem, das Sie auf einer virtuellen VMware-Maschine zum Ausführen von Containern verwenden. Ein leistungsstarker Ansatz ist die Verwendung von VMwares Photon, einem Betriebssystem, das auf Container ausgerichtet ist, schlank ist und genau für diesen Zweck leistungsoptimiert ist. Eine weitere Möglichkeit besteht darin, beliebte Distributionen auszuführen, die Sie möglicherweise bereits verwenden, wie z. B. Ubuntu, CentOS oder Debian, die alle nahtlos mit VMware-Produkten zusammenarbeiten. Zusätzlich zu diesen Setups ist es für containerisierte Apps auch einfach, mit Diensten zu kommunizieren, die auf virtuellen VMware-Maschinen oder anderen Arten von virtuellen Maschinen ausgeführt werden. Das bedeutet, dass Sie Docker-Hosts und virtuelle VMware-Server in Ihrem Rechenzentrum kombinieren können. Ihre Docker-Apps können auch auf virtuellen Maschinen in der Cloud bereitgestellt werden, z. B. AWS, Azure oder Google Cloud.

Zu den häufigsten Problemen, die beim Ausführen von Docker auf virtuellen VMware-Maschinen auftreten, gehören die folgenden:

  • Die Migration virtueller VMotion-Hosts unterbricht den Zugriff auf physische Ressourcen auf eine virtuelle Maschine, was zu Problemen für die Docker-Anwendungen führt, die in der virtuellen Maschine ausgeführt werden.
  • Eine hohe CPU-Bereitschaft (eine Metrik für die Zeit, in der eine virtuelle Maschine bereit war, aber nicht auf einer physischen CPU ausgeführt werden konnte) kann zu Leistungsproblemen für Anwendungen in Docker-Containern führen.
  • VMware erlaubt zwar das Erstellen von Snapshots von virtuellen Maschinen, aber während Snapshots werden die auf der Maschine verfügbaren I/O-Ressourcen gesenkt, was zu Problemen oder Ausfällen für Docker-Container führt.

Sie sollten sich dieser Probleme bewusst sein, wenn Sie mit Docker und VMware zusammenarbeiten, und Maßnahmen ergreifen, um sie zu beheben.

Zukunft der Virtualisierung: Wird Docker VMware verdrängen?

Die Zukunft der Virtualisierung wird wahrscheinlich eine viel stärkere Nutzung von Containern beinhalten, und Docker wird wahrscheinlich davon profitieren. Es gibt gewichtige Gründe für den Aufwärtstrend bei Docker und der Nutzung verwandter Technologien. Zum einen ermöglichen Container Unternehmen, agiler zu sein, da sie so schnell bereitgestellt werden. Das Hochfahren von Containern ist für Entwickler einfacher und schneller, um ihren Code zu testen, während die Bereitstellung ebenfalls schneller ist.

Mit Docker können Sie auf Bare-Metal-, virtuellen Maschinen, AWS, Azure oder anderen Produktionsumgebungen bereitstellen. Container sorgen nicht nur für eine höhere Effizienz bei der Orchestrierung, sondern ein erheblicher Teil der Containertechnologie ist auch Open Source. Dies fördert mehr Innovation in der gesamten Community, was zu besseren Lösungen führt, die für alle zugänglich sind, und gleichzeitig die Kosten senkt. Andere Trends wie das serverlose Hosting fördern ebenfalls die allgemeine These einer leichteren Anwendungsbereitstellung, wobei Container vieles davon erleichtern. In Zukunft werden wahrscheinlich immer mehr Unternehmen dem Mantra "Sorgen Sie sich um Ihre Anwendung, nicht um die Umwelt" folgen. ”

All diese Trends deuten auf eine Zukunft hin, in der Technologien wie Docker und Kubernetes eine größere Rolle spielen werden. Dennoch werden virtuelle Maschinen wahrscheinlich weiterhin weit verbreitet sein, zumindest für bestimmte Anwendungsfälle. Container erreichen eine geringere Isolation als virtuelle Maschinen und werden daher tendenziell als weniger sicher angesehen. In Anwendungsfällen, in denen eine höhere Sicherheit erforderlich ist, können virtuelle Maschinen eine überlegene Technologie bleiben. Darüber hinaus ist persistenter Speicher bei Containern schwieriger. Dies sind Probleme, mit denen Container zu kämpfen haben, die sich aber in Zukunft erheblich verbessern könnten. Wenn ja, könnte der Bedarf an virtuellen Maschinen noch weiter sinken, aber das bleibt abzuwarten.

VMware seinerseits könnte von der Verlagerung bestehender Anwendungen in die Cloud durch Unternehmen profitieren, die bestehende Anwendungen in die Cloud verlagern. In solchen Fällen sind viele dieser Unternehmen noch nicht bereit für eine umfassende Einführung von Containern, können aber von den Cloud-Produkten von VMware wie VMware Cloud oder VMware Hybrid Cloud Platform profitieren.

So wählen Sie zwischen Docker und VMware

>

Wie wir gesehen haben, bedeutet die Komplementarität von Docker und VMware, dass viele dieser Unternehmen nicht fragen: "Sollten wir Docker oder VMware verwenden?", sondern "Wie nutzen wir die beiden zusammen? " Wenn Ihre Situation jedoch eines und nicht beides erfordert, können Ihnen diese Richtlinien bei der Auswahl helfen. Erstens: Wenn Sie eine monolithische Anwendung von einem lokalen Hosting migrieren und die Portierung der Anwendung in Container inakzeptable Entwicklungsinvestitionen erfordert, sind virtuelle VMware-Maschinen eine offensichtliche Wahl. Wenn Sie möchten, dass Ihre Anwendung über einen eigenen Benutzerbereich und persistenten Speicher mit Isolation auf Betriebssystemebene verfügt, ist VMware, das mit Technologien wie Intel VT oder AMD-V arbeitet, auch die bessere Lösung für Ihre Anforderungen. Wenn Ihre IT-Anforderungen das Ausführen und Verwalten mehrerer Betriebssysteme und den Zugriff auf die volle Funktionalität und die Ressourcen des Betriebssystems erfordern, sind virtuelle Maschinen wiederum die ideale Lösung.

Auf der anderen Seite sind Docker-Container ideal für Situationen, in denen der Fokus auf der Anwendung liegt und das jeweilige Betriebssystem und seine Funktionalität für Ihre App irrelevant sind. Wenn Sie eine verteilte Architektur implementieren, bei der jede Anwendung als Microservice ausgeführt wird, ist Docker ideal für die Bereitstellung dieser Art von Anwendungen. Jede Anwendung wird in einem eigenen Container ausgeführt, und Plattformen wie Kubernetes helfen Ihnen bei der Verwaltung von Containerclustern, die auf zahlreichen Servern in der Cloud gehostet werden können.

Unabhängig davon, für welches Tool Sie sich entscheiden, können sowohl Docker als auch VMware die Serverauslastung und -effizienz verbessern und die Gesamtbereitstellungskosten senken.

Schützen Sie Ihr Unternehmen vor Datenschutzverletzungen

Bei UpGuard können wir Ihr Unternehmen vor Datenschutzverletzungen schützen, alle Ihre Datenlecks identifizieren und Ihnen helfen, die Sicherheitslage aller Ihrer Anbieter kontinuierlich zu überwachen.

UpGuard unterstützt auch die Einhaltung von Vorschriften über eine Vielzahl von Sicherheits-Frameworks hinweg, einschließlich der neuen Anforderungen, die in Bidens Cybersecurity Executive Order festgelegt sind.

KLICKEN SIE HIER, um jetzt Ihre KOSTENLOSE Sicherheitsbewertung zu erhalten!

Verwandte Artikel