Container, Microservices und Clouds: Wie sich Anbieterabhängigkeiten reduzieren lassen

München, Starnberg, 01. März 2019 - Container erlauben skalierbare Anwendungen, verhindern alleine aber keinen „Lock-in“; auf die richtige Datenstrategie kommt es an…

Zum Hintergrund: Ein Trend bei Entwicklungsteams geht zur Nutzung von immer mehr Software-Containern und Microservices. Und diese Konzentration auf das Wesentliche steigert deren Produktivität enorm. Eine Umfrage von 451 Research hat das jüngst unterstrichen: Rund 57 Prozent der befragten Unternehmen nannten danach die Produktivität der Entwickler als einen entscheidenden Grund für ihren Wechsel zu Containern. Container sind dabei ideal für den Einsatz von Microservices; diese zerlegen Anwendungen in kleinere Komponenten, die alle ihre eigene Rolle innerhalb der Applikation einnehmen. Die Aufteilung in kleinere Bausteine macht die Anwendungen viel skalierbarer – nach oben oder nach unten. Somit ist die Kombination aus Containern und Microservices vor allem unerlässlich, wenn Unternehmen extrem schnell auf Nachfragespitzen reagieren wollen – um die Erwartungen der Kunden an Echtzeit Services bestmöglich zu erfüllen.

Cloud-Strategie mit Containern

Neben diesem Trend im Development verändert sich die Rolle der IT-Infrastruktur: Um mit dem steigenden Nachfrageniveau IT-seitig mitzuhalten, setzen mehr Unternehmen auf Hybrid- oder Multi-Cloud-Strategien. Das bestätigen diverse Studien: Gartner in "The Future of the Data Center in the Cloud Era" schätzte z.B. bereits vor mehreren Jahren, dass bis 2019 rund 70 Prozent aller Unternehmen auf Multi-Cloud-Strategien umsteigen – ein Trend, der sich in anderen Untersuchungen zwischenzeitlich bestätigt. Auch Forrester Consulting (im Auftrag von Virtusstream) stellte für das vergangene Jahr fest, dass 2018 bereits rund 60 Prozent der Unternehmen die Public Cloud für Produktionsanwendungen nutzten – wobei als Hauptgründe der Studie zufolge die positiven Auswirkungen auf die Geschäftsleistung und die betriebliche Effizienz genannt wurden. Den schnellen Wandel treiben nicht zuletzt die Entwickler voran, wünschen sie sich doch mehr Flexibilität bei der Ausführung und Bereitstellung von Anwendungen.

Ein weiterer Grund für den Wechsel auf Hybrid- oder Multi-Cloud-Umgebungen ist die Angst vor einem „Lock-in“. Aber auch wenn die Services aus der Public Cloud eine enorme Rechen- oder Speicherverfügbarkeit aufweisen, ist es riskant, alles auf eine Karte zu setzen. Man ist schnell den Preis- und Angebotsvorgaben eines Anbieters und dessen regulatorischen Vorgaben ausgeliefert und verlieren somit einen Teil der Autonomie und Kontrolle über seine Daten. Nutzt man beispielsweise einen speziellen Service eines Anbieters umfänglich, muss man sich der negativen Folgen im Klaren sein, die eine Änderung oder gar der Wegfall dieses Angebots mit sich bringen. Ein schneller Umzug des gesamten Datenbestands ist so kaum möglich. Die Folge: Der Kunde ist eingeschlossen (locked-in).

Reduziert auf die wesentlichen Elemente und unabhängig von der zugrunde liegenden Hardware und Plattform kann ein Container-Image prinzipiell auf jedem Cloud-Service ausgeführt werden. Dies war auch einer der Gründe für das Wachstum von Kubernetes, der Management- und Orchestrierungsplattform für Container auf Open-Source-Basis. Da Kubernetes die Bedienung und Verwaltung nach und nach vereinfacht hat, lassen sich Container heute effizient und skalierbar betreiben. Noch wichtiger ist, dass mehrere Public Clouds Kubernetes unterstützen und auch Managed Kubernetes Services anbieten. Das erleichtert den Umzug, wenn ein Plattformwechsel ansteht.


Container sollen „Lock-ins“ vermeiden – aber können sie das?


Der „Lock-in“ droht weiterhin - Allein mit Containern entkommt der Nutzer dem „Lock-in“ nicht

Container sind in der Regel „stateless“, sie werden nicht zur Speicherung oder Analyse von Daten verwendet. Sind Anwendungen in Betrieb, generieren diese im Laufe der Zeit aber Daten, die gespeichert und verwaltet werden müssen. Container und Mikroservices alleine können den „Lock-in-Effekt“ dann nur bedingt lösen. Kommentar Patrick Callaghan (1), Solutions Architect bei DataStax - Anbieter einer verteilten, für die Hybrid Cloud konzipierten Always-on-Cloud-Datenbank auf Basis Apache Cassandra: "Um mit den Anwendungen autonom zu bleiben, müssen Container und Daten gemeinsam betrachtet werden. Denn sind beispielsweise die Container portabel, die Daten aber nicht, läuft die Anwendung nur bei einem Anbieter. Um diese Abhängigkeiten zu vermeiden, ist es daher wichtig, sich genau anzusehen, welche Anforderungen an Datenmanagement, -speicherung und -analyse gestellt werden. Werden die Daten aus der Anwendung analysiert und wenn ja, in welchem zeitlichen Abstand zur Generierung der Daten? Geht es darum, Trends über einen Zeitraum zu betrachten oder muss man zeitnah analytische Entscheidungen treffen? Für die meisten Anwendungen gilt Zweiteres. Gerade für E-Commerce- und Handelsunternehmen müssen Schritte wie Personalisierung oder Produktempfehlungen so zeitnah wie möglich nach einer Kundenaktion erfolgen, um eine Erfolgschance zu haben.“

Die Datenanalyse wiederum kann auf verschiedenen Arten der Datenspeicherung basieren. Relationale, NoSQL- und Graph-Datenbanken setzen alle auf unterschiedliche Methoden, um die wichtigen Informationen aus den Datenmassen herauszufiltern, die von Anwendungen generiert werden. Bei all diesen verfügbaren Möglichkeiten lohnt es sich, vorab zu prüfen, ob und wie die unterschiedlichen Datenbanken und -modelle neben containerbasierten Anwendungen integriert werden oder als eigenständige Container fungieren können.

Natürlich bieten Public-Cloud-Dienste spezifische Funktionen für die Datenspeicherung oder -analyse. Werden diese genutzt, begibt man sich für diese Zeit in Abhängigkeit, unabhängig davon, ob Container im Einsatz sind oder nicht. Dieser „Lock-in-Effekt“ ließe sich mit einem Data Layer umgehen, der über mehrere Standorte und Cloud-Anbieter hinweg funktioniert – so wie es Container tun. Ein solcher, von der Cloud unabhängiger Ansatz ermöglicht es Unternehmen, bei Bedarf zwischen den eigenen Rechenzentren und einem Public-Cloud-Anbieter zu wechseln oder verschiedene Public-Cloud-Services gleichzeitig zu nutzen.

Fazit: Unabhängig mit Containern und der richtigen Datenstrategie

Abschließendes Statement von Patrick Callaghan: "Container bieten eine gute Möglichkeit, skalierbare Anwendungen bereitzustellen, die schneller und effizienter auf die Benutzeranforderungen reagieren können als herkömmliche Infrastrukturen. Sie allein verhindern allerdings noch keinen „Lock-in“. Dafür ist es vielmehr erforderlich, auch die Anforderungen der Anwendung an Datenmanagement, -analyse und Storage-Umgebung zu prüfen. Denn wirklich autonom ist ein Unternehmen nur mit einer möglichst umfassenden und durchdachten Datenstrategie. Durch vorausschauende Planung können Entwickler beeinflussen, wie gut ihr Unternehmen neue Cloud-Strategien umsetzt, um Datenautonomie zu gewährleisten und „Lock-ins“ zu vermeiden. Ein positiver Nebeneffekt: Die Bedürfnisse der sogenannten "Right Now Economy" erfüllen sie so gleich mit".

(1) Das Foto zeigt Patrick Callaghan, Solutions Architect bei DataStax (Quelle: DataStax)