© Enkel/Shutterstock.com
GraalVM Native Image macht Spring-Boot-Anwendungen Beine

Langsam war gestern!


Schon seit einiger Zeit macht GraalVM von sich reden. Frameworks wie Quarkus oder Micronaut stellen Rekorde auf, was die Start-up-Zeit oder den Arbeitsspeicherverbrauch von Enterprise-Java-Anwendungen angeht. Doch was wäre, wenn man den Platzhirsch Spring Boot ebenfalls als native GraalVM-App laufen lassen könnte?

Erinnern Sie sich noch an die Umstellung von den guten alten Festplatten auf SSDs? Dieser „Aha-Moment“, wenn auf einmal alle Programme unglaublich viel schneller starten als vorher? Im Grunde passiert gerade etwas Ähnliches innerhalb des Java-Ökosystems. Vor allem das GraalVM-Subprojekt namens Native Image [1] sorgt für ordentlich Schlagzeilen – inkl. aller Frameworks, die die Arbeit damit vereinfachen. Denn was da am Ende beim Kompilieren herauskommt, ist so gar nicht Java-like: Es sind kleine und extrem schnell startende ausführbare Dateien, die dem Kubernetes-Administrator nicht länger Schweißperlen wegen langer Start-up-Zeiten auf die Stirn treiben.

Doch oft fehlt es neuen Frameworks noch an Reife. Und nur weil sie ein „bisschen“ schneller starten, hat man noch nicht genug Gründe, sie auch im Projektalltag sofort einzusetzen. Doch sobald ein Schwergewicht wie Spring Boot die GraalVM-Native-Image-Unterstützung ankündigt, ändert sich das Bild. Aus vielen Projekten ist das Spring Framework sowieso nicht wegzudenken. Würde man die Vorteile der neuen JVM einfach hier einsetzen können, dann wäre mit einem Schlag eine potenziell riesige Nutzergemeinschaft da. Und genau das wurde Ende letzten Jahres auf der SpringOne 2019 angekündigt [2]. Das Spring-Entwicklungsteam ließ erste Einblicke in die Umsetzung der GraalVM-Native-Image-Unterstützung zu und nannte auch gleich noch eine Roadmap für deren produktive Verfügbarkeit: „Stable GraalVM Native Image support for Spring Boot can be expected with the Spring Framework’s 5.3 release planned in autumn 2020.“ [3]

Man darf also schon sehr bald mit einem stabilen Release rechnen. Und obwohl sich die GraalVM-Native-Image-Unterstützung noch mitten in der Entwicklung befindet, lohnt es sich bereits heute, einen Blick darauf zu werfen.

Zwei Gegensätze ziehen sich an

Der Fokus des GraalVM-Native-Image-Projekts liegt auf deutlich schnelleren Start-up-Zeiten und stark reduziertem Hauptspeicherverbrauch von Java-Programmen. Dazu wird mit Hilfe des SubstrateVM [4] genannten Frameworks eine Ahead-of-Time-Kompilierung eingeführt, die plattformspezifische native Dateien ausspuckt. Spätestens hier wird man als langjährig...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang