Architektur und Entwicklung von Reactive Microservices

Neuigkeiten von der Insel  –  1 Kommentare

Zwei neue zum Download kostenlos verfügbare Bücher geben einen Einblick in die Entwicklung reaktiver Systeme. Verantwortlich dafür zeichnen mein Lightbend-Kollege Jonas Bonér und ich selbst.

Die Gartner-Analystin Anne Thomas verkündete erst kürzlich, dass die klassischen Anwendungsplattformen nicht mehr relevant seien. Mit dem stetig schnelleren Wandel unserer Welt und der gesteigerten Anforderungen, die das tägliche Leben an die IT stellt, sind zentralisierte Applikationsserver nicht mehr notwendigerweise die optimale Lösung für die Umsetzung moderner Anwendungen. Aber wie genau soll denn eine aktuelle Anwendung aussehen, wenn Entwicklern keine Applikationsserver mehr zur Verfügung stehen? Was passiert mit dem Datenzugriff und den Transaktionen? Muss man jetzt alles selber wieder auf der JVM aufbauen oder sich einen kleinen Mini-Anwendungsserver selbst zusammenstellen?

Reactive Microservices Architecture

Um etwas mehr Licht in die Anforderungen an Architekturen moderner, Microservices-basierter Systeme zu bringen, hat Java Champion und Lightbend CTO Jonas Bonér zusammen mit dem O'Reilly-Verlag ein kleines kostenloses E-Book herausgegeben, das eine Einführung in "Reactive Microservices"-Architekturen gibt.

Er gibt einen Überblick über die Motivationen und Kernelemente eines auf Microservice basierten, verteilten Systems und beschreibt die reaktiven Prinzipien zur Umsetzung isolierter Dienste in hochverteilten Systemen. Insbesondere geht er darauf ein, wie ein reaktiver Microservice alles isoliert, autonom handelt, genau eine Aufgabe erfüllt und die eigenen Daten durch die Kommunikation über Nachrichten mit anderen Microservices handhabt.

Auch die Zusammenarbeit mit anderen Services und die Lokationstransparenz werden umfassend erläutert. Schließlich gibt es einen sehr guten Startpunkt mit einer Menge von Hinweisen auf weiterführende Literatur. Das E-Book kann direkt nach derRegistrierung von den Lightbend-Webseiten heruntergeladen werden. Jonas findet man auch auf Twitter unter @jboner.

Developing Reactive Microservices

Nachdem die Theorie beherrscht wird, ist es dann an der Zeit, sich mit der konkreten Umsetzung solcher Systeme zu beschäftigen. Zusammen mit der Namensänderung von Typesafe zu Lightbend wurde auch das Microservice-Framework für die JVM mit dem Namen "Lagom" vorgestellt. Es versteht sich als Umsetzung der in Jonas' Buch vorgestellten Grundsätze und Prinzipien und unterstützt bei der Zerlegung monolithischer Systeme in eine verteilte Microservices-Architektur.

Einen guten Einstieg in die technischen Grundlagen sowie die Behandlung einer kompletten Beispielanwendung konnte ich selbst im Nachfolge-Buch beschreiben, das vor ein paar Tagen herausgekommen ist. Auch dieses steht nach Registrierung kostenlos in drei verschiedenen Formaten zum Download bereit.

Den Einstieg macht ein Überblick über das Reactive-Programmiermodell und die Kernelemente, mit denen sich Java-Entwickler bekannt machen sollten. Daran angeschlossen geht es direkt an die Beispielanwendung, die sich an dem bekannten "Cargo Tracker" aus Eric Evans' Grundlagenwerk zu Domain Driven Design (DDD) ausrichtet. Ich erkläre, wie Services mit Lagom definiert und implementiert werden, wie die Persistenz mit Event-Sourcing und Command Query Responsibility Segregation (CQRS) funktioniert und wie Services miteinander kommunizieren können. Im letzten Kapitel wird auf die verschiedenen Integrationsszenarien und Technologien eingegangen, mit deren Hilfe sich die Migration bestehender Monolithen vereinfachen lässt.

Ich freue mich über Feedback und Anregungen und hoffe, dass viele Leser auch die Chance nutzen, sich selber ein Bild von Lagom zu machen. Die Dokumentation ist bereits sehr umfangreich und das Team hinter dem Open-Source-Projekt kann auch via Mailingliste oder Gitter Chat befragt werden. Und natürlich ist @Lagom auch auf Twitter.