SlideShare ist ein Scribd-Unternehmen logo
1 von 53
Downloaden Sie, um offline zu lesen
© Allianz
Dr. Annegret Junker 10.02.2021
Mono-, Modu-, Microliths –
oder welche Steine benutze ich
zum Bauen
© Junker, 2021
© Allianz
• Lead Architect Allianz Deutschland AG
• Tätig in unterschiedlichen Rollen: Entwicklerin, Product Owner,
Architektin
Veröffentlichungen
Lösungsmuster für Cross-Cutting-Concerns in Microservices, IT Aktuell,
06/2020
Altbewährte Entwurfsmuster für zeitgemäße Microservice—Anwendungen,
heise developer, 08/2020
Agile Unternehmensarchitekturen, Java Magazin 12/2020
Blog: https://annegretsarchitecture.blog/
Github: https://github.com/Grinseteddy
LinkedIn: https://www.linkedin.com/in/dr-annegret-junker-141a99a4/
Twitter: Grinseteddy
10.02.2021
Mono-, Modu-, Microliths | OOP2021 | Junker
2
Zu meiner Person
Mono-, Modu-, Microliths
© Wieland, 2020
© Allianz
Agenda
Contents
3
01 Motivation und Definitionen
02 Beispiele
a Produktionsplanung
b Taskmanagement
c Kleines Bestandssystem
d Expertensystem
03 Einflussfaktoren Architekturentscheidungen
04 Zusammenfassung
10.02.2021
Mono-, Modu-, Microliths | OOP2021 | Junker
© Allianz
Warum ist es überhaupt ein Frage ob ich
Monolithen oder Microservices verwende
01
Motivation
11.02.21 4
Mono-, Modu-, Microliths | OOP2021 | Junker
© Junker 2021
© Allianz
Microservices sind heute in aller Munde. Ihre unbestreitbaren
Vorteile liegen in ihrer Flexibilität und Skalierbarkeit. Aber
diese Vorteile werden durch steigende Komplexität in der
Infrastruktur erkauft.
Gibt es Entscheidungskriterien, die den Ausgleich zwischen
dieser Komplexität und der gewünschten Skalierbarkeit und
Flexibilität erleichtern?
Motivation
5
Motivation
Mono-, Modu, Microliths | Junker
10.02.201
© Junker 2020
© Allianz
Microservices sind eine Technik, die eine Applikation
als eine Sammlung loser gekoppelter Dienste
zusammenstellt.
Motivation
6
Microservice Definition
Mono-, Modu, Microliths | Junker
10.02.2021
Jamshidi, P.; Pahl, C.; Mendonça, N. C.; Lewis, J.; Tilkov, S.: Microservices: The Journey So
Far and Challenges Ahead, IEEE Software. 35 (3): 24–35. doi:10.1109/MS.2018.2141039,
2018
© Junker 2020
© Junker, 2021
© Allianz
ü Als einzelner Dienst einfacher in die Produktion zu
bringen
ü Einfacher verständlich durch Abgeschlossenheit
ü Bessere Wartbarkeit durch bessere Verständlichkeit
ü Können durch ein einzelnes Team weiter entwickelt und
gewartet werden
✘ Stellen nur eine einzelne Funktion zur Verfügung
✘ Stolperfallen
✘ Kein verlässliches Netzwerk
✘ Entstehende Latenzzeiten der Übertragung
✘ Kein sicheres Netzwerk
✘ Sich ändernde Topologie des Netzwerks
✘ Datenpersistenz über mehrere Dienste – „Eventual
Consistency“
✘ Ende-zu-Ende-Testen schwierig
Motivation
7
Microservices Vor- und Nachteile
Mono-, Modu, Microliths | Junker
10.02.2021
Vorteile Nachteile
© Allianz
Ein Monolith ist alles, was einheitlich und
unbeweglich ist. In der Software-Architektur
verstehen wir als Monolithen Software-Strukturen,
die in einem Dienst viele Funktionen zur Verfügung
stellen, die nicht ohne Aufwand zu trennen sind.
Motivation
8
Monolith Definition
Mono-, Modu, Microliths | Junker
Vgl. https://en.wiktionary.org/wiki/monolith, 27.11.2020, abgerufen 30.1.2021
© Junker, 2021
10.02.2021
© Allianz
ü Einfach als nicht-trennbarer Dienst in die Produktion zu
bringen
ü Einfache manuelle Ende-zu-Ende-Tests
ü Horizontales Skalieren
✘ Funktionalitäten als Sammlung schwer zu verstehen
✘ Hohe Aufwände für Produktionsgänge bei kleinen
Änderungen (gesamthaftes Ende-zu-Ende-Testen
notwendig)
✘ Implikationen auf eigentlich unabhängige
Funktionalitäten bei kleinen Änderungen
✘ Nur gesamthaftes Skalieren möglich
Motivation
9
Monolith Vor- und Nachteile
Mono-, Modu, Microliths | Junker
Vorteile Nachteile
10.02.2021
© Allianz
Ein Modulith ist ein Deployment-Monolith, wie er von
Martin Fowler in „Monolith First“ eingeführt wird.
Hierbei ist ein Deployment-Monolith ein gut
strukturierter Monolith, der als Ganzes in die
Produktion gebracht wird.
Motivation
10
Modulith Definition
Mono-, Modu, Microliths | Junker
© Junker 2020
M.Fowler: MonolithFirst, 3.6.2015,
https://martinfowler.com/bliki/MonolithFirst.html , abgerufen 30.1.2021
© Junker, 2021
10.02.2021
© Allianz
ü Einhaltung des YAGNI – Prinzips (You aren‘t gonna need
it“
ü Verlässliche Konfiguration über Module
ü Strenge Kapselung
✘ Kapselung und Struktur können schnell zerfleddern
(technisch schwierig sicher zu stellen) – ein zerfledderter
Modulith ist wieder ein alb-traumhafter Monolith
Motivation
11
Modulith Vor- und Nachteile
Mono-, Modu, Microliths | Junker
Vorteile Nachteile
10.02.2021
© Allianz
8007slido4
Welchen Architekturstil
bevorzugen Sie?
12
Mono-, Modu, Microliths | Junker
sli.do #80074
10.02.2021
© Allianz
Anwendungsbeispiele für Microservice,
Monolithen und Modulithen
11.02.21 13
02
Beispiele
Mono-, Modu-, Microliths | OOP2021 | Junker
© Junker 2021
© Allianz
Organisation
Domäne
Prozess
Beispiele
14
Kurze Zusammenfassung der Methodiken
Mono-, Modu, Microliths | Junker
Domain 1
Domain 2
Domain 3
Domain xy
Geteiltes
Geschäftsobjekt
Geteiltes
Geschäftsobjekt
Geteiltes
Geschäftsobjekt
Geteiltes
Geschäftsobjekt
Geteiltes
Geschäftsobjekt
Geschäfts-
porozess
Pro-
zess
Pro-
zess
Pro-
zess
Pro-
zess
Pro-
zess
Domain 1
Domain
2
Domain
xy
Domain 3
Domain
xy
Domain
2
Domain 3
Domain 1
Event Storming
DDD
Organisation
10.02.2021
© Allianz
Beispiel
Produktions-
planung
15
Mono-, Modu, Microliths | Junker
10.02.2021
© Allianz
- Planung einer Automobilproduktion ein Jahr im Voraus
- Vorausplanung von Produktionskapazitäten drei Jahre im Voraus
- Monatliche Anpassungen der Planungen an tatsächliche Verkäufe und
Bestellungen
16
Produktionsplanung eines großen
Automobilherstellers
Beispiel Produktionsplanung
Mono-, Modu, Microliths | Junker
© Junker, 2021
Testreihen
Planung der
Produktions-
kapizitäten
Erforderliche
Produktionskapazitäten
Produktion
Geplante
Produktions-
kapazitäten
Verkauf
Abruf
Einkauf
Geplante
Modelle
Bestellte
Modelle
Tatsächliche
Produktions-
kapazitäten
Status
10.02.2021
© Allianz 17
Einflussfaktoren auf die Architekturplanung
Produktionsplanung
Beispiel Produktionsplanung
Mono-, Modu, Microliths | Junker
Organisations-
Komplexität
Nicht-funktionale
Anforderungen
Funktionale Schnitt • Sehr hohe funktionale Komplexität
• 8..10 Implementierungs-Team
• Implementierungs-Team als Offshore-Teams mit geringer
Interaktion zum Auftraggeber
• Sehr untershciedliche Skalierungsanforderungen in Planung und
Produktion
• Abgleich mit Planung erfordert hohe Skalierung der
Produktionskomponente
• Jährliche Abgleiche erfordern hohe Skalierung in der
Planungskomponente
10.02.2021
© Allianz
8007slido4
Welchen Architekturstil passt
am besten zur
Produktionsplanung?
18
Mono-, Modu, Microliths | Junker
sli.do #80074
10.02.2021
© Allianz
Beispiel Produktionsplanung
19
Produktionsplanung – Ideale Lösung
Mono-, Modu, Microliths | Junker
Testreihen
Produktionsplanung Produktion
Rollierende
Jahresplanung
Produktions-
steuerung
Kapazitäten
Produktionsplanung
Rollierende Drei-
Jahres Planung
Kapazitäten Stückzahlen
Verkauf
Einkauf
Verkauf
Stückzahlen
Eventbus
Einkauf
Planung
Verkauf
Planung
Proudktion
Planung
Planung
Verkauf
Planung
Verkauf
Testreihen
Planung
Microservices
10.02.2021
© Allianz
Beispiel Produktionsplanung
20
Produktionsplanung – Reale Architektur
Mono-, Modu, Microliths | Junker
Produktionsplanung Produktion und Verkauf
Kapazitäten Stückzahlen
Rollierende
Jahresplanung
Rollierende Drei-
Jahres Planung
Produktions-
steuerung
Verkauf
Zur Verfügung stehende Kapazitäten
Abgerufene Kapazitäten
Monatlicher Batch
Täglicher Abgleich via Files
Einkauf
Testreihen
Monolith
10.02.2021
© Allianz
ü Stabiles über Jahre bewährtes System
ü Datenbank liefert „Single Point of Truth“
ü Wartbarkeit vom eingearbeiteten Dienstleister auch
offshore möglich
✘ Hohe Aufwände für Produktionsgänge mit erheblichen
Downtimes (> 12h)
✘ Extrem hohe Testaufwände
✘ Eventuelle Fehler sind erst beim nächsten Planungslauf
(1 Monat) sichtbar
Beispiel Produktionsplanung
21
Produktionsplanung Architektur
Mono-, Modu, Microliths | Junker
Vorteile Nachteile
10.02.2021
© Allianz
Beispiel Task-
management
22
Mono-, Modu, Microliths | Junker
10.02.2021
© Allianz
Beispiel Taskmanagement
23
Task Management von Agenturen
Mono-, Modu, Microliths | Junker
- Sehr flexibles Task Management für Versicherungsangenturen
- Tasks können automatisch von externen Systemen als auch manuell erstellt
werden
- Tasks werden aus verschiedenen Systemen abgefragt um abhängige Systeme
über Änderungen zu informieren
© Junker, 2021
Kunden-
webseite
Taskmanagement
Neue Aufgabe
Makler
Neue Aufgabe
Beratung
Führe
Beratung
durch
Verkaufs-
prozess
Neue Aufgabe
Durchgeführte
Aufgaben
10.02.2021
© Allianz 24
Einflussfaktoren auf die Architekturplanung
Taskmanagement
Beispiel Taskmanagement
Mono-, Modu, Microliths | Junker
10.02.201
Funktionaler
Schnitt
• Geringe bis mittlere funktionale Komplexität
Organisations-
Komplexität
• 1 internes Implementierungsteam
Nicht-funktionale
Anforderungen
• Eher einheitliche Sklalierbarkeitsanforderungen
• Gut definierte Interfaces für die abhängigen Systeme notwendig
• Abhängige Systeme müssen unabhängig vom
Taskmanagement entwickelt werden können
© Junker, 2021
© Allianz
8007slido4
25
Mono-, Modu, Microliths | Junker
sli.do #80074
Welchen Architekturstil passt
am besten zum
Taskmanagement?
10.02.2021
© Allianz
Beispiel Taskmanagement
26
Task Management – How it was done
Mono-, Modu, Microliths | Junker
Task Management
Task Management
Kunden-Websites
Tasks
Beratung
Beratung
Verträge
Verkaufsprozess
Verkaufsprozess
Chancen
Makler-Websites
Beratung
Chancen
Kunden
Makler
Fine Grained
Microservices
10.02.2021
© Allianz
Beispiel Taskmanagement
27
Task Management – Ideale Architektur
Mono-, Modu, Microliths | Junker
Task Management
Task Management
Kunden-Websites
Tasks
Eventbus
Task
Task
Beratung
Beratung
Verträge
Task
Task
Verkaufsprozess
Verkaufsprozess
Chancen
Task
Task
Coarse Grained
Microservices
Makler-Websites
10.02.2021
© Allianz
ü Kleine einfach zu verstehenden Services
ü Gute Erweiterbarkeit durch standardisierte Schnittstellen
ü Unabhängige Entwicklung in unabhängigen Domänen
(Prozess, Betreuung) möglich
✘ Erhöhte Komplexität durch zusätzliche Komponente
(Eventbus)
Beispiel Taskmanagement
28
Taskmangement Architektur
Mono-, Modu, Microliths | Junker
Vorteile Nachteile
10.02.2021
© Allianz
Beispiel Kleines
Bestandssystem
eine Spezial-
versicherers
29
Mono-, Modu, Microliths | Junker
© Junker, 2021
10.02.2021
© Allianz
Beispiel kleines Bestandssystem
30
Kleines Bestandssystem einer Spezialversicherung
Mono-, Modu, Microliths | Junker
- Kleines Bestandssystem für eine kleine Versicherung mit einem Produkt
- Produktparameter sind flexible durch das Produktmanagement anpassbar
- Verkauf kann Produktparameter individuell für einen Kunden anpassen
- Abhängige Systeme wie Output- oder Inputmanagement werden extern
eingekauft.
© Junker, 2021
Product-
definition
Parameter
Parameter
Segmente
Segmente
Interessenten
Products
Kundenanpassungen
Kunden-
betreuung
Verträge
Dokumente
Dokumente
Dokumente
10.02.2021
© Allianz 31
Einflussfaktoren auf die Architekturplanung
Kleines Bestandssystem
Beispiel Produktionsplanung
Mono-, Modu, Microliths | Junker
Funktionaler
Schnitt
• Mittlere Funktionalität
Organisations-
Komplexität
• Zwei interne Teams
Nicht-funktionale
Anforderungen
• Keine unterschiedlichen Skalierungsanforderungen
© Junker, 2021
10.02.2021
© Allianz
8007slido4
32
Mono-, Modu, Microliths | Junker
10.02.201
sli.do #80074
© Junker, 2021
Welchen Architekturstil passt
am besten zum Kleinen
Bestandssystem?
© Allianz
Parameter
Eventbus
Parameter
Parameter
Parameter
Produkte
Produkte
Produkte
Produkte
Parameter
Segmente
Segmente
Segmente
Segmente
Produkte
Kundenanpassungen
Anpas-
sungen
Produkte
Anpas-
sungen
Produkte
Kundenbindung
Betreuung
Verträge
Betreuung
Anpas-
sungen
Dokumente
Dokument
Dokumente
Anpas-
sungen
Produkte
Beispiel Kleines Bestandssystem
33
Kleines Bestandssystem – Ursprüngliche Architektur
Mono-, Modu, Microliths | Junker
OMS IMS Benutzer
Login
Event-Driven
10.02.2021
© Allianz
Beispiel Kleines Bestandssystem
34
Kleines Bestandssystem - Architektur
Mono-, Modu, Microliths | Junker
Produktdefinition Produktverkauf Laufzeit
Kunden-
bindung
Doku-
mente
Anpassung
OMS IMS
Parameter
Segment
Benutzer
Login
Kunden
Interessenten
Produkte
Modulith
10.02.2021
© Allianz
ü Modulith mit herauslösbaren Anteilen
ü Kann in einem kleinen Team gepflegt und
weiterentwickelt werden
ü Einfach in Produktion zu bringen
✘ Funktionale Erweiterungen müssen in vorgegebene
Architektur eingepasst werden
✘ Kleine Änderungen verlangen gesamthaften
Produktivgang
✘ Verteilte Entwicklung nur bedingt möglich
Beispiel Kleines Bestandssystem
35
Kleines Bestandssystem Architektur
Mono-, Modu, Microliths | Junker
Vorteile Nachteile
10.02.2021
© Allianz
Beispiel
Experten-
Beratungs-
system
36
Mono-, Modu, Microliths | Junker
10.02.2021
© Allianz
Beispiel Beratungssystem
37
Beratungssystem einer Komplettversicherung
Mono-, Modu, Microliths | Junker
- Verkauf von komplexen Produkten wird durch ein Expertensystem unterstützt
- Verkaufssystem schlägt “Beste nächste Aktion” vor
- Verkaufssystem verschickt Notifikationen und Erinnerungen
- Verkaufssystem beobachtet Prozess und sammelt zugehörige Ereignisse
© Junker, 2021
Termine
Beratung
Aufgaben
Leads
Führe Beratung
durch
Beratungs-
termine
Vereinbare Termin
Neuer Kunde
Angebots-
erstellung
Interessent
Vertrags-
erstellung
Kunde
Prozesse
Vertrag
Angebot
Beratung
Neuer Prozess
Aufgabe
Statistik
Angebot
Vertrag
Prozess
10.02.2021
© Allianz 38
Einflussfaktoren auf die Architekturplanung
Expertensystem
Beispiel Produktionsplanung
Mono-, Modu, Microliths | Junker
Funktionaler
Schnitt
• Sehr hohe funktionale Komplexität
• Unterschiedliche Domänen in abhängigen Szenarien
Organisations-
Komplexität
• Mehr als 10 interne Teams an verteilten Standorten
Nicht-funktionale
Anforderungen
• Portal mit sehr hohen Anforderungen an die Skalierbarkeit und
Verfügbarkeit
• Beratung mit mittleren Anforderungen an die Verfügbarkeit
• Hohe Anforderungen an die Flexibilität um ein weltweites
Ausrollen zu ermöglichen
© Junker, 2021
10.02.2021
© Allianz
8007slido4
https://app.sli.do/event/iegmt5ia
39
Mono-, Modu, Microliths | Junker
sli.do #80074
© Junker, 2021
Welchen Architekturstil passt
am besten zum
Expertensystem?
10.02.2021
© Allianz
Portal Statistik Prozess
Beispiel Beratungssystem
40
Beratungssystem - Architektur
Mono-, Modu, Microliths | Junker
Event Broker
Login
Termine
Aufgaben
Leads Angebot
Vertrag
Beratung
Event-Driven
10.02.2021
© Allianz
ü Flexible und erweiterbare Architektur
ü Entkopplung der Systeme und dadurch Verringerung der
Kommunikationskomplexität
ü Unterstützung der Experten durch Prozessinformationen
ü Hohe Resilienz durch entkoppelte Systeme
✘ Event Broker als Single Point of Failure
✘ Event Broker Technologie muss in allen Teams verfügbar
sein
✘ Entkopplung der Systeme führt zu höherer Komplexität
der Gesamtprozesse
Beispiel Beratungssystem
41
Beratungssystem - Architektur
Mono-, Modu, Microliths | Junker
Vorteile Nachteile
10.02.2021
© Allianz
Welche Anforderungen entscheiden über
Architekturen
42
Mono-, Modu-, Microliths | OOP2021 | Junker
© Junker 2021
03
Anforderungen und
Architekturentscheidungen
10.02.2021
© Allianz
Monolith Modulith Microservices
• Funktionen können
unterschiedlichen Strukturen
(Packages, Modulen, Klassen)
zugeordnet sein
• Fachliche Funktionen werden in
Packages oder Module gekapselt
• Keine direkte Interaktion zwischen
Funktionen – Aufruf immer über
Schnittstellen
• Ein Service pro fachlicher Funktion
• Keine direkte Interaktion zwischen
Funktionen
• Aufrufe nur über standardisierte
Schnittstellen
43
Funktionaler Schnitt
Anforderungen und Architekturentscheidungen
Mono-, Modu, Microliths | Junker
10.02.2021
© Allianz
Monolith Modulith Microservices
• Ein oder zwei Teams
• Teamgröße nicht beschränkt
• Geringe Interaktion zwischen
Auftraggeber und Entwickler
(Outsourcing)
• Ein bis drei „two pizza“ Teams
• Co-located Teams mit hoher
Interaktion auch zwischen den
Teams
• Mehr als drei Teams
• Teams können räumlich verteilt
sein
• Interaktion zwischen Teams und
Auftraggeber muss möglich sein
44
Organisatorische Komplexität
Anforderungen und Architekturentscheidungen
Mono-, Modu, Microliths | Junker
10.02.2021
© Allianz
Monolith Modulith Microservices
• Keine spezifischen Anforderungen
bezüglich Skalierbarkeit und
Erweiterbarkeit
• Fachliche Erweiterbarkeit gegeben
• Keine spezifischen Anforderungen
an Skalierbarkeit
• Hohe Skalierbarkeit
• Erweiterbarkeit über zusätzliche
fachliche Dienste
45
Nicht-funktionale Anforderungen
Anforderungen und Architekturentscheidungen
Mono-, Modu, Microliths | Junker
10.02.2021
© Allianz 46
Entscheidungskriterien
Anforderungen und Architekturentscheidungen
Mono-, Modu, Microliths | Junker
Kriterium
Fachliche Komplexität
Funktionen mit unterschiedlichen Ressourcen-
Anforderungen
Monolith
Gering
Modulith
Mittel
Microservices
Hoch
Nein Nein Ja
Anzahl von implementierenden Teams 1..2 1..3 4 und mehr
Verteilte Teams Nein Nein Ja
Hohe Skalierbarkeit gefordert Nein Nein Ja
Automatisches Testen notwendig Nein Nein Ja
Automatisches Deployment notwendig Nein Nein Ja
10.02.2021
© Allianz
Was passiert wirklich
47
Mono-, Modu-, Microliths | OOP2021 | Junker
© Junker 2021
04
Zusammenhänge
10.02.2021
© Allianz
Zusammenhänge
48
Mono-, Modu, Microliths | Junker
10.02.201
Skalierbarkeit
Funktionelle Komplexität
Microservice-
Architektur
Modulith-
Architektur
Monolith-
Architektur
Zusammenhang
Skalierbarkeit – Funktionale Komplexität
© Junker, 2021
© Allianz
Monolith Modulith Microservices
• Kleines technisches Proof of
Concept
• Allererste Schritte in eine neue
Entwicklung, die hinterher nicht
mehr weiterentwickelt wird
• Projekts mit mittlerer Komplexität
• Erster Schritte in einem Projekt mit
noch nicht ausdefinierten
Skalierungsanforderungen
• Projekte mit hoher funktionaler
und/oder organisatorischer
Komplexität
• Als Erweiterung von Modulithen,
wenn unterschiedliche
Skalierungsanforderungen
auftreten
49
Beispiele für sinnvolle Anwendungen
Anforderungen und Architekturentscheidungen
Mono-, Modu, Microliths | Junker
10.02.2021
© Allianz
Zusammenhänge
50
Mono-, Modu, Microliths | Junker
Zusammenhänge
Realistische Ausgangsposition
Hybride Architektur
© Junker, 2021
10.02.2021
© Allianz 51
Mono-, Modu-, Microliths | OOP2021 | Junker
© Junker 2021
05
Zusammenfassung
10.02.2021
© Allianz
• Moderne Architekturen lassen sich als Microservice-Architekturen entwerfen.
• Allerdings muss die Komplexität der verteilten Applikation beherrschbar sein.
• Dieser zusätzliche Aufwand lässt sich durch Deployment-Monolithen oder auch
Modulithen vermeiden. Diese können bis zu einer gewissen Komplexität und
Projektgröße gut eingesetzt werden.
• Bei über mehreren Jahren laufenden Projekten entstehen in der Regel immer
hybride Architekturen.
• Die vorgestellten Entscheidungskriterien können für die unterschiedlichen
Architekturansätze angewendet werden.
52
Zusammenfassung
Mono-, Modu, Microliths | Junker
© Junker, 2021
10.02.2021
© Allianz
Vielen Dank
© Junker, 2021

Weitere ähnliche Inhalte

Ähnlich wie Mono-, Modu-, Microliths

Entwicklung des neuen Swisscom Intranets mit User Centered Design
Entwicklung des neuen Swisscom Intranets mit User Centered DesignEntwicklung des neuen Swisscom Intranets mit User Centered Design
Entwicklung des neuen Swisscom Intranets mit User Centered Design
soultank AG
 
DNUG 38: "Einen Rahmen schaffen: Vorteile durch Frameworks in der Domino-Webe...
DNUG 38: "Einen Rahmen schaffen: Vorteile durch Frameworks in der Domino-Webe...DNUG 38: "Einen Rahmen schaffen: Vorteile durch Frameworks in der Domino-Webe...
DNUG 38: "Einen Rahmen schaffen: Vorteile durch Frameworks in der Domino-Webe...
Oliver Busse
 

Ähnlich wie Mono-, Modu-, Microliths (20)

Event-driven Architektur in der Allianz-Beratungssoftware
Event-driven Architektur in der Allianz-BeratungssoftwareEvent-driven Architektur in der Allianz-Beratungssoftware
Event-driven Architektur in der Allianz-Beratungssoftware
 
OSLC in Aktion
OSLC in AktionOSLC in Aktion
OSLC in Aktion
 
Interview with Michael Weck, Jungheinrich AG
Interview with Michael Weck, Jungheinrich AGInterview with Michael Weck, Jungheinrich AG
Interview with Michael Weck, Jungheinrich AG
 
LED/OLED Die Digitalisierung des Lichts – eine Vorausschau
LED/OLED Die Digitalisierung des Lichts – eine VorausschauLED/OLED Die Digitalisierung des Lichts – eine Vorausschau
LED/OLED Die Digitalisierung des Lichts – eine Vorausschau
 
Modulare Baukästen, Modularisierung und Produktplattformen:Vorstellung MB Col...
Modulare Baukästen, Modularisierung und Produktplattformen:Vorstellung MB Col...Modulare Baukästen, Modularisierung und Produktplattformen:Vorstellung MB Col...
Modulare Baukästen, Modularisierung und Produktplattformen:Vorstellung MB Col...
 
Maskenvalidierung
MaskenvalidierungMaskenvalidierung
Maskenvalidierung
 
Technische schulden abbauen
Technische schulden abbauenTechnische schulden abbauen
Technische schulden abbauen
 
Eclipse DVCS-Day: eGit, Git, Mercurial-Anwendungen in der Praxis
Eclipse DVCS-Day: eGit, Git, Mercurial-Anwendungen in der Praxis Eclipse DVCS-Day: eGit, Git, Mercurial-Anwendungen in der Praxis
Eclipse DVCS-Day: eGit, Git, Mercurial-Anwendungen in der Praxis
 
Der perfekte Microservice
Der perfekte MicroserviceDer perfekte Microservice
Der perfekte Microservice
 
Ontego Mobility Platform für Apps auf beliebiger Hardware in beliebigen Backe...
Ontego Mobility Platform für Apps auf beliebiger Hardware in beliebigen Backe...Ontego Mobility Platform für Apps auf beliebiger Hardware in beliebigen Backe...
Ontego Mobility Platform für Apps auf beliebiger Hardware in beliebigen Backe...
 
Entwicklung des neuen Swisscom Intranets mit User Centered Design
Entwicklung des neuen Swisscom Intranets mit User Centered DesignEntwicklung des neuen Swisscom Intranets mit User Centered Design
Entwicklung des neuen Swisscom Intranets mit User Centered Design
 
Bedeutung von Integrationsarchitekturen im Zeitalter von Mobile, IoT und Cloud
Bedeutung von Integrationsarchitekturen im Zeitalter von Mobile, IoT und CloudBedeutung von Integrationsarchitekturen im Zeitalter von Mobile, IoT und Cloud
Bedeutung von Integrationsarchitekturen im Zeitalter von Mobile, IoT und Cloud
 
Standardisierung, Herstellerabhängigkeiten und Open Source Software
Standardisierung, Herstellerabhängigkeiten und Open Source SoftwareStandardisierung, Herstellerabhängigkeiten und Open Source Software
Standardisierung, Herstellerabhängigkeiten und Open Source Software
 
DNUG 38: "Einen Rahmen schaffen: Vorteile durch Frameworks in der Domino-Webe...
DNUG 38: "Einen Rahmen schaffen: Vorteile durch Frameworks in der Domino-Webe...DNUG 38: "Einen Rahmen schaffen: Vorteile durch Frameworks in der Domino-Webe...
DNUG 38: "Einen Rahmen schaffen: Vorteile durch Frameworks in der Domino-Webe...
 
Open Ttt Cb 2006 11 09
Open Ttt Cb 2006 11 09Open Ttt Cb 2006 11 09
Open Ttt Cb 2006 11 09
 
Q-2 - Website Relaunch: Vom Entschluss bis zum Go-Live
Q-2 - Website Relaunch: Vom Entschluss bis zum Go-LiveQ-2 - Website Relaunch: Vom Entschluss bis zum Go-Live
Q-2 - Website Relaunch: Vom Entschluss bis zum Go-Live
 
Workshop Responsive Webdesign 2015
Workshop Responsive Webdesign 2015Workshop Responsive Webdesign 2015
Workshop Responsive Webdesign 2015
 
UX & AGILE vom SCRUM Stammtisch Graz
UX & AGILE vom SCRUM Stammtisch GrazUX & AGILE vom SCRUM Stammtisch Graz
UX & AGILE vom SCRUM Stammtisch Graz
 
BIM - Building Information Modeling
BIM - Building Information ModelingBIM - Building Information Modeling
BIM - Building Information Modeling
 
Fonda: Erfolgsfaktor Benutzeroberfläche
Fonda: Erfolgsfaktor BenutzeroberflächeFonda: Erfolgsfaktor Benutzeroberfläche
Fonda: Erfolgsfaktor Benutzeroberfläche
 

Mono-, Modu-, Microliths

  • 1. © Allianz Dr. Annegret Junker 10.02.2021 Mono-, Modu-, Microliths – oder welche Steine benutze ich zum Bauen © Junker, 2021
  • 2. © Allianz • Lead Architect Allianz Deutschland AG • Tätig in unterschiedlichen Rollen: Entwicklerin, Product Owner, Architektin Veröffentlichungen Lösungsmuster für Cross-Cutting-Concerns in Microservices, IT Aktuell, 06/2020 Altbewährte Entwurfsmuster für zeitgemäße Microservice—Anwendungen, heise developer, 08/2020 Agile Unternehmensarchitekturen, Java Magazin 12/2020 Blog: https://annegretsarchitecture.blog/ Github: https://github.com/Grinseteddy LinkedIn: https://www.linkedin.com/in/dr-annegret-junker-141a99a4/ Twitter: Grinseteddy 10.02.2021 Mono-, Modu-, Microliths | OOP2021 | Junker 2 Zu meiner Person Mono-, Modu-, Microliths © Wieland, 2020
  • 3. © Allianz Agenda Contents 3 01 Motivation und Definitionen 02 Beispiele a Produktionsplanung b Taskmanagement c Kleines Bestandssystem d Expertensystem 03 Einflussfaktoren Architekturentscheidungen 04 Zusammenfassung 10.02.2021 Mono-, Modu-, Microliths | OOP2021 | Junker
  • 4. © Allianz Warum ist es überhaupt ein Frage ob ich Monolithen oder Microservices verwende 01 Motivation 11.02.21 4 Mono-, Modu-, Microliths | OOP2021 | Junker © Junker 2021
  • 5. © Allianz Microservices sind heute in aller Munde. Ihre unbestreitbaren Vorteile liegen in ihrer Flexibilität und Skalierbarkeit. Aber diese Vorteile werden durch steigende Komplexität in der Infrastruktur erkauft. Gibt es Entscheidungskriterien, die den Ausgleich zwischen dieser Komplexität und der gewünschten Skalierbarkeit und Flexibilität erleichtern? Motivation 5 Motivation Mono-, Modu, Microliths | Junker 10.02.201 © Junker 2020
  • 6. © Allianz Microservices sind eine Technik, die eine Applikation als eine Sammlung loser gekoppelter Dienste zusammenstellt. Motivation 6 Microservice Definition Mono-, Modu, Microliths | Junker 10.02.2021 Jamshidi, P.; Pahl, C.; Mendonça, N. C.; Lewis, J.; Tilkov, S.: Microservices: The Journey So Far and Challenges Ahead, IEEE Software. 35 (3): 24–35. doi:10.1109/MS.2018.2141039, 2018 © Junker 2020 © Junker, 2021
  • 7. © Allianz ü Als einzelner Dienst einfacher in die Produktion zu bringen ü Einfacher verständlich durch Abgeschlossenheit ü Bessere Wartbarkeit durch bessere Verständlichkeit ü Können durch ein einzelnes Team weiter entwickelt und gewartet werden ✘ Stellen nur eine einzelne Funktion zur Verfügung ✘ Stolperfallen ✘ Kein verlässliches Netzwerk ✘ Entstehende Latenzzeiten der Übertragung ✘ Kein sicheres Netzwerk ✘ Sich ändernde Topologie des Netzwerks ✘ Datenpersistenz über mehrere Dienste – „Eventual Consistency“ ✘ Ende-zu-Ende-Testen schwierig Motivation 7 Microservices Vor- und Nachteile Mono-, Modu, Microliths | Junker 10.02.2021 Vorteile Nachteile
  • 8. © Allianz Ein Monolith ist alles, was einheitlich und unbeweglich ist. In der Software-Architektur verstehen wir als Monolithen Software-Strukturen, die in einem Dienst viele Funktionen zur Verfügung stellen, die nicht ohne Aufwand zu trennen sind. Motivation 8 Monolith Definition Mono-, Modu, Microliths | Junker Vgl. https://en.wiktionary.org/wiki/monolith, 27.11.2020, abgerufen 30.1.2021 © Junker, 2021 10.02.2021
  • 9. © Allianz ü Einfach als nicht-trennbarer Dienst in die Produktion zu bringen ü Einfache manuelle Ende-zu-Ende-Tests ü Horizontales Skalieren ✘ Funktionalitäten als Sammlung schwer zu verstehen ✘ Hohe Aufwände für Produktionsgänge bei kleinen Änderungen (gesamthaftes Ende-zu-Ende-Testen notwendig) ✘ Implikationen auf eigentlich unabhängige Funktionalitäten bei kleinen Änderungen ✘ Nur gesamthaftes Skalieren möglich Motivation 9 Monolith Vor- und Nachteile Mono-, Modu, Microliths | Junker Vorteile Nachteile 10.02.2021
  • 10. © Allianz Ein Modulith ist ein Deployment-Monolith, wie er von Martin Fowler in „Monolith First“ eingeführt wird. Hierbei ist ein Deployment-Monolith ein gut strukturierter Monolith, der als Ganzes in die Produktion gebracht wird. Motivation 10 Modulith Definition Mono-, Modu, Microliths | Junker © Junker 2020 M.Fowler: MonolithFirst, 3.6.2015, https://martinfowler.com/bliki/MonolithFirst.html , abgerufen 30.1.2021 © Junker, 2021 10.02.2021
  • 11. © Allianz ü Einhaltung des YAGNI – Prinzips (You aren‘t gonna need it“ ü Verlässliche Konfiguration über Module ü Strenge Kapselung ✘ Kapselung und Struktur können schnell zerfleddern (technisch schwierig sicher zu stellen) – ein zerfledderter Modulith ist wieder ein alb-traumhafter Monolith Motivation 11 Modulith Vor- und Nachteile Mono-, Modu, Microliths | Junker Vorteile Nachteile 10.02.2021
  • 12. © Allianz 8007slido4 Welchen Architekturstil bevorzugen Sie? 12 Mono-, Modu, Microliths | Junker sli.do #80074 10.02.2021
  • 13. © Allianz Anwendungsbeispiele für Microservice, Monolithen und Modulithen 11.02.21 13 02 Beispiele Mono-, Modu-, Microliths | OOP2021 | Junker © Junker 2021
  • 14. © Allianz Organisation Domäne Prozess Beispiele 14 Kurze Zusammenfassung der Methodiken Mono-, Modu, Microliths | Junker Domain 1 Domain 2 Domain 3 Domain xy Geteiltes Geschäftsobjekt Geteiltes Geschäftsobjekt Geteiltes Geschäftsobjekt Geteiltes Geschäftsobjekt Geteiltes Geschäftsobjekt Geschäfts- porozess Pro- zess Pro- zess Pro- zess Pro- zess Pro- zess Domain 1 Domain 2 Domain xy Domain 3 Domain xy Domain 2 Domain 3 Domain 1 Event Storming DDD Organisation 10.02.2021
  • 16. © Allianz - Planung einer Automobilproduktion ein Jahr im Voraus - Vorausplanung von Produktionskapazitäten drei Jahre im Voraus - Monatliche Anpassungen der Planungen an tatsächliche Verkäufe und Bestellungen 16 Produktionsplanung eines großen Automobilherstellers Beispiel Produktionsplanung Mono-, Modu, Microliths | Junker © Junker, 2021 Testreihen Planung der Produktions- kapizitäten Erforderliche Produktionskapazitäten Produktion Geplante Produktions- kapazitäten Verkauf Abruf Einkauf Geplante Modelle Bestellte Modelle Tatsächliche Produktions- kapazitäten Status 10.02.2021
  • 17. © Allianz 17 Einflussfaktoren auf die Architekturplanung Produktionsplanung Beispiel Produktionsplanung Mono-, Modu, Microliths | Junker Organisations- Komplexität Nicht-funktionale Anforderungen Funktionale Schnitt • Sehr hohe funktionale Komplexität • 8..10 Implementierungs-Team • Implementierungs-Team als Offshore-Teams mit geringer Interaktion zum Auftraggeber • Sehr untershciedliche Skalierungsanforderungen in Planung und Produktion • Abgleich mit Planung erfordert hohe Skalierung der Produktionskomponente • Jährliche Abgleiche erfordern hohe Skalierung in der Planungskomponente 10.02.2021
  • 18. © Allianz 8007slido4 Welchen Architekturstil passt am besten zur Produktionsplanung? 18 Mono-, Modu, Microliths | Junker sli.do #80074 10.02.2021
  • 19. © Allianz Beispiel Produktionsplanung 19 Produktionsplanung – Ideale Lösung Mono-, Modu, Microliths | Junker Testreihen Produktionsplanung Produktion Rollierende Jahresplanung Produktions- steuerung Kapazitäten Produktionsplanung Rollierende Drei- Jahres Planung Kapazitäten Stückzahlen Verkauf Einkauf Verkauf Stückzahlen Eventbus Einkauf Planung Verkauf Planung Proudktion Planung Planung Verkauf Planung Verkauf Testreihen Planung Microservices 10.02.2021
  • 20. © Allianz Beispiel Produktionsplanung 20 Produktionsplanung – Reale Architektur Mono-, Modu, Microliths | Junker Produktionsplanung Produktion und Verkauf Kapazitäten Stückzahlen Rollierende Jahresplanung Rollierende Drei- Jahres Planung Produktions- steuerung Verkauf Zur Verfügung stehende Kapazitäten Abgerufene Kapazitäten Monatlicher Batch Täglicher Abgleich via Files Einkauf Testreihen Monolith 10.02.2021
  • 21. © Allianz ü Stabiles über Jahre bewährtes System ü Datenbank liefert „Single Point of Truth“ ü Wartbarkeit vom eingearbeiteten Dienstleister auch offshore möglich ✘ Hohe Aufwände für Produktionsgänge mit erheblichen Downtimes (> 12h) ✘ Extrem hohe Testaufwände ✘ Eventuelle Fehler sind erst beim nächsten Planungslauf (1 Monat) sichtbar Beispiel Produktionsplanung 21 Produktionsplanung Architektur Mono-, Modu, Microliths | Junker Vorteile Nachteile 10.02.2021
  • 22. © Allianz Beispiel Task- management 22 Mono-, Modu, Microliths | Junker 10.02.2021
  • 23. © Allianz Beispiel Taskmanagement 23 Task Management von Agenturen Mono-, Modu, Microliths | Junker - Sehr flexibles Task Management für Versicherungsangenturen - Tasks können automatisch von externen Systemen als auch manuell erstellt werden - Tasks werden aus verschiedenen Systemen abgefragt um abhängige Systeme über Änderungen zu informieren © Junker, 2021 Kunden- webseite Taskmanagement Neue Aufgabe Makler Neue Aufgabe Beratung Führe Beratung durch Verkaufs- prozess Neue Aufgabe Durchgeführte Aufgaben 10.02.2021
  • 24. © Allianz 24 Einflussfaktoren auf die Architekturplanung Taskmanagement Beispiel Taskmanagement Mono-, Modu, Microliths | Junker 10.02.201 Funktionaler Schnitt • Geringe bis mittlere funktionale Komplexität Organisations- Komplexität • 1 internes Implementierungsteam Nicht-funktionale Anforderungen • Eher einheitliche Sklalierbarkeitsanforderungen • Gut definierte Interfaces für die abhängigen Systeme notwendig • Abhängige Systeme müssen unabhängig vom Taskmanagement entwickelt werden können © Junker, 2021
  • 25. © Allianz 8007slido4 25 Mono-, Modu, Microliths | Junker sli.do #80074 Welchen Architekturstil passt am besten zum Taskmanagement? 10.02.2021
  • 26. © Allianz Beispiel Taskmanagement 26 Task Management – How it was done Mono-, Modu, Microliths | Junker Task Management Task Management Kunden-Websites Tasks Beratung Beratung Verträge Verkaufsprozess Verkaufsprozess Chancen Makler-Websites Beratung Chancen Kunden Makler Fine Grained Microservices 10.02.2021
  • 27. © Allianz Beispiel Taskmanagement 27 Task Management – Ideale Architektur Mono-, Modu, Microliths | Junker Task Management Task Management Kunden-Websites Tasks Eventbus Task Task Beratung Beratung Verträge Task Task Verkaufsprozess Verkaufsprozess Chancen Task Task Coarse Grained Microservices Makler-Websites 10.02.2021
  • 28. © Allianz ü Kleine einfach zu verstehenden Services ü Gute Erweiterbarkeit durch standardisierte Schnittstellen ü Unabhängige Entwicklung in unabhängigen Domänen (Prozess, Betreuung) möglich ✘ Erhöhte Komplexität durch zusätzliche Komponente (Eventbus) Beispiel Taskmanagement 28 Taskmangement Architektur Mono-, Modu, Microliths | Junker Vorteile Nachteile 10.02.2021
  • 29. © Allianz Beispiel Kleines Bestandssystem eine Spezial- versicherers 29 Mono-, Modu, Microliths | Junker © Junker, 2021 10.02.2021
  • 30. © Allianz Beispiel kleines Bestandssystem 30 Kleines Bestandssystem einer Spezialversicherung Mono-, Modu, Microliths | Junker - Kleines Bestandssystem für eine kleine Versicherung mit einem Produkt - Produktparameter sind flexible durch das Produktmanagement anpassbar - Verkauf kann Produktparameter individuell für einen Kunden anpassen - Abhängige Systeme wie Output- oder Inputmanagement werden extern eingekauft. © Junker, 2021 Product- definition Parameter Parameter Segmente Segmente Interessenten Products Kundenanpassungen Kunden- betreuung Verträge Dokumente Dokumente Dokumente 10.02.2021
  • 31. © Allianz 31 Einflussfaktoren auf die Architekturplanung Kleines Bestandssystem Beispiel Produktionsplanung Mono-, Modu, Microliths | Junker Funktionaler Schnitt • Mittlere Funktionalität Organisations- Komplexität • Zwei interne Teams Nicht-funktionale Anforderungen • Keine unterschiedlichen Skalierungsanforderungen © Junker, 2021 10.02.2021
  • 32. © Allianz 8007slido4 32 Mono-, Modu, Microliths | Junker 10.02.201 sli.do #80074 © Junker, 2021 Welchen Architekturstil passt am besten zum Kleinen Bestandssystem?
  • 34. © Allianz Beispiel Kleines Bestandssystem 34 Kleines Bestandssystem - Architektur Mono-, Modu, Microliths | Junker Produktdefinition Produktverkauf Laufzeit Kunden- bindung Doku- mente Anpassung OMS IMS Parameter Segment Benutzer Login Kunden Interessenten Produkte Modulith 10.02.2021
  • 35. © Allianz ü Modulith mit herauslösbaren Anteilen ü Kann in einem kleinen Team gepflegt und weiterentwickelt werden ü Einfach in Produktion zu bringen ✘ Funktionale Erweiterungen müssen in vorgegebene Architektur eingepasst werden ✘ Kleine Änderungen verlangen gesamthaften Produktivgang ✘ Verteilte Entwicklung nur bedingt möglich Beispiel Kleines Bestandssystem 35 Kleines Bestandssystem Architektur Mono-, Modu, Microliths | Junker Vorteile Nachteile 10.02.2021
  • 37. © Allianz Beispiel Beratungssystem 37 Beratungssystem einer Komplettversicherung Mono-, Modu, Microliths | Junker - Verkauf von komplexen Produkten wird durch ein Expertensystem unterstützt - Verkaufssystem schlägt “Beste nächste Aktion” vor - Verkaufssystem verschickt Notifikationen und Erinnerungen - Verkaufssystem beobachtet Prozess und sammelt zugehörige Ereignisse © Junker, 2021 Termine Beratung Aufgaben Leads Führe Beratung durch Beratungs- termine Vereinbare Termin Neuer Kunde Angebots- erstellung Interessent Vertrags- erstellung Kunde Prozesse Vertrag Angebot Beratung Neuer Prozess Aufgabe Statistik Angebot Vertrag Prozess 10.02.2021
  • 38. © Allianz 38 Einflussfaktoren auf die Architekturplanung Expertensystem Beispiel Produktionsplanung Mono-, Modu, Microliths | Junker Funktionaler Schnitt • Sehr hohe funktionale Komplexität • Unterschiedliche Domänen in abhängigen Szenarien Organisations- Komplexität • Mehr als 10 interne Teams an verteilten Standorten Nicht-funktionale Anforderungen • Portal mit sehr hohen Anforderungen an die Skalierbarkeit und Verfügbarkeit • Beratung mit mittleren Anforderungen an die Verfügbarkeit • Hohe Anforderungen an die Flexibilität um ein weltweites Ausrollen zu ermöglichen © Junker, 2021 10.02.2021
  • 39. © Allianz 8007slido4 https://app.sli.do/event/iegmt5ia 39 Mono-, Modu, Microliths | Junker sli.do #80074 © Junker, 2021 Welchen Architekturstil passt am besten zum Expertensystem? 10.02.2021
  • 40. © Allianz Portal Statistik Prozess Beispiel Beratungssystem 40 Beratungssystem - Architektur Mono-, Modu, Microliths | Junker Event Broker Login Termine Aufgaben Leads Angebot Vertrag Beratung Event-Driven 10.02.2021
  • 41. © Allianz ü Flexible und erweiterbare Architektur ü Entkopplung der Systeme und dadurch Verringerung der Kommunikationskomplexität ü Unterstützung der Experten durch Prozessinformationen ü Hohe Resilienz durch entkoppelte Systeme ✘ Event Broker als Single Point of Failure ✘ Event Broker Technologie muss in allen Teams verfügbar sein ✘ Entkopplung der Systeme führt zu höherer Komplexität der Gesamtprozesse Beispiel Beratungssystem 41 Beratungssystem - Architektur Mono-, Modu, Microliths | Junker Vorteile Nachteile 10.02.2021
  • 42. © Allianz Welche Anforderungen entscheiden über Architekturen 42 Mono-, Modu-, Microliths | OOP2021 | Junker © Junker 2021 03 Anforderungen und Architekturentscheidungen 10.02.2021
  • 43. © Allianz Monolith Modulith Microservices • Funktionen können unterschiedlichen Strukturen (Packages, Modulen, Klassen) zugeordnet sein • Fachliche Funktionen werden in Packages oder Module gekapselt • Keine direkte Interaktion zwischen Funktionen – Aufruf immer über Schnittstellen • Ein Service pro fachlicher Funktion • Keine direkte Interaktion zwischen Funktionen • Aufrufe nur über standardisierte Schnittstellen 43 Funktionaler Schnitt Anforderungen und Architekturentscheidungen Mono-, Modu, Microliths | Junker 10.02.2021
  • 44. © Allianz Monolith Modulith Microservices • Ein oder zwei Teams • Teamgröße nicht beschränkt • Geringe Interaktion zwischen Auftraggeber und Entwickler (Outsourcing) • Ein bis drei „two pizza“ Teams • Co-located Teams mit hoher Interaktion auch zwischen den Teams • Mehr als drei Teams • Teams können räumlich verteilt sein • Interaktion zwischen Teams und Auftraggeber muss möglich sein 44 Organisatorische Komplexität Anforderungen und Architekturentscheidungen Mono-, Modu, Microliths | Junker 10.02.2021
  • 45. © Allianz Monolith Modulith Microservices • Keine spezifischen Anforderungen bezüglich Skalierbarkeit und Erweiterbarkeit • Fachliche Erweiterbarkeit gegeben • Keine spezifischen Anforderungen an Skalierbarkeit • Hohe Skalierbarkeit • Erweiterbarkeit über zusätzliche fachliche Dienste 45 Nicht-funktionale Anforderungen Anforderungen und Architekturentscheidungen Mono-, Modu, Microliths | Junker 10.02.2021
  • 46. © Allianz 46 Entscheidungskriterien Anforderungen und Architekturentscheidungen Mono-, Modu, Microliths | Junker Kriterium Fachliche Komplexität Funktionen mit unterschiedlichen Ressourcen- Anforderungen Monolith Gering Modulith Mittel Microservices Hoch Nein Nein Ja Anzahl von implementierenden Teams 1..2 1..3 4 und mehr Verteilte Teams Nein Nein Ja Hohe Skalierbarkeit gefordert Nein Nein Ja Automatisches Testen notwendig Nein Nein Ja Automatisches Deployment notwendig Nein Nein Ja 10.02.2021
  • 47. © Allianz Was passiert wirklich 47 Mono-, Modu-, Microliths | OOP2021 | Junker © Junker 2021 04 Zusammenhänge 10.02.2021
  • 48. © Allianz Zusammenhänge 48 Mono-, Modu, Microliths | Junker 10.02.201 Skalierbarkeit Funktionelle Komplexität Microservice- Architektur Modulith- Architektur Monolith- Architektur Zusammenhang Skalierbarkeit – Funktionale Komplexität © Junker, 2021
  • 49. © Allianz Monolith Modulith Microservices • Kleines technisches Proof of Concept • Allererste Schritte in eine neue Entwicklung, die hinterher nicht mehr weiterentwickelt wird • Projekts mit mittlerer Komplexität • Erster Schritte in einem Projekt mit noch nicht ausdefinierten Skalierungsanforderungen • Projekte mit hoher funktionaler und/oder organisatorischer Komplexität • Als Erweiterung von Modulithen, wenn unterschiedliche Skalierungsanforderungen auftreten 49 Beispiele für sinnvolle Anwendungen Anforderungen und Architekturentscheidungen Mono-, Modu, Microliths | Junker 10.02.2021
  • 50. © Allianz Zusammenhänge 50 Mono-, Modu, Microliths | Junker Zusammenhänge Realistische Ausgangsposition Hybride Architektur © Junker, 2021 10.02.2021
  • 51. © Allianz 51 Mono-, Modu-, Microliths | OOP2021 | Junker © Junker 2021 05 Zusammenfassung 10.02.2021
  • 52. © Allianz • Moderne Architekturen lassen sich als Microservice-Architekturen entwerfen. • Allerdings muss die Komplexität der verteilten Applikation beherrschbar sein. • Dieser zusätzliche Aufwand lässt sich durch Deployment-Monolithen oder auch Modulithen vermeiden. Diese können bis zu einer gewissen Komplexität und Projektgröße gut eingesetzt werden. • Bei über mehreren Jahren laufenden Projekten entstehen in der Regel immer hybride Architekturen. • Die vorgestellten Entscheidungskriterien können für die unterschiedlichen Architekturansätze angewendet werden. 52 Zusammenfassung Mono-, Modu, Microliths | Junker © Junker, 2021 10.02.2021