Was ist Cloud Native?

20.08.2021
Von  und


Scott Carey ist Redakteur bei unser IDG-Schwesterpublikation Computerworld in Großbritannien. Der IT-Journalist mit dem Schwerpunkt auf Unternehmensanwendungen moderiert auch Branchenveranstaltungen. Besonders interessieren ihn die großen IT-Player und Cloud-Service-Anbieter. Er hat ein Diplom in Journalistik an der Universität Cardiff in Wales erworben. In seiner Freizeit treibt er Sport, reist viel und beschäftigt sich intensiv mit der Medienlandschaft in Großbritannien.


Florian beschäftigt sich mit vielen Themen rund um Technologie und Management. Daneben betätigt er sich auch in sozialen Netzen.
Cloud Native ist der moderne Weg, Software zu entwickeln.
Der Cloud-Native-Ansatz wurde von Unternehmen entwickelt, die in der Cloud geboren wurden.
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.

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:

  • Programmiersprachen: Lokale Anwendungen, die für die Ausführung auf Unternehmensservern geschrieben werden, sind in der Regel in traditionellen Sprachen wie C/C++, C# und Enterprise Java geschrieben. Cloud-native Anwendungen werden eher in einer webzentrierten Sprache wie HTML, CSS, Java, JavaScript, .NET, Go, Node.js, PHP, Python oder Ruby geschrieben. Moderne Programmiersprachen und Plattformen einzusetzen, kann Ihrem Unternehmen auch dabei helfen, der Konkurrenz im "War for Talents" einen Schritt voraus zu sein.

  • Aktualisierbarkeit: Cloud-Native-Anwendungen werden so entwickelt, dass sie hochverfügbar, belastbar und regelmäßig aktualisierbar sind. On-Premises-Applikationen werden hingegen in der Regel ein- oder zweimal pro Jahr nach der Wasserfall-Methode aktualisiert. Die Flexibilität, die Cloud Native an dieser Stelle bietet, kann einerseits zur Produktivität der Softwareentwickler beitragen, andererseits auch zur Kundenzufriedenheit beziehungsweise Customer Experience.

  • Elastizität: Cloud-native Anwendungen nutzen in der Regel die Vorteile der Elastizität der Cloud, indem sie den Verbrauch nach Bedarf anpassen. Im Fall einer On-Premises-Anwendung würde die physische Bereitstellung zusätzliche Infrastruktur erfordern, um effektiv skalieren zu können. Das hat auch Auswirkungen auf die Kosten: In der Cloud bezahlen Sie nur für das, was Sie nutzen.

  • Multimandantenfähigkeit: Eine Cloud-Native-Anwendung arbeitet problemlos in einem virtualisierten Raum und teilt Ressourcen mit anderen Anwendungen in einem mandantenfähigen Modell. Das kann der Softwareentwicklung einen Effizienzschub verleihen.

  • Ausfallzeiten: Aufgrund ihrer Größe und dezentralen Natur bietet die Cloud eine größere Redundanz. Indem der Datenverkehr schnell in eine andere Region umgeleitet wird, können Ausfälle besser gehändelt und kostspielige Ausfallzeiten vermieden werden.

  • Automatisierung: Cloud Native eröffnet eine Fülle von Automatisierungsmöglichkeiten. So müssen Sie im Idealfall nur einmal entwickeln und können sich dann anderen, dringenderen Herausforderungen widmen.

  • Zustandslos: Cloud-native Anwendungen sind in der Regel zustandslos, das heißt sie übertragen gespeicherte Daten nicht von einer Sitzung zur nächsten. Dieses Modell ermöglicht es, einfacher über mehrere Server hinweg zu skalieren, einfacher zwischenzuspeichern, um die Leistung zu steigern und weniger Speicher zu beanspruchen. Darüber hinaus trägt das auch dazu bei, den gefürchteten Vendor-Lock-In zu vermeiden, da Sie mit Cloud-native-Anwendungen nicht an eine bestimmte Infrastruktur gebunden sind.

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:

  • die Suche nach dem richtigen Qualifikationsmix,

  • die Anpassung an ein Cloud-zentriertes Sicherheitsmodell,

  • die Bewältigung des sich ändernden Kostenprofils einer Cloud-Umgebung.

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.