JAX 2017 Sessions mit Eberhard Wolff
Microservices gehören zu den größten Architektur-Trends der letzten Jahre. Wir haben Eberhard Wolff, Speaker bei der W-JAX 2016, im Interview gefragt, wie man diesen Trend mit dem Domain-driven Design verbinden kann.
JAXenter: Wo liegen die besonderen Herausforderungen bei der Datenhaltung für Microservice-Systeme?
Eberhard Wolff: Jeder Microservice soll eine eigene, getrennte Datenhaltung haben, um so eine bessere Entkopplung zu erreichen. Dadurch ergibt sich die Frage, ob gemeinsam genutzte Daten redundant in jedem Microservice gehalten werden sollen oder ob man bei der Trennung der Datenhaltung Kompromisse eingeht. Eine weitere Frage ist der fachliche Gültigkeitsbereich der Daten – der Bounded Context.
JAXenter: Das Konzept des Domain-driven Design wurde schon 2003 geprägt. Welche Rolle spielt es im Bezug auf Microservices?
Eberhard Wolff: Viele Architekten erkennen durch den aktuellen Trend zu Microservices, wie wichtig der fachliche Schnitt von Systemen ist. Genau dort hilft Domain-driven Design. Interessanterweise hat Eric Evans in seinem Buch „Domain-driven Design“ neben der Architektur auch die Zusammenarbeit zwischen Teams beschrieben. Auch die Wechselwirkung zwischen der Organisation und Architektur wird gerade durch Microservices wieder aktuell.
JAXenter: Die Prinzipien für DDD sind meist grundsätzlich bekannt – allein die Umsetzung in der Praxis ist alles andere als trivial. Auf welche typischen Probleme bist du in Projekten bei der Umsetzung von DDD gestoßen?
Eberhard Wolff: Die Building Blocks wie Entity, Value Object, Repository usw. sind meistens bekannt – und auch intuitiv leicht zu erfassen. Aber Strategic Design und Bounded Context kennen viele nicht. Die Idee, dass selbst grundlegende Geschäftsobjekte wie Kunde oder Bestellung nicht allgemeingültig für ein ganzes Unternehmen definiert werden können, überraschen immer noch viele. Daher werden diese Patterns auch noch nicht breit genutzt. Gerade Strategic Design wirklich gut umzusetzen, erfordert also ein grundlegendes Umdenken.
JAXenter: Kannst du einen Praxis-Tipp geben, wie DDD erfolgreich realisiert werden kann?
Eberhard Wolff: Bei meinen Trainings setzte ich darauf, konkrete Beispiele nach DDD praktisch entwerfen zu lassen. Dabei fokussiere ich jeweils auf eine Ebene von DDD – beispielsweise Building Blocks oder Strategic Design. Die Ergebnisse diskutieren wir dann und ich gebe ebenfalls Feedback – das erleichtert den Start.
JAXenter: Zurück zu Microservices: Auf der W-JAX baust du in deinem Workshop eine Microservice-Anwendung mit Spring Boot, Spring Cloud und dem Netflix Stack. Was ist für dich an diesem Technologie-Stack so reizvoll?
Eberhard Wolff: Spring Boot und Spring Cloud setzten Microservices auf Basis des populären Spring-Frameworks um. Netflix ist einer der wichtigsten Anwender von Microservices-Ansätzen. Daher bietet dieser Technologie-Stack eine ideale Basis für die Entwicklung von Java-Microservices – praxiserprobt bei Netflix und gleichzeitig mit einer niedrigen Einstiegshürde, insbesondere für Spring-Entwickler.
Eberhard Wolff auf der JAX 2017
● Microservices-Workshop: Architektur und Technik
● Datenarchitekturen nicht nur für Microservices
Microservices auf der JAX 2017
● Microservices-Workshop: Architektur und Technik
● Microservices mit Spring Boot, Angular 2 und Docker
● Resilient Java-based Microservices with Kubernetes