Grundlagen Cloud-Native-Technologien

Drei gute Gründe um auf Cloud Native umzusteigen

| Autor / Redakteur: Anita Buehrle* / Florian Karlstetter

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

In den letzten fünf Jahren haben sich die sogenannten Cloud Native-Technologien rasant entwickelt. Diese Technologien ermöglichen den Erfolg von Unternehmen wie Netflix und von Digital Native-Unternehmen wie z.B. Uber, die die traditionellen Geschäftsweisen vollkommen umkrempeln.

Der Wechsel zur Cloud Native-Technologie hat die Art und Weise, wie Softwareentwicklung und Implementierung heute erfolgt, fundamental verändert, wie z.B. der kulturelle Wechsel zu DevOps-Praktiken oder ähnlichen neue Strategien. Die Hauptvorteile liegen darin, dass Unternehmen durch dessen Einsatz viel schneller auf Kundenbedürfnisse reagieren können und somit auf dem Markt 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 sehr 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 daher 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 namens 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 Softwareentwicklungsphilosophien 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 heutige 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 sogenannte „unsichtbare Infrastruktur“ für ihre Entwickler. Um schnellere Innovationen und Fortschritte zu machen, müssen Infrastrukturänderungen oder ähnliche Anfragen, die die Softwareentwicklung 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ügigere 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.

Was ist die Cloud Native Computing Foundation (CNCF)?

Community rund um Microservices und Container

Was ist die Cloud Native Computing Foundation (CNCF)?

10.05.19 - Die Cloud Native Computing Foundation ist ein wichtiges Unterprojekt der Linux Foundation. Die Vereinigung hat sich zum Ziel gesetzt, das Cloud Native Computing zu fördern. Cloud Native Computing basiert auf Open Source Software und nutzt Microservices und Container zur Realisierung der Applikationen. lesen

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.

Standardlösungen und 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 Softwareentwicklungsmethode 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 sehr 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.

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45912250 / Allgemein)