Windows Server Containers–einfach erklärt

Das neue Feature “Windows Server Containers” welches im kommenden Windows Server 2016 erstmals Einzug halten wird, ist zwar bisher noch in keiner offiziellen Technical Preview zu sehen, aber trotzdem oder gerade deswegen wird sehr oft einiges durcheinander geworfen und somit falsch wiedergegeben.

Ich möchte an dieser Stelle versuchen, das Thema recht simpel zu erklären. Was mir aufgefallen ist, ist die Tatsache, dass Windows Server Containers immer mit dem Produkt “Docker” erklärt wird. Das liegt auch nah, da es im Prinzip nichts anderes als Docker ist. Was ist aber, wenn man noch nie von Docker gehört hat? Wie soll man ein Produkt verstehen, das mit einem Produkt erklärt wird, was man ebenfalls nicht versteht? Für diejenigen, die “Docker” kennen ist dieser Artikel nicht geschrieben. Vielmehr für diejenigen, die komplett neu in dem Thema sind. Deswegen werde ich ab jetzt das Wort “Docker” auch nicht mehr verwenden. Windows Server Containers funktioniert im Prinzip wie Docker… kleiner Scherz.

Bei Windows Server Containers sollte man das Wort “Container” wirklich wörtlich nehmen. Anwendungen werden als Ganzes in einen Container gepackt und dieser Container kann dann auf mehreren, zum Teil unterschiedlichen Systemen eingesetzt werden. Vergleichen wir es mit einem Containerschiff. Dort können ebenfalls unterschiedliche Container geladen werden und ob der Container “A” auf dem einen oder dem anderen Schiff steht, ist dem Container völlig egal.

Um das etwas bildlicher zu erklären, habe ich ein paar Grafiken erstellt. Zuerst sehen wir uns die klassische Anwendungsbereitstellung an:

klassisch

Das sollte jedem bekannt sein. Auf der Hardware läuft ein Betriebssystem und darauf werden verschiedene Anwendungen installiert – klassischer gehts eigentlich nicht.

Vor ein paar Jahren/Jahrzehnten begann die Virtualisierung Einzug zu halten. Erstmals war es möglich mehrere virtuelle Rechner auf einer Hardware zu betreiben. Somit konnte man Anwendungen in einer virtuellen Maschine installieren und sie somit von dem Rest der Welt abriegeln. In der Grafik sieht dass so aus:

vitualisiert

Von der “Parent-Partition” sollten wir uns an dieser Stelle nicht durcheinanderbringen lassen, ich wollte lediglich das Bild technisch korrekt darstellen. Wie man hier sieht, ist die Anwendung auf dem Betriebssystem installiert, welches sich in der virtuellen Maschine befindet. Durch diese Abstrahierung kann man Anwendungen hardwareunabhängig zu Verfügung stellen. Dies ist auch heute noch eine gängige Methode um Anwendungen bereitzustellen.

Nun kommen Windows Server Container ins Spiel. Sehen wir uns zunächst die Grafik an:

containers

Das Besondere bei der Containertechnik ist, dass der Container fix und fertig angeliefert wird. Es muss also nichts auf dem Betriebssystem installiert werden. Der Container wird lediglich “angedockt”. Ganz unabhängig ist der Container aber nicht vom Betriebssystem. Stark vereinfacht dargestellt nutzt der Container Teile des Betriebssystems auf dem er läuft, diese Teile sind nicht exklusiv für Ihr reserviert – vielmehr muss er sich diese Ressourcen mit allen anderen Containern teilen, die ebenfalls auf dem Betriebssystem laufen. Zusätzlich hat der Container einen “privaten” Teil, in dem er alles mitbringt, was er zu Leben benötigt. Dies können zum Beispiel auch Dateien (z.B. DLLs) sein, die zwar im Betriebsystem schon vorhanden sind, aber vielleicht in einer falschen Version vorliegen.

Die letzte Grafik wird sicherlich für Verwirrung sorgen, da Microsoft seine Hausaufgaben extra ordentlich machen wollte und eben nicht nur die Container anbieten möchte, die im oberen Bild zu sehen sind, sondern eine zweite Möglichkeit auf den Markt bringt – die Hyper-V Container:

hypervcontainers

Was ist nun ein Hyper-V Container. Microsoft schafft eine Möglichkeit, Container direkt auf der Hyper-V Ebene laufen zu lassen. Hierbei werden die Ressourcen des Hypervisors direkt genutzt. Im Schaubild ist das der rechte blaue Container. Zusätzlich kann man den Windows Server Container natürlich auch in einer virtuellen Maschine betreiben (linker blauer Container). Dies ist dann kein Hyper-V Container sondern ein normaler Windows Server Container, aber eben in einer virtuellen Maschine.

Und mit dem mittleren blauen Container hat Microsoft den Vogel abgeschossen. Es wird möglich sein, einen Hyper-V Container in einer virtuellen Maschine zu betreiben – also ein Hyper-V in einem Hyper-V. Dadurch entsteht ganz nebenbei ein Feature auf das viele Leute für den Betrieb von Testumgebungen gewartet haben – die Nested Virtualization. Das hat zwar nichts mit Containern zu tun, aber somit kann man zukünftig z.B. einen virtuellen Filecluster auf einem Demonotebook betreiben. Das ist sicherlich kein Produktionsszenario, aber hervorragend für Lab-Umgebungen.

Aber was für Vorteile hat nun diese ganze Containertechnik? Nun, diese liegen auf der Hand. Man spart sich Ressourcen, da Anwendungen nicht mehr zwingend in virtuellen Maschinen bereitgestellt werden müssen, um sie voneinander zu separieren. Das Deployment ist nur noch Sekundensache, da man lediglich den Container auf das System kopieren muss. Die Entwickler haben nun endlich eine Möglichkeit um alle notwendigen Dateien in der passenden Version vorliegen zu haben, indem sie sie einfach in den Container packen. Zusätzlich kommen Szenarien ins Spiel, die mir erlauben den Container z.B. heute on Premise in meinem Rechenzentrum zu betreiben und morgen vielleicht auf der Azureplattform ohne irgendwelche Änderungen an dem Container vornehmen zu müssen. Es gibt noch eine Menge zusätzlicher Vorteile, aber fürs Erste soll es an dieser Stelle genug gewesen sein. Meiner Meinung nach hat die Containertechnik seine absolute Daseinsberechtigung und wird an einigen Stellen die Anwendungsbereitstellung sicher revolutionieren. Wir sollten uns aber nicht zu sehr blenden lassen und die Containertechnik als Wunderheilmittel sehen. Bisher sieht das auf den Hochglanzfolien immer ganz toll aus, aber die Praxis wird zeigen, welche Stolpersteine diese Technologie mit sich bringt.

Wie schon eingangs erwähnt, gibt es Stand heute noch keine offizielle Preview in der die Containertechnik enthalten ist. Sobald die ersten Bits verfügbar sind, werde ich von den ersten Praxistests berichten.

One thought on “Windows Server Containers–einfach erklärt

  1. Besten Dank für den Beitrag!
    Sehr einfach erklärt und meiner Meinung nach der beste Beitrag zum Thema „Windows Server Containers“ im ganzen Netz!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.