Patterns zur Arbeit mit relationalen Daten in Microservice-Architekturen

Softwareentwicklung mit Open Source
12.09.2019


9:10 – 17:15 Uhr
HSR Hochschule für Technik Rapperswil
Max. Teilnehmer: 22

Einleitung

Microservices mögen die Anwendungsentwicklung in manchen Bereichen erleichtern. Der Umgang mit persistenten Daten und deren Speicherung in relationalen Datenbanken gehört aber leider nicht dazu.

Die klassischen Lösungen, mit denen wir früher Daten ausgetauscht und deren Konsistenz sichergestellt haben, stehen uns nicht länger zur Verfügung. Die ehemals lokalen, synchronen Methodenaufrufe in andere Module unseres Monolithen würden nun Servicegrenzen überschreiten. Komplexe Abfragen über Daten verschiedener Services würden den Zugriff auf servicefremde Datenbanken erfordern. Und die Änderung von Daten in mehreren Microservices würde verteilte Transaktionen zur Sicherung der Datenkonsistenz benötigen.

In einer modernen und effizienten Microservice-Architektur wollen wir jedoch all dies vermeiden, damit unsere Microservices unabhängig voneinander und skalierbar bleiben. Wir benötigen daher neue Patterns und Tools mit denen voneinander unabhängige Microservices ihre Daten austauschen und wir eine serviceübergreifende Datenkonsistenz sicherstellen können.

Dafür stehen inzwischen einige Optionen zur Auswahl, die wir in diesem Workshop mit ihrem jeweils idealen Anwendungsfall erarbeiten werden.

Programm

Zu Beginn des Workshops werden wir allgemeine Anforderungen an den Umgang mit persistenten Daten in einer Microservicearchitektur definieren und diskutieren, warum wir diese mit klassischen Ansätzen nicht erfüllen können.

Darauf aufbauend werden wir verschiedene Patterns betrachten, mit denen Microservices ihre Daten in relationalen Datenbanken ablegen und trotzdem untereinander austauschen können, ohne dabei die Anforderungen an unabhängige Microservices zu verletzten.

Abschließend werden wir mit Debezium und Change Data Capture einen Ansatz kennenlernen, mit denen Daten effizient und asynchron zwischen Microservices ausgetauscht werden können.

Kursziel

Die Teilnehmenden lernen verschiedene Patterns und Werkzeuge kennen, mit denen sie Daten effizient in einer Microservicearchitektur persistieren und austauschen können.

Adressaten

Softwarearchitekt*innen und -entwickler*innen

Voraussetzungen

Die Teilnehmenden sollten grundlegende Kenntnisse in der Verwendung relationaler Datenbanken und der Definition einer Microservicearchitektur haben. Sie sollten außerdem über grundlegende Java-Kenntnisse verfügen. Erfahrungen mit Spring Boot oder Eclipse MicroProfile sind von Vorteil, aber nicht notwendig.

Infrastruktur

Bitte bringen Sie einen Laptops zur Bearbeitung der Übungsaufgaben mit.

Referenten

Thorben Janssen

Freiberufler (www.thoughts-on-java.org)


Thorben Janssen löst als freiberuflicher Consultant und Trainer Persistenzprobleme mit JPA und Hibernate. Er ist Autor des Amazon Bestsellers Hibernate Tips - More than 70 solutions to common Hibernate problems und internationaler Redner mit fast 20 Jahren Erfahrung in der Entwicklung von Anwendungen auf Basis von Java EE. Auf seinem Blog www.thoughts-on-java.org schreibt er mehrmals wöchentlich über JPA, Hibernate und andere Persistenztechnologien.