Thomas Buß adesso AG

Das noch junge Framework Micronaut bietet Java-Entwicklern die Möglichkeit, schlanke und schnelle Anwendungen für die Cloud zu schreiben, ohne dabei auf das vertraute Programmiermodell von Spring verzichten zu müssen. Sollten Java-Entwickler also Spring abschreiben und Micronaut verwenden? Meiner Meinung nach ist es noch nicht so weit. Bei der Entscheidung, welches Framework man für eine größere Anwendung verwenden will, kommt es nicht nur auf die Performance an. Auch die Community und Lehrmaterialien müssen stimmig sein und an dieser Stelle hängt Micronaut (noch) hinterher.

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 von OCI, 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 einge ossen. 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: Nicht-triviale 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-Re ection-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 Kompilation.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Java Magazin 7.19 - "Lucene, Solr, Elasticsearch"

Alle Infos zum Heft
579894250Cloud-native Java mit Micronaut
X
- Gib Deinen Standort ein -
- or -