wie passt das zusammen?€¦ · microservices und enterprise-software –wie passt das zusammen?...
TRANSCRIPT
9. März 2020 @ AK MSDO
Microservices und Enterprise-SoftwareWie passt das zusammen?
CAU Kiel, Arbeitsgruppe Software Engineering
Holger Knoche
Agenda
Microservices und Enterprise-Software – Wie passt das zusammen?
1. Microservices vs. Enterprise-Software?
2. Häufige Reibungspunkte
3. Weg zu einer Referenzarchitektur?
Holger Knoche ― 09.03.2020 2
Eigenschaften µS-Beispiele
Microservices und Enterprise-Software – Wie passt das zusammen?
• Einfache, kurze Prozesse für den Endkunden
• Dynamische, offene Workloads
• Web- oder App-basiert
• Offenheit gegenüber Veränderungen
• Häufig „junge“ Anwendungen
Prioritäten– Elastizität / Skalierbarkeit
– Verfügbarkeit
– Time to Market
Holger Knoche ― 09.03.2020 4
Enterprise-Software
Microservices und Enterprise-Software – Wie passt das zusammen?
• Komplexe, teils lange Prozesse (z.B. Kreditantrag, Lebensversicherung)
• Stabile und bekannte Anzahl professioneller Anwender
• Stabilität der Arbeitsabläufe bevorzugt
• Oft „alte“ Anwendungen oder –bestandteile
Prioritäten
– Wartbarkeit / Evolvierbarkeit
– Verfügbarkeit
Holger Knoche ― 09.03.2020 5
Totale Gegensätze?
Microservices und Enterprise-Software – Wie passt das zusammen?
Nein, denn:
• Agilität und TTM werden im Enterprise-Umfeld wichtiger
– Unterschiedliche Evolutionsgeschwindigkeit
– Abschied von klassischen Releaseprozessen
• Trend zum Customer Self-Service
• Microservices versprechen weitere Vorteile:
– Gesteigerte Entwicklerproduktivität
– Bessere Testbarkeit
– Höhere Wartbarkeit
Holger Knoche ― 09.03.2020 6
Totale Gegensätze?
Microservices und Enterprise-Software – Wie passt das zusammen?
Aber:
• Unabhängige Deploybarkeit ist absolute Voraussetzung
• Inklusive Spezifikation der notwendigen Umgebung
Holger Knoche ― 09.03.2020 7
Häufige Reibungspunkte
Microservices und Enterprise-Software – Wie passt das zusammen?
• Wiederverwendung
• Integration
• Transaktionen
• Prozessteuerung / Workflow
• Wo schneide ich wie?
Holger Knoche ― 09.03.2020 8
Wiederverwendung
Microservices und Enterprise-Software – Wie passt das zusammen? Holger Knoche ― 09.03.2020 9
Enterprise Microservices
Starkdafür
Eherdagegen
Wiederverw.: Argumente
Microservices und Enterprise-Software – Wie passt das zusammen?
Enterprise:
– Zentralisierung von Änderungen, insb. Fehlerfixes
– Effizienzgewinn, keine Redundanz
Microservices:
– Schafft starke Bindungen und zementiert den Provider
– Führt zum unbemerkten Einsickern evtl. unerwünschter Änderungen
– Erschwert unabhängige Evolution
Holger Knoche ― 09.03.2020 10
Wiederverw.: Meinung
Microservices und Enterprise-Software – Wie passt das zusammen?
Anhaltspunkt: Das Single Responsibility Principle(SRP): „A module should be responsible to one, and only one, actor.“
Konsequenz: Wiederverwendung nur…
– …für denselben Aktor (Stakeholder) oder
– …falls alle Aktoren desbezüglich indifferent sind und
– …die unabhängige Evolution nicht behindert wird
Holger Knoche ― 09.03.2020 11
Integration
Microservices und Enterprise-Software – Wie passt das zusammen? Holger Knoche ― 09.03.2020 12
Enterprise Microservices
Integrationmöglichst früh
Integrationmöglichst spät
Integration: Argumente
Microservices und Enterprise-Software – Wie passt das zusammen?
Enterprise
– Früh „höherwertige“ Services schaffen
– DB-Integration ist performant
Microservices
– DB-Integration widerspricht Microservices
– Gefahr von „chatty services“
– Gute Parallelisierbarkeit erst im UI
Holger Knoche ― 09.03.2020 13
Integration: Meinung
Microservices und Enterprise-Software – Wie passt das zusammen?
Grundstrategie: Möglichst späte Integration mit flankierenden Performancemustern
– Replikation in lokale DB (Achtung: Ggf. Nutzungsbedingungen des Providers)
– CQRS, falls sinnvoll
– Batch-APIs (z.B. mit GraphQL)
Holger Knoche ― 09.03.2020 14
Transaktionen
Microservices und Enterprise-Software – Wie passt das zusammen? Holger Knoche ― 09.03.2020 15
Enterprise Microservices
Eigentlichimmer
Nur lokal
Transaktionen: Argumente
Microservices und Enterprise-Software – Wie passt das zusammen?
Enterprise
– Bietet Sicherheit im Abbruchfall
– War schon immer so
Microservices
– Verteilte Transaktionen behindern Skalierung und Verfügbarkeit
– TX werden nicht von allen DBs unterstützt
– Verteilte TX machen immer Probleme
– Die Geschäftsprozesse bieten oft Alternativen
Holger Knoche ― 09.03.2020 16
Transaktionen: Meinung
Microservices und Enterprise-Software – Wie passt das zusammen?
Grundstrategie: Vermeidung verteilter Transaktionen
– Prüfung der Geschäftsprozesse auf inhärente Sicherheitsmechanismen
– Vermeiden der „großen Abschlusstransaktion“
– Geeigneter Prozess- und Komponentenschnitt
– Ggf. Nutzung von Sagas
Holger Knoche ― 09.03.2020 17
Workflow
Microservices und Enterprise-Software – Wie passt das zusammen? Holger Knoche ― 09.03.2020 18
Enterprise Microservices
Sehr beliebt Bloß keineOrchestrierung
Workflow: Argumente
Microservices und Enterprise-Software – Wie passt das zusammen?
Enterprise
– Prozessteuerung ist notwendig, insb. lange Prozesse
– Erlauben Monitoring des Geschäftsbetriebs
Microservices
– Orchestrierung führt zu stärkerer Kopplung
– Choreographie bevorzugt, da geringere Kopplung
– Workflow-Engines erfordern ggf. Co-Deployment
Holger Knoche ― 09.03.2020 19
Workflow: Meinung
Microservices und Enterprise-Software – Wie passt das zusammen?
Grundstrategie: Workflow ist okay, wo sinnvoll, aber mit Bedacht:
– Innerhalb eines Teams ist Co-Deploymenteinigermaßen unschädlich
– Trotzdem Versionierung o.ä. erforderlich
– Teamübergreifend stabile Prozesse anstreben, die Subprozesse per Event anstoßen
Holger Knoche ― 09.03.2020 20
Schnittmuster?
Microservices und Enterprise-Software – Wie passt das zusammen?
Microservices, SCS, Verticals,… – Was denn nun?
• Abgrenzung der Begriffe zueinander schwierig
• Technisch geprägt (Deployment)
• Organisatorisch nur schwach verankert
• Bezug zu DDD teils schwierig
• Kaum Anhalt für Verortung benötigter Konzepte (Workflow, Saga)
Holger Knoche ― 09.03.2020 21
Relevante Dimensionen
Microservices und Enterprise-Software – Wie passt das zusammen?
Fachlich-organisatorisch
– Team
– Aktor / Stakeholder
– (Sub-)domäne
– Domäne / Organisation
– „Öffentlichkeit“
DDD
– Bounded Context
– Aggregate Root
Holger Knoche ― 09.03.2020 22
Relevante Dimensionen (contd)
Microservices und Enterprise-Software – Wie passt das zusammen?
Technisch
– Deployment
– Deployable
– Service
– SCS
Holger Knoche ― 09.03.2020 23
Zusammenspiel
Microservices und Enterprise-Software – Wie passt das zusammen?
• Keine teamübergreifenden technischen Konstrukte
• Services behandeln Aggregate Roots oder „kleine“ Bounded Contexts, SCS nur noch BCs
• Evolvierbare Kontrakte mit zunehmender Lebensdauer auf höheren Ebenen
• Domain Events spätestens ab SCS
• Für Härtefälle: Batch APIs
• Jedes Deployable realisiert in sich abgeschlossene Schritte (nur hier TX zulässig)
Holger Knoche ― 09.03.2020 24
Zusammenspiel (contd)
Microservices und Enterprise-Software – Wie passt das zusammen?
• Jedes technische Artefakt ist einem Aktor zugeordnet oder stabil indifferent
• Orchestrierung innerhalb von Teams (Workflow, Saga), darüber nach Möglichkeit Explikation im Prozess
• Übergeordnete Prozesse möglichst stabil und über Events koordiniert bzw. per UI integriert
Holger Knoche ― 09.03.2020 25
Fazit
Microservices und Enterprise-Software – Wie passt das zusammen?
Grundsätzlich gehen Microservice-Konzepte und Enterprise-Software zusammen.
Allerdings:
• Unabhängiges Deployment ist notwendig
• Kompromisse können und müssen ggf. anders ausgelegt werden
Holger Knoche ― 09.03.2020 26