Grundlagen Cloud-Native-Technologien Drei gute Gründe um auf Cloud Native umzusteigen

Autor / Redakteur: Anita Buehrle* / Florian Karlstetter |

In den letzten fünf Jahren haben sich die so genannten Cloud-Native-Technologien rasant entwickelt. Diese ermöglichen den Erfolg von Unternehmen wie Netflix und anderen Digital-Native-Unternehmen.

Anbieter zum Thema

Eine Einführung in Cloud-Native-Technologien.
Eine Einführung in Cloud-Native-Technologien.
(Bild: © AndSus - stock.adobe.com)

Der Wechsel zu Cloud-Native-Technologien hat die Art und Weise, wie Software-Entwicklung und -Implementierung erfolgt, fundamental verändert. Dazu gehört auch der kulturelle Wechsel zu DevOps-Praktiken. Die Hauptvorteile liegen darin, dass Unternehmen durch dessen Einsatz viel schneller auf Kundenbedürfnisse reagieren können und somit wettbewerbsfähiger sind.

Aber was ist Cloud Native eigentlich?

Cloud Native ist eine Methode zur Entwicklung und Installation von Software-Applikationen, die auf modernen Cloud-Architekturen und bewährten Verfahrensweisen basieren. Typischerweise werden Cloud-Native-Applikationen als ein Microservice-Bündel erstellt, die in Docker-Containern laufen, in Kubernetes orchestriert und mit DevOps und GitOps-Workflows gemanagt werden:

Architekturen von Microservices

Docker-Container eignen sich gut für Microservices. Wenn Microservices in getrennten Containern laufen, können sie unabhängig und sogar in unterschiedlichen Programmiersprachen eingesetzt werden.

Da Container portabel sind und getrennt voneinander fungieren, lässt sich mühelos eine Microservices-Architektur erstellen. Diese kann dann bei Bedarf von einer Entwicklungsumgebung in eine andere oder auch in eine andere öffentliche Cloud verschoben werden.

Einsatz und Orchestrierung verlaufen automatisch

Microservices werden in einer automatisierten und skalierbaren Architektur mithilfe von Kubernetes eingesetzt und „orchestriert“. Mit Kubernetes werden die Container einer Applikation zur einfachen Verwaltung und Entdeckung in logische Einheiten gruppiert. Ein Vorteil von Kubernetes liegt in der Fähigkeit, die App zu skalieren, ohne dem Operations-Team mehr Ressourcen zur Verfügung stellen zu müssen.

Bewährte und moderne Verfahren für Software Delivery - DevOps und GitOps

Sobald Applikationen in Containern laufen und in Kubernetes orchestriert werden, besteht der nächste Schritt in automatischen Deployments, um die Produktivität der Entwicklungsteams zu beschleunigen. DevOps unterscheidet sich von anderen Software-Entwicklungsphilosophien und -praktiken durch kontinuierliche, automatische Installationen – anders als bei einem Wasserfallmodell, bei dem die Entwicklung linear (und nicht iterativ) vor sich geht.

Um die Produktivität des Entwicklungsteams mit Kubernetes zu erhöhen, ist es ratsam, vertraute und wohlbekannte Tools und Workflows zu verwenden. GitOps ist die effizienteste Art und Vorgehensweise, um eine Deployment Pipeline mit Kubernetes zu ermöglichen (mehr zum Thema Continuous Deployment für Kubernetes bei Crisp Research).

Drei Thesen pro Cloud Native

Die folgenden drei Gründe veranlassen Softwarefirmen die Transformation und den Wechsel zu einem Cloud-Native-Unternehmen in Betracht zu ziehen:

1. Reduzierte Markteinführungszeit und effizientere Arbeitsabläufe

Unternehmen, die eine digitale Transformation durchlaufen und gleichzeitig ihre Wettbewerbsfähigkeit steigern müssen, um konkurrenzfähig zu bleiben, interessieren sich für die so genannte „unsichtbare Infrastruktur“ für ihre Entwickler. Um schnellere Innovationen und Fortschritte zu machen, müssen Infrastrukturänderungen oder ähnliche Anfragen, die die Software-Entwicklung verlangsamen könnten, neu durchdacht werden.

Da Kubernetes und deren Applikationen fast vollständig deklarativ sind, kann die Infrastruktur als auch der Code in einem Versionskontrollsystem (VCS) wie GIT verwaltet werden. Dies erleichtert es den Entwicklern Änderungen nicht nur an Applikationen, sondern auch an der Infrastruktur vorzunehmen. Diese bezeichnet man als GitOps.

GitOps lässt Entwickler wohlbekannte Tools und Arbeitsabläufe benutzen

GitOps ist eine Verfahrensweise um Cloud Native Applikationen für Kubernetes zu entwickeln. GitOps zielt darauf ab, die Entwicklung zu beschleunigen, damit Entwickler für die komplexen, auf Kubernetes laufenden Applikationen sowohl Infrastrukturänderungen also auch Updates auf sichere und geschützte Weise vornehmen können. Dies erfolgt über Tools und Arbeitsabläufe wie Git und GitHub, mit denen Entwickler aus ihrem Arbeitsalltag vertraut sind.

GitOps ist für Cloud Native das, was DevOps für die Cloud ist

Illustration: GitOps Deployment Workflow.
Illustration: GitOps Deployment Workflow.
(Bild: Weaveworks)

Cloud Native ist die Triebkraft hinter der DevOps-Bewegung, die zu völlig neuen Methoden und Philosophien der Softwareentwicklung geführt hat. Unternehmen, die moderne Cloud Native- und DevOps-Praktiken wie GitOps übernehmen, können die durchschnittliche Installationszeit (deployment time) von ein oder zwei Deployments pro Woche auf über 150 Deployments an einem einzigen Tag erhöhen.

Wenn ein Unternehmen in der Lage ist, kontinuierlich Neuerungen und Änderungen einzusetzen (Continuous Delivery), können Entwicklungsteams fortschrittliche Testszenarien wie „Canary“-Tests durchführen. Bei Canary Tests werden neue Funktionen erst bei einer Untergruppe von Kunden eingeführt und getestet bevor sie großflächig ausgerollt werden.

Da das gesamte System in Git verwaltet wird, ist Vor- und Zurückrollen mit einem einzigen Klick möglich. Entwickler können daher häufige, wenig riskante Änderungen vornehmen, die sich sehr einfach wieder rückgängig machen lassen. Mit dieser Art der Automatisierung und der dadurch erhöhten Produktivität können Unternehmen neue Ideen innerhalb von Stunden oder Minuten auf den Markt bringen (was vorher durchaus Wochen und Monaten gedauert hat). Dies ermöglicht eine höhere Innovationsrate und damit verbesserte Wettbewerbsfähigkeit.

Bei Continuous Delivery spielt naheliegenderweise die Entwicklungsgeschwindigkeit eine große Rolle..
Bei Continuous Delivery spielt naheliegenderweise die Entwicklungsgeschwindigkeit eine große Rolle..
(Bild: Puppet Labs State of DevOps Report / Weaveworks)

2. Wettbewerbsvorteil und verbesserte Gewinne

Die Hauptmotivation zur Anpassung der Software Delivery und Infrastrukturstrategie auf Cloud Native liegt in der Abgrenzung zur Konkurrenz, die letztendlich zu größeren Gewinnen führt. Daneben gibt es aber auch noch weitere Vorteile, von denen ein Unternehmen profitieren kann:

Erhöhte Zuverlässigkeit und Skalierbarkeit

Elastisches Skalieren oder Cloud Bursting auf Anfrage bietet beinahe unbegrenztes Skalieren von Computer-, Speicher- und anderen Ressourcen. Unternehmen können die integrierte Skalierbarkeit nutzen, um jedes Bedürfnisprofil zu erfüllen. Zusätzliche Infrastrukturplanung oder -bereitstellung ist dabei nicht nötig.

Moderne GitOps- und DevOps-Praktiken stellen Entwicklern eine mit geringem Risiko verbundene Methode zum Rückgängigmachen (Rollback) von Änderungen bereit und ermöglichen damit zügige Innovation. Durch akkurates Rollback erfolgt auch eine schnelleres Desaster Recovery nach einem kompletten Cluster-Meltdown. Höhere Betriebszeiten bedeuten zudem, dass Unternehmen wettbewerbsfähiger sind, strengere Dienstleistungsvereinbarungen und eine bessere Servicequalität bieten können.

Geringere Infrastrukturkosten

Da die Cloud Native-Technologie Pay-per-Use-Modelle ermöglicht, werden die Skaleneffekte weitergegeben und die Ausgaben von CAPEX zu OPEX verschoben. Da die Eintrittsschranke für Investitionsausgaben niedriger liegt, können Organisationen mehr in Applikationsentwicklungen anstelle von Infrastrukturkosten investieren. Und da eine Cloud Native-Infrastruktur flexibler und portabler ist, sind auch die Gesamtbetriebskosten niedriger.

Spitzenkräfte anziehen und binden

Für Entwickler ist es interessant, mit Cloud Native und anderen hochmodernen Open Source Technologien zu arbeiten, da sie weniger Zeit mit Infrastrukturänderungen verbringen, kürzere Entwicklungszeiten und schneller auf Kundenbedürfnissen reagieren können. Bessere Entwickler führen zu besseren Produkten und damit auch zu vermehrter Innovation in Unternehmen. Und Open Source-Beiträge können zudem den Ruf eines Unternehmens als Technologieführer festigen.

Reduziertes Lock-in

Cloud Native stellt eine Auswahl an Tools bereit, ohne mit Altsystemen verhaftet zu sein. Da nach Möglichkeit Multi-Cloud-kompatible Tools verwendet werden, sind Applikationen portabler und Anbieter können keine aggressive Preisstrategie verfolgen. Unternehmen können so mühelos auf andere Public Clouds mit besseren Produktangeboten umsteigen. Dies gilt auch in Fällen, bei denen gesetzlichen Auflagen eine Multi-Cloud umfassende Infrastruktur fordert.

3. Flexible Infrastruktur mit einem förderlichen Ökosystem und Community

Die Cloud Native Computing Foundation (CNCF) wurde vor vier Jahren gegründet. Sie ist die anbieterneutrale Heimat von Kubernetes - einem Open Source-System für automatisierte Deployments sowie der Skalierung und das Verwalten von Applikationen. Kubernetes wurde ursprünglich von Google kreiert, um deren Suchmaschine zu unterstützen und zu betreiben, umfasst aber heutzutage Kontributionen von Amazon, Microsoft und Cisco und über 300 weiteren Unternehmen.

Der Stiftungszweck der CNCF besteht darin, förderliche und zukunftsfähige Ökosysteme und Communitys zu schaffen, die Container für Cloud Native Applikationen auf Kubernetes unterstützen und verwalten.

Standardkomponenten für Cloud Native

Mit neuen und relevanten Projekten im CNCF Ökosystem, können Unternehmen relativ unkompliziert eine Cloud Native Infrastruktur einrichten – die Basis für weitere Innovationen von IT-Teams und Entwicklern. Vor der Einführung von Cloud Native Technologien mussten Beraterteams mit dem Hinzufügen einer neuen Geschäftskomponente auf einer monolithischen Plattform beauftragt werden, deren Implementierung oft Monate dauerte.

Jetzt lässt sich mit Hilfe von Standard- und von der Community unterstützten Komponenten viel Zeit sparen. Damit können sich Unternehmen auf wichtigere Aufgaben wie die Einführung von maschinellem Lernen oder anderen Data Science Methoden in Unternehmen konzentrieren, um die Innovations- und Wettbewerbsfähigkeit zu erhöhen.

Die Cloud Native-Technologie hat eine Software-Entwicklungsmethode eingeführt, die sich erheblich von der von vor 15 Jahren unterscheidet. Damals war noch eine enorme Koordination erforderlich, um eine einzige Änderung zu implementieren. Dank Technologien wie Kubernetes, dessen Ökosystem und bewährten Verfahrensmethoden wie GitOps lassen sich nun Änderungen mühelos auf kontinuierlicher Basis implementieren. Cloud Native macht dies möglich.

Anita Buehrle, Senior Content Lead, Weaveworks.
Anita Buehrle, Senior Content Lead, Weaveworks.
(Bild: Weaveworks)

Die Autorin: Anita Buehrle, Senior Content Lead, Weaveworks.

Anita Buehrle verfügt über mehr als 20 Jahre Erfahrung in der Software-Entwicklung. Sie hat technische Leitfäden für das X Windows Server-Unternehmen Hummingbird (jetzt OpenText) und Algorithmics, Inc (jetzt: IBM) verfasst, hat Produktlieferungsteams geführt und ihre eigenen mobilen Apps entwickelt und vermarktet. Momentan leitet Anita Buehrle Content- und andere marktorientierte Initiativen bei Weaveworks.^

Veranstaltungshinweis:

Organisationen wie die Cloud Native Computing Foundation, und quelloffene (open-source) Projekte wie Kubernetes und „Prometheus“ bieten eine gute Community-Unterstützung, Botschafter-Programme, Referenzanwendungen, Online-Kurse und Konferenzen - wie die KubeCon + CloudNativeCon Europe in der mehr über containerisierte Infrastrukturen und Cloud-Native-Technologien zu erfahren ist und in Barcelona vom 20. bis 23. Mai 2019 stattfindet.

(ID:45928187)