SIGS DATACOM Fachinformationen für IT-Professionals

SEACON digital 2020

software engineering + architecture conference

Online - Konferenz

Sessiondetails

Vortrag: Fr 2.7
Datum: Fr, 18.09.2020
Uhrzeit: 15:35 - 16:15
cart

Microservices: eine Success Story der Deutschen Bahn

Uhrzeit: 15:35 - 16:15
Vortrag: Fr 2.7

 

In den letzten Jahren ist bei der DB eine Microservices-Landschaft mit mehr als 60 Microservices entstanden. In diesem Erfahrungsbericht wollen wir schildern, wie es gelungen ist, dieses hochverteilte System mit mehreren Teams gemeinsam zielorientiert zu entwickeln und wie wir die Landschaft mit allen Tücken von verteilten Systemen wie Nebenläufigkeit, verteilten Transaktionen, Aufruf-Kaskaden, zentralisiertem Logging, Tracing usw. erfolgreich betreiben. Insbesondere gelingt es uns, mit dem DevOps-Mindset mit geringer Lead-Time schnell auf Incidents zu reagieren.

Zielpublikum: Softwarearchitekten, Softwareentwickler, Operations
Voraussetzungen: Grundkenntnisse Java, Grundkenntnisse Softwarearchitekturen, Grundkenntnisse Microservices, Grundkenntnisse DDD, Grundkenntnisse CQRS, Grundkenntnisse Scrum
Schwierigkeitsgrad: Fortgeschritten

Extended Abstract:
Im Laufe der Zeit hat sich herausgestellt, dass es gar nicht so einfach ist, eine große Anzahl von Scrum-Teams an einem gemeinsamen Produkt wertschöpfend und dennoch weitestgehend unabhängig arbeiten zu lassen. Microservices schaffen hier gewisse Freiheiten, bringen aber auch die Komplexität verteilter Systeme mit sich (Nebenläufigkeit, verteilte Transaktionen, Aufruf-Kaskaden usw.). Insbesondere beim kontinuierlichen Deployen der einzelnen Services und dem integrierten Testen ergeben sich schon Herausforderungen.

Schließlich will auch der Schnitt der Services bzw. Teams und Domänen wohl überlegt sein. In unserem Fall fiel die Wahl auf Domänen-Teams, mit denen man sich einige Vorteile erkauft, die jedoch an anderer Stelle Herausforderungen mit sich bringen - insbesondere der Unabhängigkeit der Teams und der Entwicklung querschneidender Features.

Insgesamt wollen wir auf Basis einer großen Microservice-Landschaft ein Fazit über diese Art der Software-Architektur ziehen, das insbesondere Erkenntnisse über die Ausgestaltung von Organisationen (Conway's Law!) aber auch über technische Design-Entscheidungen (z.B. CQRS, nicht-relationale Datenbanken, Cloud, verteilte Transaktionen, geteilte Datenstrukturen, ...) beinhaltet. Nicht zuletzt soll auch der Aspekt des Betriebs und insbesondere DevOps betrachtet werden.