Kubernetes und Low-Code im Doppelpack Von Cloud zu Cloud-native Computing

Ein Gastbeitrag von Tino Fliege *

Anbieter zum Thema

Mit Cloud-nativem Computing vollzieht sich derzeit der nächste große Paradigmenwechsel in der IT. Doch die Implementierung der erforderlichen Infrastruktur ist komplex. Die Kombination von Kubernetes und Low-Code kann helfen – und gleichzeitig die Grundlage schaffen für die App-Entwicklung der Zukunft.

Eine Kombination aus Cloud-native Computing und Low-Code-Entwicklung könnte Unternehmen weiter voranbringen.
Eine Kombination aus Cloud-native Computing und Low-Code-Entwicklung könnte Unternehmen weiter voranbringen.
(Bild: Gerd Altmann (geralt) / Pixabay)

Im digitalen Zeitalter ist der Kunde wahrlich König: Angespornt von der privaten Mediennutzung erwarten Kunden einen immer schnelleren Service, passgenauere Angebote und individuellere Produkte. Die Unternehmens-IT – sowohl die interne Infrastruktur als auch genutzte Anwendungen – spielt damit die Schlüsselrolle, um die Wünsche der Kunden besser und schneller erfüllen zu können als die Konkurrenz.

Damit geht das Rennen um die Gunst der Kunden erst so richtig los, denn was sich bewährt, findet sehr schnell Nachahmer am Markt. Der steigende Wettbewerbsdruck stößt mehr und mehr einen Paradigmenwechsel in der IT an – hin zum Cloud-native Computing, das Unternehmen in die Lage versetzen soll, den heutigen Anforderungen besser gerecht zu werden als mit klassischer Infrastruktur und klassischen Lösungen.

„Cloud-native Computing“ wendet die Best-Practices und Vorteile der Cloud auf die gesamte IT-Landschaft an. Der Ansatz verspricht dadurch eine massive Skalierbarkeit, dynamische Anpassbarkeit und weltweite Hochverfügbarkeit für alle Anwendungen und Dienste.

Flickenteppich Kubernetes

Im Zentrum des Cloud-native Computing steht Kubernetes. In nahezu allen Unternehmen, die ihre Cloud-Reise begonnen haben, ist die Plattform zur Container-Orchestrierung etabliert, doch aufgrund ihrer Komplexität sind Konfiguration und Nutzung nicht selten mit einem hohen Ressourcenaufwand verbunden. Dies rührt unter anderem daher, dass die Plattform in der Tat mehr ein Ökosystem aus Open-Source- und kommerziellen Produkten ist als ein klassisches Stand-Alone-Angebot.

Und das mit voller Absicht: Die Kubernetes-Entwickler verfolgten von Anfang an das Ziel, dass andere Anbieter und Projektteams die Plattform mit neuen Ideen erweitern können. So besteht Kubernetes heute aus einer Vielzahl von Komponenten unterschiedlichster Reifegrade. Für Anwendungsentwickler bedeutet dies: Die Plattform lässt sich nicht einfach herunterladen und installieren. Vielmehr müssen sie verschiedenste Teile von Open-Source-Infrastruktur-Code zusammenfügen und aufwendig konfigurieren.

Viele Wege führen zur Infrastruktur?

Das ist insbesondere dann der Fall, wenn IT-Teams Kubernetes „Bare Metal“, also in Eigenregie aufsetzen – entweder auf eigenen Servern oder Servern in der Cloud. Hinzu kommt, dass sich diese Implementierungsvariante am schwierigsten managen lässt und die Beschränkungen der physischen Infrastruktur die Skalierbarkeit deckeln.

Mehr und mehr Unternehmen entscheiden sich daher für eine Infrastructure-as-a-Service. Dabei werden eigene Kubernetes-Instanzen in klassischen virtuellen Maschinen in einer Public Cloud installiert. Diese Option erweitert den Bare-Metal-Ansatz um die Skalierbarkeit, die Preismodelle und das physische Infrastrukturmanagement der Cloud. Doch auch hier bleibt die Verwaltung von Kubernetes eine Herausforderung.

Als Allheilmittel gegen hohen Aufwand scheint sich derzeit „Kubernetes as a Service“ herauszukristallisieren, bei dem die Unternehmen die Plattform als vorkonfigurierte gemanagte Umgebung in verschiedenen öffentlichen Clouds abonnieren und nutzen. Entsprechende Angebote finden sich nahezu bei allen großen Cloud-Anbietern. Das As-a-Service-Modell vereinfacht die Verwaltung und liefert Anwendern damit auf aufwandsarme Weise die erforderliche Infrastruktur, um Anwendungen bereitzustellen und auszuführen.

Damit wäre die zentrale Herausforderung im Cloud-nativen Zeitalter gelöst – oder etwa doch nicht? Wenn es nur um die Bereitstellung der erforderlichen Infrastruktur geht, stimmt der Befund durchaus. Doch eine Infrastruktur stellt immer nur eine technische Basis dar. Mindestens ebenso sehr kommt es auf die Anwendungen an, die darauf laufen. Und auch für diese gelten im Cloud-nativen Kontext ganz besondere Anforderungen.

Cloud ist nicht gleich Cloud-nativ

Damit sich die Vorteile von „Cloud-native“ tatsächlich einstellen, müssen die Entwickler die eingesetzten Anwendungen von Grund auf für die neue Technologie hin konzipiert haben. Eine Anwendung per virtueller Maschine in der Cloud zu betreiben, ist bei Weitem nicht dasselbe wie eine wirklich Cloud-native Anwendung zu bauen.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Echte, Cloud-native Applikationen spiegeln die technologische Vielfalt des Cloud Computing wider. Was früher eine einzige Binärdatei war, besteht nun aus verschiedensten Code-Teilen, die auf virtuellen Maschinen, in Containern oder gar als Serverless-Funktion laufen. Cloud-native Applikationen können dynamische Benutzerelemente und Microservice-gestützte Backend-Komponenten enthalten.

Dabei gehen sie weit über traditionelle N-Tier- oder Service-orientierte Architekturen hinaus. Ihre einzelnen Anwendungsinstanzen sind in zunehmendem Maße flüchtig: Sie entstehen und verschwinden wieder, ganz wie es die sich ständig verändernde Skalierung gerade erfordert. Dies macht die Erstellung Cloud-nativer Anwendungen beliebig komplex.

Entlastung durch Low-Code

Eine Möglichkeit, mit dieser Komplexität umzugehen, ist die Unterstützung der Entwicklungsprozesse durch Low-Code. Low-Code beschleunigt die Arbeit der Entwickler, indem es diese von zeitaufwendigen, manuellen Routineaufgaben entlastet. Für die Entwickler verlagert sich so der Schwerpunkt ihrer Aufgaben weg von trivialen Routinetätigkeiten, Fehlersuchen und Wartungsaktivitäten hin zu Aufgaben, die wirklich ihre Kreativität und Problemlösungsgabe erfordern.

Im Kontext der Cloud-nativen Entwicklung kann Low-Code die Arbeit mit dynamischen und flüchtigen Komponenten, Microservices und Microservice-gestützten Frontends erleichtern, indem es wichtige Prozessschritte automatisch ausführt und dabei ebenso automatisiert für die strikte und durchgängige Einhaltung zentraler Compliance- und Security-Aspekte und -Richtlinien sorgt.

Vor dem Hintergrund der komplexen Beziehungen zwischen den verschiedenen Microservices vereinfacht es die Entwicklungstechnologie auch, notwendige Änderungen umzusetzen und gleichzeitig die erforderliche Koordination über die gesamte Anwendung hinweg aufrechtzuerhalten, damit trotz aller dynamischen Änderungen am Quellcode keine technischen Schulden entstehen.

Der nächste Schritt: Die „Kubernetes-Low-Code-Plattform“

Ihren größten Trumpf spielt die Low-Code-Technologie jedoch aus, wenn die Entwickler sie mit einem gemanagten Kubernetes zu einer Kubernetes-Low-Code-Plattform kombinieren. Diese erweitert Kubernetes-as-a-Service zu einer Platform-as-a-Service, die gleichzeitig eine visuelle, modell-basierte Entwicklungsumgebung für die Erstellung und Ausführung von Anwendungen liefert. Diese Option macht separate Tools für Softwareentwicklung und CI/CD obsolet.

Quasi „hinter den Kulissen“ stellt die Plattform dann die erforderliche Cloud-native Infrastruktur bereit und kümmert sich um deren Betrieb – mit allem, was dazu gehört. Bei Bedarf können wertvolle Unternehmensdaten dabei auch lokal verbleiben. Gleichzeitig verringert sich dank Low-Code die Komplexität, Microservices und deren zugehörige Frontend zu erstellen – während gleichzeitig die Konformität der Architektur zu jedem Zeitpunkt sichergestellt bleibt. So sind professionelle Entwickler in der Lage, Cloud-native-Szenarien mit minimalem Aufwand für Infrastrukturkonfiguration und manuelles Coding zu realisieren.

Win-Win für die Cloud-native Zukunft

Der Paradigmenwechsel hin zum „Cloud-native Computing“ ist nicht aufzuhalten. Nur mithilfe der neuen Technologie können Unternehmen die Geschwindigkeit- und Effizienzgrade für sich erschließen, die für IT in der kommenden Zeit unerlässlich sein werden. Die erforderliche technische Vorarbeit darf hierbei jedoch keinesfalls zum Hemmschuh werden.

Mit einer kombinierten Plattform, die Kubernetes mit Low-Code verbindet, lassen sich die beiden größten Herausforderungen für Unternehmen beim Umstieg auf die neue Technologie gebündelt angehen: die komplexe Infrastruktur-Bereitstellung ebenso wie die aufwendige Erstellung Cloud-nativer Anwendungen.

So gewinnen Entwicklungs- und IT-Fachkräfte die notwendigen freien Kapazitäten, die sie benötigen, um die Anwendungen zu planen und zu entwickeln, die Unternehmen für den Wettbewerb der Zukunft benötigen Mehr noch: Die Einfachheit und der hohe Automatisierungsgrad der Verbindung aus Kubernetes-as-a-Service und Low-Code in einer Plattform senkt bei vielen Entwicklungsaufgaben den Bedarf an Spezialkenntnissen.

Ohne – oftmals vergeblich – neues Development-Personal suchen zu müssen steigt somit der Talent-Pool, auf den die Unternehmen in Sachen Anwendungsentwicklung zurückgreifen können, spiegelbildlich auf bis zu 30 Prozent der Belegschaft! So sichern sich die Unternehmen dank der Agilität und Flexibilität von echtem „Cloud-native“ ihren Erfolg im digitalen Wettbewerb.

* Tino Fliege ist Solution Architect bei OutSystems.

(ID:48547221)