Suchen

Definition „Cloud-native Entwicklung“ Was ist Cloud Native Development?

| Autor / Redakteur: Pyrocco / Stephan Augsten

Der Cloud-native-Ansatz sieht vor, dass Software mittels und gleichzeitig für Cloud-Computing-Umgebungen entwickelt wird. Anwendungen, die in der Cloud erstellt und betrieben werden, können schneller bereitgestellt werden und auf Anforderungen reagieren sprich skalieren.

Firmen zum Thema

Mit Cloud-nativen Anwendungen lässt sich das Cloud-Konzept nicht nur zur Einsparung von IT-Kosten nutzen, sondern auch als Wachstumsmotor.
Mit Cloud-nativen Anwendungen lässt sich das Cloud-Konzept nicht nur zur Einsparung von IT-Kosten nutzen, sondern auch als Wachstumsmotor.
(© phonlamaiphoto - stock.adobe.com)

Cloud-Computing hat IT-Infrastrukturen neu definiert. Statt in eigene IT-Systeme zu investieren, mieten Unternehmen Infrastruktur, Plattformen und Dienste bei Cloud-Dienstleistern. Dadurch sind sie sehr flexibel, zahlen nicht mehr als nach momentanen Erfordernissen nötig und minimieren ihren IT-Verwaltungsaufwand.

Geringere IT-Ausgaben bedeuten derweil eine geringere Eintrittsbarriere für die Nutzung komplexer IT, was Wettbewerbsvorteile bringt. Start-ups können auf diese Weise traditionelle Branchen disruptiv angreifen. Unternehmen können mit Cloud-Computing ferner bessere Skalierbarkeit und Verfügbarkeit von Anwendungen erreichen.

Der Anwendungslebenszyklus lässt sich so von der Entwicklung bis hin zur Produktion in hohem Maße automatisieren. Cloud-native Anwendungsentwicklung ermöglicht es, diese Vorteile vollumfänglich auszuschöpfen.

Was sind Cloud-native Anwendungen?

Cloud-native Anwendungen sind speziell für Cloud-Computing-Modelle konzipiert. Plattformen zum Erstellen und Betreiben von Cloud-nativen Anwendungen basieren auf den Cloud-Computing-Konzepten DevOps, Continuous Delivery, Microservices und Container.

DevOps

DevOps ist eine Philosophie der engen Zusammenarbeit von IT-Entwicklung (Development) und IT-Betrieb (Operations) mit dem Ziel höherer Softwarequalität und einer beschleunigten und häufigeren Bereitstellung von Updates. Das Erstellen, Testen und Freigeben von Software kann dadurch schneller, häufiger und zuverlässiger erfolgen.

Die Philosophie drückt sich aus in:

  • Kultur: Teamwork, Verantwortung
  • Praxis: Richtlinien, Rollen, Prozesse
  • Tools: gemeinsame Werkzeuge und Plattformen

Continuous Delivery

Mit Continuous-Delivery-Verfahren (kontinuierliche Bereitstellung) kann eine einzelne Anwendungsänderung sofort freigegeben werden, ohne dass sie erst mit anderen Änderungen gebündelt auf Freigabe warten muss. Mit Continuous Delivery lässt sich eine Freigabe dieser Art zuverlässig realisieren, so dass Unternehmen häufig und mit geringerem Risiko liefern und schneller Feedback von Endbenutzern erhalten können. Die häufige Bereitstellung neuer Versionen kann so ein wesentlicher Bestandteil des Geschäftsprozesses und der Wettbewerbsfähigkeit des Unternehmens sein.

Microservices

Microservices sind die Architektur-Grundlage bei der Cloud-nativen Anwendungsentwicklung. Eine Anwendung entsteht dabei durch die Koppelung von Microservices. Jeder Microservice implementiert eine Geschäftsfunktion, wird in einem eigenen Prozess ausgeführt und kommuniziert über eine HTTP-API.

Jeder Microservice kann unabhängig von anderen Diensten entwickelt, bereitgestellt, aktualisiert, skaliert und neu gestartet werden, normalerweise als Teil eines automatisierten Systems. Dies ermöglicht häufige Aktualisierungen von ständig in Betrieb befindichen („Live-“) Anwendungen, ohne die Nutzer zu beeinträchtigen.

Durch die Entkopplung der Mircoservices kann sich ein Entwickler auf die Kernfunktionalität eines Dienstes konzentrieren. Dieser Ansatz führt zu einer effizienten Lebenszyklusverwaltung der gesamten Anwendung, da jeder Dienst unabhängig verwaltet wird.

Container

Cloud-native Anwendungen sind eine Sammlung unabhängiger Dienste, die in leichtgewichtige Container verpackt sind. Container haben gegenüber standardmäßigen virtuellen Maschinen (VMs) Effizienz- und damit Geschwindigkeitsvorteile. Bei Betriebssystem-Virtualisierung wird eine einzelne Betriebssysteminstanz dynamisch auf einen oder mehrere isolierte Container aufgeteilt. Jeder Container hat ein eigenes Dateisystem und ein eigenes Ressourcenkontingent. Der geringe Aufwand für das Erstellen und Zerstören von Containern in Kombination mit der hohen Packungsdichte in einer einzelnen VM macht Container zum perfekten Mittel für die Bereitstellung einzelner Mikrodienste.

Vorteile von Cloud-nativen Anwendungen

Auf Microservices basierte Anwendungen können schnell von kleinen Teams zusammengesetzt werden. Durch die einfache Skalierbarkeit und Entkoppelung von Hardware entsteht mehr Flexibilität, Ausfallsicherheit und Portabilität der Anwendungen über verschiedene Clouds hinweg.

Cloud-native Anwendungen können außerdem hochflexibel mit beliebigen Sprachen und Frameworks entwickelt werden. Jeder Dienst einer nativen Cloud-Anwendung wird mit der Sprache und dem Framework entwickelt, die für die Funktionalität am besten geeignet sind.

Flexibilität der Bereitstellung

Unternehmen können Cloud-native Anwendungen ohne Änderungen in jeder Cloud-Umgebung bereitstellen. Cloud-native Anwendungen sollten dafür nach Prinzipien wie der sog. 12-Faktoren-Methode für Software-as-a-Service konstruiert sein. Beispielsweise müssen die Anwendungen mit Blick auf Redundanz geplant werden, um robust gegenüber Hardwareausfällen zu sein.

Die Anwendungen haben daher keine Affinität für ein bestimmtes Betriebssystem oder eine bestimmte Hardware. Sie arbeiten auf einer höheren Abstraktionsebene. Anwendungen können dann über mehrere Cloud-Anbieter und private Clouds hinweg migrieren, also schnell verschiedenen Kunden zur Verfügung gestellt werden.

Monolithische vs. Cloud-native Anwendungen

Traditionelle, monolithische Anwendungen erschweren es Entwicklern, sie für eine Vielzahl von Bereitstellungsinfrastrukturen weiterzuentwickeln. Traditionell eng statt lose gekoppelte Komponenten einer Anwendung bedeuten für Updates, dass die gesamte Anwendung neu kompiliert werden und an die Benutzer verteilt werden muss. Dies macht den monolithischen Ansatz ineffizient und umständlich. Mit Cloud-nativer Entwicklung werden Anwendungen möglich, die mit vergleichsweise geringem Aufwand besser wartbar und portabel sind.

Native Cloud-Entwicklung als Wettbewerbsvorteil

Mit Cloud-nativen Anwendungen kann das Cloud-Konzept nicht nur für IT-Kosteneinsparungen genutzt werden, sondern auch als Motor für das Unternehmenswachstum. Unternehmen, die schnell Anwendungen erstellen und wandlungsfähig bereitstellen können, um auf Kundenanforderungen zu reagieren, haben Wettbewerbsvorteile.

(ID:46270930)