Quarkus: Der Blick über den Tellerrand

Seite 4: Best-of-Breed-Librarys und Standards: Eine gewohnte Umgebung

Inhaltsverzeichnis

Auf der Quarkus-Startseite findet sich eine lange Liste von Werkzeugen und Frameworks – darunter:

  • Eclipse vert.x: Toolkit, um reaktive Anwendungen auf der JVM zu entwickeln
  • Hibernate: Datenbankzugriff und Validierung
  • RESTEasy: als JAX-RS-2.1-Implementierung angeboten
  • Apache Camel: Enterprise Service Bus beziehungsweise regelbasierte Middleware
  • Eclipse MicroProfile: auf Microservices ausgerichtete Spezifikation für Enterprise Java
  • Netty: ein Basis-Framework, auf dem viele serverbasierte Dienste aufbauen

Während die meisten dieser Werkzeuge in der Regel konkrete Anforderungen bedienen, sticht Eclipse MicroProfile aus dieser Liste hervor. Denn MicroProfile beschreibt einen auf die Erstellung von Microservices ausgerichteten Standard, der lose auf den entsprechenden Java-EE-Spezifikationen beruht. Dazu gehören insbesondere CDI, JAX-RS, JSON-P und JSON-B (Processing und Binding), aber ebenso die in einer Microservices-Welt essenziellen Dinge wie Health (Liveness und Rediness), Metrics und Tracing.

Quarkus listet darüber hinaus noch Kubernetes und Red Hat OpenShift, Jaeger (Open Tracing), Prometheus, Kafka und Red Hat Infinispan, die nach Einschätzung des Autors eher in die Kategorie externe Erweiterungen und Dienste fallen – teilweise Upstream-, teilweise Downstream-Dienste.

Das Quarkus-Team will diesen Stack als zusammenhängenden, "Spaß bringenden" Full-Stack aus Standard-Librarys verstanden wissen, die einen gemeinsamen Rückhalt in Form von Quarkus haben. Entwickler, die primär aus dem Java-EE-Bereich kommen, werden sich gerade dank MicroProfile, JAX-RS und den bekannten CDI-Annotationen schnell zu Hause fühlen. Quarkus ist es tatsächlich gelungen, mit diesem Stack eine kohärente Umgebung zu bauen.

Durch die Brille eines Spring-Entwicklers betrachtet erscheinen dem Autor einige Dinge deutlich anders. Ebenso dürfte es aber auch Java-EE-Entwicklern gehen, die sich in Richtung Spring orientieren.

Beim Thema "Konfiguration" gilt dem Autor die Umsetzung bei Spring Boot nach wie vor als wünschenswertes Zielbild für flexible Konfiguration, sowohl nach außen – an Anwendungsentwickler gerichtet – als auch nach innen. Quarkus verwendet zur Konfiguration ebenfalls MicroProfile-Standards, bereitgestellt durch SmallRye. Nach außen funktioniert das ähnlich wie bei Spring-Boot-Anwendungen optimal. Beim Schreiben von Erweiterungen treten jedoch Verhaltensweisen zu Tage, die Spring-Entwickler überraschen können – darunter beispielsweise der Effekt, dass sich Default-Werte als typenlose String-Informationen in Annotationen verstecken.