DER ULTIMATIVE GUIDE

Cloud Native

Die Cloud Native Computing Foundation (CNCF) definiert Cloud Native als skalierbare Applikationen, die in modernen, dynamischen Umgebungen ausgeführt werden. Es geht dabei nicht darum, ob Applikationen in einer öffentlichen, privaten oder hybriden Cloud laufen, sondern wie sie entwickelt und deployed werden.

Einleitung

Unternehmen, die von einer On-Prem-Lösung in eine Cloud-freundliche Umgebung wechseln, müssen ihre Infrastruktur überarbeiten. Die Infrastruktur besteht aus mehreren IT-Umgebungen und verteilten Applikationen, wodurch die digitale Transformation von Unternehmen unterstützt wird.

In solch dezentralen und immer komplexer werdenden IT-Umgebungen ist es für Enterprise Architects, CIOs und Führungskräfte wichtig, einen automatisierten und umfassenden Überblick über die Infrastruktur und Applikationen im gesamten Unternehmen zu behalten. Bezüglich der Cloud-Migration sollten sich Unternehmen nicht nur über den Business Value von Entwicklung und Deployment von Cloud Native-Applikationen Gedanken machen – auch der Umgang mit den strategischen Herausforderungen des IT-Managements in Multi-Cloud- und Hybrid-Cloud-Umgebungen stellt einen wichtigen Punkt dar.

Obwohl der Begriff „Cloud Native“ immer bekannter wird, verstehen Unternehmen oft nicht ganz, wie sie das wahre Potenzial von Cloud Native ausschöpfen können. Was genau bedeutet „Cloud Native“ eigentlich und warum ist dieser moderne Cloud Computing-Ansatz so wichtig? Was müssen Enterprise Architects, CIOs und Entwickler wissen, um den Umstieg auf Cloud Native so optimal wie möglich zu gestalten?

Was ist Cloud Native?

Die Cloud Native Computing Foundation (CNCF) definiert Cloud Native als skalierbare Applikationen, die in modernen, dynamischen Umgebungen ausgeführt werden. Es geht dabei nicht darum, ob Applikationen in einer öffentlichen, privaten oder hybriden Cloud laufen, sondern wie sie entwickelt und deployed werden. Cloud Native-Applikationen skalieren eher horizontal als vertikal und basieren auf Technologien wie Containern, Microservices und APIs. Die einzelnen Microservices können individuell weiterentwickelt werden, ohne dabei von anderen Prozessen abhängig zu sein. Die Technologie stellt sicher, dass Cloud Native-Systeme sowohl stabil und skalierbar als auch wiederverwendbar sind. Mit anderen Worten: Mithilfe einer Cloud Native-Strategie können Services applikationsübergreifend genutzt werden.

Da Cloud Native eine wichtige Rolle in der heutigen Entwicklungswelt einnimmt, sollten Unternehmen die Entstehungsgeschichte von Cloud Native nachvollziehen können.

Cloud_Native

How EAs Ensure That Cloud Migration and Business Objectives Are Best Aligned

Webinar

How EAs Ensure That Cloud Migration and Business Objectives Are Best..

At this webinar, hosted by the Open Group, Dominik Rose, LeanIX's Director of Customer Success Engineering, will show you how to achieve desired business outcomes of your cloud migration.

Maximize the Development Efficiency of Your Microservices Landscape with LeanIX

Webinar

Maximize the Development Efficiency of Your Microservices Landscape with..

Watch this on-demand webinar hosted by The Open Group, where LeanIX shares insights on how we can help bring order and clarity to your complex microservices architecture.

Efficiently Navigate your Microservices with LeanIX

Webinar

Efficiently Navigate your Microservices with LeanIX

Watch this interview-style webinar on how to build reliable software using a microservice catalog - including a product demo

Warum ist Cloud Native wichtig?

Durch die Einführung von Cloud Native-Technologien können Unternehmen intern Software entwickeln. Es ermöglicht verschiedenen Abteilungen – wie zum Beispiel der Finanzabteilung– eng mit der IT zusammenzuarbeiten. Zudem können Unternehmen als solche mit ihren Konkurrenten mithalten und ihren Kunden bessere Services bieten. CNCF-Technologien ermöglichen Cloud-Portabilität ohne Anbieterbindung.

Im Vergleich zu der traditionellen Entwicklung und dem herkömmlichen Computing besitzt Cloud Native viele Vorteile:

  • Schnellere Entwicklung und Deployment von Code
  • Schnelleres Deployment und Nutzung von Diensten
  • Einführung von serverlosem Computing
  • Vorantreiben von DevOps-Prozessen
  • Skalierbarkeit
  • Resilienz
  • Wiederverwendbare Services

Die schnelle Bereitstellung von Applikationen ist hauptsächlich darauf zurückzuführen, dass es für Unternehmen, die entweder eine Single- oder Multi-Cloud-Strategie verfolgen, viel einfacher ist, IT-Assets auf Cloud-Plattformen in und außer Betrieb zu nehmen (z.B. dauert die Inbetriebnahme eines neuen Servers bei Amazon Web Services weniger als 30 Sekunden). Eine Cloud Native-Strategie lagert operative Kosten der IT auf die Cloud-Anbieter um – dadurch können Unternehmen ihren Fokus auf geschäftliche Innovation und den Kunden legen.

Was ist Cloud Native Development?

Warum also ist Cloud Native wichtig für Entwickler? Bei einer Cloud Native-Architektur müssen Entwickler verstehen, was für die Entwicklung einer modernen Cloud Native-Applikation erforderlich ist. Die Entwicklung beinhaltet die Implementierung einer agilen Methodik sowie die Nutzung von DevOps-Praktiken, Microservices, Festlegung auf eine Single- oder Multi-Cloud-Strategie und Verwendung von Containern wie Kubernetes und Docker.

Microservices sind die Grundlage jeder Cloud Native-Architektur – sie führen verschiedene Funktionen innerhalb einer Applikation aus. Es gibt beispielsweise einen Microservice, der für die Implementierung eines Prozesses entwickelt wurde, während ein anderer Microservice diesen Prozess ausführt.

Diese Microservices sind in sogenannte Container verpackt – so können Entwickler gezielt an bestimmten Microservices arbeiten und müssen nicht an der gesamten Cloud Native-Applikation Änderungen vornehmen. Bei der Entwicklung von Cloud Native-Applikationen sollten Software-Entwickler folgende Punkte berücksichtigen:

Resilienz:

Cloud Native-Applikationen müssen unter allen Umständen funktionieren. Entwickeln Sie eine Applikation auf Basis eines Worst-Case-Szenarios, sodass das Endprodukt eine ausfallsichere Applikation ist.

Skalierbarkeit:

Cloud Native-Applikationen müssen das Wachstum der Cloud Native-Infrastruktur und -Landschaft eines Unternehmens unterstützen. Die Unterstützung von Speicher, Datenbanken und Netzwerken erfordert flexibel skalierbare Cloud Native-Applikationen, um den wachsenden Anforderungen gerecht zu werden und sich der Auslastung entsprechend anzupassen.

Unterstützung von mehreren Sprachen und Frameworks:

Cloud Native-Applikationen nutzen die Sprache und Frameworks, die für den jeweiligen Service am relevantesten sind.

Wiederverwendbarkeit:

Cloud Native-Applikationen sollten in der Lage sein, gewisse Services wiederzuverwenden, anstatt für jeden Zweck einen neuen zu erstellen.

APIs:

Cloud Native-Applikationen setzen in Cloud Native-Services auf APIs wie Representational State Transfer (REST), Google Remote Procedure Call (gRPC) und andere.

Agile DevOps:

Cloud Native-Applikationen müssen mit agilen DevOps-Prozessen verwaltet werden.

Governance:

Cloud Native-Applikationen benötigen ein Governance-Modell mit festen Richtlinien. Die Richtlinien werden von den IT-Abteilungen festgelegt, damit diese den Entwicklern und DevOps-Teams die richtigen Ressourcen zuweisen können, die sie dann in ihren Abteilungen gemeinsam nutzen können.

Was sind die Herausforderungen von Cloud Native?

Zwischen „Cloud-freundlichen“ Applikationen und solchen Applikationen, die tatsächlich „Cloud Native“ sind, gibt es einen großen Unterschied. Die Infrastruktur innerhalb von Unternehmen wird immer komplexer. Mit der Einführung einer digitalen Transformationsstrategie stellen Unternehmen häufig fest, dass es nicht so einfach ist, von On-Premise zu Cloud Native zu wechseln.

Tatsächlich müssen sich Enterprise Architects, Entwickler und CIOs unzähligen Herausforderungen stellen, um ein Unternehmen von einer lokalen IT-Umgebung in die Cloud zu führen.

Komplexität:

IT-Abläufe unterstützen eine komplexe Unternehmensinfrastruktur. Dies erfordert eine vereinfachte, automatisierte Übersicht.

Abhängigkeit von Hardware:

Microservices sind auf Betriebssysteme und/oder Maschinen angewiesen, die Funktionen für bestimmte Vorgänge nutzen – z.B. Solid-State-Laufwerke oder GPUs. Das bedeutet, dass die Hardware nicht ausfallen darf.

Governance:

Die Identifizierung von Risiken und Ermittlung von Schwachstellen ist angesichts der schwerwiegenden Folgen durch Sicherheits- und Compliance-Probleme unerlässlich.

DevOps:

Auch wenn DevOps immer beliebter wird, scheint eine perfekte Zusammenarbeit zwischen Dev und Ops noch nicht möglich zu sein. Allerdings arbeiten beide Teams kontinuierlich an einer Lösung für eine bestmögliche Kooperation.

Zeit:

Die Migration von IT-Assets in die Cloud kann mühsam und zeitaufwendig sein.

Redesign und neue Architektur:

Die Entwicklung von Applikationen für die Cloud und Gestaltung einer neuen Architektur ist ein aufwendiger Prozess.

Cloud Native: Strategie & Roadmap

Die Ausarbeitung einer Strategie und Roadmap für die Cloud Native-Welt erfordert sorgfältige Überlegungen und Planung. Enterprise Architects und CIOs sollten einige wichtige Punkte bedenken, bevor sie ihr Unternehmen für Cloud Native vorbereiten.

IT-Teams müssen sich in einer Cloud Native-Welt auf neue Aufgaben gefasst machen. Anstatt sich allein auf die IT-Infrastruktur zu konzentrieren, ist es ihre Aufgabe, dem Unternehmen einen neuen Mehrwert zu bieten und sich stärker mit der Verbesserung von Prozessen und deren Automatisierung zu befassen.

Der Weg hin zu Cloud Native erfordert eine Priorisierung der Workloads innerhalb der Infrastruktur. Dafür braucht es eine harmonische und enge Zusammenarbeit von Business und IT. Die Teams müssen Prioritäten für alte und neue/entstehende Workloads festlegen und so bestimmten, ob diese Workloads potenzielle Cloud Native-Kandidaten sind oder nicht.

Es ist die Aufgabe der Entwickler, ihre Plattform und Services mithilfe der 12-Faktor-App-Prinzipien und einer Microservice-Architektur zu standardisieren, um eine Cloud Native-Plattform unterstützen zu können. Diese 12 Faktoren verkörpern die Eigenschaften von Cloud Native-Applikationen.

Zusammenfassung

Der Schritt in die Cloud Native-Welt ist keine leichte Aufgabe. Die Unterstützung von Microservices und Cloud Native-Applikationen können einem Unternehmen dabei helfen, auf eine Cloud Native-Infrastruktur umzustellen, ohne dass Sicherheitsprobleme entstehen.

Die Einführung von Cloud Native-Applikationen kann zwar spannend sein und ein Unternehmen flexibler werden lassen, doch sollten die Vorteile und Herausforderungen, die sich daraus ergeben, sorgfältig geprüft werden, um die Cloud Native-Strategie auf das Unternehmen abzustimmen.