Suche
Darf’s ein bisschen weniger sein?

Ja-micro: Ein leichtgewichtiges Microservices-Framework für Java

Dominik Mohilo

© Shutterstock.com / Useng

Sixt folgt dem Trend bekannter Firmen, Software Open Source der Allgemeinheit zugänglich zu machen. Mit Ja-micro hat die Softwareabteilung des Autovermieters ein Framework für die Entwicklung von Microservices in Java veröffentlicht. Fokus lag dabei auf der Kompatibilität zum Micro-Ökosystem und einem minimalistischem Ansatz frei nach dem KISS-Prinzip.

Obwohl die Macher von Ja-micro auf ihrer GitHub-Präsenz betonen, dass es vor allem um die Erstellung einer leichtgewichtigen Plattform ging, ist dies nicht mit einer Funktionsarmut gleichbedeutend. Im Gegenteil: Ja-micro bietet eine ganze Reihe von Features, allerdings liegt das Hauptaugenmerk auf den wesentlichen und relevanten Funktionen. Entwickler sollen mit Ja-micro die Möglichkeit haben, sich ganz auf das Wesentliche, also die Funktionalität ihrer Services, zu konzentrieren.

Features

Initiales Ziel von Ja-micro war die Unterstützung von Go und Java. Da man bei Sixt das Framework Go Micro für die Entwicklung von Go-Services nutzt, war eine Kompatibilität zum Micro Ökosystem ein wichtiger Punkt. Ob man in Go oder Java seine Services schreiben möchte, soll relativ simpel auswählbar sein, durch die Verwendung von Go Micro können auch andere Sprachen unterstützt werden.

Auswählbar ist auch, ob man seinen Service als Docker-Container oder Fat Jar erstellen möchte, Letzteres ist vor allem für das Testing relevant. Das Fat Jar (oder auch Shadow Jar) ist zudem eine Dependency der Docker Image Tasks. Die Dependency Injection, die in Ja-micro sehr intensiv genutzt wird, unterstützt ausschließlich Guice.

Damit man überprüfen kann, ob mit den Services alles in Ordnung ist, werden im Zeitabstand weniger Sekunden Berichte über den Zustand der jeweiligen Service-Instanz an das Service Registry Plug-in gesendet. Dank Annotationen können Entwickler sich einfach in den Prozess einklinken und eine Service Instanz bei Problemen als unhealthy markieren. Ein spezielles Interface erlaubt es, den Health State eines Services direkt zu bearbeiten.

Lesen Sie auch: Microservices lieben Domain-driven Design

Auch Logging hat das Framework an Bord: Die Logs werden als JSON-Objekte erstellt und das Format kann individuell gestaltet werden. Auch eine standardisierte Verwaltung von Metriken ist in Ja-micro enthalten und ebenfalls komplett individualisierbar. Das Event-Handling läuft über Apache Kafka.

Weitere Informationen über Ja-micro gibt es auf der GitHub-Präsenz von Sixt. Das Framework wurde unter der Apache Lizenz 2.0 veröffentlicht.

Ausblick

Das Framework Ja-micro ist noch nicht Feature-complete, Entwickler können also noch neue Funktionen vorschlagen. Allerdings wird von Sixt darauf hingewiesen, dass sie das Framework möglichst minimal halten wollen, Rückwärtskompatibilität ein Muss ist und das Befolgen der semantischen Versionierung unbedingt beibehalten werden soll. Daher wird für große Änderungen dringend empfohlen, sie vorher mit den Entwicklern abzusprechen.

Bei Ja-micro wird es in den kommenden Wochen und Monaten vor allem um die Dokumentation gehen. Geplant ist eine Serie von Screencasts, in denen verschiedene Aspekte des Frameworks aufgezeigt und die Möglichkeiten zum Einsatz vermittelt werden.

Bei dem von Sixt gesponsorten Micro Ökosystem wird die Entwicklung des Micro OS weitergeführt werden, das sich derzeit noch in Arbeit befindet. Bei Fertigstellung soll es Dinge wie Service Discovery, globales Load Balancing und Distributed Tracing beinhalten.

Das Micro Ökosystem / Quelle: Micro HQ

Das Micro Ökosystem / Quelle: Micro HQ

Die zweite Hälfte von 2017 plant Micro-Entwickler Asim Aslam, wie er schreibt, sich dem Edge-Computing (auch: Fog-Computing) widmen. Micro Edge soll die immer häufiger auftretenden Fälle ansprechen, in denen der Prozess großer Datenmengen offline oder sehr viel schneller als mit dem Umweg über einen zentralisierten Cloud-Provider stattfinden muss. Das neue Tool-Set soll Werkzeuge beinhalten, die die Entwicklung von Services für das Edge-Computing erleichtern.

Lesen Sie auch: Microservices brauchen ein neues Monitoring

Auf seinem Blog bei Medium hat Asim Aslam die Geschichte von Micro zusammengefasst und gibt einen Ausblick auf das, was für 2017 geplant ist. Für allgemeine Informationen über das Micro Ökosystem lohnt sich ein Besuch auf micro.mu.

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.