Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen?...

Post on 15-Oct-2020

6 views 0 download

Transcript of Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen?...

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