Softwareentwicklung in der Cloud

Cloud-native – was steckt hinter dem Buzzword?

05.07.2019
Von 
Wolfgang Herrmann ist IT-Fachjournalist und Editorial Lead des Wettbewerbs „CIO des Jahres“. Der langjährige Editorial Manager des CIO-Magazins war unter anderem Deputy Editorial Director der IDG-Publikationen COMPUTERWOCHE und CIO sowie Chefredakteur der Schwesterpublikation TecChannel.
Cloud-native-Anwendungen bringen Unternehmen mehr Flexibilität und Effizienz in der Softwareentwicklung. Sie brauchen dafür nicht nur Container-Techniken und Microservices, sondern auch agile Methoden und DevOps-Konzepte.

Vor allem Cloud-Provider und -Dienstleister verwenden den Begriff Cloud-native gerne, wenn sie potenzielle Kunden von den Vorteilen ihres Angebots überzeugen wollen. Seit 2015 gibt es sogar die von der Linux Foundation gegründete Cloud Native Computing Foundation (CNCF), die dazu passende Open-Source-Projekte vorantreibt. Doch was steckt wirklich hinter dem Buzzword?

Cloud-native ist längst mehr als nur Marketing-Sprech von Beratern. Dahinter steckt ein grundlegend verändertes Konzept zum Entwickeln und Betreiben von Unternehmensanwendungen.
Cloud-native ist längst mehr als nur Marketing-Sprech von Beratern. Dahinter steckt ein grundlegend verändertes Konzept zum Entwickeln und Betreiben von Unternehmensanwendungen.
Foto: BEST-BACKGROUNDS - shutterstock.com

Vereinfacht ausgedrückt, ist damit ein Konzept zum Entwickeln und Betreiben von Anwendungen gemeint, das die Vorteile des Cloud-Computing-Modells voll ausschöpft. Dementsprechend arbeiten Cloud-native-Applikationen nicht on-premise in eigenen Rechenzentren der Unternehmen, sondern tendenziell in der Public Cloud.

Die CNCF definiert den Begriff etwas enger. Als eine Voraussetzung nennen die Initiatoren einen Open-Source-Software-Stack, der Container-Techniken und Microservices nutzt. Jeder Teil des Stacks, beispielsweise Anwendungen oder Prozesse, ist demnach in einem eigenen Container "verpackt". Die einzelnen Teile werden dynamisch orchestriert und verwaltet, um IT-Ressourcen optimal auszunutzen. Am Ende soll sich damit nicht nur die Wartbarkeit, sondern auch die Agilität der Anwendungen insgesamt verbessern.

Wie so oft in der IT geht es auch den Cloud-native-Protagonisten um mehr Flexibilität und Effizienz. Ganz ähnlich wie beim Ansatz der Service-orientierten-Architektur (SOA) soll es statt unbeweglicher Softwaremonolithen künftig eine Vielzahl von (Micro-)Services geben, die jeweils nur kleine und einfach handhabbare Funktionsblöcke zum Gesamtsystem beisteuern. Der Vorteil liegt auf der Hand: Änderungen und Updates lassen sich in kleinen Schritten vornehmen, ohne dass Unternehmen dafür jedes Mal die komplette Anwendung anfassen müssen.

Im Sinne einer "Continuous Delivery" ist eine Cloud-native-Anwendung nie ganz fertig, sondern wird permanent weiterentwickelt. Das Konzept passt insofern gut zu den Anforderungen der digitalen Transformation, die Unternehmen ein viel schnelleres Reagieren auf veränderte Bedingungen abverlangt.

Cloud-native Apps machen Unternehmen wendiger

Unternehmen, die neue Anwendungen speziell für den Cloud-Betrieb entwickeln, sind im Wettbewerb agiler und schneller, argumentiert etwa der IT-Dienstleister Capgemini unter Berufung auf eine eigene Studie. Die wirklich disruptiven Firmen aus dem Silicon Valley und anderswo seien deshalb so erfolgreich, weil sie die Elastizität der Cloud mit einem Cloud-native-Ansatz voll ausschöpften.

Die Pioniere auf diesem Gebiet bauten Anwendungen direkt in der Cloud und setzten dabei auf eine modulare Microservices-Architektur. Auf dieser Grundlage könnten sie Innovationen schneller entwickeln und neue Produkte rasch skalieren. Für Unternehmen mit monolithischen Systemen sei ein solcher Zuwachs an Geschwindigkeit und Flexibilität unerreichbar.

Lose Kopplung ermöglicht bessere Skalierbarkeit

"Eine Cloud-native-Applikation ist speziell für elastische und verteilte Umgebungen ausgelegt, wie sie moderne Cloud-Plattformen heute voraussetzen", erläutert Mike Kavis, Managing Director beim Wirtschaftsprüfungs- und Beratungshaus Deloitte. "Die Apps sind lose gekoppelt, der Code ist also nicht fest mit einer Infrastrukturkomponente verdrahtet." Damit ließen sich die Anwendungen auch je nach Bedarf skalieren.

Der entscheidende Unterschied zu klassischen Applikationen besteht darin, wie Cloud-native Apps erstellt, ausgeliefert und betrieben werden, ergänzt Andi Mann, Chief Technology Advocate beim Softwareanbieter Splunk. Um die Vorteile von Cloud-Services auszuschöpfen gelte es, agile und skalierbare Komponenten wie Container zu verwenden. IT-Teams könnten damit klar abgegrenzte und wiederverwendbare Features ausliefern, die sich auch über Plattformgrenzen hinweg etwa in Multi-Cloud-Szenarien einsetzen ließen. Mithilfe von Orchestrierungs- und Automatisierungs-Tools könnten Entwickler neue Softwareiterationen schneller bereitstellen und damit der gesamten Organisation zu mehr Agilität verhelfen.

Für eine Cloud-native Softwareentwicklung müssen Unternehmen allerdings erst die Voraussetzungen schaffen. Ein DevOps-Modell gehört nach Meinung von Experten ebenso dazu wie agile Entwicklungsmethoden, Containertechniken, leistungsstarke Cloud-Plattformen und ein Continuous-Delivery-Modell. Eine PaaS-Infrastruktur ist zwar nicht unbedingt erforderlich, erleichtert die Arbeit in der Praxis aber erheblich.

IaaS und PaaS erleichtern Cloud-native-Entwicklung

Die meisten Cloud-Nutzer starten mit Infrastructure as a Service (Iaas). Anwendungen lassen sich damit von der darunterliegenden Hardware abstrahieren. Platform as a Service (PaaS) fügt einen weiteren Layer hinzu, der auch darunterliegende Betriebssysteme abstrahiert. Nutzen Unternehmen beide Cloud-Schichten, können sie sich auf die zu programmierende Businesslogik konzentrieren und müssen sich nicht mehr um Infrastruktur-Aspekte wie etwa Betriebssystem-Calls kümmern.