Entwicklungs- und Geschäftsprozesse 05.08.2020, 06:00 Uhr

Container machen agiler

Mit Containern und Kubernetes Anwendungen lassen sich IT-Umgebungen modernisieren. Unternehmen zögern jedoch noch bei der Einführung.
(Quelle: Avigator Fortuner / shutterstock.com)
Zugegeben, brandneu sind Container nicht. Auf die Idee, mehrere Ausgaben eines Betriebssystems auf demselben Host laufen zu lassen, kamen bereits die Entwickler von Unix V7 Ende der 1970er-Jahre. Und Linux-Container (LXC) erschienen 2008 auf der Bildfläche. Zu einem Hype mutierte die Technologie fünf Jahre später mit der Container-Plattform Docker. Mittlerweile zeigt der Markt für Container-Plattformen allerdings deutliche Anzeichen der Kon­solidierung. So verkaufte Docker Anfang 2020 seine Geschäftskundensparte an den Cloud-Dienstleister Mirantis. Doch die Implosion von Docker hat unterm Strich auch gute Seiten, findet Frank Haumann, Partner beim Cloud-Spezialisten Red Reply: «Docker wurde dadurch zu einem echten Open-Source-Produkt. Der Vorteil für die Nutzer ist, dass nun kein Vendor-Lock-in droht.»
Das sehen auch andere Anbieter von Plattformen und Tools für containerisierte Anwendungen so: «Container sind akzeptiert und stellen die Technologie für die nächste Dekade dar, vor allem wegen der steigenden Zahl an containerbasierten Microservices», sagt etwa Thomas Meier, Chief Technologist Intelligent Data Platform & Hybrid IT bei HPE. Für Container sprechen aus seiner Sicht zudem die vielfältigen Einsatzfelder: «Sie sind überall dort zu finden, wo die Vorteile der Technologie Entwicklungs- und Geschäftsprozesse beschleunigen.»
“Für Entwickler gehört Docker zum Standard – gerade beim Evaluieren von neuer Software und solange es sich nicht um eine reine Microsoft-Umgebung handelt„
Frank Haumann, Partner bei Red Reply
Frank Haumann vom Software-Haus Red Reply sieht derzeit drei Haupteinsatzfelder von Containern:
  • Grosse, skalierbare B2C-Anwendungen wie mobile App-Backends, Content-Management-Systeme und Webshops
  • Kleine Anwendungen mit komplexen Implementierungsansätzen, meist aus dem Java-Umfeld. Container ermöglichen dort etwa eine schnelle Evaluierung der Software
  • Die Modernisierung von Legacy-Anwendungen.
Ein Vorteil von Containern ist auch die Automatisierung manueller Prozesse, hebt Oliver Weiss hervor, Managing Delivery Architect beim Beratungshaus und IT-Dienstleister Capgemini: «Container sind eine gute ‹Verpackung› für Software und ihre Konfigurationen, weil typische manuelle Konfigurationsschritte beim Anlegen einer Betriebsumgebung durch revisionssichere Automatisierungsprozesse erleichtert werden.» Das vermeidet Fehler und Verstösse gegen Compliance- und Datenschutzregeln. Ausserdem können Weiss zufolge Container nach dem Schichtensystem aufgebaut werden. «Dadurch lässt sich das Prinzip Separation of Concerns in einer Organisation umsetzen, also die Trennung von Zuständigkeiten.» Dann ist nicht nur eine Abteilung dafür zuständig, einen Container zu liefern. Vielmehr setzt sich dieser aus mehreren Teilen zusammen – «etwa aus dem Ergebnis eines Sprints des Entwicklerteams und den Basis-Images der Betriebs-Software, die wiederum das Cyber-Security-Team auf Resilienz überprüft hat», so Weiss.
“Der Einsatz von Plattformen verleitet schnell dazu, die Anzahl an Containern und zu verwaltenden Artefakte explodieren zu lassen. Dann besteht die Gefahr, dass der Überblick verloren geht, was auf der Plattform eingesetzt wird und welchen Bezug die Teile zueinander haben„
Oliver Weiss, Managing Delivery Architect bei Capgemini
Keine Überraschung ist, dass AWS, Microsoft und Google den Einsatz von Containern vor allem in Verbindung mit Public-Cloud-Services sehen. «Bei allen Container-Diensten konstatieren wir hohe Wachstumsraten», berichtet Sascha Möllering, Solutions Architect Manager bei Amazon Web Services. «Die hohe Akzeptanz lässt sich alleine daran ablesen, dass AWS gleich vier Container-Services bereitstellt.» Mit AWS Fargate für Amazon EKS etwa können Anwender «serverless» Applikationen, die auf die Container-Management-Lösung zurückgreifen, einrichten und verwalten. 
Doch Unternehmen, die gemanagte Container-Umgebungen oder Kubernetes-Cluster einrichten wollen, werden nicht nur bei Cloud-Hyperscalern fündig. Auf den Markt drängen auch heimische Anbieter wie die Swisscom, MTF oder auch VSHN. Hinzu kommen Firmen aus Fernost wie Alibaba, Huawei und Tencent.
Der nächste Schritt
Serverless Computing
Die Marktforscher von Gartner prognostizieren, dass Serverless Computing mittelfristig an die Stelle von Container-Technologien treten wird. Karsten Stöhr, Data Architect bei DataStax erläutert, was sich hinter der Technologie verbirgt.
Mit Serverless Computing oder Function-as-a-Service (FaaS) wollen Cloud-Provider den nächsten Schritt auf dem Weg zur idealen Applikationsentwicklung gehen. Er sieht vor, dass sich die Projektverantwortlichen bei der Entwicklung einer Anwendung nur um die Umsetzung der Geschäftslogik kümmern müssen und kaum noch Zeit für das Aufsetzen und Betreiben der benötigten Infrastruktur aufwenden. Entwickler sollen ihren Code in unterschiedlichen Programmiersprachen als Funktionen direkt in einer Cloud ausführen können. Das erfolgt mithilfe von Application Programming Interface (APIs). 
Allerdings sind diese Funktionen zustandslos (Stateless), und dies beeinflusst die Entwicklung. Mehrere Aufrufe derselben Serverless Function laufen unabhängig voneinander, sie teilen nichts miteinander. Zustände oder Daten müssen also in einer Datenbank oder einem Speichersystem abgelegt werden, welches einen Aufruf eines Web- oder Cloud-Services hinzufügt. Diese Datenspeicherung muss daher sehr schnell arbeiten, um die Antwortzeit der Funktionen durch den zusätzlichen Speicheraufruf möglichst wenig zu verlängern. Außerdem muss eine solches Datenbank mit den Funktionen skalieren können. Nur dann ist auch bei hoher Nutzung und vielen gleichzeitigen Aufrufen eine gleichbleibende Servicequalität und flüssige Bedienung gewährleistet. 
Einschränkung: Die Serverless Functions der einzelnen Cloud-Anbieter unterscheiden sich in verschiedenen Punkten. Dies beeinflusst die Entwicklung von Applikationen und schränkt die freizügige Verwendung auf unterschiedlichen Plattformen gegenüber Containern ein. So unterscheiden sich zum Beispiel die Funktionskonfigurationen, die Einsprungpunkte (Entry Points) und Antwortstrukturen. Gleiches gilt für die Konfiguration der Zugangsdaten. 
Außerdem sollte eine Datenbank verwendet werden, die nativ Multi-Cloud- und Hybrid-Cloud-Infrastrukturen unterstützt, um eine freizügige Verwendbarkeit der entwickelten Serverless Functions auf unterschiedlichen Plattformen zu gewährleisten. Für eine hochskalierbare, Cloud-native Infrastruktur sind traditionelle Datenbanken ungeeignet. Stattdessen benötigt man eine Datenbank mit Masterless-Architektur ohne Single Point of Failure. Nur dann haben alle Applikationen in jeder Umgebung, in der sie gerade laufen, überall Zugriff auf die Daten, und das bei kurzen Latenzzeiten.



Das könnte Sie auch interessieren