21.02.2019
Docker & Co.
1. Teil: „Anwendungs-Container aus den Wolken“
Anwendungs-Container aus den Wolken
Autor: Bernd Reder
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.
Software wird in abgeschotteten Instanzen auf einer Betriebssystemplattform ausgeführt - inklusive ihrer Abhängigkeiten, also Programmbibliotheken und Konfigurationseinstellungen.
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 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.
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 OpenShift, 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 Foundry 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.“
5. Teil: „Im Gespräch mit Matthias Kranz von Red Hat“
Im Gespräch mit Matthias Kranz von Red Hat
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 Container 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 Public 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.
Test-Framework
Testautomatisierung mit C# und Atata
Atata ist ein umfassendes C#-Framework für die Web-Testautomatisierung, das auf Selenium WebDriver basiert. Es verwendet das Fluent Page Object Pattern und verfügt über ein einzigartiges Protokollierungssystem sowie Trigger-Funktionalitäten.
>>
3 Modelle
Business GPT - Telekom bringt KI-Angebot für Unternehmen
Mit ihren Business GPT-Angeboten will die Telekom eine sichere KI-Lösung für Geschäftskunden anbieten. Drei Modelle haben die Bonner dafür entwickelt – und die haben ihren Preis.
>>
Programmiersprache
Primärkonstruktoren in C# erleichtern den Code-Refactoring-Prozess
Zusammenfassen, was zusammen gehört: Dabei helfen die in C# 12 neu eingeführten Primärkonstruktoren, indem sie Code kürzer und klarer machen.
>>
Huawei Roadshow 2024
Technologie auf Rädern - der Show-Truck von Huawei ist unterwegs
Die Huawei Europe Enterprise Roadshow läuft dieses Jahr unter dem Thema "Digital & Green: Accelerate Industrial Intelligence". Im Show-Truck zeigt das Unternehmen neueste Produkte und Lösungen. Ziel ist es, Kunden und Partner zusammenzubringen.
>>