Cloud-native Entwicklung – Die 9 Besonderheiten
Wodurch zeichnet sich Cloud-native Entwicklung und die daraus resultierenden Apps aus?
Welche Bedeutung haben Cloud-native Applications für Unternehmen, die im digitalen Zeitalter nach Wettbewerbsfähigkeit und Wachstum streben?
Digitale Anwendungen sind der Treibstoff jedes modernen Geschäftsmodells. Die Anzahl der Applikationen in mittleren bis großen Unternehmen liegt zwischen 50 und bis zu 1.000, wie die Experten von IDC ermittelt haben (IDC InfoBrief "Accelerating Digital Transformation with Cloud-Native Applications"). Daher ist es essentiell für jede digitale Strategie, auf moderne Softwareentwicklung sowie die entsprechende Infrastruktur dahinter zu setzen.
Die steigende Bedeutung von Applikationen ist naturgemäß mit einer starken Disruption im Unternehmen verbunden. Die IT muss sich strategisch neu ausrichten in Richtung flexibler Cloud-Ressourcen, um den neuen Anforderungen gerecht zu werden. Denn im digitalen Zeitalter bestimmen die Kunden, welche Funktionen ein Produkt oder eine Dienstleistung braucht. Zügig auf diese Wünsche einzugehen und der Konkurrenz möglichst zuvorzukommen, entscheidet über den weiteren Erfolg oder Misserfolg von Unternehmen.
Cloud-native Applikationen zeichnen sich durch moderne Ansätze in der Entwicklung und Bereitstellung aus. Unternehmen versprechen sich von ihrem Einsatz vor allem geringere Betriebskosten und eine verbesserte Customer Experience. Aber auch eine höhere Wirtschaftlichkeit und Differenzierung im Wettbewerb sowie eine schnellere Time-to-Market stehen ganz oben auf der Wunschliste.
Cloud-native ist keine Technologie, sondern ein Ansatz, der sich auf alle Arten von Applikationen übertragen lässt. So zeigte die „Cloud-native Apps Survey“ von IDC im August 2017 bereits eine relativ ausgeglichene Verteilung auf verschiedene Workloads.
Wichtiger als der konkrete Einsatzzweck ist jedoch ein generelles Bewusstsein für die Bedeutung Cloud-nativer Anwendungen im Rahmen einer digitalen Transformation. Denn während bestehende Applikationen vermehrt der Aufrechterhaltung des Geschäftsbetriebs dienen, zielen Cloud-native Apps im Wesentlichen auf neue, innovative Produkte oder Services ab. Diese fördern im Endeffekt die Wettbewerbsfähigkeit eines Unternehmens und sollten somit eine hohe Priorität erhalten. Sowohl was IT-Investitionen als auch die Unterstützung der nötigen Umstellungen angeht, die im Folgenden beschrieben werden.
Häufig sind in deutschen Unternehmen noch starre, monolithisch aufgebaute Anwendungen im Einsatz. Die meisten Unternehmen betreiben diese im eigenen Rechenzentrum. Cloud-native Applikationen benötigen jedoch eine hohe Flexibilität, Skalierbarkeit und Portabilität über mehrere Infrastrukturen hinweg. Nur in einer Multi-Cloud-Umgebung können sie all ihre Vorteile voll ausspielen. Nicht zuletzt aus diesem Grunde zeichnet sich in Unternehmen eine vermehrte Nutzung von Container-Technologien ab, welche die Portabilität Cloud-nativer Applications unterstützen.
Container werden in allen Regionen, Branchen und Unternehmensgrößen genutzt. Quelle: Rancher Labs
Hand in Hand mit dieser Entwicklung geht ein starker Trend zu Software-defined Infrastructure bzw. Software-defined Everything (SDx). Dieser Architekturansatz basiert darauf, dass Infrastrukturen – Networking, Storage, Datacenter – komplett als Service aus der Cloud bezogen werden. Dadurch erzielt man eine hohe Flexibilität, Agilität und Automatisierung.
Orchestrierung ist in der IT immer dann gefragt, wenn eine Vielzahl beteiligter Komponenten möglichst effizient genutzt werden soll. Dies kann etwa bei einer Multi-Cloud oder auch bei der Container-Nutzung der Fall sein. Durch die Orchestrierung werden viele Managementprozesse vereinfacht oder sogar automatisiert.
Wie oben bereits beschrieben, sind Cloud-native Apps nicht an eine bestimmte Plattform gebunden und sie werden häufig im Zusammenhang mit Container-Technologien entwickelt und bereitgestellt. Daher setzen Unternehmen auf Lösungen zur Container-Orchestrierung wie Kubernetes, Datacenter-Automatisierung wie Puppet sowie PaaS-Frameworks wie Cloud Foundry.
Quelle: IDC Cloud-native Apps Survey, August 2017
Cloud-native Apps erfordern organisatorische Veränderungen in den Bereichen Entwicklung (Development) und Betrieb (Operations). Daher haben agile Entwicklungsmethoden wie DevOps und CI/CD Pipelines (Continuous Development/Deployment und Continuous Integration) in vielen Unternehmen bereits Einzug gehalten.
Laut IDC-Umfrage haben 61 Prozent der Unternehmen agiles Development und 56 Prozent CI/CD bereits integriert. DevOps ist zwar in aller Munde, aber nur 33 Prozent der Befragten geben an, dieses im Kontext Cloud-nativer Anwendungsentwicklung bereits einzusetzen.
Red Hat hat sich mit der Frage befasst, welche Faktoren Unternehmen berücksichtigen müssen, wenn sie Cloud-native Apps entwickeln möchten.
Repackaging, Replatforming und Refactoring sind drei gängige Ansätze, um Applikationen fit für die Cloud zu machen. Dabei wird jeweils die Funktionalität der Anwendung erhalten, während sie dazu gebracht wird, nativ in der Cloud zu laufen.
Mit Repackaging ist dabei das Verpacken der Legacy-Anwendungen (oder einzelner Komponenten) in Container gemeint. So werden sie unabhängig von der Umgebung, in der sie ausgeführt werden, und lassen sich einfach in die Cloud portieren. Diese Methode wird laut IDC-Umfage häufig für Windows- und Linux-Workloads verwendet.
Replatforming geht in eine ähnliche Richtung. Doch greift Repackaging nicht in die Architektur der Anwendung ein und setzt daher auch keine neue Plattform oder neues Framework voraus. Replatforming bedeutet hingegen, die nun in Container verpackte Anwendung auch in ein neues Framework wie Kubernetes zu verfrachten. Der Vorteil liegt darin, dass auf diese Weise modernisierte Anwendungen im selben Framework wie Cloud-nativ entwickelte Applikationen laufen können.
Refactoring beschreibt die Anpassung der Architektur einer monolithischen Anwendung. Bei der neuen Architektur greifen Cloud-native Prinzipien, um eine verteilte, auf Microservices basierende und zustandslose (stateless) Anwendung zu erhalten. Dieser Vorgang kann recht aufwändig sein. Es ist aber auch möglich, einzelne Teile der Anwendung nach und nach in Microservices „umzuschmieden“.
Eine hohe Portabilität ist ein wesentliches Feature Cloud-nativer Apps. So lassen sich diese überall weiterentwickeln und ausführen. Zum Beispiel dort, wo die Performance am besten ist, wo die Cloud-Ressourcen am wirtschaftlichsten sind, Compliance-Vorgaben erfüllt werden etc. Dies bringt jedoch zur eigentlichen Aufgabe, die Modernisierung der eigenen Applikationen voranzutreiben, noch eine weitere Mammutaufgabe mit sich: Das Design und den Betrieb einer flexiblen und skalierbaren (Multi-)Cloud-Infrastruktur.
Dabei können jedoch Managed-Cloud-Partner unterstützen. Von der Bestandsaufnahme der Anforderungen über das Design, die Migration und den Betrieb bis hin zu Monitoring, Support und fortlaufende Optimierung. So entlastet der Cloud-Experte die Unternehmens-IT und diese kann sich anderen Aufgaben im Rahmen der digitalen Transformation widmen.
Jetzt Artikel teilen:
Um besser einzuschätzen, wo Ihr Unternehmen im Hinblick auf Cloud-native aktuell steht, können Sie ein Assessment neun wichtiger Themen durchführen. Das Gratis-Paper zeigt, wie das geht.
DAS KÖNNTE SIE AUCH INTERESSIEREN:
Wodurch zeichnet sich Cloud-native Entwicklung und die daraus resultierenden Apps aus?
IT-Automatisierung ist im Rahmen der Digitalisierung ein zentrales Thema.
Bei der Container-Nutzung geht es vor allem darum, einen hohen Grad an Automatisierung zu erreichen.
Bitte wählen Sie einen der unten stehenden Links, um zum gewünschten Portal zu gelangen.
Bei Fragen oder technischen Problemen wenden Sie sich bitte an Ihre gewohnten Ansprechpartner.
Für die Darstellung dieser Inhalte von YouTube benötigen wir Ihre Einwilligung. Wenn Sie die Inhalte aktivieren, werden Ihre Daten verarbeitet und es werden Cookies auf Ihrem Endgerät gespeichert sowie von diesem gelesen.
Weitere Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung für 30 Tage ( in einem Cookie) speichern