Java-Framework: Quarkus 1.13 liefert Entwicklungs-Container von der Stange

Neben den DevServices, die vorkonfigurierte Container im Entwicklungsmodus bereitstellen, bringt das Framework eine Anbindung an OpenTelemetry.

In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen

(Bild: Da Da Diamond/Shutterstock.com)

Lesezeit: 2 Min.
Von
  • Rainald Menge-Sonnentag

Zwei Jahre nach der ersten Vorstellung von Quarkus ist Version 1.13 des Java-Frameworks erschienen. Das Release stellt über sogenannte DevServices vorgefertigte Container für das Testing bereit und hat zwei Extensions für OpenTelemetry an Bord. Außerdem setzt das Release auf die Service Binding Specification zum Anbinden von Services an Anwendungen in Kubernetes.

Quarkus kann neuerdings automatisch passende Container für das Testing starten. Mit den DevServices lassen sich im Development Mode vorkonfigurierte Container starten und mit der zugehörigen Konfiguration versehen. Auf die Weise kann das Framework beispielsweise für eine PostgreSQL-Anwendung einen zugehörigen Testcontainer für eine Anwendung erstellen, die die PostgreSQL-JDBC-Extension im Project Object Model (POM) aufführt.

Version 1.13 bringt eine direkte Anbindung von Services an Anwendungen über die Service-Binding-Spezifikation für Kubernetes. Letztere zielt darauf, den Austausch von Secrets zwischen Applikationen und externen Services zu standardisieren. Im ersten Schritt implementiert Quarkus den Bereich Application Projection der Spezifikation mit dem Ziel, dass Anwendungen ohne manuelle Konfiguration beispielsweise auf Datenbankdienste zugreifen können. Derzeit funktioniert die Integration mit den Quarkus Extensions quarkus-jdbc-mariadb, quarkus-jdbc-mssql, quarkus-jdbc-mysql, quarkus-jdbc-postgresql, quarkus-kafka-client und quarkus-smallrye-reactive-messaging-kafka.

Ebenfalls neu sind zwei Extensions zur direkten Anbindung an OpenTelemetry. Die Spezifikation ist vor Kurzem in Version 1.0 erschienen, und zu dem Meilenstein hatte das Projekt mehr als 860 Projektunterstützer. Die Cloud Native Computing Foundation (CNCF) betreut OpenTelemetry, das aus dem Zusammenschluss von OpenTracing und OpenCensus entstanden ist.

Die Extension quarkus-opentelemetry ermöglicht das Tracen von Requests, und die davon abhängige Erweiterung quarkus-opentelemetry-exporter-jaeger kann die Traces an einen Jaeger-Kollektor exportieren. Jaeger ist ein verteiltes Tracing-System, das auf Microservices-Anwendungen ausgelegt ist.

Quarkus und zwei Jahre "Supersonic Subatomic Java"

(Bild: Quarkus.io)

Red Hat hatte Quarkus im März 2019 erstmals angekündigt und im November desselben Jahres Version 1.0 veröffentlicht. Wenig bescheiden bezeichnet die Quarkus-Site das Framework als "Supersonic Subatomic Java". Red Hat hat für Quarkus vier Richtlinien vorgegeben: Container First, Unifies Imperative and Reactive, Developer Joy und Best of Breed Libraries. "Container First" stellt Container in den Vordergrund, allen voran Kubernetes und Docker. "Unifies Imperative and Reactive" beschreibt, dass das Framework zwar ein reaktives Programmiermodell bevorzugt, einen imperativen Stil aber ebenso ermöglicht.

Als drittes Versprechen soll Quarkus "Developer Joy" bringen, also beim Entwickeln Spaß machen, statt umständlich zu sein. In der Tat bringt das Framework einige Erweiterungen von Haus aus mit, die den Programmieralltag erleichtern, darunter vorgefertigte JUnit-5-Erweiterung für Unit-Tests und einen Developer-Modus für das Maven-Plug-in. Schließlich sollen "Best of Breed Libraries" beim Entwickeln helfen. Die Projektseite spricht von gut 50 Bibliotheken, die sich mit dem Framework nutzen lassen. Für die Anbindung setzen die Macher auf Standards wie Contexts and Dependency Injection (CDI). REST-Endpunkte lassen sich über JAX-RS (Java API for RESTful Web Services) beschreiben.

Weitere Neuerungen in Quarkus 1.13 wie die REST-Client-Extension für RESTEasy Reactive lassen sich dem Quarkus-Blog entnehmen.

(rme)