Drei Fragen und Antworten: Warum sollte man Cloud-nativ entwickeln?

Für die Cloud gilt es skalierbare Anwendungen für hochdynamische Umgebungen zu programmieren. Worauf es dabei ankommt, erklären die iX-Autoren im Interview.

In Pocket speichern vorlesen Druckansicht 29 Kommentare lesen
Lesezeit: 3 Min.

Die Cloud punktet vor allem mit Flexibilität und hoher Skalierbarkeit. Um diese Vorteile voll ausspielen zu können, müssen die Anwendungen für den Einsatz in der Cloud optimiert sein. Im Gespräch erklären die iX-Titelautoren Alex Krause und Markus Zimmermann, was es für das erfolgreiche Entwickeln Cloud-nativer Apps braucht und welche Rolle dabei die Wahl der Programmiersprache spielt.

iX-Titelautor Alex Krause

Alex Krause ist Softwarearchitekt bei QAware. Er liebt es, wenn Cloud-natives Softwareengineering auf moderne Cloud-Plattformen trifft.

iX-Titelautor Markus Zimmermann

Markus Zimmermann ist Senior Software Engineer bei QAware mit Fokus auf Platform Engineering. Nebenbei spricht er als Speaker über Cloud-native Themen und veranstaltet Meetups zu Go.

Warum sollte man überhaupt Cloud-nativ programmieren? Und was ändert sich dabei denn konkret für Entwickler?

Cloud-native Programmierung ist die Voraussetzung für eine zweckbezogene Nutzung der Cloud. Vorteile wie automatisierte Bereitstellung, flexible Skalierung oder schnellere Feedbackschleifen lassen sich sonst nicht nutzen. Eine Software, die beispielsweise nicht mit der Nutzung horizontal skalierbar ist, kann auch nicht von der Skalierbarkeit der Infrastruktur Gebrauch machen.

Betrieb und Entwicklung rücken durch Containerisierung und Infrastructure as Code näher aneinander. Infrastruktur wird zu einer Softwarekomponente und das Profil und die Verantwortungsbereiche von Entwicklern und Systemadministratoren ändern sich. Cloud-nativ ohne DevOps geht nicht. In der Folge müssen neue Programmiermuster und Technologien erlernt werden. Im Gegenzug gibt es dafür schnellere Feedbackschleifen, weil Anwendungen schneller auf produktionsnahen Umgebungen automatisiert installiert und getestet werden.

Nun gibt’s ja immer wieder Streit um die besten Programmiersprachen. Welche Spitzenkandidaten gibt’s bei der Cloud?

Wichtig ist, dass eine Sprache Cloud-fähig ist, indem sie gute Anbindungen an Cloud-Provider oder Observability-Plattformen bietet. Frameworks und Language Runtimes haben sich hier weitestgehend an die Cloud und Container angepasst. Populär ist ganz klar Go, das ist unser Favorit, aber auch Sprachen wie Java, JavaScript und Python sind beliebt und geeignet.

Wenn ich bereits zuvor auf Java gesetzt habe, auf welche Stolpersteine muss ich mich einstellen, wenn es Cloud-nativ werden soll?

Es gibt viele Stolpersteine mit Java und der JVM, die lange schwer containerisiert werden konnte. Ein immer wiederkehrendes Beispiel ist das korrekte Konfigurieren der JVM Speicherverteilung, das viel Erfahrung mit der konkreten Applikation benötigt. Ein anderes Beispiel sind Frameworks wie Spring oder Java EE, die viele Möglichkeiten zur Konfiguration bieten. Die richtige Wahl für Container-Umgebungen ist hier nicht offensichtlich.

Die lange Dauer beim Start eines Java-Containers kann heutzutage durch Ahead-of-time-Kompilierung beispielsweise mit der Graal VM ausgeglichen werden.

Alex und Markus, vielen Dank für eure Antworten. Mehr Informationen zur Cloud-nativen Programmierung, nicht nur mit Go, sondern auch mit Java und dem Framework Quarkus, liefern die Titelstrecke der aktuellen iX 11/2022 und Heise+.

In der Serie „Drei Fragen und Antworten“ will die iX die heutigen Herausforderungen der IT auf den Punkt bringen – egal ob es sich um den Blick des Anwenders vorm PC, die Sicht des Managers oder den Alltag eines Administrators handelt. Haben Sie Anregungen aus Ihrer tagtäglichen Praxis oder der Ihrer Nutzer? Wessen Tipps zu welchem Thema würden Sie gerne kurz und knackig lesen? Dann schreiben Sie uns gerne oder hinterlassen Sie einen Kommentar im Forum.

(jvo)