Cloud Native

Cloud Native beschreibt, wie Software gebaut wird, wenn sie von Anfang an in der Cloud laufen soll. Der Unterschied zeigt sich weniger im Betrieb als in der Architektur, und die lässt sich später nur teuer nachholen.
Sinnbildlich für die Cloud Native wird ein USB-Kabel von einer Hand eine Cloud gesteckt.
© Photocreo Bednarek

Was bedeutet Cloud Native?

Cloud Native bezeichnet einen Architekturansatz, bei dem eine Anwendung von vornherein für den Betrieb in einer Cloud entworfen wird. Statt eines geschlossenen Gesamtprogramms entstehen viele kleine, voneinander unabhängige Dienste, die in Containern laufen und über Schnittstellen zusammenarbeiten. Eine zentrale Steuerung startet, verteilt und ersetzt diese Dienste im laufenden Betrieb automatisch.

Der Ansatz ist unabhängig davon, ob eine Public, Private oder Hybrid Cloud genutzt wird. Getragen wird er von der 2015 gegründeten Cloud Native Computing Foundation, einem Projekt der Linux Foundation, unter deren Dach auch Kubernetes als verbreiteter Standard für die Steuerung von Containern entstand. Die Verbindung zu bestehenden ERP- oder Fachsystemen übernimmt eine Cloud-Native-Middleware, weil die einzelnen Dienste sonst jede Anbindung selbst mitbringen müssten.

Microservices und Container

Eine solche Anwendung zerlegt ihre Aufgaben in einzelne Dienste. Ein Onlineshop trennt dann etwa Kundendaten, Bestellung, Versand und Bezahlung voneinander, statt sie in einem Programm zu bündeln. Jeder Dienst wird eigenständig entwickelt und ausgetauscht, die Verständigung läuft meist über REST-Schnittstellen, die den inneren Aufbau des Gegenübers verbergen.

Verpackt werden diese Dienste in Container, also in abgeschlossene Umgebungen mit allen Dateien und Einstellungen, die zur Ausführung nötig sind. Anders als virtuelle Maschinen bringen Container kein eigenes Betriebssystem mit, sondern teilen sich den Kern des Wirtssystems. Das hält sie klein und macht sie zwischen Umgebungen austauschbar.

Wie solche Systeme im Betrieb skalieren

Weil ein Dienst in einem Container steckt, lässt er sich beliebig oft parallel starten. Ein Load Balancer verteilt die Anfragen auf diese gleichartigen Instanzen. Steigt die Last, kommen weitere hinzu, sinkt sie, werden sie wieder abgeräumt.

Fällt eine Instanz aus, ersetzt die Steuerung sie automatisch, ohne dass der Dienst als Ganzes stillsteht. In einer monolithischen Architektur wäre stattdessen ein weiterer Server nötig, auf dem die komplette Anwendung erneut aufgebaut werden müsste. Diese horizontale Skalierung ist der wirtschaftliche Kern des Ansatzes und einer der Gründe, warum die Architektur bei der Planung der IT-Infrastruktur früh festgelegt wird.

Was der Ansatz voraussetzt

Vier Bausteine gelten als tragend, nämlich Microservices, Container, automatisierte Integration und Auslieferung sowie DevOps als Arbeitsweise. Der letzte Punkt ist kein reines Technikthema, sondern verlangt, dass Entwicklung und Betrieb dieselbe Verantwortung tragen.

Ohne diese Automatisierung kehrt sich der Vorteil um, weil dutzende Dienste einzeln gepflegt, überwacht und aktualisiert werden müssen. Für kleine, selten geänderte Anwendungen bleibt eine geschlossene Architektur deshalb die einfachere Wahl.

Aktuelle Themen