Orchestrate, Docker, Orchestrate!

Docker 1.12 hat eingebaute Orchestrierung im Gepäck

Dominik Mohilo

Docker-Logo (© Docker, Inc.)

Zwei Monate sind seit dem letzten großen Release von Docker vergangen. Die Engine hat sich mit Version 1.11 des Containerisierungs-Tools grundsätzlich verändert. Für das aktuelle Update 1.12 bohrten die Entwickler erneut die Engine auf und fügten die Möglichkeit zur Orchestrierung hinzu.

Für die Anbieter von Orchestrierungs-Tools dürfte die Meldung weniger prickelnd sein: Docker hat nun selbst eine eingebaute Orchestrierung an Bord. Mit dieser Neuerung möchte Docker den sogenannten Lock-in beenden, d.h. die Wahl zwischen einem hauseigenen Expertenteam, das ein Orchestrierungs-Modell speziell für die eigenen Bedürfnisse entwickelt, oder einem externen Dienstleister, der die Orchestrierung so lange übernimmt, wie man deren Produkte kauft. So oder so ein kostspieliges Unterfangen.

Natürlich gibt es mittlerweile auch quelloffene und kostenfreie Lösungen, etwa Googles Kubernetes oder Docker Compose. Laut Docker-Entwicklerteam hat eine direkt in die Engine eingebaute Lösung allerdings das Potenzial, schneller, einfacher zu portieren, sicherer und belastbarer zu sein. Der Wunsch vieler User war es wohl, Docker einfach mit Docker selbst orchestrieren zu können.

Hausgemachte Orchestrierung

Die Entwickler haben sich diesen vielfachen Wunsch nun zu Herzen genommen. In Dockers aktuellem Release wurden neue Features zur Kern-Engine des Container-Tools hinzugefügt, die die Multi-Host- und Multi-Container-Orchestrierung vereinfachen sollen. Zudem wurden neue API-Objekte entwickelt (etwa Service und Node), die es ermöglichen, das Docker-API zum Deployen und Managen von Anwendungen auf einer Gruppe von Docker Engines (Swarm) zu nutzen.

Die neue Docker-Orchestrierung  / Quelle: Docker Blog

Die neue Docker-Orchestrierung / Quelle: Docker Blog

Die vier Prinzipien der Docker-Orchestrierung

Die vier Prinzipien, die sich die Entwickler für die neue Orchestrierung zu Grunde legten, sind einfach, belastbar, individualisierbar und sicher. Um diese vier Prinzipien einzuhalten, wurden verschiedene neue Features in die Engine eingebaut.

Prinzip 1: Einfachheit

Für die Einhaltung des ersten Prinzips ist es wichtig, dass nach wie vor kein Setup zusätzlicher Software nötig ist und die Nutzer weiterhin das Gefühl haben, dass „es einfach funktioniert“. Einen Swarm, der am Anfang der Orchestrierung steht, kann man mit einem einfachen Kommando, nämlich docker swarm init, erstellen. Dadurch wird unter der Haube ein erster Raft consensus-Knotenpunkt (Node) erstellt, der als Manager fungiert. Er kann Kommandos entgegennehmen und Tasks planen, später hinzugefügte Nodes werden automatisch als Worker deklariert. Es können allerdings auch weitere Manager-Nodes hinzugefügt werden.

Eine typische Zwei-Level-Applikation / Quelle: Docker Blog

Eine typische Zwei-Level-Applikation / Quelle: Docker Blog

Prinzip 2: Belastbarkeit

Der Swarm-Modus stellt sicher, dass die Engines selbstheilend sind. Dies wird dadurch gewährleistet, dass sie eng mit der definierten Anwendung verknüpft sind: Die Engines prüfen kontinuierlich ihre Umgebung und stimmen sie im Notfall neu ab. Zieht man etwa den Netzwerkstecker für die Hälfte der Maschinen im aktiven Docker Swarm, soll die andere Hälfte den Verlust ausgleichen, indem die Container auf ihnen umverteilt werden. Dies entspricht dem Prinzip der Belastbarkeit.

Prinzip 3: Individualisierbarkeit

Dem Prinzip der Individualisierbarkeit wurde dadurch Genüge getan, dass alle neuen Funktionen optional sind und Docker auch weiterhin die Nutzung von Drittanbieter-Software für die Orchestrierung zulässt, die auf der Docker Engine aufbaut.

Prinzip 4: Sicherheit

In puncto Sicherheit wird für Nutzer von Docker 1.12 die gemeinsame authentisierte Transport Layer Security (TLS) zur Verfügung gestellt: Diese bietet die Authentisierung, Autorisierung und Verschlüsselung für die Kommunikation zwischen allen Knotenpunkten (Nodes) in einem Docker Swarm.

Das neue Sicherheitssystem / Quelle: Docker Blog

Das neue Sicherheitssystem / Quelle: Docker Blog

Bundles

Neben den neuen Funktionen im Bereich der Orchestrierung, gibt es ab Version 1.12 von Docker ein neues Dateiformat mit Namen Distributed Application Bundle. Die neue Abstraktion Docker Bundle ist eine deklarative Spezifikation eines Sets von Services. Diese regelt, welche spezifische Image-Revision ausgeführt werden soll, welche Netzwerke zu erstellen sind und wie Container in diesen Services vernetzt werden müssen, um zu laufen.

Weitere Informationen zur aktuellen Version von Docker, der Orchestrierung und den Bundles gibt es im zugehörigen Blogpost von Docker.

Auf der gerade stattfindenden DockerCon wurde neben Docker 1.12 außerdem die Public Beta von Docker for Mac and Windows vorgestellt. Das Projekt hatte seit März über 70.000 Tester für die Closed Beta gewinnen können, nun steht die Beta allen Entwicklern offen. Weitere Informationen hierzu gibt es ebenfalls auf dem Docker Blog.

Verwandte Themen:

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: