Java aktuell 01/16

RESTful Microservices mit Dropwizard

Autor:

Für Microservice-Architekturen sind klassische Application-Server zu schwergewichtig und unflexibel. Container-less Deployment wird daher ein immer größerer Trend; der Servlet-Container ist in die Applikation eingebettet. Mit dem Dropwizard-Framework kann ein eigenständiger RESTful-Webservice in wenigen Minuten entwickelt und einrichtet werden. Da Dropwizard dabei auf Java-Standard-Bibliotheken wie Jetty und Jersey setzt, fällt der Einstieg besonders leicht.

Was ist Dropwizard

Ryan Kennedy überlegt keine Sekunde, auf die Frage, wie er Dropwizard in einem Satz beschreiben kann: „Ein Framework, das dir hilft, in kürzester Zeit einen produktionsreifen RESTful-Webservice zu entwickeln – Focus on your Features.“ Dropwizard hilft beim Logging, Monitoring, Packaging und Deployment. Die Idee dahinter ist, auf ausgereifte Java-Standard-Bibliotheken zu setzen und das Rad nicht neu zu erfinden. Dropwizard verwendet Jetty als Servlet-Container, die JAX-RS-Referenz-Implementierung Jersey für RESTful-Webservices und Jackson als JSON-Bibliothek. Kennedy, früher Infrastructure Engineer bei Yammer, war lange Zeit ein führender Committer bei Dropwizard. Kurz bevor er selbst Yammer verließ, hat er dabei geholfen, das Dropwizard-Projekt unabhängiger von seinem Arbeitgeber zu machen. Inzwischen ist Dropwizard auf GitHub gehostet und es gibt mehr als 160 Contributors, von denen ein gutes Dutzend ständig aktiv ist.

Dieser Artikel zeigt Schritt für Schritt, wie ein RESTful-Webservice mit Dropwizard erstellt wird. Die Wette ist: In der Zeit, in der man einen Kaffee trinkt, kann man mit Dropwizard einen kompletten RESTful-Webservice entwickeln. Also, ab in die Küche und Kaffee aufgesetzt. Während der durchläuft, noch kurz ein Blick auf die Geschichte von Dropwizard. Das erste Release von Dropwizard erschien im Dezember 2011. Yammer, ein führendes Social Network für Unternehmen, stellte seine IT-Infrastruktur von einem Rails-Monolithen auf Java-Microservices um. Als sich beim zweiten und dritten Service das „Copy & Paste“ häufte, fingen die Entwickler an, die wiederkehrenden Patterns in ein Framework auszulagern. Die Definition von Abhängigkeiten, das Log-Format, das Starten des Servlet-Containers, all diese Punkte sollten die Entwickler der einzelnen Services nicht beschäftigen. Die Entwicklerteams konnten sich ausschließlich auf ihre Features konzentrieren. Das Projekt wurde ein Erfolg.

Inzwischen laufen bei Yammer mehr als 170 Instanzen von 30 verschiedenen Services, alle erstellt mit dem Dropwizard-Framework. Ist der Kaffee inzwischen fertig? Dann geht es los mit dem ersten Dropwizard-Projekt. Wir erstellen ein Maven-Projekt und fügen dann die Dependency „dropwizard-core“ hinzu. Wir werden später noch einige andere Dropwizard-Module verwenden und benutzen daher von Beginn an am besten eine Property zum Pflegen der Versionsnummer (…)

Dieser Artikel stammt aus der Java aktuell 1.2016.

Vollständiger Artikel