Die besten Docker-Tools
In der IT-Infrastruktur ist Docker allgegenwärtig. Über 20.000 neue Open-Source-Projekte (Stand: Januar 2015) sind rund um Docker entstanden, darunter Benutzeroberflächen, Management-Frameworks und Monitoring-Tools. Doch Docker ist inzwischen bei weitem mehr als nur eine Plattform für das Applikations-Deployment innerhalb von virtualisierten Containern – es hat quasi zu einer neuen Bewegung in der Open-Source-Gemeinde geführt und sich dadurch selbst ein eigenes riesiges Ökosystem von Tools und Lösungen geschaffen.
Flexible Container
Bei Docker handelt es sich um eine Open-Source-Lösung für die automatisierte Bereitstellung von Applikationen, die in einem Container organisiert sind. Docker nutzt hierzu die Eigenschaften des Linux-Kernels. Dafür werden Ressourcen wie Prozessor, RAM, Netzwerk oder Blockspeicher voneinander isoliert. Auf diese Art lassen sich Applikationen vollständig von der jeweiligen Umgebung inklusive der Prozesse, Dateisysteme oder des Netzwerks trennen und autonom betreiben, was das autonome Verschieben von Applikationen über Systeme hinweg möglich macht. Docker kapselt hierzu die eigentliche Anwendung und ihre notwendigen Abhängigkeiten wie Bibliotheken in einen virtuellen Container, welcher dann auf jedem beliebigen Linux-Server ausführbar ist (siehe auch „Docker in a Nutshell“.
Die wachsende Bedeutung von Docker beziehungsweise Container-Technologien wird zudem durch die im Juni 2015 gegründete „Open Container Initiative (OCI)“ unterstrichen. Unter der Federführung der „Linux Foundation“ hat sich ein Konsortium des Who’s who der Technologie-Führer gebildet. Hierzu gehören etwa Amazon Web Service, Google, Mesosphere, Pivotal, Cisco, IBM, Microsoft, Intel, RedHat, Oracle und VMware. Die Initiative hat es sich zur Aufgabe gemacht, gemeinsame Standards für Container, ihre Formate und Runtime-Umgebungen zu entwickeln und etablieren.
Tools sind nötig
Eines muss man jedoch festhalten. Mit dem Einsatz einer Container-Technologie werden Applikationen erst einmal „nur“ in eine portable Form verpackt. Dies reicht allerdings nicht aus, um eine komplexe, auf Microservice-Architekturen basierende Applikation beziehungsweise große Applikationslandschaft zu verwalten. Mächtige Management-Tools und Entwicklungs-Plattformen sind notwendig, um unter anderem das Continuous Delivery sowie Konzepte wie DevOps zu unterstützen. Dieser Herausforderung ist eine Technologie wie Docker alleine nicht gewachsen, vielmehr braucht es ein ganzes Ökosystem von Lösungen. Viele Tools um das Docker- beziehungsweise Container-Universum haben sich im Open Container Ecosystem (vormals Docker Ecosystem) versammelt. Hier finden sich Anwendungen, Services und Plattformen zu den Themen Sicherheit, Monitoring, Networking, Orchestration, Management, Container OS, Hosting und Service Provider, Entwickler-Tools, Entwickler-Plattformen und so weiter.
Das Docker-Ökosystem
Im Laufe der letzten knapp drei Jahre hat sich um Docker eine rasant wachsende Community gebildet, die zu einem passablen Ökosystem geführt hat. Im Februar 2015 hat Docker mit der Docker-Toolbox selbst eine Reihe von Orchestration-Tools veröffentlicht. Hierzu gehören bisher:
- Docker Compose: Mit Docker Compose lassen sich Multi-Container-Applikationen mit all ihren Abhängigkeiten innerhalb einer einzigen Datei definieren und anschließend mit einem einzigen Befehl ausrollen.
- Docker Machine: Docker Machine sorgt für die automatisierte Installation einer Docker-Umgebung auf dem lokalen Computer, der Infrastruktur eines Cloud-Anbieters oder der eigenen Rechenzentrumsinfrastruktur. Docker Machine stellt die Hosts bereit, installiert die Docker Engine und konfiguriert den Docker Client.
- Docker Kitematic: Docker Kitematic lässt eine Docker-Umgebung auf den lokalen Betriebssystemen für Mac und Windows ausführen und bietet eine graphische Benutzeroberfläche zur Verwaltung der Container.
- Docker Engine: Docker Engine ist die grundlegende Technologie-Plattform für den Aufbau und Betrieb einer Docker-Container-Umgebung.
- Docker Tutum: Docker Tutum ist ein Tool für die Bereitstellung und das Management von Container-Applikationen. Zum Leistungsumfang gehören ein Dashboard, Monitoring, Logging, Applikations-Historie usw. Weiterhin lassen sich darüber die Applikationen starten, stoppen und skalieren.
- Docker Hub: Docker Hub ist ein Cloud-basierter Service von Docker, mit dem sich Container-Applikationen und -Services entwickeln, ausrollen und verwalten lassen.
- Docker Swarm: Docker Swarm stellt einen Cluster zur Verfügung, der eine Gruppe aus Docker Engines zu einem einzigen virtuellen Docker Host zusammenfasst.
Zu den bekanntesten und wichtigsten Tools und Lösungen von Dritt-Anbietern zählen außerdem:
- Kubernetes: Kubernetes ist ein Open-Source-Framework zum Verwalten von Docker-Containern. Das Tool unterstützt unter anderem bei der Kommunikationen zwischen den Containern sowie bei der gleichmäßigen Verteilung von Containern über den Cluster hinweg.
- Mesosphere: Mesosphere bezeichnet sich selbst als das „Data Center Operating System“. Es bündelt hierzu jede Server-Art (physikalisch, virtuell) zu einem großen Pool von geteilten Ressourcen – einem Cluster. Anhand des „Docker executor for Mesos“ lassen sich innerhalb eines Mesosphere-Clusters ebenfalls Docker-Container betreiben.
- OpenStack: OpenStack ist das führende Betriebssystem, wenn es um den Aufbau und Betrieb einer Open-Source-basierten Cloud-Infrastrukturlandschaft geht. Mit dem „Docker Driver“ für „OpenStack Nova Compute“ lassen sich ebenfalls Docker-Container auf einer OpenStack-Infrastruktur betreiben.
- Shipyard: Shipyard ist eine Open-Source-Docker-Management-Lösung, mit der sich Docker-Ressourcen wie Container, Images, Hosts und vieles mehr über eine einzige zentrale Management-Oberfläche verwalten lassen.
- Panamax: Panamax ist ein Tool für die Entwicklung. Dazu gehört ebenfalls ein Open-Source-Applikations-Markplatz, der auf Github gehosted wird.
- Drone: Drone ist eine Continuous-Integration-Plattform für Docker. Die Plattform lässt sich auf einem lokalen Laptop oder innerhalb einer eigenen IT-Infrastruktur betreiben.
Dafür, dass Docker erst seit ein paar Jahren am Markt ist, wird es bereits von zahlreichen großen Unternehmen eingesetzt, darunter Uber, GE Appliance, Groupon, PayPal, ebay, ING, BBC, Spotify, Zalando oder Yandex. Außerdem setzen große, eher proprietär agierende Technologie-Unternehmen wie Google oder Microsoft auf Docker und haben die Container-Technologie bereits als Teil ihres Cloud-Angebots integriert.
Eine Technologie alleine ist jedoch kein Erfolgsgarant. Die Vergangenheit hat gezeigt, dass eine mächtige Community und ein Ökosystem um die Technologie herum einen entscheidenden Beitrag zur breiten Adaption leisten. Docker ist auf dem besten Weg, das nächste Beispiel für so eine Erfolgsgeschichte zu werden.
Wem die Installation von Kubernetes und Mesos zu heavy ist, sollte mal https://sloppy.io ausprobieren.
Oder Rancher und rancheros