Kurs »Microservice Architectures« (DT11)

Kursverantwortlich
Prof. Dr. Stefan Bente
Sprache
deutsch
Kreditpunkte
3 ECTS
Arbeitsaufwand
40h Kontaktzeit / 50h Selbstlernzeit
Kompetenzcluster
Software Development and Architecture / Dual Reality and Smart Spaces
Gehört zum Modul
Developing Things 1
Teilmodulprüfung
benotet

Angestrebte Lernergebnisse / Learning Outcomes

Die Studierenden können mittlere bis große Software- und IT-Systeme konzipieren und umsetzen, indem sie

  • die Fachlichkeit der Anwendung gemäß der Methoden des Domain-Driven Design analysieren und dekomponieren,
  • diese in Services schneiden, deren Kernfunktionalitäten über REST-APIs und Messaging nach außen angeboten werden,
  • dazu eine unter Anwendung von gebräuchlichen Architekturpatterns eine Microservice-Applikationsarchitektur entwerfen,
  • für diese Servicelandschaft ein Hostingkonzept konzipieren, und
  • die Umsetzung des Systems in einen agilen Entwicklungsprozess einbetten können, bei dem die Entwicklungsteams jeweils autark an einzelnen Services arbeiten.

um später große digitale Produkte entwickeln zu können, die ein komplexes, verteiltes Backend erfordern.

Inhalt

  • Einführung und Konzepte
    • Unterschiedliche Ansätze: MS vs. SOA
    • Prinzipien von Microservice-Architekturen
    • CAP-Theorem und Eventual Consistency
  • Business Architecture
    • Domänen- und Bounded-Context-Analyse nach Methoden des Domain Driven Design (Evans)
    • Entities und Aggregates identifizieren
  • Application Architecture
    • Good Practices für den Serviceschnitt
    • Gängige MS-Patterns (Sidecar, BFF, API Gateway, …)
    • Whitebox-Sicht auf Microservices (Schichtenarchitektur innerhalb eines Services)
    • Anemic vs. Rich Domain Model
  • Integration Architecture
    • API Design, API First vs. Code First
    • Zusammenspiel REST und Messaging
    • REST-API-Regeln, REST Level 2 vs. 3 vs. GraphQL
    • Umsetzung von Transaktionen, Orchestrierung vs. Choreographie
    • Resilienz großer Systeme
  • Infrastructure Architecture
    • Containerschnitt und –Orchestrierung
    • Testautomatisierung, CI / CD
    • Load Balancing

Lehr- und Lernformen

  • Vorlesung
  • Gastvortrag externer Referenten
  • Seminar
  • Übung
  • Anwendung auf konkretes Projekt:
    • Domäne und BC analysieren, Entities und Aggregates
    • Serviceschnitt machen
    • einen Service beispielhaft umsetzen

Materialien/ Ressourcen

  • Vorgefertigte Umgebungen für das Deployment von Software-Prototypen und -Lösungen (insb. Infrastruktur für Continuous Integration / Deployment)
  • Modellierungswerkzeuge (digital und/oder Whiteboard)