valuecloud-website-logo-60x60-min

Leistungen

Was ist eigentlich „Cloud native“ Software (und warum ist das wichtig)?

Die Herausforderung: Ich rede jeden Tag mit Leuten, die über „die Cloud“ sprechen aber gar nicht wissen, was es damit auf sich hat. Ich möchte das gerne ändern. Insbesondere werden Begriffe wie „Cloud“, „Cloud Computing“ und „Cloud native Software“ sehr häufig in einen Topf geworfen, obwohl damit unterschiedliche Dinge gemeint sind.

Ich widme mich mit ganzer Leidenschaft der Konzeption, Implementierung sowie dem Betrieb KI-basierter Software Systeme, welche häufig auf „Cloud nativen“ Software Architekturen aufsetzen. Daher geht es in diesem Artikel darum, was Cloud native Software bedeutet und warum es (hochgradig) relevant ist.

Über den Autor

Dr.-Ing. Christian Gilcher

CTO, Solution Consulting

1: Übersicht: Was ist Cloud native Software?

Die Definition aus (dem englischen übersetzen) Wikipedia lautet wie folgt:

Cloud Native Computing ist ein Ansatz in der Softwareentwicklung, der Cloud Computing nutzt, um „skalierbare Anwendungen in modernen, dynamischen Umgebungen wie Public, Private und Hybrid Clouds zu erstellen und auszuführen“. Technologien wie Container, Microservices, serverlose Funktionen und unveränderliche Infrastruktur, die über deklarativen Code bereitgestellt werden, sind gemeinsame Elemente dieses Architekturstils.

Diese Techniken ermöglichen lose gekoppelte Systeme, die widerstandsfähig, verwaltbar und beobachtbar sind. In Kombination mit einer robusten Automatisierung ermöglichen sie es Ingenieuren, mit minimalem Aufwand häufige und vorhersagbare Änderungen vorzunehmen.

Häufig werden Cloud-native Anwendungen als eine Reihe von Microservices erstellt, die in Docker-Containern ausgeführt werden. Sie können in Kubernetes orchestriert und mithilfe von DevOps- und Git-CI-Workflows verwaltet und bereitgestellt werden (obwohl es eine große Menge an konkurrierendem Open Source Tools gibt, die Cloud-native Entwicklung unterstützten). Der Vorteil der Verwendung von Docker-Containern ist die Möglichkeit, die gesamte zur Ausführung benötigte Software in ein ausführbares Paket zu packen. Der Container wird in einer virtualisierten Umgebung ausgeführt, wodurch die enthaltene Anwendung von ihrer Umgebung isoliert wird.

Der meiner Meinung nach entscheidende Aspekt in der Abgrenzung von Cloud nativen zu nicht-Cloud nativen Software Architekturen ist die Tatsache, dass die Unterscheidung nicht nur auf die technologische Ebene begrenzt ist, sondern auch organisatorische und kulturelle Veränderungen in der Art, wie Software entwickelt und betrieben wird, hat.

Es ist nicht bloss eine einzelne neue Technologie. Oder ein neues Framework.

Die cloud native Denk- und Arbeitsweise verändert auf eine sehr grundlegende Art den Prozess, wie Software entwickelt, ausgebracht und dauerhaft betrieben wird.

2: Warum Cloud native Software?

Bei den meisten modernen Unternehmen ist Software zu einem integralen Bestandteil der Wertschöpfung geworden. Das bedeutet, dass Software ein maßgeblicher Produktionsfaktor ist, welcher zunehmend den klassischen Gesetzen des Wettbewerbs unterliegt: wer besser, schneller, günstiger produziert, hat am Ende die Nase vorn.

Damit ist die Art und Weise, wie man Software entwickelt und betreibt, für viele Unternehmen zu einem zentralen Erfolgsfaktor geworden, um den ein „gesunder“ Wettlauf entsteht. Daraus aber entsteht der akute und konkrete Bedarf, Software möglichst „gut“, „schnell“ und „zuverlässig“ bauen und betreiben zu können.

Alles Eigenschaften, die man klassischen monolitischen Software Systemen ab einem gewissen Komplexitätsgrad nicht notwendigerweise nachsagt.

Im Gegensatz dazu haben Cloud native Software Systeme, wenn sie im Kontext einer kommerziellen Nutzung „richtig“ und „gut“ entworfen und implementiert sind, eine Reihe von Vorzügen aus Sicht des jeweiligen Business Owners:

  • Möglichkeit zur konstant schnellen Bereitstellung von Software Innovationen,
  • organisatorische Flexibilität,
  • schnelle und einfache Portierbarkeit auf andere Infrastrukturen,
  • einfache Skalierbarkeit,
  • modulare Erweiterbarkeit, auch in komplexen fachlichen Strukturen

3: Technologische Aspekte von Cloud nativer Software

Teams, die cloud native Software entwickeln wollen, kommen nicht umhin, sich neue Kenntnisse von neuen Technologien und Methodiken anzueignen:

  • Software Container (z.B. Docker),
  • Container Orchestrierung (z.B. Kubernetes),
  • DevOps Toolchains (z.B. GitLab)
  • Methoden zur Modellierung von Microservices (z.B. Domain Driven Design),
  • Methoden zur Modellierung der Interaktion von Microservices in Rahmen des Gesamtsystems (z.B. Event Storming),
  • und so weiter und so fort (die Liste ist nicht abschließend)

4: Organisatorische Aspekte von Cloud nativer Software

Entkoppelte und verteilte Systeme bieten die Möglichkeit eines hohen Maßes an Parallelisierung der Entwicklungsprozesse einzelner Komponenten. Das bedeutet, dass einzelne Teams für einen oder mehrere Microservices zuständig sind, und diese weitestgehend unabhängig von anderen Teams (weiter)entwickeln können.

Dies hat insbesondere bei dem zunehmend wichtigen Faktor „Time-to-Innovation“, also der möglichst schnellen Bereitstellung neuer Software Funktionalitäten, eine ganz entscheidende Bedeutung, weil im Gegensatz zum traditionellen monolitischen System-Design einzelne Teams nicht mehr gegenseitig aufeinander warten müssen, sondern deutlich unabhängiger und damit in Summe schneller agieren können.

Sofern die Microservices primär über Datenströme kommunizieren (event-based Architecture), müssen die einzelnen Services im Grunde nach nichts von den anderen Services im System wissen, mit Ausnahme der Erreichbarkeit des Event Bus. Das führt noch einmal zu einer deutlichen höheren Parallelisierbarkeit der Entwicklungsprozesse.

5: Kulturelle Aspekte von Cloud nativer Software

Im Kontext moderner DevOps Betriebsmodelle verschwimmen die klassischen Grenzen zwischen Entwicklung und Betrieb. Dies wiederum führt zu deutlich reduziertem Abstimmungsaufwand, klareren Verantwortlichkeiten und damit einer in Summe effizienteren und effektiveren Arbeit. Auch dies zahlt am Ende des Tages auf die Bereitstellungsgeschwindigkeit sowie die Effizienz und die Effektivität der Entwicklungs- und Betriebsprozesse sein.

Aus eigener Erfahrung kann ich sagen: auch die Team-Moral und ganz profan der Spaß an der Arbeit steigen dadurch spürbar an. In Summe führt zu einer ganz massiven Explosion der Produktivität.

6: Cloud native Software & Künstliche Intelligenz

In unserem Arbeitsalltag kombinieren wir Cloud native Software Architekturen mit Künstlicher Intelligenz. Dabei „verpacken“ wir einzelne KI Modelle in einzelne Microservices und behandeln diese aus architektureller Sicht wie „normale“ Microservices. Bei KI Microservices betten wir überlicherweise noch diverse Validierungs- und Beobachtungs-Metriken ein, aber das ist mit Blick auf den architekturellen Gesamt-Ansatz nebensächlich.

Aus unserer Sicht bieten cloud native Software Architekturen einen idealen Aufsatzpunkt, um „intelligente“ sprich KI-basierte Dienste nahtlos in das Gesamtbild einzufügen. Dabei spielt es keine Rolle, ob es sich um Sprach-, Bild- oder Sensor-basierte Daten handelt.

7: Fazit

Cloud native Software Architekturen und die „Verpackung“ von KI in Microservices sind aus meiner Sicht eine perfekte Symbiose, um auf zuverlässige und schnelle Art hochgradig funktionelle moderne Software Systeme zu entwickeln und diese zu betreiben.

Damit sind wir in der Lage, unsere Kunden Software Produkte auszuliefern, die einen aktiven Beitrag zu deren Geschäftsbetrieb leisten.

Ohne cloud native Technologien wäre die Entwicklung und der Betrieb solch moderner Systeme (mit oder ohne KI) deutlich langsamer, fehleranfälliger und teurer.

Was ist eigentlich „Cloud native“ Software (und warum ist das wichtig)?

Stehen Sie vor einer ähnlichen Herausforderung?

Unsere Experten freuen sich auf den Austausch mit Ihnen!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Neueste Artikel

Conversational AI
Caroline Wagner

Haystack & Rasa als Dreamteam für Chatbots mit Experten-Charakter

Chatbots sind schon lange Teil von Webshops, FAQ Seiten oder Apps. Meistens lassen uns diese Chatbots aber relativ schnell im Stich, insbesondere wenn es um fachliche komplexere Fragen geht. Um einem Endanwender trotzdem das Gefühl zu geben, mit einem Experten zu interagieren, müssen wir „schlauere“ Systeme bauen. Was wir hier brauchen ist „Conversational AI“.

Weiterlesen »
Tech Strategie
Christian Gilcher

Kostenfalle Hyperscaler (und mögliche Auswege)

Viele Unternehmen nutzen Cloud Plattform-Komponenten der großen Hyperscaler, um digitale Innovation möglichst schnell in den Markt zu bringen. Mit steigender Last werden Hyperscaler Angebote jedoch sehr schnell sehr teuer. ValueCloud bietet strategische Alternativen zur Reduzierung der Kostenlast, die zudem auf europäischen IaaS Diensten laufen und Datenschutz-Bedenken ausräumen. In Summe entstehen Kosten-optimierte, „intelligente“ Multi-Cloud Szenarien.

Weiterlesen »
Machine Learning
Matthias Bender

Time-Series Forecasting mit ARIMA / SARIMAX

In vielen Bereichen der Wirtschaft wird täglich der Ruf nach Prognosen lauter. Gerade zum Ende des Geschäftsjahres soll oftmals eine Aussage getroffen werden, wie die erwarteten Kosten in den einzelnen Bereichen sein werden. Werden höhere Ausgaben erwartet, oder kann auch ein Gewinn verzeichnet werden? Hilfreich wäre es also, ein Werkzeug zu besitzen, welches einem mit Hilfe historischer Daten ein mögliches Szenario in der (nahen) Zukunft vorhersagen kann.

Weiterlesen »
Tech Strategie
Christian Gilcher

Was ist eigentlich „Cloud native“ Software (und warum ist das wichtig)?

Ich rede jeden Tag mit Leuten, die über „die Cloud“ sprechen aber gar nicht wissen, was es damit auf sich hat. Ich möchte das gerne ändern. Insbesondere werden Begriffe wie „Cloud“, „Cloud Computing“ und „cloud native Software“ sehr häufig in einen Topf geworfen, obwohl damit unterschiedliche Dinge gemeint sind.

Weiterlesen »
Machine Learning
Christian Gilcher

KI-Systeme mit Kafka und Kubernetes

Ich glaube an die Notwendigkeit, KI-basierte Software Systeme für den geschäftlichen Einsatz so zu entwickeln, dass man als Unternehmen eine freie und eigenständige Wahl über die jeweiligen Betriebsumgebungen sowie den Ort der Speicherung und der Verarbeitung von Daten treffen kann. Nur so lässt sich eine vollständige Kontrolle und Hoheit über die Daten und die eingesetzten Technologien erreichen.

Weiterlesen »

ValueCloud GmbH

Europaallee 10

D-67657 Kaiserslautern

P: +49-631-3435-8150

F: +49-631-3435-8159

E: info@valuecloud.io