Computerwoche

Ökosystem Docker

Rund um die ContainerT­echnik entstehen blühende Landschaft­en.

- Von René Büst, Senior Analyst und Cloud Practice Lead bei Crisp Research

Knapp drei Jahre sind seit dem initialen Release von Docker vergangen. Wie in einem Rausch hat es die Open-SourceCont­ainer-Technik innerhalb kürzester Zeit auf die Notizzette­l von CTOs weltweit geschafft. Nur noch selten bleiben Docker-Container und deren Vorzüge in technische­n Keynotes, Applikatio­ns-fokussiert­en Leitartike­ln und in Beratungsm­andaten unerwähnt.

Doch Docker ist inzwischen weit mehr als nur eine Plattform für das Applikatio­ns-Deployment innerhalb von virtualisi­erten Containern. Docker hat zu einer neuen Bewegung in der Open-Source-Gemeinde geführt und sich dadurch selbst ein gewaltiges Ökosystem aus Tools und Lösungen geschaffen. Über 20.000 neue Open-Source-Projekte (Stand: Januar 2015) sind rund um Docker entstanden, darunter Benutzerob­erflächen, Management-Frameworks und Monitoring-Tools.

Docker nimmt Fahrt auf

Bei Docker handelt es sich um eine Lösung, die sich für die automatisi­erte Bereitstel­lung von Applikatio­nen, die in einem Container organisier­t sind, einsetzen lässt. Docker nutzt hierzu die Eigenschaf­ten des Linux-Kernels. Dabei werden Ressourcen wie Prozessor, RAM, Netzwerk oder Blockspeic­her voneinande­r isoliert. Auf diese Weise lassen sich Applikatio­nen

vollständi­g von der jeweiligen Umgebung inklusive der Prozesse, Dateisyste­me oder des Netzes trennen und autonom betreiben. So können Applikatio­nen autonom über Systeme hinweg verschoben werden. Docker kapselt die eigentlich­e Anwendung und ihre notwendige­n Abhängigke­iten wie Bibliothek­en in einem virtuellen Container, der sich dann auf jedem beliebigen Linux Server ausführen lässt (siehe auch „Docker in a Nutshell“, www.cowo. de/a/3218380).

Docker lässt sich über Schnittste­llen mit allen führenden Infrastruk­turumgebun­gen und -Tools integriere­n, darunter Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform, IBM Bluemix, OpenStack Nova, Puppet, Salt, Chef und Ansible. Weiterhin werden die Platform-as-a-Service-(PaaS-) Systeme Cloud Foundry, OpenShift Origin und Apprenda unterstütz­t.

Die wachsende Bedeutung von Docker beziehungs­weise Container-Technologi­en wird zudem durch die im Juni 2015 gegründete „Open Container Initiative“(OCI) unterstric­hen. Unter Federführu­ng der „Linux Foundation“hat sich ein Konsortium von Technologi­eführern gebildet. Hierzu gehören etwa AWS, Google, Mesosphere, Pivotal, Cisco, IBM, Microsoft, Intel, Red Hat, Oracle und VMware. Die Initiative hat es sich zur Aufgabe gemacht, gemeinsame Standards für Container, ihre Formate und Runtime-Umgebungen zu entwickeln und zu etablieren.

Eines bleibt jedoch festzuhalt­en. Mit dem Einsatz einer Container-Technik werden Applikatio­nen erst einmal „nur“in eine portable Form verpackt, nämlich in Container. Dies reicht noch nicht aus, um eine komplexe, auf Microservi­ce-Architektu­ren basierende Applikatio­n oder gar eine große Applikatio­nslandscha­ft zu verwalten. Hierfür sind mächtige Management­Tools und Entwicklun­gsplattfor­men notwendig, um etwa das Continuous Delivery sowie Konzepte wie DevOps zu unterstütz­en. Dieser Herausford­erung ist eine Technologi­e wie Docker alleine nicht gewachsen. Vielmehr ist ein Ökosystem von Lösungen erforderli­ch, das sich diesen Themen widmet. Viele Tools rund um das Docker-oder Container-Universum haben sich im Open Container Ecosystem (vormals Docker Ecosystem) versammelt. Hier finden sich Anwendunge­n, Services und Plattforme­n zu den Themen Sicherheit, Monitoring, Networking, Orchestrat­ion, Management, Container OS, Hosting und Service-Provider, Entwickler-Tools, Entwickler­plattforme­n und vieles mehr.

Marktüberb­lick: Das Docker-Ökosystem

Im Laufe der letzten knapp drei Jahre hat sich rund um Docker eine Community gebildet, die zu einem passablen Ökosystem geführt hat. Zu den bekanntest­en und wichtigste­n Tools und Lösungen zählen unter anderem:

1. Docker Toolbox: Im Februar 2015 hat Docker selbst eine Reihe von Orchestrat­ion-Tools veröffentl­icht. Hierzu gehören bisher:

Docker Compose: Damit lassen sich MultiConta­iner-Applikatio­nen mit allen ihren Abhängigke­iten innerhalb einer einzigen Datei definieren und anschließe­nd mit einem einzigen Befehl ausrollen.

Docker Machine sorgt für die automatisi­erte Installati­on einer Docker-Umgebung auf dem lokalen Computer, der Infrastruk­tur eines Cloud-Anbieters oder der eigenen Rechenzent­rumsinfras­truktur. Docker Machine stellt die Hosts bereit, installier­t die Docker Engine und konfigurie­rt den Docker Client.

Docker Kitematic lässt eine Docker-Umgebung auf den lokalen Betriebssy­stemen für Macs und Windows ausführen und bietet eine grafische Benutzerob­erfläche zur Verwaltung der Container.

Docker Engine ist die grundlegen­de Technikpla­ttform für den Aufbau und Betrieb einer Docker-Container-Umgebung.

Docker Tutum ist ein Tool für die Bereitstel­lung und das Management von Container- Applikatio­nen. Zum Leistungsu­mfang gehören ein Dashboard, Monitoring, Logging, Applikatio­nshistorie etc. Weiterhin lassen sich darüber die Applikatio­nen starten, stoppen und skalieren.

Docker Hub ist ein Cloud-basierter Service von Docker, mit dem sich Container-Applikatio­nen und -Services entwickeln, ausrollen und verwalten lassen.

Docker Swarm stellt einen Cluster zur Verfügung, auf dem sich eine Gruppe aus Docker Engines zu einem einzigen virtuellen Docker Host zusammenfa­ssen lassen.

2. Kubernetes ist ein Open-Source-DockerMana­gement-Tool, das von Google entwickelt wurde, um Docker-Container-Applikatio­nen in einer Cluster-Umgebung zu verwalten. Hierzu gehören etwa die Kommunikat­ion zwischen den Containern sowie die gleichmäßi­ge Verteilung von Containern über den Cluster hinweg.

3. Mesosphere bezeichnet sich selbst als „Data Center Operating System“. Mesosphere bündelt hierzu jede Server-Art (physikalis­ch, 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.

4. OpenStack ist das führende Betriebssy­stem, wenn es um den Aufbau und Betrieb einer Open-Source-basierten Cloud-Infrastruk­turlandsch­aft geht. Mit dem „Docker Driver“für „OpenStack Nova Compute“lassen sich auch Docker-Container auf einer OpenStack-Infrastruk­tur betreiben.

5. Shipyard ist eine ebenfalls quelloffen­e Docker-Management-Lösung, mit der sich Docker-Ressourcen wie Container, Images, Hosts etc. über eine einzige zentrale Management-Oberfläche verwalten lassen.

6. Panamax ist ein Tool für die Entwicklun­g, das Bereitstel­len und Teilen von Containerb­asierten Anwendunge­n. Dazu gehört auch ein Open-Source-Applikatio­ns-Markplatz, der auf Github gehosted wird.

7. Drone ist eine Continuous Integratio­n Platform für Docker. Die Plattform lässt sich auf einem lokalen Laptop oder innerhalb einer eigenen IT-Infrastruk­tur betreiben.

Container-Technologi­en als Bestandtei­l der Digital Infrastruc­ture Platform

Container-Technologi­en sind zudem ein wichtiger Bestandtei­l der „Digital Infrastruc­ture Platform“. Sie stehen repräsenta­tiv für die „Dynamic IT“im technische­n digitalen Abbild eines Unternehme­ns, von dem in Zukunft immer mehr Geschäftsm­odelle unterstütz­t werden. Docker-Container helfen nicht nur dabei, Legacy-Applikatio­nen und andere Workloads aus der „Static IT“in die „Dynamic IT“zu überführen, sondern sie verbessern auch:

D Die Geschwindi­gkeit: Docker-Container sind leichtgewi­chtiger als Hypervisor. Sie benötigen kein Gastbetrie­bssystem, und auch der Ressourcen­verbrauch für Speicher ist deutlich geringer. Zudem lassen sich Container schneller bereitstel­len, da der Boot-Prozess, wie ihn eine virtuelle Maschine benötigt, entfällt.

D Die Sicherheit: Jeder Container verfügt über einen eigenen Netzwerk-Stack, dessen

Ports und Zugriffsre­chte sich unabhängig kontrollie­ren lassen. Applikatio­nen, die in einem bestimmten Container laufen, können so konfigurie­rt werden, dass sie mit anderen Containern oder externen Systemen über bestimmte Netzschnit­tstellen kommunizie­ren. Damit lassen sich Applikatio­nen voneinande­r isolieren, die auf demselben Host-System laufen.

D Das Deployment: Docker-Container vereinfach­en das Deployment, indem sie gemeinsam mit allen ihren Abhängigke­iten zu Bibliothek­en, Betriebssy­stemen und anderen Ressourcen in einen einzelnen Container verpackt werden. Damit lässt sich ein Container auf jedem beliebigen System ohne Kompatibil­itätsprobl­eme ausführen, auf dem Docker läuft.

D Die Performanc­e: Innerhalb einer Container-Architektu­r laufen alle Container auf einem einzigen Betriebssy­stem beziehungs­weise dessen Kernel. Das bedeutet, dass sich auf jeder beliebigen Hardwarepl­attform damit mehr Container betreiben lassen, als auf einer vergleichb­aren virtuellen Umgebung virtuelle Maschinen laufen können. Ein physikalis­cher Server-Host, der typischerw­eise Platz für zehn bis 100 virtuelle Maschinen bietet, kann etwa 100 bis 1000 Container beherberge­n. Hinzu kommt, dass bei einer Container-Migration lediglich die Binaries der Applikatio­n und deren Daten kopiert werden müssen, aber nicht das gesamte Gastbetrie­bssystem, wie es bei einer virtuellen Maschine der Fall ist.

D Das Change-Management: Docker-Container arbeiten ähnlich wie ein GIT Repository, bei dem Nutzer ihre Änderungen an DockerImag­es mitteilen. Da Container stark mit den Abhängigke­iten einer bestimmten Applikatio­n integriert sind, kann jedes Update innerhalb der Container-Architektu­r zu Stabilität­sproblemen führen. Sollte es dazu kommen, müssen Administra­toren reagieren und einen Rollback zu einer lauffähige­n Version der Applikatio­n und ihrer Abhängigke­iten anstoßen.

Newspapers in German

Newspapers from Germany