Neues von der Spring I/O 2018 in Barcelona

Unser Kollege Markus Kiss berichtet in diesem Beitrag über seine Eindrücke von der Spring I/O Conference 2018

Bei vielen diva-e Projekten kommt das Spring Framework mit Spring Boot zum Einsatz, womit sich unter anderem Microservice-Architekturen implementieren lassen. Einige diva-e Entwickler waren Ende Mai 2018 auf der Spring I/O-Konferenz im sonnigen Barcelona, um die neuesten Entwicklungen rund um das Spring-Ökosystem direkt von den Core-Committern zu erfahren. In diesem Beitrag möchte ich euch meine Eindrücke von der Konferenz schildern.

Neues von der Spring I/O 2018 in Barcelona

Reaktive Architekturen mit und ohne Spring WebFlux sind angesagt

Gleich mehrere Talks beschäftigten sich mit der reaktiven Programmierung und deren Unterstützung in Spring Boot 2.0 durch Project Reactor und Netty. Der erhoffte Vorteil: Bessere Skalierung von Services durch effizientere Ausnutzung von Ressourcen (CPU-Cores, Threads) mithilfe einer event-basierten Architektur. Mithilfe des neuen Spring WebFlux-Frameworks können recht einfach reaktive Controller geschrieben werden, ohne dass Servlet-API-basierte Programmiermodell von Spring MVC wesentlich zu verlassen. Obwohl dieses Thema zurzeit sehr gehypt wird, muss man sich immer die Frage stellen, ob eine solche Architektur im Projekt notwendig ist: Hat man wirklich Skalierungsprobleme und ist sichergestellt, dass z. B. die darunterliegende Datenbank ebenfalls einen reaktiven Treiber mitbringt? Wenn nicht, dann verliert man die Vorteile des reaktiven Paradigmas und hat dann mit erhöhter Komplexität u. a. beim Debugging zu kämpfen. Wenn doch, sollte man Spring WebFlux ruhig eine Chance geben, um sich ein eigenes Bild zu verschaffen. Laufzeitmetriken können dabei helfen, die erkauften Vorteile zu visualisieren.

micrometer.io – das SLF4J für Metriken

A propos Metriken: Michael Simons stellte in seinem Talk am Beispiel einer Blockchain-Applikation vor, wie die neue micrometer.io API in Spring Boot 2.0 verwendet werden kann. Micrometer ist eine Initiative von Pivotal, um ein standardisiertes Set von häufigen Messinstrumenten wie z. B. Timer, Gauges und Counters im Applikationscode nutzen zu können, ohne von einer konkreten Metrik-Plattform abhängig zu sein. Das schafft in den vielen heterogenen Systemlandschaften die Flexibilität, unterschiedliche Metrik-Stacks wie Prometheus oder InfluxDB zu bedienen.

Spring Boot 2.0 mit neuer Actuator-Architektur

Mithilfe der Actuator API konnte man bereits seit Spring Boot 1.0 Laufzeitdaten von Applikationen auslesen und den internen Zustand verändern, wie z. B. den Log-Level einer Klasse erhöhen. Mit Spring Boot 2.0 wurde die Actuator-Architektur überarbeitet, um es Entwicklern leichter zu machen, eigene Actuator-Endpoints zu schreiben. Andy Wilkinson zeigte in seinem Talk, wie solche Endpoints mithilfe von Annotations implementiert werden können, die lesende und schreibende Operationen bereitstellen. Derartige Endpoints können übrigens auch ohne Mehraufwand über JMX angesprochen werden.

Kotlin + Spring Boot = <3

Beim Talk „Bootiful Kotlin“ von Sébastien Deleuze und Josh Long wurde im Livecoding gezeigt, wie einfach man eine Spring Boot App mit der Programmiersprache Kotlin schreiben kann... und wie man dieselbe Funktionalität dank Sprachfeatures wie Extension Functions noch kompakter ausdrücken kann. Dem Einsatz von Spring Boot 2.0 mit Kotlin statt Java steht daher technisch nichts mehr im Wege – natürlich vorausgesetzt, das eigene Projektteam möchte Kotlin-Knowhow aufbauen und einigt sich auf gemeinsame Entwicklungspatterns. Auch bei diva-e besteht vermehrt Interesse an Kotlin. Erfahrene Kollegen veranstalten dazu einen internen Kotlin-Workshop zum gemeinsamen Ausprobieren der recht neuen Sprache von JetBrains.

Fazit

Die Spring I/O 2018 war eine gelungene Konferenz im imposanten Palau de Congressos de Barcelona. Wir konnten an den beiden Tagen viele Erkenntnisse mitnehmen, was sich im Spring-Umfeld getan hat und wo die Reise hingeht. Nun gilt es, das Gezeigte selbst auszuprobieren und vielleicht sogar in dem ein oder anderen Projekt direkt einzusetzen.

Weblinks

  • Spring I/O 2018 Konferenzseite (https://2018.springio.net/)

  • Spring Boot 2.0 Release Notes (https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Release-Notes)

  • Spring WebFlux (https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html)

  • Micrometer (https://micrometer.io)

  • Spring Boot Kotlin Tutorial (http://spring.io/guides/tutorials/spring-boot-kotlin)

Autor: Markus Kiss beschäftigt sich als Expert Software Developer mit der Java-Entwicklung und Clean Code. In seiner Freizeit twittert er gerne und liest Alpenkrimis – doch die meiste Zeit am Wochenende halten ihn seine beiden Töchter auf Trab.

E-Mail: markus.kiss@diva-e.com

Twitter: @Sombrero83

Web: http://www.markus-kiss.net