Container-Technologien auf dem Vormarsch

Docker in a Nutshell

Docker in der Praxis

Nachdem Docker unter Entwicklern zunehmend an Beliebtheit gewonnen hat, zieht die Container-Technologie nun auch verstärkt in die Enterprise-IT ein. CIOs und CTOs verfolgen damit das Ziel, ihren Entwicklern mehr Bequemlichkeit und Kontrolle bei der Anwendungsentwicklung zu ermöglichen und die Verfügbarkeit ihrer Applikationen zu erhöhen - wenn z.B. ein Container ausfällt oder eine Applikation ausgetauscht werden muss. Im selben Zug sehen IT-Entscheider in Container-Strategien die Möglichkeit, ihre Microservice-Architekturen innerhalb großer verteilter Infrastrukturen in den Griff zu bekommen, indem jeder Microservice seine eigene Container-Strategie erhält, mit der er verwaltet wird.

Große Unternehmen setzen dabei bevorzugt auf Private Cluster (2 bis 5 Maschinen), um die eigenen Anforderungen hinsichtlich Sicherheit und Performance umzusetzen. Hierbei verfolgen sie zwei Strategien: On-Premise Deployments und Docker-Hosting-Services. Die On-Premise Deployments werden dabei vornehmlich auf Bare Metal (physikalische Maschinen) zusammen mit der OpenStack-Cloud-Software aufgebaut, um vom Freiheitsgrad der Open-Source-Technologie zu profitieren. Die größte Herausforderung, der sich IT-Entscheider dabei ausgesetzt sehen, ist die Tatsache, dass derzeit nur wenig fertige Lösungen existieren, die ohne Anpassung in den gewünschten IT-Betrieb passen. Zu einem der wenigen Anbieter, die neben einem gehosteten Service auch eine On-Premise Variante inklusive Infrastrukturberatung im Portfolio haben, gehört GiantSwarm aus Deutschland.

Marktüberblick: Docker-Hosting-Anbieter

Eine Alternative zur eigenen On-Premise Container-Infrastruktur sind Docker-Hosting-Anbieter, die den direkten Betrieb und das Deployment von Docker-Anwendungscontainern ermöglichen, ohne für den Betrieb der dafür notwendigen Container-Infrastruktur selbst sorgen zu müssen. Neben der Docker-Plattform selbst, auf die bereits namhafte Unternehmen wie Paypal, Uber, Spotify, ING oder BBC News setzen, gehören dazu:

GiantSwarm

Das Startup GiantSwarm hat eine Microservice-Infrastruktur auf Basis der Docker-Technologie entwickelt, mit der Entwicklern das Deployment von Applikationen innerhalb von Docker-Containern vereinfacht wird. Hierzu wird die Architektur in einer Konfigurationsdatei im JSON-Format hinterlegt, anhand derer die Infrastruktur samt ihren Abhängigkeiten anschließend aufgespannt wird. GiantSwarm sorgt dafür, dass die Applikationen laufen und verknüpft automatisch sämtliche Services miteinander. Das Unternehmen aus Köln hat nicht nur einen eigenen Hosting-Service im Angebot, sondern berät vor allem große Unternehmen beim Aufbau und Betrieb von On-Premise Docker-Installationen im Kontext agiler Softwareentwicklung und DevOps-Prozessen. Kunden, die GiantSwarm bereits überzeugen konnte, sind neben internationalen Großunternehmen das deutsche Startup leanIX und die Entwicklerprofis von codecentric.

ProfitBricks

Der Zugang zu ProfitBricks Docker Hosting-Plattform ist derzeit über einen Early Access Invite möglich. ProfitBricks adressiert mit seiner Docker-Plattform das Problem mit dem "Noisy Neigbor", ein Phänom innerhalb von geteilten Infrastrukturen, bei dem eine virtuelle Maschine eine überproportionale Menge an Ressourcen in Anspruch nimmt. Nutzer der Docker-Plattform erhalten somit dedizierte CPU Cores und RAM für ihre Docker-Hosts, die bei Bedarf automatisch skalieren. Das bedeutet, dass die dedizierten Ressourcen mit einer Autoscaling-Funktion ausgestattet sind und sich damit dem Bedarf der Docker-Container anpassen können.

Amazon EC2 Container Service (ECS)

Mit dem EC2 Container Service (ECS) lassen sich verteilte Anwendungen in Docker-Containern innerhalb eines Clusters bestehend aus EC2-Instanzen betreiben. Der Cluster wird vollständig von AWS verwaltet. Das Ressourcen-Management von AWS verteilt die Container innerhalb des Clusters auf Basis der Konfiguration des Speicher- und CPU-Verbrauchs. Damit stehen die notwendigen Ressourcen dort zur Verfügung, wo sie gerade benötigt werden. Anhand der AWS APIs lassen sich die Anwendungen in den Docker-Containern starten und beenden sowie mit weiteren AWS-Services wie Elastic Load Balancing, Elastic Block Store Volumes und Identity and Access Management-Rollen verbinden.

Microsoft Azure Container Service

Die Basis des Azure Container Service bilden die Open-Source-Technologien Docker und Apache Mesos. Das Management erfolgt über das Data Center Management System Mesosphere DCOS. Microsoft will seinen Kunden damit die Möglichkeit geben, einen eigenen Mesos Container Cluster auf der Azure Cloud-Infrastruktur aufzubauen, um darüber Docker-ready Applikationen über mehrere virtuelle Maschinen horizontal zu skalieren. Der Service befindet sich bei Microsoft derzeit noch in der Entwicklung. Eine erste Preview ist gegen Ende 2015 zu erwarten. Allerdings werden dann wohl zunächst nur Linux-Container unterstützt, die Unterstützung für Windows-Server erfolgt dann in 2016.

Docker gehört auf den Tisch von IT-Entscheidern

Nachdem die IT-Industrie über Jahre hinweg Container in Form von virtuellen Maschinen genutzt hat, um eine Abstraktionsebene zu den physikalischen Plattformen zu schaffen, ermöglichen es Technologien wie Docker nun, Container zwischen Plattformen zu verschieben. Genauer gesagt geht es darum, Linux-Applikationen und Workloads zwischen mehreren Clouds zu bewegen, um damit die Portabilität zu verbessern. Im ersten Moment erscheint Docker damit als ein typisches Tool für Entwickler. Aus dem Blickwinkel eines CIOs handelt es sich allerdings klar um ein strategisches Werkzeug für die Optimierung von modernen Applikations-Deployments. Docker hilft dabei, die Portabilität einer Anwendung sicherzustellen, die Verfügbarkeit zu erhöhen und das Gesamtrisiko zu minimieren. Von dieser neuen Form der Portabilität können auch Cloud-Marktplätze und Cloud-Brokerage Services wie Deutsche Börse Cloud Exchange (DBCE) profitieren. Sie können ihren Kunden die Möglichkeit bieten, Applikationen zwischen den unterschiedlichen Anbietern je nach Bedarf zu verschieben. (wh)