inovex Meetup Cologne Johannes Giani Köln, 14.05 · • Seit Juli 2017 bei inovex • Masterthesis...
Transcript of inovex Meetup Cologne Johannes Giani Köln, 14.05 · • Seit Juli 2017 bei inovex • Masterthesis...
Let‘s talk aboutMicroservice 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 GianiApplication Development
1. Einführung2. Methodik3. Handlungsempfehlung4. Fazit
3
AgendaDer 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
MicroservicesEigenschaften
› 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 SoftwareentwicklungScrum und agile Methoden
Methodik
› Jugendförderung
› Lebensmittel und Haushaltswaren
› Automobil
› Versandhandel
8
ErhebungBeleuchtung verschiedener Szenarien
9
Leitfadengestützte ExperteninterviewsErhebung & Auswertung
Handlungsempfehlung
› In Abhängigkeit zum Monolithen› Extraktion› Sukzessive Neuentwicklung
› Losgelöst vom Monolithen› Gänzliche Neuentwicklung
11
VeränderungWas? Grüne Wiese oder hybrider Acker?
12Self-contained Systems (2017): http://scs-architecture.org/
Dekomposition des SystemsWie? Die Zielarchitektur
Präsentation
Anwendung
Daten
Microservice
Microservice / Self-containedSystem (SCS)
[1]
13
Dekomposition des Systems (II)Wie? Zielarchitektur
› Frontend-Monolith › Frontend-Fragmente
Präsentation
Anwendung
Daten
Mic
rose
rvic
e
Microservice/
SCS
› Fachlich abgeschlossener Kontext› Pilot-Projekt
› Grenzen schützen› Anti-Corruption Layer (ACL)
14
Bounded ContextWo beginnen?
Monolith
Micro-service
ACL
15
Risiken kontrollierenWomit?
› 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/
TransparenzWozu?
[4]
› Migration auf Organisationsebene› Entkoppeln
17
Agile TransformationWann 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
FazitHandlungsempfehlung
› 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. Auflage21
QuellenLiteratur (II)
› Hodgson: Feature Toggles (2017) https://martinfowler.com/articles/feature-toggles.htmlabgerufen am 02.01.2018
› Lewis et. al.: Microservices (2014) https://martinfowler.com/articles/microservices.htmlabgerufen 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.htmlabgerufen am 02.01.2018
22
QuellenInternetquellen
› [1] SCS Architecture (2018), http://scs-architecture.org/
› [2] Sato: CanaryRelease (2014) https://martinfowler.com/bliki/CanaryRelease.htmlabgerufen am 02.01.2018 (vereinfacht)
› [3] Hodgson: Feature Toggles (2017) https://martinfowler.com/articles/feature-toggles.htmlabgerufen 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
QuellenAbbildungen
Vielen Dank
Johannes Giani
inovex GmbHLudwig-Erhard-Allee 676131 Karlsruhe
[email protected] 33181232