sie brauchen doch gar keine microservices ( oder?) · microservices at netflix scale: principles,...
TRANSCRIPT
Copyright © Accso – Accelerated Solutions GmbH 1v.3v.3.18
Sie brauchen doch gar keine Microservices(... oder?)MARTIN LEHMANN, DR. RENATO VINGA-MARTINS
@mrtnlhmnn @accso
Frankfurter Entwicklertag 2019, 21. Februar 2019
Copyright © Accso – Accelerated Solutions GmbH 2
Hype, Innovation oder State-of-the-Art? Den Begriff Microservice gibt es seit 2011 und er wird inflationär verwendet. Ob man den Schritt hin zu Microservice wagen soll oder nicht, ist eine Entscheidung, die man sehr bewusst und gezielt treffen sollte.
Wir geben in diesem Talk eine Entscheidungshilfe und nähern uns dem Thema aus den Blickwinkeln Fachlichkeit und Architektur. Und wir machen es uns einfach: Wir raten in diesem Talk vom Microservices-Einsatz kurzerhand ab. Äh, wie bitte? Ja, richtig gelesen - wir raten vom Microservice-Einsatz ab, ...
..., wenn fachliche und organisatorische Komplexität nicht groß genug ist! Schon Martin Fowler rät: Don't even considermicroservices unless you have a system that's too complex to manage as a monolith. Doch was meint Fowler eigentlich mit "complex"? Wann ist ein IT-Vorhaben nur kompliziert?
..., wenn das Team nicht oder wenig dynamisch / flexibel agieren muss! In welchen Größenordnungen ist das eigentlich der Fall? Muss man schon Netflix sein oder geht's eine Nummer kleiner?
..., wenn der fachliche Schnitt nicht klar ist! Reicht da schon Datenhoheit als Kriterium aus? Wieviel fachliche Strukturierung brauchen wir? Wie groß oder klein ist denn "Micro"? Wie vermeidet man ein Microservice-Spaghetti?
..., wenn man sich nicht (vorher) die architektonischen und fachlichen Laufzeit-Auswirkungen klar macht! Das in Microservices geschnittene "Verteilte System" erfordert z. B., mit deutlich erhöhten Latenzen umzugehen. Und es zwingt einen, sich mit Eventual Consistency zu beschäftigen und mit teilfertigen, fachlich nicht (immer) konsistenten Teilzuständen.
..., wenn die Frage nach Integration nicht geklärt ist! Der ESB ist aus guten Gründen verpönt. Aber irgendeine Integrationstechnologie brauchen wir doch? Insbesondere ist auch die Integration bei gemeinsamen Benutzeroberflächen zu klären: Was für Web-Oberflächen recht einfach ist, ist für native oder andere Clients schon gar nicht mehr so klar.
Microservices sind also ... vor allem nicht trivial. Sie betreffen verschiedenste fachliche, architektonische und organisatorische Aspekte. Wer da nicht alle Herausforderungen durchdenkt oder sich ihrer zumindest bewusst ist - nun, dem hatten wir ja auch abgeraten :-)
Abstract – Frankfurter Entwicklertag 2019https://entwicklertag.de/frankfurt/2019/sie-brauchen-doch-gar-keine-microservices-oder
Copyright © Accso – Accelerated Solutions GmbH 3
Martin LehmannAccso - Accelerated Solutions GmbHCheftechnologe
Martin Lehmann ist Diplom-Informatiker und arbeitet als Cheftechnologe bei der Accso -Accelerated Solutions GmbH. Seit Ende der 90er-Jahre arbeitet er als Softwarearchitekt und-entwickler in der Softwareentwicklung in Individualentwicklungsprojekten für Kunden verschiedener Branchen. Er interessiert sich besonders für die Herausforderungen Verteilter Systeme.
[email protected] @mrtnlhmnn www.xing.com/profile/Martin_Lehmann3
Dr. Renato Vinga-MartinsAccso - Accelerated Solutions GmbHDr. Renato Vinga-Martins arbeitet bei der Accso – Accelerated Solutions GmbH mit technologischem Schwerpunkt als Architekt, Berater und Projektleiter in allen Phasen der Individualsoftware-Entwicklung. Er begleitet seit über 20 Jahren Kunden in ihren Projekten.
Copyright © Accso – Accelerated Solutions GmbH 4
MonolithPhoto by Brian Breeden on Unsplash
Copyright © Accso – Accelerated Solutions GmbH 5
ModulithPhoto by Annie Spratt on Unsplash
Copyright © Accso – Accelerated Solutions GmbH 6
MicroservicesPhoto by Jarren Simmons on Unsplash
Copyright © Accso – Accelerated Solutions GmbH 7
Microservices sind in aller Munde
Copyright © Accso – Accelerated Solutions GmbH 8
Zusammenfassung
Welche Aufwände habe ich damit?
Ich gewinne an Flexibilität!
Agenda
Copyright © Accso – Accelerated Solutions GmbH 9
gute funktionale Skalierbarkeit
wachsende Komplexität, Größe
Team, Geographische VerteilungProduktgröße / Fachlichkeit
NfAs, Architektur, Technik
wachsende (Team-)
AutonomieSelbstorganisationEigenverantwortungOrganisatorische Koordinierung
stetige/steigende
InnovationsfähigkeitLiefergeschwindigkeit / Produktivität
Änderbarkeit / AnpassbarkeitErweiterbarkeit
getrennte Lebens-/Deployment-Zyklen
Copyright © Accso – Accelerated Solutions GmbH 10
Microservice-Architekturen fördern Wachstum und Flexibilität.
Photo by Brian Breeden on Unsplash
Copyright © Accso – Accelerated Solutions GmbH 11
Kosten und Nutzen sind abzuwägen!
Netflix priorisiertZiel „Innovation“
über „Zuverlässigkeit“
und „Effizienz“
Copyright © Accso – Accelerated Solutions GmbH 12
Kosten und Nutzen sind abzuwägen!
REWE priorisiertdas Ziel „Wachstum“
0-5 Teams
5-15 Teams
15-35 Teams
50+ Teams
Copyright © Accso – Accelerated Solutions GmbH 13
Wie stellt sich Komplexität dar?
Grad der VernetzungKommunikation wächst quadratisch mit der Anzahl der Teilnehmer
Copyright © Accso – Accelerated Solutions GmbH 14
Wie stellt sich Komplexität dar?
RückkopplungAuch wenige
Komponenten können bereits
unvorhersehbares Verhalten bewirken
Copyright © Accso – Accelerated Solutions GmbH 15
Microservices adressieren Komplexität,indem sie Kopplung reduzieren.
Können wir wirklich mit Team-Skill Komplexität beherrschen?
Copyright © Accso – Accelerated Solutions GmbH 16
Das Cynefin-Framework rät bei Komplexitätzu Emergent Practices.
Copyright © Accso – Accelerated Solutions GmbH 17
Komplexität senkt die Produktivität und
erfordert eigene Lösungsstrategien.
Copyright © Accso – Accelerated Solutions GmbH 18
Umgang mit Komplexität? Der Demingkreis: PDCA!
Emergent Practice: Situativ reagieren – keine Allgemeinrezepte
Copyright © Accso – Accelerated Solutions GmbH 19
Technisch orientierte Teams erzeugen Monolithen.
Copyright © Accso – Accelerated Solutions GmbH 20
Cross-funktionale Teams sind fokussiert und flexibel.
Copyright © Accso – Accelerated Solutions GmbH 21
Das Team muss Gesamtverantwortung übernehmen: Autonomie
Produkte statt Projekteüber den gesamten
Lebenszyklus
Copyright © Accso – Accelerated Solutions GmbH 22
Wie hängenKomplexitätund Autonomievoneinander ab?
Copyright © Accso – Accelerated Solutions GmbH 23
Zusammenfassung
Welche Aufwände habe ich damit?
Ich gewinne an Flexibilität!
Agenda
Copyright © Accso – Accelerated Solutions GmbH 24
gute funktionale Skalierbarkeit
strenge Konsistenzwachsende Komplexität, Größe
Team, Geographische VerteilungProduktgröße / Fachlichkeit
NfAs, Architektur, Technik
wachsende (Team-)
AutonomieSelbstorganisationEigenverantwortungOrganisatorische Koordinierung
gute technische
Beherrschbarkeittechnische SkalierbarkeitAutomatisierungDezentralisierungBerechtigungsschutzResilienceRefactoring-Fähigkeit
stetige/steigende
InnovationsfähigkeitLiefergeschwindigkeit / Produktivität
Änderbarkeit / AnpassbarkeitErweiterbarkeit
getrennte Lebens-/Deployment-Zyklen
Testbarkeit
gute Beobachtbarkeitfachliches Monitoring
technisches Monitoring
Copyright © Accso – Accelerated Solutions GmbH 25
Der fachliche Schnitt ist entscheidend
Copyright © Accso – Accelerated Solutions GmbH 26
DDD hilft bei der Modellierung fachlicher Grenzen
Daten-orientierter Schnitt
Use-Case- / User-orientierter Schnitt
Schnitt nach Konsistenz
Copyright © Accso – Accelerated Solutions GmbH 27
Welche Qualitätseigenschaften sind zu erfüllen?Strenge Konsistenz durch Orchestrierung nötig?
Copyright © Accso – Accelerated Solutions GmbH 28
Welche Qualitätseigenschaften sind zu erfüllen?Reicht Choreography mit Eventual Consistency?
Copyright © Accso – Accelerated Solutions GmbH 29
Der fachliche Gesamtüberblick darf nicht auf der Strecke bleiben! BAM? Dashboards? KPIs?
Copyright © Accso – Accelerated Solutions GmbH 30
Verteilung bedingt getrennte Datentöpfe:Keine Konsistenz, nur „Eventual Consistency“
Daten
Daten
DatenDaten
Daten Daten
Daten
Daten
Copyright © Accso – Accelerated Solutions GmbH 31
Verteilung bedingt getrennte Datenmodelle:Keine Konsistenz, nur „Eventual Consistency“
Daten
Daten
DatenDaten
Daten Daten
Daten
Daten
Copyright © Accso – Accelerated Solutions GmbH 32
Wie spielenAutonomieund Konsistenzzusammen?
Copyright © Accso – Accelerated Solutions GmbH 33
Microservices sind ein hochgradig verteiltes System!
Copyright © Accso – Accelerated Solutions GmbH 34
Verteilung & Integration: Gefahr von Zentralisierung!
Copyright © Accso – Accelerated Solutions GmbH 35
Verteilung wirkt sich aus: Test!
Copyright © Accso – Accelerated Solutions GmbH 36
Verteilung wirkt sich aus: Test! Latenz!
Copyright © Accso – Accelerated Solutions GmbH 37
Verteilung wirkt sich aus: Test! Latenz! Monitoring!
Copyright © Accso – Accelerated Solutions GmbH 38
Verteilung & Integration: Was ist mit „dem“ Client?
Copyright © Accso – Accelerated Solutions GmbH 39
Verteilung & Integration: Was ist mit „dem“ Client?
Copyright © Accso – Accelerated Solutions GmbH 40
Verteilung & Integration: Was ist mit „dem“ Client?
Copyright © Accso – Accelerated Solutions GmbH 41
Zusammenfassung
Welche Aufwände habe ich damit?
Ich gewinne an Flexibilität!
Agenda
Copyright © Accso – Accelerated Solutions GmbH 42
gute funktionale Skalierbarkeit
strenge Konsistenzwachsende Komplexität, Größe
Team, Geographische VerteilungProduktgröße / Fachlichkeit
NfAs, Architektur, Technik
wachsende (Team-)
AutonomieSelbstorganisationEigenverantwortungOrganisatorische Koordinierung
gute technische
Beherrschbarkeittechnische SkalierbarkeitAutomatisierungDezentralisierungBerechtigungsschutzResilienceRefactoring-Fähigkeit
stetige/steigende
InnovationsfähigkeitLiefergeschwindigkeit / Produktivität
Änderbarkeit / AnpassbarkeitErweiterbarkeit
getrennte Lebens-/Deployment-Zyklen
Testbarkeit
gute Beobachtbarkeitfachliches Monitoring
technisches Monitoring
Copyright © Accso – Accelerated Solutions GmbH 43
gute funktionale Skalierbarkeit
strenge Konsistenzwachsende Komplexität, Größe
Team, Geographische VerteilungProduktgröße / Fachlichkeit
NfAs, Architektur, Technik
wachsende (Team-)
AutonomieSelbstorganisationEigenverantwortungOrganisatorische Koordinierung
gute Beobachtbarkeitfachliches Monitoring
technisches Monitoring
gute technische
Beherrschbarkeittechnische SkalierbarkeitAutomatisierungDezentralisierungBerechtigungsschutzResilienceRefactoring-Fähigkeit
stetige/steigende
InnovationsfähigkeitLiefergeschwindigkeit / Produktivität
Änderbarkeit / AnpassbarkeitErweiterbarkeit
getrennte Lebens-/Deployment-Zyklen
Testbarkeit
Copyright © Accso – Accelerated Solutions GmbH 444444
Accso – Accelerated Solutions GmbHT | +49 6151 13029-0E | [email protected]@ | www.accso.de
Berliner Allee 58 | 64295 DarmstadtMoltkestraße 131a | 50674 KölnBalanstraße 55 | 81541 München
Artikelserie in Informatik Aktuell
https://www.informatik-aktuell.de/entwicklung/methoden/microservices-fachliche-entscheidungshilfen-fuer-den-einsatz.html
https://tinyurl.com/y2455sun
Copyright © Accso – Accelerated Solutions GmbH 454545
Accso – Accelerated Solutions GmbHT | +49 6151 13029-0E | [email protected]@ | www.accso.de
Berliner Allee 58 | 64295 DarmstadtMoltkestraße 131a | 50674 KölnBalanstraße 55 | 81541 München
https://speakerdeck.com/mrtnlhmnn
@accso@mrtnlhmnn
https://accso.de/tag/microservices/
https://accso.de/ueber-uns/veroeffentlichungen-und-konferenzbeitraege/
Copyright © Accso – Accelerated Solutions GmbH 47
Bildquellen
Folie 11 - Netflix' PrioritätenMicroservices at Netflix Scale: Principles, Tradeoffs & Lessons Learned (GOTO 2016); Ruslan Meshenberg (Netflix); 09/2016; https://www.youtube.com/watch?v=57UK46qfBLY; 16:40
Folie 12 - REWE WachstumVom Testen von Monolithen zur Qualitätssicherung für Microservices; Oliver Monneke, Michael Kutz; 06/2018; https://prezi.com/p/4bwxooscihil/2018-06-26-rewe-digital-meetup-juni/
Folie 13 - Netflix Deathstarhttps://www.slideshare.net/adriancockcroft/goto-berlinMigrating to Microservices (GOTO14); Adrian Cockcroft (Netflix); 11/2014
Folie 14 - DoppelpendelDouble Pendulum Chaos Light Writing (computer simulation) 4; Paul Nathan; 10/2010; https://www.youtube.com/watch?v=V4hvENrtMeE&feature=youtu.be
Folie 15, 17 - Martin Fowlerhttps://martinfowler.com/
Copyright © Accso – Accelerated Solutions GmbH 48
Folie 15 - ProduktivitätMicroservicePremium; Martin Fowler; 03/2015; https://martinfowler.com/bliki/MicroservicePremium.html
Folie 16, 17 - Dave Snowdenhttps://cognitive-edge.com/our-people/dave-snowden/
Folie 16, 18 - Cynefin-Frameworkhttps://en.wikipedia.org/wiki/Cynefin_framework
Folie 18 - William Edwards Deminghttps://de.wikipedia.org/wiki/William_Edwards_Deming
Folie 18 - Demingkreishttps://de.wikipedia.org/wiki/Demingkreis
Folie 19, 20 - Cross-/Funktionale TeamsMicroservices - a definition of this new architectural term; James Lewis, Martin Fowler; 03/2014; https://www.martinfowler.com/articles/microservices.html
Bildquellen
Copyright © Accso – Accelerated Solutions GmbH 49
Folie 19, 20 - Melvin Conwayhttps://twitter.com/conways_law
Folie 21 - TeambuildingTeambuilding Übungen: Bessere Teams bauen; https://karrierebibel.de/teambuilding/
Folie 21 - Teams Trudy Mandeville; https://globaltalentadvisors.com/2017/04/the-importance-of-cross-functional-instructional-design-teams/
Folie 21 - Delegation Pokerhttps://management30.com/practice/delegation-poker/
Folie 25, 26 - Monoliths and MicroservicesMicroservices - a definition of this new architectural term; James Lewis, Martin Fowler; 03/2014; https://www.martinfowler.com/articles/microservices.html
Bildquellen
Copyright © Accso – Accelerated Solutions GmbH 50
Folie 26 - Bounded ContextBounded Context; Martin Fowler; 01/2014; https://martinfowler.com/bliki/BoundedContext.html
Folie 27, 28 - Oliver Wolf: Introduction into MicroservicesIntroduction into Microservices; Oliver Wolf; https://specify.io/concepts/microservices ; Original examples publishedin: Building Microservices: Designing Fine-Grained Systems; Sam Newman; 2015; ISBN: 978-1-491-95035-7
Folie 29 - BPMN, WorkflowWer Microservices richtig macht, braucht keine Workflow Engine und kein BPMN; 09/2015; Tobias Flohre; https://blog.codecentric.de/2015/09/wer-microservices-richtig-macht-braucht-keine-workflow-engine-und-kein-bpmn/
Folie 33, 34 - Netflix-Traffic-Flow (Vizceral)Mastering Chaos - A Netflix Guide to Microservices (QCon 2016); Josh Evans (Netflix); 06/2016; https://www.youtube.com/watch?v=CZ3wIuvmHeM ; 2:20
Folie 35, 36, 37 - Simian Army in Chaos Engineeringhttps://en.wikipedia.org/wiki/Chaos_engineering
Bildquellen
Copyright © Accso – Accelerated Solutions GmbH 51
Folie 38, 39, 40- Client-IntegrationArchitektur-Spicker Nr. 3: Microservices; Team embarc; 02/2016; http://www.embarc.de/wp-content/uploads/2016/06/Architektur-Spicker3-Microservices.pdf
Bildquellen
Copyright © Accso – Accelerated Solutions GmbH 52
SHARING YOURCHALLENGE
52 Copyright © Accso GmbH
Accso – Accelerated Solutions GmbHT | +49 6151 13029-0E | [email protected]@ | www.accso.de
Berliner Allee 58 | 64295 DarmstadtMoltkestraße 131a | 50674 KölnBalanstraße 55 | 81541 München