Wo früher Anwendungsmonolithen entwickelt wurden, verspricht die cloud-native Entwicklung eine Vielzahl von Services, die einzelne Funktionen zum Gesamtsystem beitragen. Es ist somit nicht mehr nötig, die gesamte Anwendung bei Weiterentwicklungen und möglichen Fehlerbehebungen anzufassen, Unterbrechungen werden bei Update-Zyklen vermieden, und Fehler in den einzelnen Funktionen legen nicht mehr ganze Systeme lahm. Daraus resultieren eine verbesserte und effizientere Wartung und Innovationsentwicklung. Die oberste Priorität bei digitalen Unternehmen, die den Fokus auf den Kunden richten und deren Erwartungen gerecht werden wollen.
Container Technologie
Cloud-native Anwendungen können also als eine Art Sammlung aus unabhängigen, über die Systemgrenzen hinweg agierenden Funktionen und Micro-Services angesehen werden. Die Applikationen basieren auf der Container-Technologie, was den Betrieb und die Weiterentwicklung in Hybrid- als auch in Multi-Clouds gewährleistet. Überhaupt spielt die Container-Technologie eine grosse Rolle: Einerseits wird das Betriebssystem virtualisiert und verschiedenste Applikation können auf den gleichen Kern zugreifen und ihn nutzen, andererseits können Container unabhängig voneinander aktualisiert, in wenigen Sekunden gestartet und gestoppt werden und sind zudem höchst skalierbar.
Skalierbarkeit und Verfügbarkeit
Eine hohe Skalierbarkeit und Verfügbarkeit kann durch die Verwendung von aktuellen Datenbanktechnologien erreicht werden, damit Micro- oder PaaS-Services in den Clouds den aktuellen Anforderungen entsprechend ausgerollt werden können. Nur so kann eine hohe Skalierung und Verfügbarkeit erreicht werden. Das hat ausser einem positiven Effekt auf die Kosten den Vorteil, dass die Benutzer keine Einbussen bei der Verfügbarkeit hinnehmen müssen und in den allermeisten Fällen nicht einmal eine Veränderung spüren. Das Monitoring spielt ebenfalls eine wichtige Rolle, denn steigt oder sinkt die Anfrage, können Algorithmen die Skalierung automatisch übernehmen.
Integration und Orchestrierung
Der Grossteil der heutigen Applikationen muss in globalen Ökosystemen zusammenarbeiten, und auch die Konnektivität zu bestehenden Legacy-Systemen muss gewährleistet sein. Neben der bereits erwähnten Sammlung von unabhängig gekoppelten (Micro-)Services und der Containerisierung muss deshalb das Thema API betrachtet werden. APIs verbinden Anwendungen, Services und Container und ermöglichen so die Kommunikation untereinander.
Container-Orchestrierungen werden zur Verwaltung der Lebenszyklen von Containern eingesetzt, die sehr komplex werden können. Die Orchestrierungstools übernehmen das dynamische Ressourcenmanagement, das Loadbalancing, die Planung von Neustarts nach einem internen Ausfall sowie die Bereitstellung und den Einsatz von Containern auf Server-Cluster-Nodes.
Tools für cloud-native Entwicklung
Für die Entwicklung einer cloud-nativen Anwendung werden mehrere Software-Tools verwendet. Folgende (wichtigste) Anwendungen finden sich unter anderen in einem cloud-native Entwicklungsstack:
Die Docker-Plattform erstellt, implementiert und verwaltet Container unter Verwendung eines gemeinsamen Betriebssystems. Die zur Verfügung stehenden Ressourcen sind isoliert, somit können mehrere Container ein und dasselbe konkurrenzlose Betriebssystem nutzen.
Die Kubernetes-Plattform wird für die Verwaltung und Orchestrierung von Containern und Services verwendet und bestimmt, wie und wo die Container ausgeführt werden. Google hat das Kubernetes-Projekt 2014 als Open-Source-Projekt zur Verfügung gestellt.
Viele cloud-native Anwendungen basieren auf hunderten von Micro-Services und kommunizieren in komplexen Netzen. Service Meshes verwalten dieses Netz der Service-zu-Service-Kommunikation und minimieren den Aufwand für die Entwickler, da sie sich nicht um die Kommunikation zwischen den Services kümmern müssen.
Landing Zones
Sowohl Hyperscaler als auch einige kleinere Anbieter unterstützen Kunden mit Landing Zones, stellen Architekturrichtlinien, Referenzimplementierungen, Methoden und Codebeispiele auf der Grundlage bewährter Verfahren zur Verfügung und unterstützen nötige Designentscheidungen. Die Landing Zone als Vorlage bildet damit nicht nur die Basis für Workloads, die in der Cloud abgebildet werden sollen, sondern gewährleistet Standards für Security, Governance und Compliance. Kurz gesagt: Diese Landing Zones sind der Eintritt und Grundstein cloud-nativer Applikationen.
Auswirkung auf die Organisation
Cloud-native Apps rücken auch bei Enterprise-Kunden immer mehr in den Vordergrund. Eine Studie von Red Hat ("Cloud-Native-Entwicklung – ein Ausblick von Red Hat", Februar 2020), die zwar über ein Jahr alt ist, aber an Aktualität nichts eingebüsst hat, weist aus, dass 86 Prozent der befragten Entscheidungsträger im Bereich Anwendungsentwicklung glauben, dass die cloud-native Anwendungsentwicklung extrem oder sehr wichtig sei.
Nur können die wenigsten Firmen bereits Erfahrungen vorweisen und auch die Organisation ist meistens nicht für die cloud-native Entwicklung ausgerichtet. Denn Entwickler, System Engineers und für den Betrieb zuständige Teams müssen näher zusammenarbeiten, da die Entwicklung, Wartung und Skalierung der cloud-nativen Applikationen Hand in Hand gehen. Dies fordert Unternehmen nicht nur technisch, sondern auch organisatorisch heraus. Es bietet sich an, DevOps genauer zu betrachten: DevOps verspricht den Organisationen eine effizientere und effektivere Zusammenarbeit zwischen den Entwicklungs- und Operation-Teams und ermöglicht so eine schnellere und iterative Bereitstellung von Services.
Fazit
Müssen jetzt alle Legacy-Applikationen so schnell wie möglich in "cloud-native" umgeschrieben werden? Dies wird sicherlich nicht so schnell geschehen, denn nicht alle Applikationen können transformiert werden oder gehen in Kürze End-of-Life. Werden neue Anwendungen entwickelt, ergibt es jedoch absolut Sinn, diese in cloud-native zu designen. Wie erwähnt spielt dabei die Organisation und die Unternehmenskultur eine zentrale Rolle. Es ist wichtig, dass sich Unternehmen früh mit dem Thema beschäftigen, und die Vorteile der Cloud nutzen. Denn ausschliesslich mit der Migration einer VM in die Cloud ist eine Modernisierung der Applikation noch lange nicht vollbracht; und von heute auf morgen eine Organisation auf cloud-native umzustellen, gestaltet sich schwierig und ist nicht realistisch. Suchen Sie sich einen Cloud-Anbieter, der eine Landing Zone zur Verfügung stellt.
Veranstaltungshinweis
Die Entwicklung von cloud-nativen Applikationen gilt heute als ein De-facto-Standard. Für viele Unternehmen, die sich mit Anwendungsentwicklung beschäftigen, erscheint die Hürde auf dem Weg in die Cloud und Nutzung von Technologien und Tools wie Micro-Services, Containern, Kubernetes und Service Meshes jedoch sehr hoch. Die Hyperscaler unterstützen mit Landing Zones. Ist somit die Umstellung von der "klassischen" auf die cloud-native Anwendungsentwicklung ein Klacks? Was heisst diese Umstellung für die Organisation und die Unternehmenskultur? Die Referenten am Eurocloud-Swiss-Anlass "Rocket Launch – von der Landing Zone zu cloud-native Apps" bringen Ihnen das Thema näher und geben Ihre Erfahrung weiter.
Herbstevent von Eurocloud Swiss
"Rocket Launch – From Landing Zone To Cloud Native Apps" Wann: Mittwoch, 27. Oktober 2021; Eintreffen ab 15.30 Uhr, Programm von 16.00 – 18.00 Uhr. Wo: Kongresshaus Zürich Anmeldung: www.eurocloudswiss.ch