München, Starnberg, 09. März 2020 - Cloud-native ist weder Cloud noch Cloud-enabled; Cloud-native Entwicklungen sind laut Red Hat durch vier Punkte charakterisiert...
Zum Hintergrund: Fast täglich wird der Begriff „Cloud“ in den verschiedensten Zusammenhängen verwendet. Je nach Anbieter, Einsatzzweck oder auch Anwendung fällt immer häufiger das Adjektiv „Cloud-native“. Vom Begriff Cloud-native wiederum zu unterscheiden ist der Terminus Cloud-enabled. Dieser bedeutet aber lediglich, dass traditionell entwickelte Applikationen für den Betrieb in der Cloud angepasst werden. Eine Cloud-enabled-Anwendung ist eine Anwendung, die in die Cloud verlagert wurde, aber ursprünglich für den Einsatz in einem herkömmlichen Rechenzentrum entwickelt ist. Oft ist also noch eine Verwirrung um die Begriffe Cloud und Cloud-native anzutreffen. Matthias Kranz, Director Solution Architects Germany bei Red Hat (1), bringt dazu in seinen folgenden Erläuterungen für Sie etwas mehr Licht in diese Begrifflichkeiten:
Cloud:
- "Das Substantiv Cloud bezieht sich nur auf den Ort für das Deployment von Hardware und Software, etwa für Server, Storage, Datenbanken und alle möglichen Formen von Applikationen und Services.
Cloud-native:
Das Adjektiv Cloud-native beschreibt einen Ansatz für die Konzeption und den Betrieb von Applikationen, der die Vorteile des Cloud-Computing-Modells nutzt, etwa im Hinblick auf Agilität und Automation. Trotz des Namens bezieht sich Cloud-native nicht auf den Ort des Applikations-Deployments, sondern auf die Art und Weise, wie Applikationen konzipiert, bereitgestellt und verwaltet werden.
Cloud-native bedeutet also nicht, dass der Betrieb von Applikationen unbedingt in der Cloud erfolgen muss, auch ein On-Premise-Einsatz ist möglich. Ziel des Cloud-nativen Konzepts ist die Steigerung von Geschwindigkeit, Flexibilität und Qualität bei der Applikationsentwicklung unter gleichzeitiger Reduzierung der Risiken.
Cloud-enabled:
Vom Begriff Cloud-native zu unterscheiden ist "Cloud-enabled". Es bedeutet lediglich, dass traditionell entwickelte Applikationen für den Betrieb in der Cloud angepasst werden. Eine Cloud-enabled-Anwendung ist eine Anwendung, die in die Cloud verlagert wurde, aber ursprünglich für den Einsatz in einem herkömmlichen Rechenzentrum entwickelt ist. Dabei handelt es sich typischerweise um Legacy- und Enterprise-Software. Für die Verlagerung ist es erforderlich, einige Charakteristiken der Applikation zu ändern oder für die Cloud zu adaptieren.
Eine gängige Methode für die Cloud-Migration ist dabei das „Lift and Shift“-Verfahren. Eine Cloud-native Anwendung ist im Unterschied dazu eine Anwendung, die bereits in ihrem Design mit den Cloud-Prinzipien der Mandantenfähigkeit, der elastischen Skalierung und der einfachen Integration und Verwaltung konzipiert ist.
Die Eckpfeiler einer Cloud-nativen Entwicklung - oder was zeichnet das Cloud-native Konzept konkret aus?
Cloud-nativen Entwicklungen sind im Wesentlichen durch vier Punkte charakterisiert: 1. Service-basierte Architektur; 2. API-basierte Kommunikation; 3. Container-basierte Infrastruktur und 4. DevOps-Prozesse:
Service-basierte Architekturen wie Microservices ermöglichen den Aufbau modularer, lose gekoppelter Dienste. Andere modulare Architekturansätze – zum Beispiel Miniservices – bieten Unternehmen eine entscheidende Unterstützung bei der Beschleunigung der Anwendungserstellung, ohne dass dabei die Komplexität steigt.
Die Services werden über leichtgewichtige, Technologie-agnostische APIs bereitgestellt, die die Komplexität und den Aufwand beim Deployment sowie bei der Skalierung und Wartung reduzieren. Das API-basierte Design ermöglicht nur die Kommunikation per Service-Interface-Aufrufen über das Netzwerk, sodass die Risiken von direkten Verknüpfungen, Shared-Memory-Modellen oder direkten Lesezugriffen auf den Datenspeicher eines anderen Teams vermieden werden.
Cloud-native Anwendungen basieren auf Containern, die einen Betrieb in verschiedenen Technologieumgebungen ermöglichen und damit echte Anwendungsportabilität unterstützen, etwa im Hinblick auf Public-, Private- und Hybrid-Cloud. Die Containertechnologie nutzt die Virtualisierungsfunktionen des Betriebssystems, um die verfügbaren Rechenressourcen auf mehrere Anwendungen aufzuteilen und um gleichzeitig zu gewährleisten, dass die Anwendungen sicher und voneinander isoliert sind. Cloud-native Anwendungen skalieren horizontal, dadurch können weitere Anwendungsinstanzen einfach hinzugefügt werden – oft durch Automatisierung innerhalb der Containerinfrastruktur. Durch den geringen Overhead und die hohe Dichte können zahlreiche Container innerhalb derselben virtuellen Maschine oder desselben physischen Servers gehostet werden. Dadurch sind sie auch ideal geeignet für die Bereitstellung von Cloud-nativen Anwendungen.
Die Anwendungsentwicklung für Cloud-native Ansätze folgt agilen Methoden mit Continuous-Delivery- und DevOps-Prinzipien, die auf die kollaborative Erstellung und Bereitstellung von Anwendungen durch Teams aus Entwicklung, Qualitätssicherung, IT-Sicherheit und IT-Betrieb fokussieren.
Fazit: Oft ist noch eine Verwirrung um die Begriffe Cloud und Cloud-native anzutreffen. Prinzipiell können Unternehmen, die auf Cloud Computing setzen, die Skalierbarkeit und Verfügbarkeit ihrer Applikationen verbessern, etwa durch eine bedarfsorientierte Ressourcenbereitstellung. Um aber die Cloud-Vorteile vollständig ausschöpfen zu können, ist auch eine neue Form der Anwendungsentwicklung erforderlich. Und hier sind wir dann beim Thema Cloud-native. Die Cloud-native Anwendungsentwicklung ist ein Ansatz zur Erstellung, Ausführung und Verbesserung von Apps, der auf bewährten Techniken des Cloud Computing basiert und eine schnelle Entwicklung und Aktualisierung von Anwendungen bei gleichzeitiger Verbesserung der Qualität und Minderung von Risiken ermöglicht."
(1) Das Bild zeigt Matthias Kranz, Director Solution Architects Germany bei Red Hat (Bildquelle: Red Hat).
Querverweise:
Unser Beitrag > DevOps Einführung in Unternehmen: 5 wichtige Schritte zur Vorgehensweise
Unser Blogpost > Zum Einfluß der Digitalisierung auf das Data Management und IT-Infrastrukturen
Unser Beitrag > Erfolgreich Digital Transformieren an Hand von fünf Unternehmensbeispielen