Für den Begriff "Cloud Native" besteht aktuell keine standardisierte Definition. Generell wird damit ein Software-Entwicklungs-Ansatz für Cloud-Applikationen beschrieben. Im Folgenden werden daher einige wichtige Aspekte näher herausgestellt und interpretiert.
Die Grundidee von „Cloud Native“ ist, Anwendungen so zu designen, dass diese sich sehr gut („natürlich“) und erfolgreich in der Cloud betreiben lassen. Die Zertifizierungsstelle iSAQB / CPSA definiert den Begriff wie folgt: "Applications adopting the principles of Microservices, packaged and delivered as Containers, orchestrated by Platforms, running on top of Cloud infrastructure."
Eine Cloud Native App wird auch kaum ohne die Themen Devops, CI/CD, Microservices und Container auskommen.
Einige weitere Eigenschaften beschreiben die folgenden Punkte:
Einige hilfreiche Anhaltspunkte zur Implementierung einer Anwendung, die gemäß den oben genannten Beschreibungen als "Cloud Native" gelten soll, findet man unter https://12factor.net/de/. Die dort genannten Faktoren und deren Erläuterungen beschreiben die wesentlichen Eckpfeiler einer Cloud Native/SaaS Anwendung. Im Sinne der individuellen Cloud Native Journey besteht natürlich keine Pflicht, jeden einzelnen Faktor strikt umsetzen zu müssen. Aus praktischer Sicht gilt es zunächst, die Bausteine herauszusuchen, die den Anforderungen und Qualitätszielen der eigenen Anwendung am ehesten entsprechen. Eine 12-Faktor App ist nicht unbedingt Cloud Native, bietet aber beste Voraussetzungen, um es zu werden.
▪ I. Codebase: Eine im Versionsmanagementsystem verwaltete Codebase, viele Deployments
▪ II. Abhängigkeiten: Abhängigkeiten explizit deklarieren und isolieren
▪ III. Konfiguration: Die Konfiguration in Umgebungsvariablen ablegen
▪ IV. Unterstützende Dienste: Unterstützende Dienste als angehängte Ressourcen behandeln
▪ V. Build, release, run: Build- und Run-Phase strikt trennen
▪ VI. Prozesse: Die App als einen oder mehrere Prozesse ausführen
▪ VII. Bindung an Ports: Dienste durch das Binden von Ports exportieren
▪ VIII. Nebenläufigkeit: Mit dem Prozess-Modell skalieren
▪ IX. Einweggebrauch: Robuster mit schnellem Start und problemlosen Stopp
▪ X. Dev-Prod-Vergleichbarkeit: Entwicklung, Staging und Produktion so ähnlich wie möglich halten
▪ XI. Logs: Logs als Strom von Ereignissen behandeln
▪ XII. Admin-Prozesse: Admin/Management-Aufgaben als einmalige Vorgänge behandeln
Die Cloud Native Journey beschreibt den Prozess hin zur Entwicklung und Bereitstellung von Cloud Native Apps. Je nach Ausgangslage und bisher gesammelten Erfahrungen wird dieser Prozess stark individuell sein und sich an den entsprechenden Rahmenbedingungen und Anforderungen orientieren. Das folgende Bild zeigt, wie unterschiedlich eine solche Cloud Native Journey verlaufen kann.
Abb. 3: Beispielhafte Schritte für die Cloud Native Journey (Quelle: CLOUDINFRA)
Um den Weg der Cloud Native Journey etwas zu veranschaulichen, kann man sich auch an diesem Reifegradmodell orientieren.
Die Ressourcen der CNCF (Cloud Native Computing Foundation) sind ebenfalls ein sehr guter Startpunkt und finden sich hier:
Wenn Standardlösungen für Ihre Aufgaben nicht verfügbar sind, dann bieten wir dafür maßgeschneiderte Lösungen. Erfahren Sie mehr über die individuellen Softwarelösungen der USU!