Fachspezifischer Architekturentwurf

Veranstaltungsplan und Gastvorträge

 

In der Masterveranstaltung FAE (Fachspezifischer Architekturentwurf) geht um modernen Architekturentwurf gemäß Domain-Driven Design. Wir machen es diesmal anders als sonst: Nicht der Dozent muss alles wissen, und die Studierenden halten auch keine Referate.

Stattdessen haben wir in der deutschen IT-Szene gezielt nach profilierten Sprechern für einzelne Aspekte der Lehrveranstaltung gesucht - und haben viel Resonanz bekommen. So viel, dass wir alle Interessierten gern einladen möchten, zu diesen praxisnahen Fachimpulsen dazuzukommen.

Jeweils Freitags um 13:30 in Raum 501 (Campus Gummersbach der TH Köln, Nebengebäude LC6 / Ferchau-Bau) wird es von namhaften Sprechern auf JAX- und OOP-Niveau einen Impulsvortrag zu relevanten Themen rund um moderne Software-Architekturen geben. Dieser Vortrag ist immer offen für alle Interessierten. Die Veranstaltung FAE beginnt "geschlossen" vorher um 12:30, und geht nach dem Vortrag auch "geschlossen" weiter.



DateLecture / Presentation Partby …
1

Fr 12.10.

12:00-16:00

Kickoff
  • Course structure, time schedule, further organizational details, grading criteria
  • Rules for result documentation (Github)
TH Köln
2

Fr 19.10.

12:30-16:30

DDD & Organization Structure
  • Introduction to DDD core concepts
  • "What is this all about"? Relationship between domain-driven design, agility and organization structure
  • Practical advice for domain and bounded context analysis (good practices, rules of thumb for size, …)
TH Köln
3

Fr 26.10.

12:30-16:30

Microservice Concepts
  • Motivation: Why Microservices? Advantages and disadvantages, comparison with monolithic architectures and with SOA
  • Core Microservice principles (loose coupling, you build it / you run it, freedom of technology choice, …)
  • Approach when modelling services (e.g. aggregate root = service as a design starting point)
  • Ideal size for a Service (developer anarchy vs. self-contained system)

TH Köln

4

Fr 02.11.

Gastvortrag
13:30-16:30

für FAE-Teilnehmer
12:30-16:30

REST Beyond The Obvious - REST von A bis Z

„Viele APIs werden heutzutage REST APIs genannt, tauschen allerdings hauptsächlich Daten via HTTP und JSON aus. Gleichzeitig agieren immer mehr Systeme nicht mehr in Isolation sondern interagieren mit anderen. In diesem Kontext ist es besonders wichtig API gut weiterentwickeln und ändern zu können und die hemdsärmelige Antwort darauf lautet üblicherweise: Versionierung. Der Vortrag macht einen Schritt zurück und schaut als erstes auf den architektonischen Kontext in dem APIs leben und skizziert die Nachteile eines Designs, der Kernbestandteile von REST vernachlässigt. Er bespricht interne und externe APIs, inwieweit diese Unterscheidung überhaupt Sinn ergibt, den Einfluss von Domain-Driven Design und wie man APIs so spezifiziert, dass sie für Erweiterbarkeit optimiert sind sodass Änderungen existierende Clients möglichst nicht brechen.“

Oliver Drotbohm,

pivotal

(Vortragsposter)

5

Fr 09.11.

12:30-16:30

Rich Domain Model
  • Distinction Anemic / Rich Domain Model
  • Why is it sensible to use REST level 3 with a RDM?
  • How to implement complex interactions between services
TH Köln
6

Fr 16.11.

Gastvortrag
13:30-15:00

für FAE-Teilnehmer
12:30-16:30

A Competitive Food Retail Architecture with Microservices

Microservice Migration in a Brownfield Project

"Three years ago we started refactoring a monolithic shop into an e-commerce microservice platform. By now we’ve grown to 150 developers. In this talk we want to share our journey and the lessons we’ve learned the hard way.

After agreeing on a few terms about microservices, we want to provide some answers to problems we ran into:

  • What kind of organizational structure do you need to reflect the vertical boundaries in software while growing fast?

  • How do you define bounded contexts with many teams and features? Are there ways to guide your teams and enable autonomy on all levels in your organization?

  • Can you enable your teams to develop and deploy independently all the way to production?

  • How does asynchronous communication with Apache Kafka change the way you think about your entities?

  • How can multiple microservices contribute to the same pages? (And why you might have to implement this twice...)

As you see we will share our interpretation of a microservice architecture where developers stay in the driver’s seat and have a fair degree of independence and participation."

Ansgar Brauner,

Rewe Digital

(Vortragsposter)

7

Fr 23.11.

12:30-16:30

Offene Diskussion und Besprechung der Zwischenergebnisse (nur Teilnehmer FAE)

  • Stand der Domäne
  • Microservice Aufteilung
  • Stand der Entwicklung
TH Köln
8

Fr 30.11.

Gastvortrag
13:30-15:00

für FAE-Teilnehmer
12:30-16:30

Container & Execution Environment

„Infrastruktur für Microservices - Was steckt dahinter und warum passen Docker Container, Cloud, DevOps und Microservices so gut zusammen?
Docker Container sind mittlerweile überall anzutreffen. Doch was steckt dahinter? Wie helfen sie, Microservices umzusetzen und zu betreiben?
Was steckt hinter DevOps als Vorgehensmodell bzw. Kulturwandel?
Welche Möglichkeiten bieten Container-Cluster in der Cloud?
Hier ermöglicht die Open Source Betriebsplattform Kubernetes, Services größerer Zahl komfortabel zu betreiben, aktuell zu halten, zu skalieren."

Axel Burghof,

accso

9

Fr 07.12.

Gastvortrag
13:30-15:00

für FAE-Teilnehmer
12:30-16:30

Eventing mit Kafka - Haben ist besser als brauchen

„Bei dem Aufbau unserer Microservice-Architektur stellten wir uns bald die Frage wie Services an die benötigten Daten kommen ohne mit unendlich vielen API Calls das Tor zur Abhängigkeitshölle zu öffnen.

Fakt ist: Daten zu haben ist besser als sie zu benötigen.

Also entschieden wir uns dazu die Daten redundant vorzuhalten. Um 40 Teams maximale Autonomie zu ermöglichen, setzen wir auf “Eventing” und Apache Kafka um Abhängigkeiten zur Anfragezeit zu minimieren. In diesem Talk wollen wir die Prinzipien und Grundbegriffe erklären und anhand von Sourcecode Beispielen vorführen wie unsere Teams Apache Kafka zur asynchronen Kommunikation einsetzen. Wir zeigen anhand einfacher Producer und Consumer wie Domain-Events publiziert und konsumiert werden, auf welche Dinge Entwickler dabei achten sollten und wo wir die Grenzen dieses Ansatzes sehen.“

Sebastian Gauder,

Rewe Digital

10

Fr 14.12.

11:00-16:00

Fach-Workshop zur Fallstudie, zusammen mit einer Lehrveranstaltung aus der Sozialarbeit, mit Prof. Dr. Isabel Zorn (nur Teilnehmer FAE)

Die Teilnehmer von FAE wenden den Inhalt der Gastvorträge praktisch an, indem sie den Prototyp eines Ortungssystems für dementiell veränderte Personen als Microservice-Architektur spezifizieren und implementieren. Für Details zu diesem Projekt siehe hier.

Zusammen mit den angehenden Sozialarbeiter*innen von Prof. Dr. Isabel Zorn werden sich die Teilnehmer in diesem Workshop mit den fachlich-pflegerischen, ethischen und rechtlichen Aspekten des Projekts beschäftigen, um diese in die Architektur einfließen lassen zu können.

TH Köln
11

Fr 21.12.

Gastvortrag
13:30-15:00

für FAE-Teilnehmer
11:00-15:00

Micro frontends over UI monoliths

„Micro frontends are close relatives of microservices. Once an organisation implements a microservice architecture, the decision whether or not to use micro frontends is one of the most important ones to take.

In their lecture, Wolf and Niko look into three aspects of micro frontends:

• What are micro frontends, why do they exist at all and what business value do they provide?

• How can they be implemented, in particular in today‘s world of single page applications?

• Last but not least, how does reality look? Based on six case studies, the presenters share experiences from a variety of real life products.“


Wolf Schlegel,
Niko Hellwig

ThoughtWorks

12Fr 28.12.

Xmas Break

13Fr 04.01.
14

Fr 11.01.

Gastvortrag
13:30-15:00

für FAE-Teilnehmer
12:30-16:30

Vom Big Ball of Mud zu DDD – ein Praxisleitfaden

„Domain-driven Design ist als Ansatz zur Modellierung von komplexer Software aus der modernen IT-Architektur nicht mehr wegzudenken. Bei der Konzeption neuer Software-Projekte hilft DDD in Form einer ubiquitären Sprache das Verständnis für die anstehenden Herausforderungen zu erkennen und zu lösen.

Aber was ist mit bereits vorhandenen Software-Produkten? Auch schlecht strukturierte Legacy-Software („Big Ball of Mud“) kann mit der Einführung von DDD wieder in einen wartungsfähigen Zustand gebracht werden.

Dieser Vortrag beantwortet, anhand von Praxis-Erfahrungen aus Projekten in denen nachträglich DDD eingeführt wurde, folgende Fragen:

• Welche Vorteile bringt DDD überhaupt im Kontext von Legacy-Software?

• Wie erreicht man einen Zustand, aus dem heraus technische Änderungen überhaupt möglich sind?

• Was ist ein verteilter Monolith und wie kann er vermieden werden?

• Wie können Domänen identifiziert werden?

• Wie kann Kompatibilität in der Übergangsphase ermöglicht werden?"

Christian Nockemann,

viadee

15

Fr 18.01.

Gastvortrag
13:30-15:00


für FAE-Teilnehmer
12:30-16:30

Resilience, monitoring, logging and disaster recovery

„In the first part of this lecture we will cover the concept of resilience. What is resilience? What are the challenges in distributed system and what can cause failures? Are failures inevitable? We will look into possible measures and good practices for resiliency, such as load balancing or circuit breaker, in order to avoid cascading failures.
The second part covers monitoring and logging. How can monitoring and logging help improving your systems? We will take a look to different monitoring and logging systems we have used in our projects.
Finally we dive into disaster recovery. What happens when your application goes down? How soon are you notified of that? How quickly can you recover? In this part of the lecture we will look at what to consider when dealing with system or application outages and how to reduce the mean time to recovery. We will give some examples of resilient systems, with a focus on the underlying infrastructure.“

Marion Bruns, Komal Ahluwalla,

ThoughtWorks

16

Fr 25.01.

Gastvortrag
13:30-15:00

für FAE-Teilnehmer
12:30-16:30

Challenges in the Field of Dynamic UI Composition for Microservices

„Microservices enable modern tech companies to push platforms to new heights in terms of scaling, from an organisational as well as technical perspective. Cutting business logic and shipping it across different development teams, who can build and deploy their services independently, is becoming more and more common, as well as popular across the industry.
Dividing a user-interface in such that it compliments a microservice backend is however something that has not yet been standardized and can be quite challenging to accomplish.
This presentation gives an insight look on the challenges and their solutions, that one faces when trying to build a composed while dynamic user interface from microservices.“

Christian Fröhlingsdorf,

Rewe Digital

17

Fr 01.02.

Gastvortrag
13:30-15:00

für FAE-Teilnehmer
12:30-16:30

8 things developers should know about microservices

"In their lecture, Felix, Laura and Wolf share experiences and learnings from building and evolving microservices. The topics covered include:

  • How big is a microservice?
  • No big bang releases
  • Templates for microservices
  • Pull over push
  • Choreography over orchestration
  • Consumer driven contracts
  • Secure microservices
  • More about secure microservices"


Wolf Schlegel,
Laura Ionescu,
Felix Hammerl,

ThoughtWorks

Legende:

Nicht markierte Termine werden von Prof. Bente, Jann Deterling und Marco Reitano abgedeckt.

Grün markierte Termine werden von externen Sprechern abgehalten

Rot markierte Termine fallen aus.