Was ist Cloud Native?

11.11.2023 von Scott Carey und Florian Maier
Cloud Native ist der moderne Weg, Software zu entwickeln.
Der Cloud-Native-Ansatz wurde von Unternehmen entwickelt, die in der Cloud geboren wurden.
Foto: Mila Zaytseva - shutterstock.com

Cloud-natives Computing macht sich viele State-of-the-Art-Entwicklungstechniken wie Microservices, Container, CI/CD, Agile und Devops zunutze. Lesen Sie, was Sie über diesen Ansatz, die Cloud-Native-Landschaft sowie Vor- und Nachteile wissen müssen.

Cloud Native - Definition

Cloud Native ist ein moderner Ansatz, um Softwareanwendungen zu entwickeln. Das Modell ist speziell auf Cloud-Infrastrukturen zugeschnitten und nutzt die Flexibilität, Skalierbarkeit und Ausfallsicherheit der Cloud. Cloud Native umfasst die verschiedenen Tools und Techniken, die von Softwareentwicklern heute verwendet werden, um Anwendungen für die Public Cloud zu erstellen. Im Gegensatz dazu stehen traditionelle Architekturen und Entwicklungsansätze (Wasserfall), die für lokale Rechenzentren geeignet sind.

Der Cloud-Native-Ansatz wurde von einer Gruppe von Unternehmen entwickelt, für die das Attribut "in der Cloud geboren" gilt. Dazu gehören etwa die Streaming-Giganten Netflix und Spotify, das Fahrdienstunternehmen Uber oder die Buchungsplattform Airbnb. Der Cloud-Native-Ansatz wurde inzwischen auch von anderen Unternehmen übernommen, die ähnliche digitale Flexibilität und disruptive Wettbewerbsvorteile anstreben.

Die Cloud Native Computing Foundation (CNCF) definiert Cloud Native etwas enger und fokussiert sich dabei auf die Containerisierung von Anwendungen, die in Microservices aufgeteilt und in leichtgewichtige Container verpackt werden, um so auf einer Vielzahl von Server- und Betriebssystemen bereitgestellt und orchestriert zu werden: "Cloud-Native-Technologien ermöglichen Unternehmen, skalierbare Anwendungen in modernen, dynamischen Umgebungen wie öffentlichen, privaten und hybriden Clouds zu entwickeln und auszuliefern."

Bei der Entwicklung von Cloud-nativen Anwendungen werden in der Regel folgende Elemente mit Techniken wie DevOps oder Agile kombiniert:

Cloud Native - Ökosystem

Dieser Wandel innerhalb der Softwareentwicklung hat zu einer neuen Landschaft mit überwiegend quelloffenen Tools geführt. Die CNCF bietet eine interaktive Grafik dieses Ökosystems:

Beim Cloud Native Computing gibt es vier Ebenen, die es zu verstehen gilt:

  1. Die Ebene der Anwendungsdefinition und -entwicklung: Die oberste Schicht des Cloud-Native-Stacks konzentriert sich auf die Tools, die von den Entwicklern verwendet werden, um Anwendungen zu erstellen. Dazu gehören etwa Datenbanken, Messaging-Systeme, Container-Images und CI/CD Pipelines.

  2. Die Bereitstellungsschicht: Sie umfasst alles, was erforderlich ist, um die Umgebung in der die Applikation läuft, zu erstellen und abzusichern. In der Cloud-Native-Welt bedeutet das in der Regel, dass die Infrastruktur wie Code behandelt wird; dass Images in einem Repository gespeichert werden; dass Builds automatisiert und die Anforderungen an die Anwendungssicherheit durch Schwachstellen-Scans, Schlüssel- und Richtlinienverwaltung sowie Authentifizierungstools erfüllt werden.

  3. Die Laufzeitschicht: Diese Schicht umfasst alles, was mit der Ausführung einer Cloud-Native-Anwendung zusammenhängt, wie beispielsweise die Container-Runtime sowie Speicher und Netzwerke.

  4. Die Orchestrierungs- und Verwaltungsschicht: Sie vereint die Tools, die für die Bereitstellung, Verwaltung und Skalierung von containerisierten Anwendungen erforderlich sind - einschließlich Orchestrierung und Scheduling. In den meisten Fällen bedeutet das: Kubernetes sowie Service Discovery, Service Proxy, API-Gateway und Service Mesh.

Außerhalb dieser Schichten ist es außerdem wichtig, ein funktionierendes Monitoring zu implementieren, um all diese Dienste effektiv überwachen zu können. Manche Unternehmen entscheiden sich auch dafür, ihren Cloud-Native-Stack auf einer internen Self-Service-Entwicklerplattform zusammenzuführen oder wenden sich an einen PaaS-Anbieter, um Entwicklern die Einführung zu erleichtern.

In nachfolgendem Video erfahren Sie von Craig McLuckie, Gründer und CEO des Kubernetes-Spezialisten Heptio, wie der Cloud-Native-Ansatz die Technologiestruktur innerhalb der Unternehmen verändert:

Cloud Native vs. On-Premises

Die Entwicklung von Cloud-nativen Anwendungen erfordert eine völlig andere Architektur als herkömmliche Unternehmensanwendungen, die in der Regel in einem Rechenzentrum vor Ort ausgeführt werden. Das sind die wichtigsten Unterschiede und die Vorteile, die Cloud Native gegenüber herkömmlichen Anwendungsentwicklungsmodellen bietet:

Cloud Native - Herausforderungen

Der Versuch, eine bestehende On-Premises-Anwendung im Lift-and-Shift-Verfahren ohne architektonische Änderungen auf Cloud-Native umzustellen, funktioniert nicht. Weitere Herausforderungen für Unternehmen, die Cloud Native werden wollen, sind:

Entwickler sollten darauf achten, Cloud Native als Organisationsprinzip zu übernehmen, indem sie entweder neue Anwendungen für die Cloud entwickeln oder bestehende, monolithische Applikationen in Microservices auflösen, damit sie besser für eine Cloud-Umgebung geeignet sind. Das erfordert einen umfassenden Mentalitätswandel: Weg von der traditionellen Wasserfall-Entwicklung hin zu agileren Entwicklungsprinzipien wie Minimum Viable Product, Automatisierung, multivariates Testing, Observability und dem Devops-Modell.

Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Infoworld.com.