© 1000 Words Images/Shutterstock.com
Cloud-native Java mit Micronaut

Eine Alternative zu Spring?


Ja, richtig gelesen, es gibt Alternativen. Obwohl sich der Platzhirsch Spring bei Java-Anwendungen großer Beliebtheit erfreut, sollte man nicht vergessen, dass es daneben auch noch andere Frameworks gibt, die einen Blick wert sind. Hier geht es um Micronaut, ein noch vergleichsweise junges Framework, das jedoch einige interessante Eigenschaften aufweist, die es besonders im Cloudumfeld zu einem echten Rivalen gegenüber Spring machen. In diesem Artikel wird eine Anwendung einmal mit Spring Boot und einmal mit Micronaut implementiert. Danach werden die beiden Ansätze verglichen und geschaut, wo welches Framework überlegen ist.

Entwickelt wird das Micronaut Framework [1] von OCI [2], genauer gesagt unter der Federführung von Graeme Rocher, der schon das Grails Framework ins Leben gerufen hat. Sowohl die Erfahrungen mit Spring als auch mit Grails sind in Micronaut eingeflossen. Daher kommen die Paradigmen und das Programmiermodell erfahrenen Spring-Entwicklern schon von Beginn an sehr vertraut vor. Das Framework wird beschrieben als „modernes, JVM-basiertes Full Stack Framework, um modulare, einfach zu testende Microservices- und Serverless-Anwendungen zu bauen“. In dieser Beschreibung liegt der wesentliche Unterschied zum Spring Framework: Micronaut legt den Fokus auf Microservices und Serverless-Anwendungen, womit sich JVM Frameworks aktuell noch eher schwertun.

Der Nachteil von Spring

Java-Anwendungen kommen von Haus aus mit einigem Overhead daher. Die JVM allein benötigt nach offiziellen Angaben bereits etwa 128 MB RAM und 124 MB Festplattenspeicher. Für traditionelle Anwendungen ist das voll und ganz vertretbar, bei Docker-Containern in einem Cluster oder gar als FaaS-Instanz sind solche Zahlen aber nicht mehr zeitgemäß. Zum Vergleich: Nichttriviale Anwendungen in der Programmiersprache Go sind nach der Kompiliation oftmals nur 20 bis 30 MB groß. Eine andere wichtige Metrik ist die Startzeit einer Anwendung. Durch den Laufzeit-Reflection-Ansatz von Spring sind Startzeiten jenseits der zwanzig Sekunden keine Seltenheit. Auch das ist besonders für Serverless-Anwendungen nicht hinnehmbar.

Was Micronaut von Spring unterscheidet

Micronaut geht einen anderen Weg als Spring und kann damit einige der Performanceeinbußen wettmachen. Besonders die Startzeit wird ungeheuer verringert, was Java-Entwicklern den Einstieg in die Serverless-Welt eröffnet. Aber auch der RAM-Verbrauch sinkt.

Wie erreicht Micronaut diese Verbesserungen? Die Antwort liegt in der Kompilatio...

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