Let‘s talk about
Microservice Migration
Johannes Giani Köln, 14.05.2018
inovex Meetup Cologne
• Seit Juli 2017 bei inovex
• Masterthesis zum Thema Microservices
• Ziel: Handlungsempfehlung für
Migrationsprojekte
2
Johannes Giani
Application Development
1. Einführung
2. Methodik
3. Handlungsempfehlung
4. Fazit
3
Agenda
Der rote Faden…
Einführung
› Komponenten als Services
› Unabhängiges Deployment
› „Smart endpoints and dumb pipes“
› Organisiert anhand von Business Capabilities
› Modularisierungskonzept
› …
5Lewis et. al.: Microservices (2014) https://martinfowler.com/articles/microservices.html
Microservices
Eigenschaften
› Cross-funktionales Team
› Iteratives und inkrementelles Vorgehen
› Agile Architektur
› Kein Big Design Upfront
› Skalierung
› Spotify, Large-Scale Scrum (LeSS), Nexus, Scaled Agile Framwork (SAFe), …
6
Agile Softwareentwicklung
Scrum und agile Methoden
Methodik
› Jugendförderung
› Lebensmittel und Haushaltswaren
› Automobil
› Versandhandel
8
Erhebung
Beleuchtung verschiedener Szenarien
9
Leitfadengestützte Experteninterviews
Erhebung & Auswertung
Handlungsempfehlung
› In Abhängigkeit zum Monolithen
› Extraktion
› Sukzessive Neuentwicklung
› Losgelöst vom Monolithen
› Gänzliche Neuentwicklung
11
Veränderung
Was? Grüne Wiese oder hybrider Acker?
12Self-contained Systems (2017): http://scs-architecture.org/
Dekomposition des Systems
Wie? Die Zielarchitektur
Präsentation
Anwendung
Daten
Microservice
Microservice /
Self-contained
System (SCS)
[1]
13
Dekomposition des Systems (II)
Wie? Zielarchitektur
› Frontend-Monolith › Frontend-Fragmente
Präsentation
Anwendung
Daten
Microservice
Microservice/
SCS
› Fachlich abgeschlossener Kontext
› Pilot-Projekt
› Grenzen schützen
› Anti-Corruption Layer (ACL)
14
Bounded Context
Wo beginnen?
Monolith
Micro-
service
ACL
15
Risiken kontrollieren
Womit?
› Shadow Traffic
› Canary Releasing
› Feature Toggles
[2]
[3]
› User Stories / Features
› In Monolith/Microservice
› Technische Stories / „Enabler“
› Z.B. ACL implementieren
› Allokieren von Kapazitäten
16http://www.scaledagileframework.com/program-and-solution-backlogs/
Transparenz
Wozu?
[4]
› Migration auf Organisationsebene
› Entkoppeln
17
Agile Transformation
Wann und Wie?
Scrum SAFe
LeSS
µ
µ
µµ
› Mikroarchitektur
› Teamintern
› Emergent
› Makroarchitektur
› Übergreifend
› Intentional
Fazit & Ausblick
› Migration als Chance
› UI-Fragmentierung
› Modellgrenzen wahren
› Risiken kontrollieren
› Transparenz durch technische Stories
› Migration auf Organisationsebene entkoppeln
19
Fazit
Handlungsempfehlung
› Blessing et. al.: DRM, A Design Research Methodology (2009), Springer/London, 1. Auflage
› Evans: Domain-Driven Design (2004), Boston, 1. Auflage
› Cervantes et. al.: Designing software architectures (2016), Addison-Wesley/Boston, 1. Auflage
› Newman: Building Microservices (2015), O‘Reilly/Sebastopol, 1. Auflage
› Stine: Migrating to Cloud-Native Application Architectures (2016), O‘Reilly/Sebastopol, 1. Auflage
› Wolff: Microservices (2016), dpunkt/Heidelberg, 1. Auflage
20
Quellen
Literatur
› Larman et. al.: Large-Scale Scrum: Scrum erfolgreich skalieren mit LeSS
(2017), dpunkt/Heidelberg, 1. Auflage
› Leffingwell: SAFe 4.0 Reference Guide (2016), Addison-Wesley/Boston, 1.
Auflage
› Mathis et. al.: SAFe: das Scaled Agile Framework (2016),
depunkt/Heidelberg, 1. Auflage
› Rubin: Essential Scrum (2014), mitp/Heidelberg, 1. Auflage
21
Quellen
Literatur (II)
› Hodgson: Feature Toggles (2017) https://martinfowler.com/articles/feature-toggles.html
abgerufen am 02.01.2018
› Lewis et. al.: Microservices (2014) https://martinfowler.com/articles/microservices.html
abgerufen am 02.01.2018
› Posta.: Low-Risk Monolith to Microservice Evolution Part I (2017)
http://blog.christianposta.com/microservices/low-risk-monolith-to-microservice-evolution/
abgerfufen am 02.01.2018
› Sato: CanaryRelease (2014) https://martinfowler.com/bliki/CanaryRelease.html
abgerufen am 02.01.2018
22
Quellen
Internetquellen
› [1] SCS Architecture (2018), http://scs-architecture.org/
› [2] Sato: CanaryRelease (2014) https://martinfowler.com/bliki/CanaryRelease.html
abgerufen am 02.01.2018 (vereinfacht)
› [3] Hodgson: Feature Toggles (2017) https://martinfowler.com/articles/feature-toggles.html
abgerufen am 02.01.2018 (vereinfacht)
› [4] Leffingwell: Program and Value Stream Backlog (2017) http://v4.scaledagileframework.com/program-and-
value-stream-backlogs/ abgerufen am 04.01.2018 (vereinfacht)
› Icons made by Freepik from www.flaticon.com
› Alle nicht-markierten Abbildung: © Johannes Giani & inovex GmbH (2017-2018)
23
Quellen
Abbildungen
Vielen Dank
Johannes Giani
inovex GmbH
Ludwig-Erhard-Allee 6
76131 Karlsruhe
jgiani@inovex.de
0152 33181232

Let's talk about Microservices Migration!

  • 1.
    Let‘s talk about MicroserviceMigration Johannes Giani Köln, 14.05.2018 inovex Meetup Cologne
  • 2.
    • Seit Juli2017 bei inovex • Masterthesis zum Thema Microservices • Ziel: Handlungsempfehlung für Migrationsprojekte 2 Johannes Giani Application Development
  • 3.
    1. Einführung 2. Methodik 3.Handlungsempfehlung 4. Fazit 3 Agenda Der rote Faden…
  • 4.
  • 5.
    › Komponenten alsServices › Unabhängiges Deployment › „Smart endpoints and dumb pipes“ › Organisiert anhand von Business Capabilities › Modularisierungskonzept › … 5Lewis et. al.: Microservices (2014) https://martinfowler.com/articles/microservices.html Microservices Eigenschaften
  • 6.
    › Cross-funktionales Team ›Iteratives und inkrementelles Vorgehen › Agile Architektur › Kein Big Design Upfront › Skalierung › Spotify, Large-Scale Scrum (LeSS), Nexus, Scaled Agile Framwork (SAFe), … 6 Agile Softwareentwicklung Scrum und agile Methoden
  • 7.
  • 8.
    › Jugendförderung › Lebensmittelund Haushaltswaren › Automobil › Versandhandel 8 Erhebung Beleuchtung verschiedener Szenarien
  • 9.
  • 10.
  • 11.
    › In Abhängigkeitzum Monolithen › Extraktion › Sukzessive Neuentwicklung › Losgelöst vom Monolithen › Gänzliche Neuentwicklung 11 Veränderung Was? Grüne Wiese oder hybrider Acker?
  • 12.
    12Self-contained Systems (2017):http://scs-architecture.org/ Dekomposition des Systems Wie? Die Zielarchitektur Präsentation Anwendung Daten Microservice Microservice / Self-contained System (SCS) [1]
  • 13.
    13 Dekomposition des Systems(II) Wie? Zielarchitektur › Frontend-Monolith › Frontend-Fragmente Präsentation Anwendung Daten Microservice Microservice/ SCS
  • 14.
    › Fachlich abgeschlossenerKontext › Pilot-Projekt › Grenzen schützen › Anti-Corruption Layer (ACL) 14 Bounded Context Wo beginnen? Monolith Micro- service ACL
  • 15.
    15 Risiken kontrollieren Womit? › ShadowTraffic › Canary Releasing › Feature Toggles [2] [3]
  • 16.
    › User Stories/ Features › In Monolith/Microservice › Technische Stories / „Enabler“ › Z.B. ACL implementieren › Allokieren von Kapazitäten 16http://www.scaledagileframework.com/program-and-solution-backlogs/ Transparenz Wozu? [4]
  • 17.
    › Migration aufOrganisationsebene › Entkoppeln 17 Agile Transformation Wann und Wie? Scrum SAFe LeSS µ µ µµ › Mikroarchitektur › Teamintern › Emergent › Makroarchitektur › Übergreifend › Intentional
  • 18.
  • 19.
    › Migration alsChance › UI-Fragmentierung › Modellgrenzen wahren › Risiken kontrollieren › Transparenz durch technische Stories › Migration auf Organisationsebene entkoppeln 19 Fazit Handlungsempfehlung
  • 20.
    › Blessing et.al.: DRM, A Design Research Methodology (2009), Springer/London, 1. Auflage › Evans: Domain-Driven Design (2004), Boston, 1. Auflage › Cervantes et. al.: Designing software architectures (2016), Addison-Wesley/Boston, 1. Auflage › Newman: Building Microservices (2015), O‘Reilly/Sebastopol, 1. Auflage › Stine: Migrating to Cloud-Native Application Architectures (2016), O‘Reilly/Sebastopol, 1. Auflage › Wolff: Microservices (2016), dpunkt/Heidelberg, 1. Auflage 20 Quellen Literatur
  • 21.
    › Larman et.al.: Large-Scale Scrum: Scrum erfolgreich skalieren mit LeSS (2017), dpunkt/Heidelberg, 1. Auflage › Leffingwell: SAFe 4.0 Reference Guide (2016), Addison-Wesley/Boston, 1. Auflage › Mathis et. al.: SAFe: das Scaled Agile Framework (2016), depunkt/Heidelberg, 1. Auflage › Rubin: Essential Scrum (2014), mitp/Heidelberg, 1. Auflage 21 Quellen Literatur (II)
  • 22.
    › Hodgson: FeatureToggles (2017) https://martinfowler.com/articles/feature-toggles.html abgerufen am 02.01.2018 › Lewis et. al.: Microservices (2014) https://martinfowler.com/articles/microservices.html abgerufen am 02.01.2018 › Posta.: Low-Risk Monolith to Microservice Evolution Part I (2017) http://blog.christianposta.com/microservices/low-risk-monolith-to-microservice-evolution/ abgerfufen am 02.01.2018 › Sato: CanaryRelease (2014) https://martinfowler.com/bliki/CanaryRelease.html abgerufen am 02.01.2018 22 Quellen Internetquellen
  • 23.
    › [1] SCSArchitecture (2018), http://scs-architecture.org/ › [2] Sato: CanaryRelease (2014) https://martinfowler.com/bliki/CanaryRelease.html abgerufen am 02.01.2018 (vereinfacht) › [3] Hodgson: Feature Toggles (2017) https://martinfowler.com/articles/feature-toggles.html abgerufen am 02.01.2018 (vereinfacht) › [4] Leffingwell: Program and Value Stream Backlog (2017) http://v4.scaledagileframework.com/program-and- value-stream-backlogs/ abgerufen am 04.01.2018 (vereinfacht) › Icons made by Freepik from www.flaticon.com › Alle nicht-markierten Abbildung: © Johannes Giani & inovex GmbH (2017-2018) 23 Quellen Abbildungen
  • 24.
    Vielen Dank Johannes Giani inovexGmbH Ludwig-Erhard-Allee 6 76131 Karlsruhe jgiani@inovex.de 0152 33181232