Eine neue Ära ist angebrochen

Docker versus VM: Wie Container die heutige IT verändern

Docker versus VM: Wie Container die heutige IT verändern

Eine neue Ära ist angebrochen

Docker versus VM: Wie Container die heutige IT verändern


Die Digitalisierung stellt an heutige IT-Infrastrukturen ganz andere Anforderungen als noch vor einigen Jahren: Digitalisierte Prozesse müssen schneller, schlanker und agiler sein. In dieses Anforderungsszenario schlugen die leichtgewichtigen Container ein wie ein Komet. Sind virtuelle Maschinen jetzt Dinosaurier, die von der Bildfläche verschwinden werden?

Docker versus VM: Wie Container die heutige IT verändern

Noch vor drei Jahren fristeten Container eher ein Nischendasein. Dann kam Docker und katapultierte mit seiner Open-Source-Plattform für das Containermanagement die Virtualisierungstechnologie mitten ins Rampenlicht der Entwicklercommunity. Ein neuer Hype war geboren, der nach wie vor ungebrochen ist. Die IT-Abteilungen von Unternehmen setzen sich heute intensiv mit den Einsatzmöglichkeiten von Containern im Businesskontext auseinander. Bricht jetzt für die klassische Virtualisierung mittels Hypervisor und virtueller Maschinen (VM) eine schwere Zeit an?

Vereinzelt wird sogar schon von dem Beginn einer neuen Epoche gesprochen: der Postvirtualisierung. Der durchschlagende Erfolg von Docker zeigt, dass Container einen Nerv treffen. Sie erfüllen ein Bedürfnis, dem bisherige Verfahren nicht richtig begegnen konnten. Und das mit Überraschungseffekt: Denn diese etwas in die Jahre gekommene Linux-Technologie hatten die großen Player wie Microsoft oder VMware nicht auf ihrem Radar. Docker war für das Containermanagement schnell Marktführer und in seinem Einfluss so prägend, dass die beiden Begrifflichkeiten mittlerweile fast synonym verwendet werden.

Lesen Sie auch: Docker für Java-Entwickler

Der durchschlagende Erfolg von Docker und das schnelle Auftauchen weiterer Lösungsanbieter wie Mesos oder Rocket, die den Aufbau und Betrieb von Containern vereinfachen, hat alteingesessene Virtualisierungsgrößen wie VMware oder Microsoft in Zugzwang gebracht. Heute arbeiten sie daran, die leichtgewichtige Alternative zur virtuellen Maschine in ihre Services einzubinden. So integrierte Microsoft das Service Docker Datacenter, um das Verwalten von Containern über Azure und Azure Stack zu ermöglichen. VMware hatte bereits mit dem eigenen Betriebssystems Photon OS für die Linux-Distribution vorgelegt.

Die Zeit ist reif für Container

Der große Durchbruch der virtuellen Maschine liegt bereits ein Jahrzehnt zurück. Damals waren Anwendungen noch durchgängig als mächtige Monolithen konzipiert und der IT-Betrieb insgesamt nicht so stark auf Schnittstellen oder Skalierbarkeit angewiesen. Für die heutigen Anforderungen an die IT-Infrastruktur kommt die VM zu schwerfällig daher. Container hingegen stellen Anwendungen eine komplette Laufzeitumgebung mit allen notwendigen Abhängigkeiten virtuell zur Verfügung. Auf einen Server passen deutlich mehr Container als virtuelle Maschinen. Im Gegensatz zu einer VM ist bei ihnen kein komplettes Gastbetriebssystem notwendig. Daher starten Container schneller, erzeugen deutlich weniger Overhead und verbrauchen weniger Ressourcen. Über einen Container sind Anwendungen relativ unabhängig und somit wesentlich leichter zu portieren. Ihr Businesseinsatz wird vor allem aus der Entwicklerecke forciert.

Das ist auch nicht weiter überraschend. Mit dem steigenden Digitalisierungsgrad in Unternehmen erhöht sich auch die Anzahl an Anwendungen, um die digitalisierten Prozesse, Produkte und Strukturen abzubilden und zu managen. Das belegt unter anderem die Studie „Disruption im Datacenter“ des Analystenhauses Crisp Research und des IT-Spezialisten Nexinto: Zwei Drittel der IT-Entscheider rechnen im Zug der Digitalisierung innerhalb der nächsten drei Jahre mit einem Anstieg der Anwendungen im Unternehmen.

Unter diesen Vorzeichen spielt auch DevOps eine wichtigere Rolle. Unternehmen mit wachsendem Softwareanteil benötigen dafür die passenden Rahmenbedingungen. Deshalb sollen die traditionell getrennten Bereiche Entwicklung (Development) und Betrieb (Operations) künftig als eine Einheit (DevOps) agieren. Ziel ist es, Tempo und Qualität des App Lifecycles aus Entwicklung, Testing, Bereitstellung und Monitoring zu optimieren. Bei einigen DevOps-Konzepten sind Container feste Bestandteile, da sie im Vergleich zur VM deutlich mehr Geschwindigkeit in den Prozess bringen.

Auch Microservices, die monolithisch konzipierte Anwendungen immer öfter zugunsten eines einfacheren Managements und schnelleren Release-Zyklen ablösen, sind für Container ideal geeignet. So gaben in derselben Studie ein Fünftel der IT-Entscheider an, sich bereits mit Microservices-Architekturen zu beschäftigen.

Mehr Unabhängigkeit vom Host

Dabei spielt noch eine weitere Entwicklung den Containern in die Hände: die Cloud-Nutzung. Während Unternehmen zunehmend eigene Rechenzentrumsflächen konsolidieren und immer mehr Workloads in die Cloud verlagern, wächst der Anteil von Hybrid und Multi Clouds in Unternehmen. Hier punkten Container durch ihr hohes Maß an Unabhängigkeit zum Host-Betriebssystem. Für virtuelle Server hingegen gibt es nach wie vor bei diesen Cloud-Modellen keine durchgängigen Strategien, wie Server über Hypervisoren unterschiedlicher Hersteller hinweg reibungslos funktionieren.

Daher wählen die meisten Cloud-Verantwortlichen häufig noch immer denselben Hersteller oder suchen Provider, die den gleichen Hypervisor einsetzen, wenn sie eine Hybrid Cloud aufbauen wollen. Um den so entstehenden Vendor Lock-in zu umgehen, gibt es noch die Alternative, seine Cloud mit quelloffenen Lösungen wie etwa OpenStack selbst zusammenzustellen. Sich in die Technologie und einzelne Module hineinzuarbeiten, bedeutet für Unternehmen wiederum enormen zusätzlichen Aufwand.

Lesen Sie auch: Kubernetes & Docker: Das bringt die Container-Technologie für Java-Entwickler

Bei Containern ist das wesentlich unkomplizierter: Hier reicht beispielsweise weitestgehend ein Docker-Agent als Verbindung zum Host-Betriebssystem aus. Sowohl Hypervisor als auch Provider spielen so gut wie keine Rolle. Das Betriebssystem muss nur einfachen Anforderungen genügen. Zusätzlich gibt es heute Tools wie Rancher, Mesosphere oder Panamax, welche die Verwaltung von Containern automatisieren und vereinfachen. Viele Container unter Beachtung von Abhängigkeiten bedarfsgerecht auf Hosts zu verteilen, ist auf diese Weise weitaus einfacher als die Administration virtueller Maschinen. Die Mobilität von Containern erleichtert es ungemein, in Containern verpackte Applikationen zwischen verschiedenen Plattformen oder Providern hin und her zu bewegen. Das kommt den Unternehmen entgegen, die sich nicht in eine Abhängigkeit von einem Cloud-Service-Anbieter begeben wollen und daher eine Multisourcing-Strategie verfolgen.

Docker oder VM?

Trotz dieser Entwicklungen, die dem Siegeszug der Container den Weg ebnen, stehen virtuelle Maschinen nicht vor dem Aus. Von einer Ära der Postvirtualisierung kann also nicht die Rede sein, vielmehr macht die Technologie den nächsten Evolutionssprung. Auf dem derzeitigen Entwicklungsstand ist ein Nebeneinander der Hypervisor-basierten und der containerbasierten Virtualisierung in den heutigen IT-Umgebungen notwendig. Klassische Virtualisierung hat den Vorteil einer hochverfügbaren Infrastruktur, die wiederum Container aktuell so noch nicht abbilden. Container nutzen virtualisierte Server als hochverfügbare Laufzeitumgebungen (Hosts). Somit ergänzen sich beide Technologien.

Auch gibt es Applikationen und Dienste, die sich nicht für Containervirtualisierung eignen. Bilden Container und Microservices ein ideales Team, so sind Monolithen, die nach wie vor ihre Daseinsberechtigungen haben, innerhalb einer VM besser aufgehoben. Server mit Datenpersistenz (Datenbanken, Sessions oder Business Logic) werden derzeit weiterhin als klassische virtueller Server realisiert, da Container von Haus aus am Ende ihre Daten verlieren.

Ein weiterer wichtiger Faktor, der für klassische Virtualisierung spricht, ist die Sicherheit. Container punkten als schnelle Leichtgewichte mit einer guten Performance. Demgegenüber kommt die VM zwar etwas träge daher, hat in Sachen Security aber die Nase vorn. So bieten Hypervisoren weniger Angriffsfläche als der typische Linux-Kernel. Ist der Kernel kompromittiert, sind in der Regel alle an ihn geknüpfte Container betroffen. Durch die Isolation einzelner VMs bringen sie allgemein ein höheres Level an Sicherheit mit.

Hier ist hingegen derzeit sehr viel Bewegung auf dem Markt. Da immer mehr Unternehmen Container im Umfeld geschäftskritischer Systeme nutzen wollen, steigt das Sicherheitsbedürfnis. So wie die klassische Virtualisierung auch, müssen Container den Rahmen aus rechtlichen Vorgaben und internen Compliances entsprechen. In den letzten Monaten haben in diesem Bereich die Lösungsanbieter aufgerüstet, um die Sicherheit von Containern zu erhöhen. Allerdings fehlen nach wie vor einheitliche Standards für Containertechnologien. Um das zu ändern, entstand vor einem Jahr die Open-Container-Initiative (OCI).

Mehr zum Thema: Meilenstein für die Containerisierung der IT: Open Container Initiative veröffentlicht Spezifikation 1.0

Ziel ist es, einen Containerstandard für die Industrie zu schaffen. Zentrale Bestandteile dafür sind Offenheit, Sicherheit und Kompatibilität. Hier wird sich erst über die Zeit zeigen, welche Standards die OCI auf den Weg bringt und welche sich dann letztendlich im Praxiseinsatz bewähren und auch wirklich durchsetzen.

Der Anwendungsfall entscheidet

Virtuelle Maschine oder doch Container? Vor die Wahl gestellt (Abb. 1), gilt es vor allem, den eigentlichen Anwendungsfall abzuwägen. Daher entwickeln bei heutigem Stand beide Technologien in der Kombination ihre Stärken.

Docker vs VM

Abb. 1: Virtuelle Maschinen oder Container?

 

Wenn sich die Branche in Richtung Postvirtualisierung bewegt, wird diese Entwicklung allerdings nicht nur von den Containern, sondern auch von der Cloud selbst ausgehen. Unternehmen als Cloud-Nutzer werden in naher Zukunft dann selbst keine eigenen Server mehr betreiben, da Provider alle dafür notwendigen Services, vom Server abstrahiert, aus der Cloud anbieten (PaaS, SaaS). Unternehmen werden sich dann komplette Businessprozesse ausschließlich aus Services in der Cloud zusammenstellen – ohne eigene Infrastruktur managen zu müssen. Lediglich die Cloud-Anbieter betreiben dann noch eigene Server und virtualisieren selbst.

Ein IDC-Bericht zeigt: Bis 2019 steigen die weltweiten Ausgaben für öffentliche Cloud-Services pro Jahr um ein Fünftel. In dieser Zeit entfallen mehr als zwei Drittel der Ausgaben auf Software as a Service. Gleichzeitig steigt für den Bereich Platform as a Service das Wachstum jährlich um 30,6 Prozent. Die Verschiebung der Virtualisierung in Richtung Provider hat also bereits begonnen.

Mehr zum Thema:

Docker Security: Unveränderbarkeit als Sicherheitskonzept

Peter Wurbs

Peter Wurbs ist Senior Solutions Consultant bei Nexinto.


Weitere Artikel zu diesem Thema