Was ist Quarkus?

Quarkus ist ein Open-Source für Java und sowohl ein Java-Framework als auch ein Java-Toolkit von RedHat.

Als Java-Werkzeug bietet es Java-APIs und Java-Runtime-Tools, die bereits Cloud-ready sind.

Optimiert für Microservices, Serverless und reaktive Apps

Warum diese Java-Tools cloud-native und besonders geeignet für Microservices, Serverless Architekturen und reaktive Systeme sind, erfährst Du in den folgenden Abschnitten. 

„Supersonic, Subatomic Java!“

Aber was bedeutet das, über die einfache Übersetzung „Überschall schnelles , subatomares Java“ hinaus?

Quarkus - JavaScript Framework for Speed

Quarkus – JavaScript Framework for Speed

Super schneller Development-Workflow für Java

Die Geschwindigkeit bezieht sich für Entwickler*innen auf die Art mit dieser Java-Technologie zu arbeiten. Quarkus-Code lässt sich sehr schnell ändern, die Compilierung funktioniert automatisch, und der SourceCode lässt sich sofort testen.

Massiv beschleunigter Workflow für Coding, Testing & Deployment von Java-Anwendungen

Für Developer bedeutet dies einen extrem schnellen Workflow vom Coding zum Testing. 

Aber natürlich bezieht sich die Geschwindigkeit auch ganz besonders auf die ausführbaren Code-Artefakte, die sogenannten Java-Executables.

Sobald Du ein ausführbares Code-Artefakt als Jar oder mit Hilfe von GraalVM einen ausführbaren Binärfile generierst, erhältst Du immer Anwendungen mit sehr schnellen Antwortzeiten. Das Quarkus-Framework schlägt hier alle anderen Java-Frameworks deutlich messbar.

Quarkus-Performance - Massiv beschleunigte Zugriffe für komplexe Anwendungen und REST-APIs plus rollenbasierten Datenbankzugriffen

Quarkus-Performance – Massiv beschleunigte Zugriffe für komplexe Anwendungen und REST-APIs plus rollenbasierten Datenbankzugriffen

Subatomare Quarkus-Artefakte in punkto Filesize, Speicherplatz und optimierte Laufzeit

Subatomar bezieht sich auf die kleine Größe in die Quarkus-Artefakte münden. Das bezieht sich natürlich nicht nur auf die Speichergröße oder Laufzeit, sondern ist auch in Bezug auf den genutzten Arbeitsspeicher besonders Ressourcen schonend. Diese neue Java-Technologie ist also besonders Ressourcen-schonend. 

A Kubernetes Native Java stack tailored for OpenJDK HotSpot and GraalVM, crafted from the best of breed Java libraries and standards.

Nutzt Du zudem die Möglichkeit ein natives Image – also eine direkt ausführbare Datei, die keine Java Virtual Machine (JVM) benötigt – wird der Performance-Unterschied zu klassischen Java-Anwendungen besonders stark deutlich.

In der obigen Abbildung ist gut zu erkennen, dass der Speicherverbrauch jetzt nur bei einem Zehntel liegt und Start-, und Antwortzeiten sogar bis zum den Faktor 250-fache reduziert sind!

Ressourcenverbrauch & Reaktionszeiten sind bei Container-Applikationen besonders wichtig

  • Je geringer die Startzeit, desto schneller kann die Anzahl der Container erhöht werden, um Auslastungsspitzen abfangen zu können.
  • Je geringer der Speicherverbrauch ist, desto mehr Container lassen sich gleichzeitig betreiben.
  • Beide Aspekte zusammen ermöglichen eine bessere Auslastung der Ressourcen, so dass sich zum einen die Verfügbarkeit der Applikationen deutlich steigern und Cloud-Kosten spürbar reduzieren.

Vom Start an Docker, Kubernetes und Cloud-ready

Auch wenn Quarkus auch gänzlich ohne Kubernetes nutzbar ist, ist es für die Containerisierung mit Kubernetes ausgelegt. Sobald man ein Quarkur-Projekt generiert, wird dieses direkt mit Docker-Files ausgeliefert.

Die Art und Weise Docker Images zu betreiben, wird Entwicklern mit dem Quarkas-Framework also besonders leicht gemacht. Genauso verhält sich Quarkus in Bezug auf Kubernetes-Container. Die Containerisierung mit Docker und Kubernetes gelingt somit spielend leicht.

Dieser zur Container-Orchestrierung optimierte Quarkus-Stack wird dann noch um HotSpot und Graal-VM ergänzt. 

Design-Pattern für Java und Cloud

Zuletzt basiert die gesamte Quarkus-Strategie auf den besten Java-Bibliotheken und Java-Standards.

Quarkus-Design ist also Ergebnis eines optimierten Java Design-Pattern. Die genutzten Java-Technologien sind über Jahrzehnte gereift und haben sich bereits in zahlreichen IT-Projekten mit hohen Standards und harten Anforderungen bewährt.

Kleiner Quarkus-Core, alles andere sind Quarkus-Extensions 

Damit der Quarkus-Kern klein und schnell ist, ist alles weitere in Quarkus-Erweiterungen ausgelagert. Eine Vielzahl dieser unzähligen Erweiterungen stammen vom Quarkus-Team und der Quarkus Community.