Business-IT
21.02.2019
Docker & Co.
1. Teil: „Anwendungs-Container aus den Wolken“

Anwendungs-Container aus den Wolken

Schiffscontainer mit WolkenhintergrundSchiffscontainer mit WolkenhintergrundSchiffscontainer mit Wolkenhintergrund
Dmitrydesign / shutterstock.com
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.
  • Die wichtigsten Vorteile von Anwendungs-Containern: Besonders wichtig sind aus Sicht von Unternehmen die höhere Sicherheit und die einfachere Verwaltung von Anwendungen.
    Quelle:
    IDC
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. Außerdem ermöglichen Container-Images die Portabilität von Anwendungen durch Standardisierung und kleine Image-Größen.“ Dominique Schneider, Presales Engineer bei OVH, einem weltweit aktiven Betreiber von Cloud-Rechenzentren, sieht drei Hauptvorteile von Containern: „Der eine ist die große 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.“

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 große 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ößere Änderungen am Code für Container fit gemacht werden können.
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, Konfigurationsauf­gaben 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 Vor­teilen 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.
2. Teil: „Nutzungsoptionen“

Nutzungsoptionen

Um Container beziehungsweise ganze Cluster mit solchen Software-Behältern zu verwalten, stehen Management-Frameworks wie Kubernetes, Docker Swarm und Red Hat OpenShift zur Verfügung. Auch was die Implementierung betrifft, haben Nutzer mehrere Möglichkeiten. Derzeit sammeln nach Angaben von Docker die Hälfte der Nutzer erste Erfahrungen, indem sie ein oder zwei Applikationen containerisieren. Sollen Container in größerem Maßstab zum Zuge kommen, bieten sich zwei Optionen an:
Ein Unternehmen nutzt eine Enterprise Container Platform (ECP). Sie stellt eine Umgebung bereit, in der sich Container-Anwendungen entwickeln, bereitstellen, verwalten und absichern lassen. Eine ECP lässt sich im eigenen Rechenzentrum betreiben (On-Premise) oder als Cloud-Service ordern. Hinzu kommen weitere Varianten wie Managed Services.
CaaS - Container as a Service: In diesem Fall stellen Cloud-Service-Provider wie AWS, Microsoft, Google oder 1&1 Ionos ein Container-Framework bereit.

Container als Cloud-Service

Zunächst ein Blick auf das Angebot bei Container-Diensten, die über Public Clouds bereitstehen (CaaS). In diesem Bereich dominieren nach Angaben des Marktforschungsunternehmens Gartner die großen Drei: Amazon Web Services (AWS) mit Elastic Container Service for Kubernetes, Microsoft mit seiner Azure-Plattform und dem Azure Kubernetes Service (AKS) sowie Google mit der Google Kubernetes Engine (GKE).
Allerdings sind mittlerweile weitere Anbieter in diesem Segment aktiv. Dazu zählen die Deutsche Telekom, die über ihre Open Telekom Cloud die Cloud Container Engine (CCE) anbietet. Auch der Linux-Pionier Suse hat mit der Suse CaaS Platform eine Lösung entwickelt. Sie zielt auf Betreiber von Online-Plattformen, die darüber eigene Software vertreiben. Seit Anfang 2018 ist zudem 1&1 Ionos auf dem CaaS-Markt aktiv. Der Service-Provider aus Deutschland stellt beispielsweise Kubernetes as a Service sowie 1&1 Ionos Container Cluster bereit. Hinzu kommen weitere Anbieter im Bereich CaaS, etwa Oracle, IBM und HPE, also IT-Firmen, die verstärkt auf Public-Cloud-Dienste setzen. Noch in Vorbereitung ist die Plattform von SAP.

Kern: die Orchestrierung

Eine Hauptaufgabe von CaaS-Plattformen besteht darin, Werkzeuge für die Orchestrierung von Containern bereitzustellen beziehungsweise APIs (Application Programming Interfaces) zu solchen Tools anzubieten. De facto sind das meist Schnittstellen zu Kubernetes. Teilweise stehen auch Docker Swarm oder DC/OS von Mesophere zur Verfügung. Cloud-Service-Provider bieten als Ergänzung zudem weitere notwendige Ressourcen an, etwa Speicherplatz (Storage) auf Basis von Object Storage oder Block Storage. Hinzu kommen Server-Kapazitäten (Compute) und Netzwerkkomponenten (Networking), außerdem Datenbanken. Als Ergänzung stehen Sicherheits- und Monitoring-Dienste zur Verfügung, zudem Services für den Lastausgleich (Load-Balancing) und eine beschleunigte Bereitstellung.
Der Vorteil eines solches Baukastens ist, dass ein Nutzer quasi alle Komponenten aus einer Hand erhält, die er für die Implementierung einer Container-Umgebung benötigt. Das entlastet die hauseigene IT-Abteilung und hat den Vorteil, dass sich die Ressourcen nach Bedarf erweitern oder reduzieren lassen. Das gilt nicht nur für die IT-Infrastruktur wie Speicherplatz und Server-Kapazitäten, sondern auch für Entwicklungs- und Testwerkzeuge sowie Monitoring-Tools.
3. Teil: „Enge Verzahnung hat Nachteile“

Enge Verzahnung hat Nachteile

Mit diesem Rundum-Service ist jedoch ein Risiko verbunden: Die Bindung an einen Provider kann dazu führen, dass der Wechsel eines CaaS-Angebots aufwendig und riskant ist. Denn je enger die Verknüpfung von Containern mit Infrastruktur-Diensten und Tools eines Cloud-Anbieters ist, desto stärker leidet die Portabilität der Container.
Die Abhängigkeit von einem Anbieter ist umso kritischer zu sehen, als der Trend zu Multi-Cloud-Umgebungen geht. Das heißt, Unternehmen setzen bei Cloud-Diensten bewusst auf unterschiedliche Anbieter, um Risiken zu verteilen und einen Vendor-Lock-in zu vermeiden. David Linthicum, Chief Cloud Strategy Officer bei Deloitte Consulting, warnt daher vor einer „funktionalen Abhängigkeit“ von einem einzelnen Cloud-Service-Provider.

Google vor AWS

Nach Einschätzung von Analysten hat derzeit unter den CaaS-Angeboten Googles GKE die Nase vorn: „Obwohl AWS in den vergangenen Monaten einiges in Richtung Container und Kubernetes unternommen hat, sind noch einige Hausaufgaben zu tun, um eine Performance und Stabilität ähnlich der von Googles Cloud Platform zu erreichen“, stellt beispielsweise Maximilian Hille fest, Senior Analyst beim Beratungshaus Crisp Research.
Wer im Übrigen einsatzfertige Container-Anwendungen „made in Germany“ nutzen will, wird beispielsweise bei der Software AG fündig: „Insbesondere für Deutschland ist interessant, dass auch die Software AG mit zehn Container-Produkten im Marketplace von AWS vertreten ist und somit auch für die Unternehmen hierzulande attraktive Lösungen bereitgestellt werden“, erklärt Maximilian Hille.

Alternative: ECP

Alternativ zu CaaS-Angeboten haben Nutzer die Option, auf eine Enterprise Container Platform (ECP) zurückzugreifen. Eine solche Lösung für die Bereitstellung und Verwaltung von Anwendungen in Containern wird im hauseigenen Rechenzentrum oder in einer Private Cloud eingerichtet. Eine klare Abgrenzung zu CaaS-Angeboten ist jedoch in vielen Fällen schwierig. Ein Grund dafür ist die zunehmende Verbreitung hybrider Cloud-Umgebungen, die Elemente von Private und Public Clouds vermengen. Dementsprechend sind Lösungen verfügbar, mit denen Unternehmen Container sowohl On-Premise als auch unter Verwendung von Ressourcen in einer Public Cloud implementieren können. Ein Beispiel ist Cisco Hybrid Solution for Kubernetes on AWS. Damit können Unternehmen lokale Kubernetes-Umgebungen so konfigurieren, dass sie zum Amazon Elastic Container Service for Kubernetes (Amazon EKS) kompatibel sind.
„Bislang mussten sich die meisten Kunden entscheiden: Entwickeln wir unsere Anwendungen On-Premise oder in der Cloud. Dadurch entstehen heterogene Umgebungen, Technologien, Teams und Lieferantenstrukturen. Aber so sollte es nicht sein“, sagt Kip Compton, Senior Vice President, Cloud Platform and Solutions bei Cisco. „Mit unserer Lösung können Entwickler auf Basis der vorhandenen Infrastruktur neue cloudskalierte Anwendungen entwickeln und geschäftliche Innovationen vorantreiben.“

ECP: Docker und Red Hat vorn

Laut einer Studie des Marktforschungshauses Forrester Research Ende 2018 nehmen bei ECP-Plattformen folgende  Hersteller die ersten drei Positionen ein: Red Hat mit Open­Shift, Docker mit Docker Enterprise sowie das US-Unternehmen Rancher mit Rancher OS. Bewertet hat Forrester unter anderem die Management- und Sicherheitsfunktionen, das Application Lifecycle Management sowie das Angebot an Schnittstellen (APIs). „Ein Vorteil solcher Plattformen ist, dass sich die Entwicklung und Bereitstellung von Applikationen mit Hilfe von Container-Technologien deutlich beschleunigen lässt und vor allem automatisiert werden kann. Letzteres ist wichtig, um die Qualität und Nachvollziehbarkeit zu erhöhen“, erläutert Matthias Kranz, Director, Solution Architects DACH bei Red Hat.
4. Teil: „Fazit und Übersicht über Plattformen“

Fazit und Übersicht über Plattformen

Ein Großteil der Unternehmen setzt bereits Container-Technologien ein oder hat zumindest vor, dies innerhalb der kommenden 24 Monate zu tun. Das haben diverse Marktstudien ermittelt.
Allerdings sind vor allem Großunternehmen an Anwendungs-Containern interessiert: Einer Untersuchung der Cloud Foundry Foundation zufolge zählen Container zu den Top 5 der IT-Technologien, die CIOs und IT-Führungskräfte in Firmen mit mehr als 10.000 Mitarbeitern auf der Agenda haben. Dagegen konzentrieren sich kleine und mittelständische Firmen eher auf Entwicklungen wie cloudnative Anwendungen, Künstliche Intelligenz und Edge-Computing. Das heißt jedoch nicht, dass Unternehmen dieser Kategorie um das Thema Container herumlavieren können. Denn ein wesentlicher Aspekt von Digitalisierung umfasst nun einmal kürzerer Software-Zyklen und das schnelle Bereitstellen und Modifizieren von Apps.
Die Frage, ob Anwendungen und Systemumgebungen überhaupt in Container verpackt werden sollten, stellt sich nach einhelliger Einschätzung von IDC-, Gartner- und Forrester-Analysten nicht. Weil sich Container schnell einrichten und wieder vernichten lassen, eignet sich dieser Ansatz in besonderem Maß für Unternehmen, die stark auf Digitalisierung und agile Entwicklungsmethoden setzen.
Vielmehr geht es darum, auf welche Weise Container-Frameworks implementiert und genutzt werden: als Cloud-Dienste oder im eigenen Data-Center. Letztlich, so die Marktforscher von IDC, wird sich in der Praxis eine Mischung beider Ansätze ergeben, und dies in Kombination mit unterschiedlichen Virtualisierungstechnologien.
Das unterstreicht auch Abby Kearns von der Cloud Foun­dry Foundation: „Container sind nur eine von vielen möglichen Abstraktionen, die von Cloud-Plattform-Anbietern angeboten werden, etwa Virtual Machines, CaaS oder Platform as a Service.“
Container: Plattformen für die Cloud und On-Premise (Auswahl)
5. Teil: „Im Gespräch mit Matthias Kranz von Red Hat“

Im Gespräch mit Matthias Kranz von Red Hat

  • Matthias Kranz: Director, Solution Architects DACH bei Red Hat
    Quelle:
    Red Hat
Die Akzeptanz von Container-Technologien in deutschen Unternehmen steigt rasch an, so Matthias Kranz, Director, Solution Architects DACH bei Red Hat. Ein Grund dafür ist, dass sich Anwendungen mit Hilfe dieses Ansatzes schneller entwickeln und bereitstellen lassen.
com! professional: Welche Vorteile bieten Container-Plattformen?
Matthias Kranz: Container stellen eine isolierte Laufzeitumgebung zur Verfügung, die es Entwicklern erlaubt, ihre Applikation in einer Art Sandbox zu erstellen, inklusive aller Abhängigkeiten. Die definierten Container können dann aufgrund eines standardisierten Formats in unterschiedlichsten Umgebungen ablaufen. Im Vergleich zur klassischen Virtualisierung ist diese Laufzeitumgebung aber wesentlich leichtgewichtiger.
com! professional: Und wie läuft die Verwaltung solcher Con­tainer ab?
Kranz: Eine Container-Management-Umgebung kümmert sich um die Bereitstellung, die Pflege, das Monitoring und unter Umständen auch um die Abrechnung nach Verbrauch. Ein Vorteil ist, dass sich die Entwicklung und Bereitstellung von Applikationen mit Hilfe von Container-Technologien deutlich beschleunigen lässt und vor allem automatisiert werden kann. Letzteres ist wichtig, um die Qualität und Nachvollziehbarkeit zu erhöhen.
com! professional: Wie ist die Akzeptanz solcher Plattformen bei deutschen Unternehmen?
Kranz: Die Nachfrage nach Container-Technologien, sei es als Container-as-a-Service- oder als Platform-as-a-Service-Lösung, ist sehr hoch. Dabei ist es für Firmen heute von entscheidender Bedeutung, ihre vorhandene IT-Landschaft darauf abzustimmen, dass sie mit hybriden Cloud-Umgebungen zurechtkommt.
com! professional: Warum sind Hybrid Clouds so wichtig?
Kranz: Viele Applikationen, gerade auch in Microservices-Architekturen, bestehen aus Modulen. Diese können zum Teil in einer Pu­blic Cloud, aber auch in einer Private Cloud laufen. Die Red Hat OpenShift Container Platform beispielsweise bietet die passende Lösung für diese Anforderungen.
com! professional: Wie ist es um die Sicherheit von Container-Anwendungen bestellt?
Kranz: Das ist eine vielschichtige Frage. Die Sicherheit der Container startet mit der Ablaufumgebung, in der die Container zum Einsatz kommen. Bei On-Premise-Installationen kommt es vor allem auf die Verlässlichkeit des Host-Betriebssystems an. Ähnliches gilt für die Laufzeitumgebung selbst, die ja aus Programmen und Bibliotheken besteht, die typischerweise aus dem Betriebssystem stammen. Gerade deshalb weisen wir seit einiger Zeit darauf hin, dass Container mit Linux gleichzusetzen sind. Durch die Möglichkeit, ‚containerisierte‘ Prozesse zu isolieren und die Ressourcen zu limitieren, lassen sich mehrere Applikations-Container sicher auf einem Shared Host betreiben.

mehr zum Thema