MAD Summit 2023

Vom 19. bis 21. Juni 2023 findet in München der Modularisierung, API Design und Domain-Driven Design (kurz MAD) Summit statt. Während des dreitägigen Summits wähle und mixe dir deinen eigenen Lernplan aus vier Themenschwerpunkten: Fundamentals für Einsteiger:innen, Architektur, Domain-driven Design und Cloudnative & Devops.

Holiday Inn München Unterhaching
Inselkammerstrasse 7-9
82008 München
19
.
06
.
2023
-
21
.
06
.
2023

Architektur eines Machine Learning Services

Workshop mit Oliver Zeigermann und Hanna Lüschow

 

Machine Learning (ML) ist kein Voodoo, sondern häufig eine von mehreren Optionen und ersetzt nur bestimmte Teile einer klassischen Software.

In diesem Workshop werden wir anhand eines realistischen Beispiels einenMachine Learning Service konzeptionieren und dabei die Vor- und Nachteile unterschiedlicher Machine Learning Ansätze im Vergleich zu klassischer Business Logik untersuchen.

Im Anschluss werden wir den Service in ein typisches Enterprise Computing einbetten.

Wir werden uns auf einem architektonischen Level bewegen, daher ist kein Laptop notwendig. Es werden keine Kenntnis von Machine Learning oder Prinzipien derSoftware-Architektur vorausgesetzt.

 

Consumer-Centric API Management

Workshop mit Arne Limburg

Abstract folgt

 

Infrastruktur und Deployment-Ansätze für autonome Teams

Workshop mit Renke Grunwald

 

Abstract folgt

  

Microservices schneiden mit Event Storming

Workshop mit Ina Einemann und Arne Limburg

 

Mit Microservices versuchen Softwarearchitekten, eine Anwendung in möglichst kleine, unabhängige Teile zu schneiden, die dann miteinander kommunizieren. Wie schafft man es aber, dass dabei weder die Fachlichkeit zerpflückt wird, noch der Blick für das große Ganze verloren geht? Wie schneide ich die Services richtig? Und worauf muss bei der Kommunikation der Services untereinander geachtet werden?

In unserem Workshop erläutern wir euch die Vorteile von Event Storming und verproben die Methode anhand eines Praxisbeispiels. Das Ziel ist die Erstellung von Aggregaten, die die Basis für Bounded Contexte bilden. Beim Finden der Bounded Contexte gehen wir auch darauf ein, was bei deren Kommunikation untereinander beachtet werden muss und wie man die Kommunikation gestalten kann, um später unabhängige Services realisieren zu können.

 

Shared Data In Verteilten Systemen

Workshop mit Lars Röwekamp

Eine auf Microservices basierende Architektur konsequent umzusetzen bedeutet, dass auch die Datenhaltung, also in der Regel die Datenbank, auf die verschiedenen Services verteilt werden muss. Nur so kann die angestrebte Unabhängigkeit der Services zur Entwicklungs- und Laufzeit erreicht werden.

Ohne diesen Schritt dagegen, würde sich das Problem der starren Kopplung und der damit einhergehenden Abhängigkeiten einer monolithischen Architektur lediglich um eine Schicht nach unten, in die Datenbank, verlagern.

Was aber bedeutet das konsequente Einhalten des Database-per-Service Patterns und einer damit einhergehenden Verteilung der Datenhaltung in der Praxis? Und welche neuen Herausforderungen sind damit verbunden? Was ist zum Beispiel, wenn Daten einer Entität - vollständig oder in Teilen - in mehreren Services benötigt werden? Oder wie wird referenzielle Integrität über die Daten mehrerer Services hinweg realisiert? Und wie lassen sich serviceübergreifende Transaktionen realisieren – wenn überhaupt?

Dies sind nur einige von vielen Fragen, die wir im Rahmen des Workshops gemeinsam anhand praktischer Beispiele angehen wollen. Soviel sei vorab verraten: Ein Umdenken ist gefragt.


Testing APIs & Microservices

Workshop mit Hendrik Müller

 

Enterprise Projekte bzw. die sich daraus ergebenen Herausforderungen sind per Definition komplex. Wie kann man ein solches System beherrschen und gleichzeitig kurze „Time-to-Market“-Zyklen realisieren, ohne sich dabei Regressionsfehler einzuhandeln? Dies geht seit jeher nur durch eine umfangreiche automatisierte Test-Suite, in die kontinuierlich auflaufende Fehler zurückfließen.

Bewegt man sich in einer Microservice-Landschaft, wird es noch schwieriger. Ein Service muss nicht nur für sich alleine funktionieren, sondern auch im Zusammenspiel mit den anderen Services auf der jeweiligen Stage. Da jedes Team unabhängig deployen kann, kann man sich darüber hinaus niemals sicher sein, welche Versionen der anderen Services gerade auf der konkreten Stage deployed sind. Erschwerend kommt hinzu, dass sich dadurch der Zustand des Gesamtsystems kontinuierlich verändert, so dass vollständige manuelle Abnahmetest desselben nicht mehr sinnvoll durchführbar sind.

Der Workshop zeigt anhand von lauffähigen Beispielen den Aufbau praktikabler Tests für Java Enterprise Projekte. Dabei werden alle Ebenen vom einfachen Unit-Tests über Datenbank-Tests und Schnittstellen-Tests bis hin zum Testen ganzer Microservice-Landschaften mit Consumer-Driven Contract-Tests gezeigt.

Zur Event-Website.