Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Sie brauchen doch gar keine Microservices (... oder?)

Sie brauchen doch gar keine Microservices (... oder?)

Vortrag Martin Lehmann, Dr. Renato Vinga-Martins: "Sie brauchen doch gar keine Microservices (... oder?)".
Frankfurter Entwicklertag 2019, 21. Februar 2019
https://entwicklertag.de/frankfurt/2019/sie-brauchen-doch-gar-keine-microservices-oder

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 consider microservices 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 :-)

Martin Lehmann

February 21, 2019
Tweet

More Decks by Martin Lehmann

Other Decks in Technology

Transcript

  1. Copyright © Accso – Accelerated Solutions GmbH 1 v.3 v.3.18

    Sie brauchen doch gar keine Microservices (... oder?) MARTIN LEHMANN, DR. RENATO VINGA-MARTINS @mrtnlhmnn @accso Frankfurter Entwicklertag 2019, 21. Februar 2019
  2. 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 consider microservices 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 2019 https://entwicklertag.de/frankfurt/2019/sie-brauchen-doch-gar-keine-microservices-oder
  3. Copyright © Accso – Accelerated Solutions GmbH 3 Martin Lehmann

    Accso - Accelerated Solutions GmbH Cheftechnologe 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-Martins Accso - Accelerated Solutions GmbH Dr. 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. [email protected]
  4. Copyright © Accso – Accelerated Solutions GmbH 8 Zusammenfassung Welche

    Aufwände habe ich damit? Ich gewinne an Flexibilität! Agenda
  5. Copyright © Accso – Accelerated Solutions GmbH 9 gute funktionale

    Skalierbarkeit wachsende Komplexität, Größe Team, Geographische Verteilung Produktgröße / Fachlichkeit NfAs, Architektur, Technik wachsende (Team-) Autonomie Selbstorganisation Eigenverantwortung Organisatorische Koordinierung stetige/steigende Innovationsfähigkeit Liefergeschwindigkeit / Produktivität Änderbarkeit / Anpassbarkeit Erweiterbarkeit getrennte Lebens-/Deployment-Zyklen
  6. Copyright © Accso – Accelerated Solutions GmbH 10 Microservice-Architekturen fördern

    Wachstum und Flexibilität. Photo by Brian Breeden on Unsplash
  7. Copyright © Accso – Accelerated Solutions GmbH 11 Kosten und

    Nutzen sind abzuwägen! Netflix priorisiert Ziel „Innovation“ über „Zuverlässigkeit“ und „Effizienz“
  8. Copyright © Accso – Accelerated Solutions GmbH 12 Kosten und

    Nutzen sind abzuwägen! REWE priorisiert das Ziel „Wachstum“ 0-5 Teams 5-15 Teams 15-35 Teams 50+ Teams
  9. Copyright © Accso – Accelerated Solutions GmbH 13 Wie stellt

    sich Komplexität dar? Grad der Vernetzung Kommunikation wächst quadratisch mit der Anzahl der Teilnehmer
  10. Copyright © Accso – Accelerated Solutions GmbH 14 Wie stellt

    sich Komplexität dar? Rückkopplung Auch wenige Komponenten können bereits unvorhersehbares Verhalten bewirken
  11. Copyright © Accso – Accelerated Solutions GmbH 15 Microservices adressieren

    Komplexität, indem sie Kopplung reduzieren. Können wir wirklich mit Team-Skill Komplexität beherrschen?
  12. Copyright © Accso – Accelerated Solutions GmbH 16 Das Cynefin-

    Framework rät bei Komplexität zu Emergent Practices.
  13. Copyright © Accso – Accelerated Solutions GmbH 17 Komplexität senkt

    die Produktivität und erfordert eigene Lösungsstrategien.
  14. Copyright © Accso – Accelerated Solutions GmbH 18 Umgang mit

    Komplexität? Der Demingkreis: PDCA! Emergent Practice: Situativ reagieren – keine Allgemeinrezepte
  15. Copyright © Accso – Accelerated Solutions GmbH 21 Das Team

    muss Gesamtverantwortung übernehmen: Autonomie Produkte statt Projekte über den gesamten Lebenszyklus
  16. Copyright © Accso – Accelerated Solutions GmbH 22 Wie hängen

    Komplexität und Autonomie voneinander ab?
  17. Copyright © Accso – Accelerated Solutions GmbH 23 Zusammenfassung Welche

    Aufwände habe ich damit? Ich gewinne an Flexibilität! Agenda
  18. Copyright © Accso – Accelerated Solutions GmbH 24 gute funktionale

    Skalierbarkeit strenge Konsistenz wachsende Komplexität, Größe Team, Geographische Verteilung Produktgröße / Fachlichkeit NfAs, Architektur, Technik wachsende (Team-) Autonomie Selbstorganisation Eigenverantwortung Organisatorische Koordinierung gute technische Beherrschbarkeit technische Skalierbarkeit Automatisierung Dezentralisierung Berechtigungsschutz Resilience Refactoring-Fähigkeit stetige/steigende Innovationsfähigkeit Liefergeschwindigkeit / Produktivität Änderbarkeit / Anpassbarkeit Erweiterbarkeit getrennte Lebens-/Deployment-Zyklen Testbarkeit gute Beobachtbarkeit fachliches Monitoring technisches Monitoring
  19. Copyright © Accso – Accelerated Solutions GmbH 26 DDD hilft

    bei der Modellierung fachlicher Grenzen Daten-orientierter Schnitt Use-Case- / User- orientierter Schnitt Schnitt nach Konsistenz
  20. Copyright © Accso – Accelerated Solutions GmbH 27 Welche Qualitätseigenschaften

    sind zu erfüllen? Strenge Konsistenz durch Orchestrierung nötig?
  21. Copyright © Accso – Accelerated Solutions GmbH 28 Welche Qualitätseigenschaften

    sind zu erfüllen? Reicht Choreography mit Eventual Consistency?
  22. Copyright © Accso – Accelerated Solutions GmbH 29 Der fachliche

    Gesamtüberblick darf nicht auf der Strecke bleiben! BAM? Dashboards? KPIs?
  23. Copyright © Accso – Accelerated Solutions GmbH 30 Verteilung bedingt

    getrennte Datentöpfe: Keine Konsistenz, nur „Eventual Consistency“ Daten Daten Daten Daten Daten Daten Daten Daten
  24. Copyright © Accso – Accelerated Solutions GmbH 31 Verteilung bedingt

    getrennte Datenmodelle: Keine Konsistenz, nur „Eventual Consistency“ Daten Daten Daten Daten Daten Daten Daten Daten
  25. Copyright © Accso – Accelerated Solutions GmbH 38 Verteilung &

    Integration: Was ist mit „dem“ Client?
  26. Copyright © Accso – Accelerated Solutions GmbH 39 Verteilung &

    Integration: Was ist mit „dem“ Client?
  27. Copyright © Accso – Accelerated Solutions GmbH 40 Verteilung &

    Integration: Was ist mit „dem“ Client?
  28. Copyright © Accso – Accelerated Solutions GmbH 41 Zusammenfassung Welche

    Aufwände habe ich damit? Ich gewinne an Flexibilität! Agenda
  29. Copyright © Accso – Accelerated Solutions GmbH 42 gute funktionale

    Skalierbarkeit strenge Konsistenz wachsende Komplexität, Größe Team, Geographische Verteilung Produktgröße / Fachlichkeit NfAs, Architektur, Technik wachsende (Team-) Autonomie Selbstorganisation Eigenverantwortung Organisatorische Koordinierung gute technische Beherrschbarkeit technische Skalierbarkeit Automatisierung Dezentralisierung Berechtigungsschutz Resilience Refactoring-Fähigkeit stetige/steigende Innovationsfähigkeit Liefergeschwindigkeit / Produktivität Änderbarkeit / Anpassbarkeit Erweiterbarkeit getrennte Lebens-/Deployment-Zyklen Testbarkeit gute Beobachtbarkeit fachliches Monitoring technisches Monitoring
  30. Copyright © Accso – Accelerated Solutions GmbH 43 gute funktionale

    Skalierbarkeit strenge Konsistenz wachsende Komplexität, Größe Team, Geographische Verteilung Produktgröße / Fachlichkeit NfAs, Architektur, Technik wachsende (Team-) Autonomie Selbstorganisation Eigenverantwortung Organisatorische Koordinierung gute Beobachtbarkeit fachliches Monitoring technisches Monitoring gute technische Beherrschbarkeit technische Skalierbarkeit Automatisierung Dezentralisierung Berechtigungsschutz Resilience Refactoring-Fähigkeit stetige/steigende Innovationsfähigkeit Liefergeschwindigkeit / Produktivität Änderbarkeit / Anpassbarkeit Erweiterbarkeit getrennte Lebens-/Deployment-Zyklen Testbarkeit
  31. Copyright © Accso – Accelerated Solutions GmbH 44 44 44

    Accso – Accelerated Solutions GmbH T | +49 6151 13029-0 E | [email protected] @ | www.accso.de Berliner Allee 58 | 64295 Darmstadt Moltkestraße 131a | 50674 Köln Balanstraß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
  32. Copyright © Accso – Accelerated Solutions GmbH 45 45 45

    Accso – Accelerated Solutions GmbH T | +49 6151 13029-0 E | [email protected] @ | www.accso.de Berliner Allee 58 | 64295 Darmstadt Moltkestraße 131a | 50674 Köln Balanstraße 55 | 81541 München https://speakerdeck.com/mrtnlhmnn @accso @mrtnlhmnn https://accso.de/tag/microservices/ https://accso.de/ueber-uns/veroeffentlichungen- und-konferenzbeitraege/
  33. Copyright © Accso – Accelerated Solutions GmbH 47 Bildquellen Folie

    11 - Netflix' Prioritäten Microservices 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 Wachstum Vom 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 Deathstar https://www.slideshare.net/adriancockcroft/goto-berlin Migrating to Microservices (GOTO14); Adrian Cockcroft (Netflix); 11/2014 Folie 14 - Doppelpendel Double 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 Fowler https://martinfowler.com/
  34. Copyright © Accso – Accelerated Solutions GmbH 48 Folie 15

    - Produktivität MicroservicePremium; Martin Fowler; 03/2015; https://martinfowler.com/bliki/MicroservicePremium.html Folie 16, 17 - Dave Snowden https://cognitive-edge.com/our-people/dave-snowden/ Folie 16, 18 - Cynefin-Framework https://en.wikipedia.org/wiki/Cynefin_framework Folie 18 - William Edwards Deming https://de.wikipedia.org/wiki/William_Edwards_Deming Folie 18 - Demingkreis https://de.wikipedia.org/wiki/Demingkreis Folie 19, 20 - Cross-/Funktionale Teams Microservices - a definition of this new architectural term; James Lewis, Martin Fowler; 03/2014; https://www.martinfowler.com/articles/microservices.html Bildquellen
  35. Copyright © Accso – Accelerated Solutions GmbH 49 Folie 19,

    20 - Melvin Conway https://twitter.com/conways_law Folie 21 - Teambuilding Teambuilding Ü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 Poker https://management30.com/practice/delegation-poker/ Folie 25, 26 - Monoliths and Microservices Microservices - a definition of this new architectural term; James Lewis, Martin Fowler; 03/2014; https://www.martinfowler.com/articles/microservices.html Bildquellen
  36. Copyright © Accso – Accelerated Solutions GmbH 50 Folie 26

    - Bounded Context Bounded Context; Martin Fowler; 01/2014; https://martinfowler.com/bliki/BoundedContext.html Folie 27, 28 - Oliver Wolf: Introduction into Microservices Introduction into Microservices; Oliver Wolf; https://specify.io/concepts/microservices ; Original examples published in: Building Microservices: Designing Fine-Grained Systems; Sam Newman; 2015; ISBN: 978-1-491-95035-7 Folie 29 - BPMN, Workflow Wer 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 Engineering https://en.wikipedia.org/wiki/Chaos_engineering Bildquellen
  37. Copyright © Accso – Accelerated Solutions GmbH 51 Folie 38,

    39, 40- Client-Integration Architektur-Spicker Nr. 3: Microservices; Team embarc; 02/2016; http://www.embarc.de/wp-content/uploads/2016/06/Architektur-Spicker3-Microservices.pdf Bildquellen
  38. Copyright © Accso – Accelerated Solutions GmbH 52 SHARING YOUR

    CHALLENGE 52 Copyright © Accso GmbH Accso – Accelerated Solutions GmbH T | +49 6151 13029-0 E | [email protected] @ | www.accso.de Berliner Allee 58 | 64295 Darmstadt Moltkestraße 131a | 50674 Köln Balanstraße 55 | 81541 München