Container as a Service: Docker, Kubernetes & Co. als Dienstleistung beziehen

  • Beitrag vom 05.12.2019

Implementierung und Management von Container-Technologien erfordern Erfahrung und binden Personal. Doch es gibt eine Alternative zum Selbstbetrieb.

Die Erfolgsgeschichte der Container-Technologie Docker ist beeindruckend: Im Jahr 2013 gestartet ist sie heute laut dem Netzwerkmonitoring-Spezialisten Datadog bereits bei 25 Prozent der Unternehmen in Verwendung. Jedes Jahr kommen weitere drei bis fünf Prozent hinzu. Das Prinzip ist bestechend einfach: Statt eine Applikation auf einem herkömmlichen Server oder in einer virtuellen Maschine zu betreiben, wird sie samt aller notwendigen Hilfsprogramme und Bibliotheken in ein lauffähiges Paket verpackt. Da sich alle Container einer Plattform dasselbe Betriebssystem teilen, sind die Anforderungen an Rechenleistung und Speicherkapazität deutlich geringer als bei herkömmlichen virtuellen Maschinen. Container lassen sich daher schnell und hoch skalierbar installieren und genauso schnell wieder deaktivieren. Die durchschnittliche Lebensdauer beträgt laut Datadog nur zwei Tage. Auch ein Verschieben zwischen verschiedenen Umgebungen ist kein Problem. So können Applikationen beispielsweise auf einem Test-Server entwickelt und dann für den Produktivbetrieb auf leistungsfähigere Systeme oder in die Cloud transferiert werden. Da die Applikationen in ihren Containern strikt voneinander getrennt sind, haben Docker und Co. auch positive Auswirkungen auf die Sicherheit und Verfügbarkeit von Anwendungen. Infektionen können sich nicht ohne Weiteres über Container-Grenzen hinweg ausbreiten und stürzt eine fehlerhafte Applikation ab, werden andere Systeme davon nicht beeinträchtigt.

Für Unternehmen bringt die Integration von Container-Technologien jedoch auch Herausforderungen mit sich. Implementierung und Management von Containern erfordern qualifiziertes IT-Fachpersonal, das in vielen Fällen erst einmal ausgebildet oder eingestellt werden muss. Zudem sind viele IT-Abteilungen bereits mit ihren bisherigen operativen Aufgaben überlastet und können sich nicht auch noch um die Verwaltung von Docker-Umgebungen kümmern. Die Integration in bestehende

Authentifizierungssysteme, Security-Tools und Netzwerkdienste kann ebenfalls Probleme und erhöhte Aufwände verursachen.

Die Nutzung von Container-Services kann daher eine gute Alternative zum Aufbau einer eigenen Plattform sein. Container-as-a-Service-Angebote aus der Cloud stellen die notwendige Infrastruktur für den Betrieb von Containern bereit und bieten eine Managementumgebung für deren Verwaltung. Das entlastet die interne IT und erhöht die Flexibilität. Da Container standardisiert sind, besteht zudem nicht die Gefahr einer Provider-Abhängigkeit. Anders als etwa tiefer integrierte Services wie Serverless Computing lassen sich Container jederzeit zwischen Providern verschieben oder im eigenen Rechenzentrum weiter betreiben. Container-as-a-Service-Modelle sind zudem nicht auf die Nutzung in der Cloud beschränkt. CaaS-Plattformen wie Red Hat OpenShift oder Rancher können auch lokal installiert werden.

Kriterien für die Provider-Wahl

Nach Prognosen des Marktforschungsunternehmens Kenneth Research wächst der weltweite CaaS-Markt im Durchschnitt um fast 35 Prozent pro Jahr. Immer mehr Provider erkennen dieses Potenzial und bieten entsprechende Services an. Zu den Marktführern gehören aktuell Amazon Web Services mit Elastic Container Services (ECS), Microsoft mit Azure Kubernetes Service (AKS) und Google mit Kubernetes Engine. Um den richtigen Partner für Ihr Container-Projekt zu finden, sollten Sie vor allem auf folgende Kriterien achten:

  • Auswahl an Container-Formaten. Auch wenn Docker das bekannteste und am weitesten verbreitete Container-System ist, so gibt es doch auch eine Reihe von Alternativen. Zu nennen wären etwa Rocket, LXD, OpenVZ, Flockport, Windocks oder Boxfuse. Je mehr Varianten der Provider unterstützt, desto größer sind Ihre Entwicklungsmöglichkeiten.
  • Verfügbare Management-Systeme. Das bekannteste und verbreitetste System für das Container-Management ist Kubernetes. Es wird daher von praktisch allen CaaS-Providern unterstützt. Sollten Sie Alternativen wie Docker Swarm oder D2iQ bevorzugen, ist die Auswahl an Dienstleistern bereits deutlich eingeschränkt.
  • Unterstützung von Multi-Container-Applikationen. Bei größeren, komplexeren Applikationen kann es sinnvoll sein, einzelne Komponenten in separaten Containern zu betreiben. Falls Sie solche Anwendungen nutzen oder deren Entwicklung planen, muss die CaaS-Umgebung Ihrer Wahl entsprechende Multi-Container-Installationen unterstützen.
  • Angebot an Tools und Programmiersprachen. Die Einarbeitungszeit ist in der Regel umso kürzer, je vertrauter Sie bereits mit den zur Verfügung gestellten Werkzeugen und Programmierumgebungen sind. Entwickler aus dem Microsoft-Umfeld finden sich beispielsweise auf der Azure-Plattform schnell zurecht.
  • Integration in andere Cloud-Dienste. Die Container-Services sollten in ein umfassendes Software-Ökosystem eingebunden sein, um zusätzliche Mehrwerte generieren zu können. Partner-Netzwerke und Marktplätze für Applikationen sind hierfür die gängigsten Angebote der Provider.
  • Support und Dokumentation. Bei Fehlern oder Problemen sollte der Provider schnell reagieren und Unterstützung bieten. Achten Sie daher auf einen hochwertigen Support, dessen Qualität über Service-Level-Agreements (SLA) garantiert wird. Die Gefahr von Programmierfehlern lässt sich von vorneherein minimieren, wenn sämtliche Funktionen ausführlich und verständlich beschrieben sind. Eine gute Dokumentation der Funktionen und Services ist daher ebenfalls ein wichtiges Auswahlkriterium.
  • Benutzerfreundlichkeit und Einfachheit. Je weniger sich Entwickler mit Verwaltungsaufgaben oder komplizierten Benutzeroberflächen herumschlagen müssen, desto schneller kommen sie zu einem Ergebnis. Am besten richten Sie auf mehreren Plattformen Test-Accounts ein. Das ist meist mit wenigen Klicks erledigt. So lässt sich die Benutzerfreundlichkeit der verschiedenen Angebote im direkten Vergleich evaluieren.
  • Abrechnungsmodelle. Die Services sollten möglichst flexibel und nutzungsabhängig abgerechnet werden. Für erste Tests sind monatlich kündbare Verträge vorzuziehen. Mittelfristig sollten Sie aber besser auf ein Angebot mit längerer Laufzeit setzen oder Pakete buchen. Diese sind meist deutlich günstiger als die flexiblen Tarife. Vereinbaren Sie möglichst eine Ausgaben-Obergrenze. Ansonsten können die Kosten aus dem Ruder laufen, wenn die Nutzung Ihrer Applikation stärker als geplant ansteigt.

Fazit

Container as a Service entlastet die interne IT und ermöglicht es, die Vorteile von Docker und anderen Systemen zu nutzen, ohne intern Know-how und zusätzliches Personal aufbauen zu müssen. Welcher Dienst der Richtige ist, hängt von Ihren Einsatzszenarien, aber auch vom Wissen und den Vorlieben der Entwickler ab. Es spricht außerdem nichts dagegen, mehrere CaaS-Angebote zu kombinieren, um eine optimale Umgebung für die eigenen Anforderungen zu schaffen. Einer der großen Vorteile von Containern ist schließlich ihre Plattformunabhängigkeit.