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

25
9. März 2020 @ AK MSDO Microservices und Enterprise - Software Wie passt das zusammen ? CAU Kiel, Arbeitsgruppe Software Engineering Holger Knoche

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

Page 1: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

9. März 2020 @ AK MSDO

Microservices und Enterprise-SoftwareWie passt das zusammen?

CAU Kiel, Arbeitsgruppe Software Engineering

Holger Knoche

Page 2: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

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

Page 3: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

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

Page 4: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

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

Page 5: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

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

Page 6: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

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

Page 7: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

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

Page 8: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

Wiederverwendung

Microservices und Enterprise-Software – Wie passt das zusammen? Holger Knoche ― 09.03.2020 9

Enterprise Microservices

Starkdafür

Eherdagegen

Page 9: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

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

Page 10: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

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

Page 11: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

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

Page 12: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

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

Page 13: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

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

Page 14: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

Transaktionen

Microservices und Enterprise-Software – Wie passt das zusammen? Holger Knoche ― 09.03.2020 15

Enterprise Microservices

Eigentlichimmer

Nur lokal

Page 15: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

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

Page 16: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

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

Page 17: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

Workflow

Microservices und Enterprise-Software – Wie passt das zusammen? Holger Knoche ― 09.03.2020 18

Enterprise Microservices

Sehr beliebt Bloß keineOrchestrierung

Page 18: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

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

Page 19: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

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

Page 20: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

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

Page 21: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

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

Page 22: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

Relevante Dimensionen (contd)

Microservices und Enterprise-Software – Wie passt das zusammen?

Technisch

– Deployment

– Deployable

– Service

– SCS

Holger Knoche ― 09.03.2020 23

Page 23: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

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

Page 24: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

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

Page 25: Wie passt das zusammen?€¦ · Microservices und Enterprise-Software –Wie passt das zusammen? Enterprise –Bietet Sicherheit im Abbruchfall –War schon immer so Microservices

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