Docker & Co.
26.02.2019, 09:22 Uhr
Anwendungs-Container aus den Wolken
Zur Nutzung einer Container-Technologie gibt es zwei Wege: On-Premise oder Cloud. Letztlich wird sich wohl eine Mischung aus beiden Ansätzen ergeben, sind sich Experten sicher.
Container-Technologien wie Docker und CoreOS sind wie geschaffen für das agile, digitale Zeitalter. Denn sie ermöglichen es Entwicklern und Administratoren, in sogenannten Containern komplette Anwendungen zu entwickeln, zu testen und bereitzustellen. Die Software wird in abgeschotteten Instanzen auf einer Betriebssystemplattform ausgeführt – inklusive ihrer Abhängigkeiten, also Programmbibliotheken und Konfigurationseinstellungen.
Dieser Container-Ansatz bringt mehrere Vorteile, so Abby Kearns, Executive Director der Cloud Foundry Foundation: «Vorzüge von Containern sind die höhere Dichte und die kürzere Startzeit im Vergleich zu virtuellen Maschinen. Ausserdem ermöglichen Container-Images die Portabilität von Anwendungen durch Standardisierung und kleine Image-Grössen.» Dominique Schneider, Presales Engineer bei OVH, einem weltweit aktiven Betreiber von Cloud-Rechenzentren, sieht drei Hauptvorteile von Containern: «Der eine ist die grosse Funktionssicherheit. Die Grundidee von Docker, also Build, Ship and Run, bedeutet letztendlich, dass eine Container-App in eine entsprechende Infrastruktur ‹geschickt› werden kann und dort problemlos läuft. Durch die Container-Technologie gibt es keine Probleme mit der Kompatibilität, etwa durch Versionskonflikte.»
“Container sind nur eine von vielen möglichen Abstraktionen, die von Cloud-Plattform-Anbietern angeboten werden.„
Abby Kearns, Executive Director, Cloud Foundry Foundation
Ressourcen-Schoner
Ein weiterer Vorteil sei der einfache Aufbau von Umgebungen, in denen mehrere Betriebssysteme aktiv sind. In einem Umfeld, in dem etwa Applikationen für Windows, iOS und Android entwickelt und genutzt werden, umgehen Container die Restriktionen der Betriebssysteme. So lassen sich Container mit verschiedenen Betriebssystemen zusammen in einer virtuellen Maschine betreiben.
«Der dritte grosse Vorteil liegt in der Ressourceneinsparung», so Schneider. Durch die Architektur muss nicht für jede Instanz ein komplettes Betriebssystem installiert werden. Container benötigen nur die entsprechenden Bibliotheken und Einstellungen, um aus dem Betriebssystemkern eine lauffähige Umgebung zu generieren. «Zum Vergleich: In einer virtuellen Maschine müssen die Anwendung und das komplette Betriebssystem enthalten sein», fährt Schneider fort.
Neben neuen Anwendungen lassen sich auch vorhandene Applikationen über Container bereitstellen. Nach Angaben des Beratungshauses IDC entfallen von den Container-Anwendungen an die 54 Prozent auf solche Legacy-Anwendungen, 46 Prozent auf neue Software. Ein Grund dafür ist, dass etwa drei Viertel der Bestandsanwendungen ohne grössere Änderungen am Code für Container fit gemacht werden können.
Übersicht
Container und Orchestrierung
Unter den Container-Laufzeitumgebungen ist nach wie vor Docker der unangefochtene Platzhirsch. Nach Angaben von Sysdig, Anbieter einer Monitoring-Lösung für Container-Anwendungen, liegt der Marktanteil von Docker bei 83 Prozent. Auf den folgenden Plätzen rangieren CoreOS RKT von Red Hat (12 Prozent) und Mesos Containerizer (4 Prozent). Ein Neuling mit allerdings beträchtlichem Potenzial ist CRI-O (Container Runtime Interface). Diese Umgebung ist auf die Zusammenarbeit mit Kubernetes zugeschnitten, den De-facto-Standard für das Management, also die Orchestrierung von Containern.
Die Orchestrierung von Containern übernehmen spezielle Software-Pakete. Mit solchen Tools können IT-Fachleute Container bereitstellen und löschen, Konfigurationsaufgaben automatisieren und Fehler beheben. Derzeit sind vor allem folgende Lösungen zu beachten:
Docker Swarm: Ist seit Version 1.12 Bestandteil der Docker-Engine. Allerdings arbeiten Docker-Container auch mit Kubernetes zusammen. Im Gegensatz zu Kubernetes zielt Swarm auf Umgebungen mit kleineren Container-Clustern ab, für die ein kompaktes und schnelles Tool ausreicht, das sich einfach handhaben lässt.
Kubernetes beziehungsweise K8: Stammt ursprünglich von Google und hat sich zum beliebtesten System für die Verwaltung von Containern entwickelt. Ein Vorteil ist, dass sich mit Kubernetes Container unterschiedlicher Formate managen lassen, etwa Docker und CRI-O. Kubernetes ist die Basis für etliche Container-Frameworks, etwa Mesosphere DC/OS. Einige Frameworks wie Microsoft Azure Kubernetes Service (AKS) sind auch als Cloud-Service verfügbar.
Amazon ECS (Elastic Container Service): Ist ein Container-Orchestrierungsservice für Docker-Container. Zu den Vorteilen zählen die enge Verknüpfung mit anderen Cloud-Services von AWS sowie die hohe Sicherheit und Zuverlässigkeit. Vor allem für Unternehmen, die bereits andere Cloud-Dienste von AWS nutzen, ist ECS daher eine Option. Allerdings ist AWS auch bei Kubernetes aktiv: Seit Ende 2017 steht mit Amazon EKS ein dezidierter Kubernetes-Service bereit, den AWS hostet und verwaltet. Damit haben Nutzer einer Alternative zu ECS.
Titus: Stammt eigentlich vom Video-Streaming-Dienstleister Netflix. Der Anbieter setzt stark auf Container-Services. Nach eigenen Angaben startet das Unternehmen pro Tag eine halbe Million Container und 200'000 Cluster. Im April 2018 hat Netflix seine interne Orchestrierungs-Plattform auf GitHub als Open-Source-Software bereitgestellt. Da Netflix in hohem Maß auf Cloud-Ressourcen von AWS zurückgreift, ist auch Titus auf spezielle Funktionen von AWS zugeschnitten. Es ist derzeit nicht absehbar, welche Relevanz Titus im Bereich Container-Orchestrierung erreichen wird.