Inzwischen haben Sie dieses komische Wort in der Java Development Community sicher schon einmal gehört: Quarkus. Und vielleicht kennen Sie auch schon die aktuellen News von Red Hat dazu: Wir freuen uns, Quarkus als eine offizielle Red Hat Runtime begrüßen zu dürfen.

Aber was genau heißt das, und warum sollten Sie auf Quarkus gespannt sein? In diesem Blog-Beitrag erfahren Sie, was es bedeutet, Java in die moderne, verteilte, cloudnative Welt der Anwendungsentwicklung von heute zu bringen, die Kubernetes an die erste Stelle setzt – und warum das so wichtig ist.

Fangen wir vorn an: Was genau ist Quarkus?

Quarkus ist ein Kubernetes-natives, auf GraalVM und HotSpot zugeschnittenes Java-Framework, das auf der Grundlage von erstklassigen Java-Libraries und -Standards entwickelt wurde. Das Ziel von Quarkus ist, Java zu einer der führenden Plattformen in Kubernetes- und Serverless-Umgebungen zu machen und Entwicklern gleichzeitig ein Framework für eine größere Bandbreite verteilter Anwendungsarchitekturen zu bieten.

Quarkus hilft Ihnen Kosteneinsparungen zu erzielen – durch schnellere Startzeiten und automatische vertikale Skalierung von Microservices nach Bedarf und Nutzung. Es sorgt außerdem für eine höhere Dichte, indem es den Footprint von Anwendungen und Container-Images deutlich reduziert.

Die von Quarkus angebotenen Features sind darauf ausgelegt, die Produktivität von Entwicklern zu verbessern, Kosten und Markteinführungszeiten zu reduzieren und die Zuverlässigkeit zu erhöhen. Ein weiteres primäres Ziel ist, dass das Entwickeln mit Quarkus Spaß machen soll – und wer hätte nicht gern mehr Spaß in seiner Entwicklungsumgebung?

Nicht schlecht! Aber warum sind Quarkus und Kubernetes-natives Java so wichtig?

Obwohl Java bereits vor 25 Jahren eingeführt wurde, ist es auch heute noch eine der beliebtesten Programmiersprachen. Im Mai 2019 gab es laut SlashData weltweit mehr als 7,6 Millionen Java-Entwickler.

Java wurde ursprünglich für monolithische Anwendungs-Stacks entwickelt, nicht für cloudnative moderne Anwendungen. Java-Apps können auch langsame Startzeiten und zu viel Arbeitsspeicher haben, um innerhalb der neuen, schlanken Frameworks funktionsfähig zu sein. Quarkus will Java zukunftsfähig machen.

Quarkus wurde erstellt, damit Entwickler ihre Java-Kenntnisse und das größere Java-Netzwerk für neue Bereitstellungsumgebungen und Anwendungsarchitekturen nutzen können. Da Kubernetes zunehmend für geschäftskritische Anwendungen genutzt wird, ist es wichtig, dass Java in den neuen Kubernetes-Umgebungen skaliert werden kann.

Kubernetes ist eine sehr schlanke, dynamische Umgebung mit begrenzten Ressourcen, schneller Startzeit und geringem Speicherbedarf. Damit steht es in direktem Gegensatz zur Funktionsweise von Java. Java ist zwar noch immer die vorherrschende Programmiersprache für Unternehmen. Allerdings kann es in einer Kubernetes-Umgebung, in der Container mit relativ kurzer Lebensdauer schnell vertikal nach oben oder unten skaliert werden, für unnötigen Aufwand sorgen.

Vor allem bei der geografisch verteilten Belegschaft von heute ist es entscheidend, dass Anwendungen mit minimalen Ressourcen und minimaler Bandbreite gestartet werden können. Quarkus verschiebt einen Großteil dieser Verarbeitungsprozesse in die Entwicklungsphase, etwa das Optimieren von Library-Frameworks, das Minimieren von Abhängigkeiten und das Eliminieren von unbenutztem Code. Startzeit und Speicherbedarf der Anwendung werden so deutlich reduziert. Damit kann Java für Container genutzt werden, und das ist genau das, was wir – und Millionen Java-Entwickler – wollen. Warum sollten sie eine neue Programmiersprache lernen, nur um Container nutzen zu können?

Gibt es keine neueren Programmiersprachen, die Java ersetzen können? Warum ist es so wichtig, dass wir Java zukunftsfähig machen?

Das ist tatsächlich eine interessante Frage. In den letzten Jahren haben sich zwar zahlreiche neue Sprachen wie Ruby, Go und Rust etabliert. So toll diese Neulinge aber vielleicht scheinen, sollte man nicht vergessen, dass es sich nicht um Sprachen handelt, die von App-Entwicklern verwendet werden. Sie sind vielmehr Sprachen zur Systementwicklung und damit ohne Funktionen für Unternehmenskunden.

Das bedeutet, dass zum Beispiel Flugbuchungssysteme aufgrund der strengen Typsicherheit und Kompilierzeiten bevorzugt auf Java zurückgreifen werden. Die Welt der Programmiersprachen bewegt sich tatsächlich eher langsam. Wie C und C++ gezeigt haben, kann es ein ganzes Jahrzehnt oder länger dauern, bis eine Sprache wirklich robust und optimiert genug ist, um ein fundamentaler Baustein des Stacks zu werden. Entwickler werden keine Risiken durch neue Sprachen eingehen, wenn sie nicht müssen – vor allem dann nicht, wenn diese weniger als zehn Jahre alt sind. In dieser Hinsicht ist Java mit 25 noch ziemlich jung und außerdem gut gerüstet, um sich in neuen Umgebungen weiterzuentwickeln.

In Anbetracht aller Java-Entwickler weltweit und der Vielzahl an geschäftskritischen Java-basierten Anwendungen ist es unerlässlich, dass Java mit Kubernetes-nativen Anwendungen kompatibel ist. Kubernetes hat sich als unglaublich erfolgreiches System zum Bereitstellen, Skalieren und Verwalten von containerisierten Anwendungen herausgestellt. Damit Kubernetes aber langfristig eine Option bleibt, muss es Java unterstützen.

Eines der Grundprinzipien von Quarkus ist, den Java-Entwicklern in Unternehmen den Spaß an der Arbeit zurückzubringen. Mit Quarkus können Java-Entwickler nämlich ihr vorhandenes Know-how für die Entwicklung cloudnativer Microservices und ereignisgesteuerter Anwendungen nutzen. Das ist vor allem für Unternehmen wichtig, da Entwickler so keine Zeit für das Erlernen einer neuen Sprache aufwenden müssen. Sie können stattdessen ihre vorhandenen Fähigkeiten nutzen und gleichzeitig die Entwicklung cloudnativer Microservices in einer einzigen Sprache standardisieren.

Warum engagiert sich Red Hat dafür, Java zukunftsfähig zu machen?

Red Hat blickt als eines der führenden Mitglieder auf eine lange Geschichte mit der Java-Community zurück. Genau genommen ist Red Hat bereits seit 2007 Mitglied der OpenJDK-Community und leistet dabei einen entscheidenden Beitrag zum Projekt.

Wir engagieren uns für offene Community-Prozesse und wollen auch weiterhin bei der Zukunft von Java ganz vorn dabei sein. Getreu unserem Open Source-Ursprung und -Ethos wollen wir außerdem, dass Java so community-orientiert wie möglich bleibt.

Wenn wir mit Kunden sprechen, hören wir oft Fragen zur Fragmentierung des Java-Systems, in dem verschiedene Hersteller eigene, proprietäre Java-Produkte anbieten. Red Hat ist, neben Experten bekannter cloudnativer, Java-basierter Open Source-Projekte, Betreuer der Quarkus-Community.

Wir glauben an die Zusammenarbeit in einer offenen Umgebung und freuen uns darauf, Java mit Ihnen in die Kubernetes-native Zukunft zu bringen.


Über den Autor

Rich is the Senior Director of the Application Services Business Group at Red Hat. He has spent the last thirty years evangelizing, using and designing enterprise middleware and cloud services. He previously worked for Forte Software and Sun Microsystems and as an independent software developer and consultant building large distributed software systems for the space, transport, telecom and energy sectors.

Read full bio