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

iSAQB FLEX Schulung

160

iSAQB FLEX Schulung

WPS – Workplace Solutions

September 24, 2020
Tweet

Transcript

  1. WPS – Workplace Solutions www.wps.de MICROSERVICES UND DEVOPS KONKRET Workshop

    und Lehrplanmodul im Advanced Level iSAQB Florian von Stosch Fabian May
  2. 24.09.2020 //// Seite 3 WPS - Workplace Solutions GmbH Die

    WPS GmbH und Ihre Expertise Rund um Architekturanalyse ▪ Architektur-Review und Qualitätsgutachten ▪ Architektur- und Refactoring-Beratung ▪ Architekturstile - Einführung und Entwicklung Rund um IT-Landschaften ▪ Analyse der Ist/Soll-Geschäftsprozesse mit Fachanwendern ▪ Darstellung von komplexen IT- Landschaften ▪ Qualitäts- und Testmanagement Software- Architektur Anforderungs- ermittlung Leitstand und Interaktion Individual- software Business-Software, die Spaß macht!
  3. 24.09.2020 //// Seite 6 WPS - Workplace Solutions GmbH DIE

    TRAINER Software- Architektur Anforderungs- ermittlung Arbeitsplatz der Zukunft Individual- software Business-Software, die Spaß macht! [email protected] Florian von Stosch [email protected] Fabian May
  4. 24.09.2020 //// Seite 8 WPS - Workplace Solutions GmbH INHALT

    ▪ Pflichtprogramm ▪ Motivation ▪ Modularisierung ▪ Integration ▪ Installation und Rollout ▪ Betrieb, Überwachung und Fehleranalyse ▪ Resilient Software Design ▪ Anhang ▪ Fallstudie Hotel
  5. 24.09.2020 //// Seite 2 WPS – Workplace Solutions ISAQB-ZERTIFIZIERUNGSSTUFEN Foundation

    Level Aufgaben, Methoden und Techniken für die Entwicklung von Softwarearchitekturen. Alle Aspekte, die für Softwarearchitektur wesentlich sind. Technologische, organisatorische und soziale Faktoren. Advanced Level Vertiefung des Foundation Levels. Der Lehrplan besteht aus einzelnen Modulen, die bestimmte Schwerpunkte haben. Expert Level In Planung
  6. 24.09.2020 //// Seite 3 WPS – Workplace Solutions KOMPETENZBEREICHE ADVANCED

    LEVEL ▪ Methodische Kompetenz: Systematisches Vorgehen bei Architekturaufgaben, unabhängig von Technologien. ▪ Technische Kompetenz: Kenntnis und Anwendung von Technologien zur Lösung von Entwurfsaufgaben, ▪ Kommunikative Kompetenz: Fähigkeiten zur produktiven Zusammenarbeit mit unterschiedlichen Stakeholdern, Kommunikation, Präsentation, Argumentation, Moderation → Alle drei Kompetenzbereiche müssen abgedeckt sein
  7. 24.09.2020 //// Seite 4 WPS – Workplace Solutions PRÜFUNG ISAQB

    ADVANCED LEVEL Prüfung und Zertifizierung Wenn Sie als CPSA-A geprüft werden möchten, müssen Sie sich bei einer der anerkannten Zertifizierungsstellen anmelden. Die Zertifizierungsstelle schickt Ihnen in Absprache eine Prüfungsaufgabe zu, die Sie in etwa 40 Arbeitsstunden lösen und deren Lösung Sie dokumentieren müssen. Sie schicken die Lösung an die Zertifizierungsstelle ein. Die Zertifizierungsstelle bestellt zwei unabhängige Prüfer und übergibt ihnen Ihre Lösung, so dass sie begutachtet werden kann. Die Prüfer telefonieren anschließend noch mit Ihnen als Teilnehmer. Sie müssen Ihre Lösung in diesem Gespräch erklären und verteidigen. Wenn die Prüfer bestätigen, dass Sie alle Voraussetzungen für den CPSA-A erfüllen, dass Ihre Lösung gut ist und dass Sie die Lösung gut dokumentiert, erklärt und verteidigt haben, stellt Ihnen die Zertifizierungsstelle das CPSA-A Zertifikat aus.
  8. 24.09.2020 //// Seite 5 WPS – Workplace Solutions MODUL AGILA

    (10 komm. CP, 20 method. CP) Softwaresysteme und -architekturen nach agilen Prinzipien entwerfen und weiterentwickeln ▪ Agile Prinzipien und Ideen auf Architekturarbeit übertragen ▪ Architekturpraktiken sinnvoll in agiles Vorgehen verankern ▪ Arbeiten in selbstorganisierte Teams und gemeinsam wahrgenommene Verantwortung erfordern neue Fähigkeiten, sowohl technischer als auch methodischer und kommunikativer Art. Diese werden theoretisch und praktisch behandelt. Schulungsangebot: https://www.wps.de/schulung/isaqb-agila
  9. 24.09.2020 //// Seite 6 WPS – Workplace Solutions MODUL IMPROVE

    (20method. CP, 10 techn. CP) Softwarearchitekturen anhand ökonomischer und technischer Ziele systematisch verbessern ▪ Grundlagen von Evolution und Verbesserung von Softwarearchitekturen ▪ Ist-Situation analysieren ▪ Probleme und Lösungsansätze schätzen und bewerten ▪ Verbesserung langfristig planen ▪ Typische Ansätze und Beispiele für Verbesserung Schulungsangebot: https://www.wps.de/schulung/isaqb-improve/
  10. 24.09.2020 //// Seite 7 WPS – Workplace Solutions MODUL Domain-Driven

    Design (10 komm. CP, 20 method. CP) Passgenaue Softwarearchitekturen durch Kommunikation mit den Fachexperten und einheitliche Konstruktionsbausteine entwickeln ▪ Eine gemeinsame Sprache erleichtert die Zusammenarbeit ▪ Software nach fachlichen Gesichtspunkten strukturieren ▪ Kommunikation ist der Schlüssel – miteinander und zwischen Teams ▪ Bausteine von DDD geben team- übergreifende Anleitungen für die Konstruktion Schulungsangebot: https://www.wps.de/schulung/isaqb-ddd/
  11. 24.09.2020 //// Seite 8 WPS – Workplace Solutions MODUL FLEX

    (10 method. CP, 20 techn. CP) Flexible Architekturkonzepte und Methoden, um Software schnell und mit hoher Qualität in die Produktion zu bringen: ▪ Microservices entwerfen ▪ DevOps und Continuious Delivery umsetzen ▪ Containerisierung ▪ Resiliente Systeme betreiben Schulungsangebot: ▪ https://www.wps.de/schulung/isaqb-flex/
  12. 24.09.2020 //// Seite 9 WPS – Workplace Solutions Weitere Module

    Credit Points ADOK Architektur-Dokumentation: Wie dokumentiert und kommuniziert man Softwarearchitekturen? 20 method. AWERT Architektur-Bewertung: Wie findet man heraus, ob eine Architektur die Erwartungen erfüllt? 20 method. EAM Enterprise Architecture Management: Wie kann man eine große Landschaft von IT-Systemen konsistent halten? 30 method. EMBEDDED Embedded Systems: Wie entwirft man eingebettete Systeme, die direkten Einfluss auf ihre Umgebung nehmen? 10 method. 20 tech. SOA-T Serviceorientierte Architekturen: Wie entwirft man eine SOA? 10 method. 20 tech. SOFT Softskills für Software-Architekten: Wie führt man Gespräche zur Architekturfindung und präsentiert Architektur präsentiert verständlich? 30 komm. WEB Web-Architekturen: Wie gestaltet man leistungsfähige und sichere webbasierte Systeme? 30 techn.
  13. 24.09.2020 //// Seite 10 WPS – Workplace Solutions ZEITPLAN Zeit

    Inhalt 09:00-10:30 Workshop 10:30-10:45 Kaffeepause 10:45-12:30 Workshop 12:30-13:30 Mittagspause 13:30-15:00 Workshop 15:00-15:15 Kaffeepause 15:15-17:00 Workshop
  14. 24.09.2020 //// Seite 11 WPS – Workplace Solutions WAS IHR

    ERWARTEN KÖNNT ▪ Wissen aus der Literatur ▪ Erfahrungen aus der Praxis ▪ Meinung ▪ Tipps und Tricks ▪ Abwechslung von ▪ Vorträgen ▪ Übungen ▪ Ein Zertifikat
  15. 24.09.2020 //// Seite 12 WPS – Workplace Solutions WAS WIR

    VON EUCH ERHOFFEN ▪ Lust auf Neues ▪ Diskussion ▪ War Stories ▪ Fragen
  16. 24.09.2020 //// Seite 13 WPS – Workplace Solutions AUFBAU NACH

    LEHRPLAN Motivation Modularisierung Integration Installation und Rollout Betrieb, Überwachung und Fehleranalyse Case Study Resilient Software Design
  17. 24.09.2020 //// Seite 14 WPS – Workplace Solutions AUFBAU Motivation

    Modularisierung Integration Installation und Rollout Betrieb, Überwachung und Fehleranalyse Resilient Software Design Case Study Case Study Case Study Case Study Case Study Case Study
  18. 24.09.2020 //// Seite 15 WPS – Workplace Solutions VERTEILUNG NACH

    LEHRPLAN Motivation 02:00 Modularisierung 04:00 Integration 02:30 Inst. und Rollout 02:30 Betrieb + Co. 02:30 Case Study 02:30 Resilient 02:00 ZEIT
  19. 24.09.2020 //// Seite 2 WPS – Workplace Solutions VORSTELLUNGSRUNDE ▪

    Wer sind Sie? ▪ Wie lange programmieren Sie schon? In welchen Sprachen? ▪ Was wissen Sie über Microservices? ▪ Machen Sie DevOps? ▪ Arbeiten Sie in einem agilen Projekt? ▪ Haben Sie schon Domain Driven Design gehört? ▪ Was wollen Sie in den nächsten Tagen lernen?
  20. 24.09.2020 //// Seite 3 WPS – Workplace Solutions MICROSERVICES –

    WAS IST DAS? ▪ Ein Architekturstil und eine technische Idee, die mit der Modularisierung von Domänen gut zusammenpasst. ▪ unabhängig voneinander deploybar ▪ eigener Prozess (oder sogar eine eigene VM) ▪ Läuft häufig in einem eigenen Container ▪ Hält seine Daten in einer eigenen Datenbank oder einem Schema ▪ Kann in unterschiedlichen Technologien und Stylen implementiert sein → keine Wiederverwendung ▪ Hat manchmal eine GUI, und manchmal nicht ▪ Kommuniziert über Netz mit anderen Services durch verschiedene Technologien (synchron/asynchron) Micro- service A Micro- service B Micro- service C
  21. 24.09.2020 //// Seite 4 WPS – Workplace Solutions Warum Microservices?

    ▪ Antworten die man oft hört ▪ Schnellere Deployments ▪ Wir müssen weg von unserem Monolithen ▪ Microservices sind Robust ▪ Microservices sind besser wartbar und sind flexibel ▪ Microservices können einzeln skaliert werden ▪ Microservices sind austauschbar ▪ Technologiefreiheit der Teams ▪ Weniger Meetings ▪ Kosten senken ▪ Wir wollen attraktiver für Kunden und Bewerber werden
  22. 24.09.2020 //// Seite 6 WPS – Workplace Solutions Warum Microservices?

    ▪ Antworten die man oft hört ▪ Schnellere Deployments ▪ Wir müssen weg von unserem Monolithen ▪ Microservices sind Robust ▪ Microservices sind besser wartbar und sind flexibel ▪ Microservices können einzeln skaliert werden ▪ Microservices sind austauschbar ▪ Technologiefreiheit der Teams ▪ Weniger Meetings ▪ Kosten senken ▪ Wir wollen attraktiver für Kunden und Bewerber werden
  23. 24.09.2020 //// Seite 7 WPS – Workplace Solutions Time-to-Market reduzieren

    ▪ Wettbewerbsvorteil ▪ Risiko-Reduktion ▪ Kosten-Reduktion ▪ Umsatzsteigerung ▪ Flexibilität ▪ Schnelleres Feedback Kunden- nutzen Zeit Entwicklung Markttest, etc. Launch Risiko, Kosten Risiko, Kosten
  24. 24.09.2020 //// Seite 8 WPS – Workplace Solutions Agile Methoden

    Wasserfallmodell Iterativ (Scrum) Bildquellen: Wikipedia ▪ Organisatorische Antworten auf Time-to-Market ▪ In jeder Iteration/Sprint kommen klassische Phasen der Softwareentwicklung vor ▪ Nach jeder Iteration ein inkrementelles Release ▪ Qualitätsgesichert ▪ Fachliche-Erweiterung (User Story -> Kundennutzen)
  25. 24.09.2020 //// Seite 9 WPS – Workplace Solutions Kommunikation/Abstimmung/Zusammenarbeit ▪

    An der Softwareentwicklung sind viele Personen/Rollen beteiligt ▪ Personen arbeiten in Teams zusammen ▪ Die Zusammenarbeit führt zu Kommunikation und Abstimmungs- bedarf Z.B: Team A verwendet einen Webservice von Team B PO Tester Entwickler Team A Team B Architekt Kommunikation
  26. 24.09.2020 //// Seite 11 WPS – Workplace Solutions ▪ Jede

    auch kleine Änderung erfordert ein Deployment des Gesamtsystems MONOLITHEN
  27. 24.09.2020 //// Seite 12 WPS – Workplace Solutions Und was

    bleibt nach dem Hype? Gehen wir mal einen Schritt zurück. Ice Bucket Challenge
  28. 24.09.2020 //// Seite 15 WPS – Workplace Solutions Architekturziele für

    Langlebigkeit Architekturziel 1: Wartbarkeit • schnelle Fehleranalyse • schnelle Anpassungen • Handlungssicherheit • Stabilität Architekturziel 2: Flexibilität • Varianten von Geschäftsprozessen • Geänderte Anforderungen • Serviceorientierung und Skalierbarkeit • Baukastenprinzip
  29. 24.09.2020 //// Seite 16 WPS – Workplace Solutions 70% 20%

    10% Code verstehen Problem lösen Code schreiben Womit verbringen wir unsere Zeit?
  30. 24.09.2020 //// Seite 20 WPS – Workplace Solutions Komplexe Strukturen

    verstehen = Zeitgewinn! Kognitive Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata
  31. 24.09.2020 //// Seite 21 WPS – Workplace Solutions Chunking ▪

    Chunking (Bündelung) ▪ George A. Miller (1956) ▪ Aussagen über den Umfang der Kurzzeitgedächtnisspanne ▪ Einzelne Chunks unbedeutend für Kurzzeitbehalten ▪ 7±2 Chunks ▪ Neuere Untersuchungen: 3 bis 4 Chunks ▪ BYGROUPINGITEMSINTOUNITSWEREMEMBERBETTER ▪ BY GROUPING ITEMS INTO UNITS WE REMEMBER BETTER
  32. 24.09.2020 //// Seite 22 WPS – Workplace Solutions Nicht die

    Nähe der Chunks ist entscheidend @ naturfotographen-forum.de Marion Meixner
  33. 24.09.2020 //// Seite 23 WPS – Workplace Solutions Sondern zusammenhängende

    Einheiten @ www.fotocommunity.de Jan Schwensweger
  34. 24.09.2020 //// Seite 24 WPS – Workplace Solutions Komplexe Strukturen

    verstehen = Zeitgewinn! Kognitive Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata Einfache, einheitliche Architektur Modularität
  35. 24.09.2020 //// Seite 26 WPS – Workplace Solutions Komplexe Strukturen

    verstehen = Zeitgewinn! Kognitive Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata Einfache, einheitliche Architektur Hierarchisierung Modularität
  36. 24.09.2020 //// Seite 27 WPS – Workplace Solutions ▪ Hilfsmittel

    des Menschen, um Informationen eine Bedeutung zuzuordnen ▪ Komplexe Zusammenhänge werden strukturiert ▪ Eine mentale Wissensstruktur, die Information über ein bestimmtes Objekt oder Konzept in abstrakter, generalisierter Form enthält Schema Schema: Reihenhaus
  37. 24.09.2020 //// Seite 28 WPS – Workplace Solutions Mein Großvater

    war Säumer… Schemas müssen bekannt sein Meine Eltern sind Lehrer
  38. 24.09.2020 //// Seite 31 WPS – Workplace Solutions Komplexe Strukturen

    verstehen = Zeitgewinn! Kognitive Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata Hierarchisierung Modularität Musterkonsistenz → Einheitliche und durchgängige Muster → Zyklenfreiheit auf allen Ebenen → Zuständigkeit → Kopplung → Größenverhältnisse → Schnittstellen
  39. 24.09.2020 //// Seite 32 WPS – Workplace Solutions Microservice Kognitive

    Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata Hierarchisierung Modularität Musterkonsistenz These: Microservice-Architekturen sind modular, hierarchisch und haben Muster.
  40. 24.09.2020 //// Seite 35 WPS – Workplace Solutions Fehlerbehebung ▪

    Nicht nur Time-to-Market bei neuen Features ▪ Auch bei Fehlern/Bugs ▪ Modularisierung/Hierarchien ▪ Größenverhältnisse ▪ Separation of Concern (Trennung der Zuständigkeiten ) ▪ Isolation ▪ Fehlerbegrenzung nur auf eine Komponente ▪ Ggf. klare Trennung durch Prozessgrenzen => Fehler in der Kommunikation Kunden- nutzen Zeit Entwicklung Markttest, etc. Launch Risiko, Kosten Risiko, Kosten
  41. 24.09.2020 //// Seite 36 WPS – Workplace Solutions ▪ Releases

    alle 1-2 Jahre ▪ Versionen ▪ Version 5.5 – Juli 2000 ▪ Version 6.0 – August 2001 ▪ Version 6.0 SP1 – September 2002 ▪ Version 6.0 SP2 – August 2004 ▪ Version 7.0 – Oktober 2006 ▪ Version 8.0 – März 2009 ▪ Version 9.0 – März 2011 ▪ Version 10.0 – Oktober 2012 ▪ Version 11.0 – Juni 2013 ▪ Tägliche Releases Time-to-Market (Release-Frequenz) ▪ Releases alle sechs Wochen
  42. 24.09.2020 //// Seite 39 WPS – Workplace Solutions Testbarkeit &

    Testautomatisierung ▪ Testbarkeit durch Einsatz von ▪ Testframeworks ▪ Mocking ▪ Dependency Injection ▪ Klaren Modulgrenzen/Schnittstellen ▪ Automatisierung nicht nur bei Unit Test ▪ Weitere Testarten ▪ Last & Performancetests ▪ Tests von Code-Qualitätsmetriken Akzeptanztests Integrationstests Unit-Tests Testpyramide
  43. 24.09.2020 //// Seite 40 WPS – Workplace Solutions Vereinheitlichung der

    Umgebungen Frühe Fehlererkennung Reproduzierbarkeit Entwicklung QA Stage Prod
  44. 24.09.2020 //// Seite 41 WPS – Workplace Solutions Automatisierung der

    gesamten Build-Pipeline Entwicklung Build Tests Deployment Testbetrieb Dauerbetrieb Continous Delivery setzt Continous Integration voraus
  45. 24.09.2020 //// Seite 44 WPS – Workplace Solutions Zeit Micro-

    service A Micro- service B Micro- service B 21.05.19 //// Seite 44 WPS – Workplace Solutions Zeit Micro- service A Micro- service B Micro- service B
  46. 24.09.2020 //// Seite 2 WPS – Workplace Solutions WAS IST

    EVENT STORMING? ▪ Ein Workshop-Format ▪ Eine Methode… ▪ um die Domäne kennenzulernen ▪ um Geschäftsprozesse zu modellieren ▪ die Spaß macht ➔Keine Diagramme ➔Keine Tische ➔Keine Stühle @ziobrando
  47. 24.09.2020 //// Seite 3 WPS – Workplace Solutions WAS MAN

    BRAUCHT ▪ Die richtigen Leute: Fachexperten und Entwickler ▪ Einen offenen Geist ▪ Eine Sammlung Sticker in verschiedenen Farben ▪ Eine leere Wand die ca. 10 Meter lang ist ▪ Eine lange Rolle Papier, die man auf der Wand befestigen kann
  48. 24.09.2020 //// Seite 4 WPS – Workplace Solutions Schritt 2:

    Was ist in diesem Anwendungsfall alles passiert? SAALPLAN GEÖFFNET
  49. 24.09.2020 //// Seite 5 WPS – Workplace Solutions SAALPLAN GESCHLOSSEN

    NACH KARTEN GEFRAGT EVENT STORMING IM KINO SAALPLAN GEÖFFNET PLÄTZE GESUCHT KARTE GEDRUCKT KARTE BEZAHLT WOCHENPLAN GEDRUCKT PLÄTZE RESERVIERT KOMMT PER TELEFON
  50. 24.09.2020 //// Seite 6 WPS – Workplace Solutions IM ECHTEN

    LEBEN REICHT UNS OFT EIN „BIG PICTURE EVENT STORMING“… SAALPLAN GEÖFFNET … nur mit orangen Stickies!
  51. 24.09.2020 //// Seite 7 WPS – Workplace Solutions Schritt 3:

    Was wurde in diesem Anwendungsfall gemacht? SAALPLAN GEÖFFNET FRAGE NACH KARTE
  52. 24.09.2020 //// Seite 8 WPS – Workplace Solutions SAALPLAN GEÖFFNET

    FRAGE NACH KARTE Schritt 4: Wer war in diesem Anwendungsfall aktiv? KARTEN- VERKÄU- FER
  53. 24.09.2020 //// Seite 9 WPS – Workplace Solutions ENTITY WELCHE

    ARTEN VON STICKIES HABEN WIR VERWENDET? TIEFENZAHL
  54. 24.09.2020 //// Seite 11 WPS – Workplace Solutions NOCH EINMAL

    DIE WICHTIGSTEN STICKIES! ERZEUGE EINE SERIE VON DOMAIN EVENTS ▪ Arbeite den Geschäftsprozess als eine Serie von DOMAIN EVENTS aus ▪ Orange Stickies ▪ Verben in der Vergangenheitsform ▪ Relevant für die Fachexperten DOMAIN EVENT
  55. 24.09.2020 //// Seite 12 WPS – Workplace Solutions ERZEUGE DIE

    VERANTWORTLICHEN COMMANDS ▪ Für jedes Domain Event erzeugt man einen Command, der ihn verursacht ▪ Blaue Stickies ▪ Im Imperativ ▪ Die Akteure kommen auf kleine grüngelbe Stickies COMMAND DOMAIN EVENT
  56. 24.09.2020 //// Seite 18 WPS – Workplace Solutions ZUSAMMENFASSUNG ▪

    Event Storming ist eine Workshop-basierte Methode zur Geschäftsprozess-Analyse und - Modellierung ▪ Das Modell wird auf einer breiten Wand entwickelt ▪ Hauptwerkzeug sind Klebezettel (Stickies)
  57. 24.09.2020 //// Seite 19 WPS – Workplace Solutions ÜBUNG: EVENT

    STORMING ▪ Lesen Sie die Fallstudie ▪ Erarbeiten Sie sich die Domäne in Gruppen indem Sie gemeinsam ein Event Storming durchführen
  58. 24.09.2020 //// Seite 2 WPS – Workplace Solutions Überblick Modularisierung

    Integration Inst. + Rollout Betrieb + Co. Resilient
  59. 24.09.2020 //// Seite 3 WPS – Workplace Solutions PROBLEMRAUM VERSUS

    LÖSUNGSRAUM (PROBLEM SPACE VS. SOLUTIONS SPACE) ▪ Problemraum: ▪ Ermöglicht uns, über die geschäftlichen Herausforderungen nachzudenken ▪ Hier befinden wir uns nur in der Fachlichkeit ▪ Lösungsraum: ▪ Konzentriert darauf, wie wir die Software implementieren, die das Problem löst ▪ Hier gibt es auch Technik ▪ (1-n) Bounded Contexts ▪ Eine Menge von spezifischen Softwaremodellen
  60. 24.09.2020 //// Seite 4 WPS – Workplace Solutions SUBDOMAINS ▪

    Teil der Domäne ▪ Fachliche Einteilung ▪ Schon da ▪ Problemraum
  61. 24.09.2020 //// Seite 5 WPS – Workplace Solutions VERHÄLTNIS BOUNDED

    CONTEXT/SUBDOMAIN ▪ In einem Projekt das auf der grünen Wiese mit Strategischem Design gebaut wurde haben wir eine 1:1-Abbildung von BC und Subdomain ▪ In der echten Welt ist oft ein Mismatch vorhanden ▪ Legacy-Systeme sind oft »Unbounded Contexts« Zwei Seiten einer Medaille
  62. 24.09.2020 //// Seite 6 WPS – Workplace Solutions TIDE-VORHER- SAGE

    TIEFEN-MESSUNG MANÖVER- PANUNG IM HAFEN: SUBDOMAINS = BOUNDED CONTEXTS TIDE- VORHER- SAGE TIEFEN- MESSUNG
  63. 24.09.2020 //// Seite 8 WPS – Workplace Solutions HAUPTBUCH- FÜHRUNG

    SUB-DOMÄNEN/ABTEILUNGEN VS. BOUNDED CONTEXTS VERTRIEB LOHNBUCH- HALTUNG HR ▪ Ziel: Eins-zu-eins-Abbildung ▪ In brownfield-Situation oft nicht möglich • Graue Flächen – Subdomänen • Bunte Linien – Bounded Contexts
  64. 24.09.2020 //// Seite 9 WPS – Workplace Solutions KERNDOMÄNE (CORE

    DOMAIN) ▪ Teil der Geschäftsdomäne ▪ Von entscheidender Wichtigkeit für den Unternehmenserfolg ➔Hier muss die Firma sich hervorherben ➔Dieses Projekt sollte die höchste Priorität bekommen ➔Das Softwaresystem, das die Kerndomäne repräsentiert, ist ein Wettbewerbsvorteil, kein notwendiges Übel
  65. 24.09.2020 //// Seite 10 WPS – Workplace Solutions UNTERSTÜTZENDE UND

    ALLGEMEINE SUBDOMÄNE (SUPPORTING AND GENERIC SUBDOMAIN) ▪ Unterstützende Subdomäne ▪ Modelliert einen Aspekt, der entscheidend ist, aber nicht Teil des Kerns ▪ Teilweise spezialisiert für das Geschäft ▪ Allgemeine Subdomäne ▪ Nicht spezialisiert ▪ Notwendig für die Gesamtlösung ➔Nicht unwichtig! ➔Kein Bedarf hier exzellent zu sein
  66. 24.09.2020 //// Seite 12 WPS – Workplace Solutions ÜBUNG: SUBDOMAINS

    ▪ Subdomänen finden: ▪ Welche Subdomänen haben Sie? ▪ Subdomänen klassifizieren: ▪ Was ist Core Domain? ▪ Was Supporting/Generic?
  67. 24.09.2020 //// Seite 2 WPS – Workplace Solutions Überblick Modularisierung

    Integration Inst. + Rollout Betrieb + Co. Resilient
  68. 24.09.2020 //// Seite 3 WPS – Workplace Solutions Exkurs: Strategisches

    Design mit DDD DDD liefert mit seinem „Strategic Design“ die Grundlage für die Dekomposition in kleinere Services / Teams
  69. 24.09.2020 //// Seite 5 WPS – Workplace Solutions IN SCHÖNHEIT

    STERBEN ▪ Technische Schönheit wird uns nicht helfen, wenn wir unsere Fachexperten (domain experts) nicht unterstützen
  70. 24.09.2020 //// Seite 6 WPS – Workplace Solutions WAS IST

    DIE DOMÄNE? ▪ Domäne: Ein abgrenzbares Problemfeld, dem eine Software gewidmet ist ▪ Software entspringt einer Domäne und steht damit in engem Zusammenhang ▪ Es ist verlockend, zu viel Zeit mit dem Code zu verbringen!
  71. 24.09.2020 //// Seite 7 WPS – Workplace Solutions WAS IST

    DOMAIN-DRIVEN DESIGN? ▪ Eine Herangehensweise an die Entwicklung von Software, ▪ zentraler Bestandteil: Implementierung eines Domänenmodells ▪ Oder mehrerer Domänenmodelle ▪ Es vereint ▪ Entwurf ▪ Entwicklungspraxis
  72. 24.09.2020 //// Seite 8 WPS – Workplace Solutions BOUNDED CONTEXTS

    ▪ Jedes Modell hat einen Kontext ▪ Kontext = Grundsätzliche Voraussetzungen, damit Begriffe eine bestimmte Bedeutung erhalten ▪ Wird ein Modell aufgespalten, so ist für jedes Teilmodell eine Kontextdefinition erforderlich ▪ Setze explizite Grenzen in der… ▪ Organisation von Teams ▪ Benutzung von Teilen der Applikation ▪ Codebasis ▪ Entwicklung von Datenbank-Schemas
  73. 24.09.2020 //// Seite 9 WPS – Workplace Solutions LIVING IN

    A BOX ▪ Erhalte die Konsistenz innerhalb der Grenzen ▪ Keine Ablenkung durch äußere Angelegenheiten ▪ Freie Gestaltung eines Teilmodells durch das zugehörige Team ▪ Kenne die Restriktionen ▪ Bleibe innerhalb der Modellgrenzen
  74. 24.09.2020 //// Seite 10 WPS – Workplace Solutions JEDER BOUNDED

    CONTEXT HAT SEIN EIGENES MODELL ‍ ♂️
  75. 24.09.2020 //// Seite 11 WPS – Workplace Solutions STRATEGISCHES DESIGN

    Strategisches Modellieren (im Großen) ▪ Teile die Domäne in getrennte Bounded Contexts auf ▪ Jeder BC hat seine eigene ubiquitous language und sein eigenes Domänenmodell ▪ Arten von Subdomänen ▪ Kern (Core Domain) ▪ Unterstützende (Supporting Domain) ▪ Allgemeine (Generic Domain)
  76. 24.09.2020 //// Seite 12 WPS – Workplace Solutions Domain Storytelling

    KINO- BESUCHER KASSEN- MITARBEITER KARTEN VORSTELLUNG 1 FRAGT NACH FÜR EINE SAALPLAN 2 ÖFFNET
  77. 24.09.2020 //// Seite 13 WPS – Workplace Solutions KASSEN- MITARBEITER

    KINO- BESUCHER WOCHENPLAN << in Arbeit >> GEWÜNSCHTE ANZAHL PLÄTZE SAALPLAN SAALPLAN- STAPEL VERKAUFTE PLÄTZE KARTEN VORSTELLUNG GEFUNDENE PLÄTZE SAALPLAN SAALPLAN WOCHENPLAN << finalisiert >> VERLEIHER KINO- MANAGER WERBE- AGENTUR BUCHUNGSPLAN DER WERBUNG VORGABEN FÜR FILME GESAMTDEUTSCHE BESUCHERZAHLEN VERFÜGBARKEIT VON FILMEN 1 6 2 10 5 3 8 4 7 9 11 12 13 14 SAALPLAN 15 BEGINNT SEINE ARBEIT AN DEM ÜBERPRÜFT VERHANDELT MIT FINALISIERT DEN ERZEUGT FÜR DIE NÄCHSTE WOCHE GELDSUMME KINOKARTEN BEZAHLTE KINOKARTEN FRAGT NACH FÜR EINE ÖFFNET SCHLIESST AUS DEM BIETET AN BEZAHLT AN SUCHT IM IM MARKIERT DRUCKT AUS ÜBERGIBT AN
  78. 24.09.2020 //// Seite 14 WPS – Workplace Solutions KASSEN- MITARBEITER

    KINO- BESUCHER WOCHENPLAN << in Arbeit >> GEWÜNSCHTE ANZAHL PLÄTZE SAALPLAN SAALPLAN- STAPEL VERKAUFTE PLÄTZE KARTEN VORSTELLUNG GEFUNDENE PLÄTZE SAALPLAN SAALPLAN WOCHENPLAN << finalisiert >> VERLEIHER KINO- MANAGER WERBE- AGENTUR BUCHUNGSPLAN DER WERBUNG VORGABEN FÜR FILME GESAMTDEUTSCHE BESUCHERZAHLEN VERFÜGBARKEIT VON FILMEN 1 6 2 10 5 3 8 4 7 9 11 12 13 14 SAALPLAN 15 BEGINNT SEINE ARBEIT AN DEM ÜBERPRÜFT VERHANDELT MIT FINALISIERT DEN ERZEUGT FÜR DIE NÄCHSTE WOCHE GELDSUMME KINOKARTEN BEZAHLTE KINOKARTEN FRAGT NACH FÜR EINE ÖFFNET SCHLIESST AUS DEM BIETET AN BEZAHLT AN SUCHT IM IM MARKIERT DRUCKT AUS ÜBERGIBT AN Trigger Trigger
  79. 24.09.2020 //// Seite 15 WPS – Workplace Solutions KASSEN- MITARBEITER

    KINO- BESUCHER WOCHENPLAN << in Arbeit >> GEWÜNSCHTE ANZAHL PLÄTZE SAALPLAN SAALPLAN- STAPEL VERKAUFTE PLÄTZE KARTEN VORSTELLUNG GEFUNDENE PLÄTZE SAALPLAN SAALPLAN WOCHENPLAN << finalisiert >> VERLEIHER KINO- MANAGER WERBE- AGENTUR BUCHUNGSPLAN DER WERBUNG VORGABEN FÜR FILME GESAMTDEUTSCHE BESUCHERZAHLEN VERFÜGBARKEIT VON FILMEN 1 6 2 10 5 3 8 4 7 9 11 12 13 14 SAALPLAN 15 BEGINNT SEINE ARBEIT AN DEM ÜBERPRÜFT VERHANDELT MIT FINALISIERT DEN ERZEUGT FÜR DIE NÄCHSTE WOCHE GELDSUMME KINOKARTEN BEZAHLTE KINOKARTEN FRAGT NACH FÜR EINE ÖFFNET SCHLIESST AUS DEM BIETET AN BEZAHLT AN SUCHT IM IM MARKIERT DRUCKT AUS ÜBERGIBT AN Trigger Einmal pro Woche Trigger
  80. 24.09.2020 //// Seite 16 WPS – Workplace Solutions KASSEN- MITARBEITER

    KINO- BESUCHER WOCHENPLAN << in Arbeit >> GEWÜNSCHTE ANZAHL PLÄTZE SAALPLAN SAALPLAN- STAPEL VERKAUFTE PLÄTZE KARTEN VORSTELLUNG GEFUNDENE PLÄTZE SAALPLAN SAALPLAN WOCHENPLAN << finalisiert >> VERLEIHER KINO- MANAGER WERBE- AGENTUR BUCHUNGSPLAN DER WERBUNG VORGABEN FÜR FILME GESAMTDEUTSCHE BESUCHERZAHLEN VERFÜGBARKEIT VON FILMEN 1 6 2 10 5 3 8 4 7 9 11 12 13 14 SAALPLAN 15 BEGINNT SEINE ARBEIT AN DEM ÜBERPRÜFT VERHANDELT MIT FINALISIERT DEN ERZEUGT FÜR DIE NÄCHSTE WOCHE GELDSUMME KINOKARTEN BEZAHLTE KINOKARTEN FRAGT NACH FÜR EINE ÖFFNET SCHLIESST AUS DEM BIETET AN BEZAHLT AN SUCHT IM IM MARKIERT DRUCKT AUS ÜBERGIBT AN Trigger Einmal pro Woche Immer wenn ein Kunde kommt Trigger
  81. 24.09.2020 //// Seite 17 WPS – Workplace Solutions KASSEN- MITARBEITER

    KINO- BESUCHER WOCHENPLAN << in Arbeit >> GEWÜNSCHTE ANZAHL PLÄTZE SAALPLAN SAALPLAN- STAPEL VERKAUFTE PLÄTZE KARTEN VORSTELLUNG GEFUNDENE PLÄTZE SAALPLAN SAALPLAN WOCHENPLAN << finalisiert >> VERLEIHER KINO- MANAGER WERBE- AGENTUR BUCHUNGSPLAN DER WERBUNG VORGABEN FÜR FILME GESAMTDEUTSCHE BESUCHERZAHLEN VERFÜGBARKEIT VON FILMEN 1 6 2 10 5 3 8 4 7 9 11 12 13 14 SAALPLAN 15 BEGINNT SEINE ARBEIT AN DEM ÜBERPRÜFT VERHANDELT MIT FINALISIERT DEN ERZEUGT FÜR DIE NÄCHSTE WOCHE GELDSUMME KINOKARTEN BEZAHLTE KINOKARTEN FRAGT NACH FÜR EINE ÖFFNET SCHLIESST AUS DEM BIETET AN BEZAHLT AN SUCHT IM IM MARKIERT DRUCKT AUS ÜBERGIBT AN Trigger Einmal pro Woche Immer wenn ein Kunde kommt Abteilung Kinomanagement Abteilung Kartenverkauf Trigger
  82. 24.09.2020 //// Seite 18 WPS – Workplace Solutions KASSEN- MITARBEITER

    KINO- BESUCHER WOCHENPLAN << in Arbeit >> GEWÜNSCHTE ANZAHL PLÄTZE SAALPLAN SAALPLAN- STAPEL VERKAUFTE PLÄTZE KARTEN VORSTELLUNG GEFUNDENE PLÄTZE SAALPLAN SAALPLAN WOCHENPLAN << finalisiert >> VERLEIHER KINO- MANAGER WERBE- AGENTUR BUCHUNGSPLAN DER WERBUNG VORGABEN FÜR FILME GESAMTDEUTSCHE BESUCHERZAHLEN VERFÜGBARKEIT VON FILMEN 1 6 2 10 5 3 8 4 7 9 11 12 13 14 SAALPLAN 15 BEGINNT SEINE ARBEIT AN DEM ÜBERPRÜFT VERHANDELT MIT FINALISIERT DEN ERZEUGT FÜR DIE NÄCHSTE WOCHE GELDSUMME KINOKARTEN BEZAHLTE KINOKARTEN FRAGT NACH FÜR EINE ÖFFNET SCHLIESST AUS DEM BIETET AN BEZAHLT AN SUCHT IM IM MARKIERT DRUCKT AUS ÜBERGIBT AN Trigger Einmal pro Woche Immer wenn ein Kunde kommt Trigger Informationsfluss Abteilung Kinomanagement Abteilung Kartenverkauf
  83. 24.09.2020 //// Seite 20 WPS – Workplace Solutions WIE SCHNEIDE

    ICH MEINE DOMÄNE? ▪ Nach Abteilungen in der Organisation bzw. Gruppen von Domänenexperten ▪ Nach Unterschieden in der Verwendung/Definition von Schlüsselkonzepten in der Domäne ▪ Nach Grenzen im Geschäftsprozess, die die Domänenexperten beschreiben ▪ Information läuft in eine Richtung ▪ Prozesse werden in unterschiedlichen Rhythmen ausgeführt ▪ Prozesse werden von verschiedenen Triggern ausgelöst.
  84. 24.09.2020 //// Seite 21 WPS – Workplace Solutions CLUES FOR

    BOUNDARIES ▪ Contextual language ▪ Data uniqueness ▪ Exclusive domain experts ▪ Business process steps ▪ Existing team/department boundaries ▪ Bottlenecks Nick Tune
  85. 24.09.2020 //// Seite 22 WPS – Workplace Solutions JEDER BOUNDED

    CONTEXT KANN EIN EIGENES TEAM HABEN ▪ Entwicklung findet parallel statt ▪ Jeder Bounded Context wird von genau einem Team betreut. ▪ Jedes Team ist für einen oder mehrere Bounded Contexts zuständig.
  86. 24.09.2020 //// Seite 23 WPS – Workplace Solutions BOUNDED CONTEXT

    UND DEPLOYMENT Distributed Big Ball Of Mud Bounded Contexts in Monolith Microservices Monolithic Big Ball Of Mud Simon Brown
  87. 24.09.2020 //// Seite 24 WPS – Workplace Solutions Wochenplanungsservice •FilmInSaalEinplanen

    •WerbungZuFilmPlanen •ErwarteteBesucherzahl •FinalPläneErzeugen Kartenverkaufsservice •ZeitenZuFilmSuchen •PlätzeSucheInSaal •PlätzeReservieren •PlätzeVerkaufen UI Wochenplanung UI Kartenverkauf UI Wochenplanung UI Kartenverkauf Wochenplanservice •ZeitenZuFilmSuchen •FilmInSaalEinplanen •WerbungZuFilmPlanen •ErwarteteBesucherzahl •FinalPläneErzeugen Saalplanservice •PlätzeSucheInSaal •PlätzeAlsReserviertMark •PlätzeAlsVerkauftMark •PläneErzeugen Bounded Context Kinomanagement Bounded Context Kartenverkauf Microservice Wochenplan Microservice Saalplan Bounded Context Kinokarte „SOA-Style“: Serviceschnitt nach Entities, hier mit synchroner Kopplung Bounded Contexts nach fachlichen Prozesse mit asynchroner Kopplung
  88. 24.09.2020 //// Seite 25 WPS – Workplace Solutions CONTINUOUS INTEGRATION

    ▪ Continuous Integration in Domain-Driven Design… ▪ findet innerhalb eines Bounded Contexts statt. ▪ bedeutet nicht, verschiedene Bounded Contexts miteinander zu integrieren.
  89. 24.09.2020 //// Seite 26 WPS – Workplace Solutions CONTINUOUS INTEGRATION

    – PRAXIS ▪ wird praktiziert durch… ▪ kontinuierliche Weiterentwicklung des Domain-Modells, ▪ frühes Zusammenführen unterschiedlicher Entwicklungsstränge (häufiges Einchecken), ▪ Kommunikation des Teams über das Domain-Modell, um ein gemeinsames Verständnis davon zu erlangen, ▪ automatisiertes Testen, ▪ reviewen, refaktorisieren und bugfixen des Domain-Modells.
  90. 24.09.2020 //// Seite 27 WPS – Workplace Solutions EVENT-DRIVEN ARCHITECTURE

    ▪ Bounded Contexts kommunizieren über Domain Events ▪ Ähnlichkeit zu Pipes-and-Filters ▪ Messaging ist Pipes ▪ Bounded Contexts sind Filters (besser Processors) ▪ Lose gekoppelt ▪ Vergleich mit Unix-Pipeline Kartenverkauf Wochenplan finalisiert
  91. 24.09.2020 //// Seite 28 WPS – Workplace Solutions ZUSAMMENFASSUNG ▪

    Große Projekte werden auf mehrere Teams aufgeteilt ▪ Ein Domänenmodell muss konsistent sein ▪ Definiere einen Bounded Context für jedes Modell ▪ Klare Grenzen ▪ Das allumfassende Modell kann oft nicht gebaut werden ▪ Bounded Contexts kommunizieren oft über Domain Events
  92. 24.09.2020 //// Seite 29 WPS – Workplace Solutions ÜBUNG: AUFTEILUNG

    IN TEILMODELLE/BOUNDED CONTEXTS ▪ Greifen Sie auf die Fallstudie zurück ▪ Wie lässt sich die Domäne »Hotel« in sinnvolle Bounded Contexts schneiden? ▪ Falls es Ihnen hilft machen Sie gern ein Event-Storming um sich die Domäne zu veranschaulichen.
  93. 24.09.2020 //// Seite 2 WPS – Workplace Solutions Überblick Modularisierung

    Integration Inst. + Rollout Betrieb + Co. Resilient
  94. 24.09.2020 //// Seite 3 WPS – Workplace Solutions Modularisierung ▪

    Modularisierung ist die Aufteilung eines Ganzen in Teile, die als Module, Komponenten, Bauelemente oder Bausteine bezeichnet werden. ▪ Synonyme ▪ Bausteinprinzip ▪ Baukastenprinzip
  95. 24.09.2020 //// Seite 5 WPS – Workplace Solutions Vorteile von

    Modularisierung ▪ Verständlichkeit durch Strukturierung ▪ Wiederverwendung ▪ Vermeidung von Code Duplizierung
  96. 24.09.2020 //// Seite 6 WPS – Workplace Solutions Modularität ▪Hohe

    Kohäsion und lose Kopplung ▪Separation of Concerns ▪Single Responsibility Principle
  97. 24.09.2020 //// Seite 7 WPS – Workplace Solutions Große Bausteine

    vermeiden ▪ Ein bekannter Bad Smell - die „Gott-Klasse“: ▪ Sie enthält 90% des Quelltextes und ist für alles zuständig. ▪ Methoden, die mehrere Bildschirmseiten lang sind, sind schlecht wartbar. ▪ Bausteine mit mehreren hundert Methoden oder Exemplarvariablen sind meist zu groß! ▪ Der Monolith. → Gleichmäßig große Bausteine entwerfen.
  98. 24.09.2020 //// Seite 8 WPS – Workplace Solutions Don‘t Repeat

    Yourself (DRY) ▪ Auch „Single Point of Truth“ and „Single Point of Maintenance“ ▪ Programmcode soll nicht dupliziert werden, weil ▪ das die Änderbarkeit erschwert, da Korrekturen an vielen Stellen nachgezogen werden müssen. ▪ das zu Inkonsistenzen führen kann. ▪ „aufgeblähter“ Code die Lesbarkeit verschlechtert.
  99. 24.09.2020 //// Seite 9 WPS – Workplace Solutions Keep It

    Simple, Stupid! (KISS) ▪ So-Einfach-wie-möglich-Prinzip ▪ Angemessene Komplexität ▪ Verständlichkeit + Änderbarkeit ▪ Keine Technik oder Fachlichkeit auf Vorrat ▪ Einfachheit ist ein Resultat von Reife:
  100. 24.09.2020 //// Seite 10 WPS – Workplace Solutions → Schnittstellen

    für alle Bausteine einführen Schnittstellen verbergen Interna (Geheimnisprinzip) ▪ Nur relevante Merkmale eines Bausteins sollten für Klienten sichtbar und zugänglich sein (Kapselung). ▪ Details der Implementierung sollten verborgen bleiben (Lokalität). ▪ Schon allein das Wissen über Interna kann missbraucht werden! Public part Secret part „Program to an interface, not an implementation. “ © Gamma et al. 1995
  101. 24.09.2020 //// Seite 11 WPS – Workplace Solutions Dienstleistungen an

    der Schnittstelle ▪ Bausteine bieten Dienstleistungen als Methoden an ihrer Schnittstelle an. ▪ Diese Dienstleistungen werden von anderen Bausteinen, den Klienten, benutzt. Dazu fordert der Klient eine Dienstleistung des Anbieters an. ▪ Der Anbieter kann selbst wieder Teile seiner Dienstleistung von anderen Dienstleistern einholen (Delegation). Dienst- leistung Dienst- leistung Klient Dienstleister/Klient Dienst- leistung Dienst- leistung fordert an Dienstleister Schnittstelle fordert an
  102. 24.09.2020 //// Seite 12 WPS – Workplace Solutions Beispiel Schnittstellen

    – Open API ▪ https://www.openapis.org/ ▪ Mitglieder: ▪ Google, Microsoft, IBM, SAP…
  103. 24.09.2020 //// Seite 17 WPS – Workplace Solutions ZYKLEN: SIE

    WACHSEN UND VERDICHTEN SICH Start- up Util Tool A Schritt 1: Illegale Aufwärts- beziehung von Util nach Startup. EFFEKT: Aus 3 hierarchisch strukturierten Klassen wird ein ZYKLUS. Start- up Util Tool A Tool B Schritt 2: Tool B wird korrekt(!) eingefügt. EFFEKT: Der Zyklus wächst trotzdem(!) auf 4 Klassen. Start- up Util Tool A Tool B Schritt3: Tool B kann auf Tool A zugreifen, da sich beide Tools im selben Kontext wie Util und Startup befinden müssen. EFFEKT: Der Zyklus verdichtet sich.
  104. 24.09.2020 //// Seite 18 WPS – Workplace Solutions ZYKLEN: ZUSTÄNDIGKEITEN

    VERSCHWIMMEN! Schritt 4: Startup benötigt Util nicht mehr. EFFEKT: Unklar, welche Klasse nun die Spitze der (gewünschten) Hierarchie sein könnte. Start- up Util Tool A Tool B WAS WENN die Klassennamen nicht gut gewählt sind? EFFEKT: Die ursprünglich gewünschte Hierarchie ist evtl. nicht mehr rekonstruierbar! Folge: TEURES REDESIGN!!! ? ? ? ?
  105. 24.09.2020 //// Seite 23 WPS – Workplace Solutions Uneven Modules

    Ein großer Monolith mit vielen kleinen Satelliten 950.860 LOC 84.808 LOC Häufige Ursache: Build-System, das Zyklen verbietet
  106. 24.09.2020 //// Seite 24 WPS – Workplace Solutions Unterschiedliche Arten

    von Modularisierung und Kopplung ▪ Sourcecode ▪ Klassen, Dateien, Packages, Namensräume ▪ Kompilat ▪ Bibliotheken, JARs, DLLs ▪ Laufzeitumgebung ▪ Betriebssystem, Virtuelle Maschine, Container ▪ Netzwerkprotokoll ▪ Prozesse ▪ Phasen ▪ Entwicklung ▪ Deployment ▪ Laufzeit
  107. 24.09.2020 //// Seite 25 WPS – Workplace Solutions ▪ Sourcecode

    ▪ Klassen, Dateien, Packages, Namensräume ▪ Kompilat ▪ Bibliotheken, JARs, DLLs ▪ Laufzeitumgebung ▪ Betriebssystem, Virtuelle Maschine, Container ▪ Netzwerkprotokoll ▪ Prozesse ▪ Phasen ▪ Entwicklung ▪ Deployment ▪ Laufzeit ▪ Kopplung erfordert: ▪ Sehr enge Kooperation ▪ Gemeinsames SCM-Repository Unterschiedliche Arten von Modularisierung und Kopplung
  108. 24.09.2020 //// Seite 26 WPS – Workplace Solutions ▪ Sourcecode

    ▪ Klassen, Dateien, Packages, Namensräume ▪ Kompilat ▪ Bibliotheken, JARs, DLLs ▪ Laufzeitumgebung ▪ Betriebssystem, Virtuelle Maschine, Container ▪ Netzwerkprotokoll ▪ Prozesse ▪ Phasen ▪ Entwicklung ▪ Deployment ▪ Laufzeit ▪ Kopplung erfordert: ▪ Strikte Versionierung ▪ Gemeinsames Deployment Unterschiedliche Arten von Modularisierung und Kopplung
  109. 24.09.2020 //// Seite 27 WPS – Workplace Solutions ▪ Sourcecode

    ▪ Klassen, Dateien, Packages, Namensräume ▪ Kompilat ▪ Bibliotheken, JARs, DLLs ▪ Laufzeitumgebung ▪ Betriebssystem, Virtuelle Maschine, Container ▪ Netzwerkprotokoll ▪ Prozesse ▪ Phasen ▪ Entwicklung ▪ Deployment ▪ Laufzeit ▪ Unabhängig Entwicklung ▪ Unabhängiges Deployment ▪ Transaktionsgrenzen Unterschiedliche Arten von Modularisierung und Kopplung
  110. 24.09.2020 //// Seite 28 WPS – Workplace Solutions MICROSERVICES –

    VORTEILE Unabhängige Teams Skalierbarkeit Agile Prozesse skalieren Continuous Delivery Ersetzbarkeit Architekturfreiheit Technologiefreiheit Modularisierung
  111. 24.09.2020 //// Seite 29 WPS – Workplace Solutions MICROSERVICES –

    WAS IST DAS? ▪ Ein Architekturstil und ein technische Idee, die mit der Modularisierung von Domänen gut zusammenpasst. Micro- service A Micro- service B Micro- service C
  112. 24.09.2020 //// Seite 31 WPS – Workplace Solutions CONWAYS LAW

    ▪ Melvin Conway: "Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations." "If you have four groups working on a compiler, you'll get a 4-pass compiler“ Eric Raymond
  113. “Organizations which design systems are constrained to produce designs which

    are copies of the communication structures of these organizations.” Melvin Conway
  114. Melvin Conway (1967) “Organizations which design systems are constrained to

    produce designs which are copies of the communication structures of these organizations.”
  115. 24.09.2020 //// Seite 40 WPS – Workplace Solutions WIE SOLLEN

    DIE ENTWICKLUNGSTEAMS DEN BAUSTEINEN ZUGEORDNET WERDEN? UI Business- Logic Application- Logic B C A D E F G
  116. 24.09.2020 //// Seite 41 WPS – Workplace Solutions SCHNEIDEN VON

    TEAMS ANHAND DER ARCHITEKTUR UI Business- Logic Application- Logic B C A D E F G Komponenten-Teams Team 4 Team 3 Team 2 Team 1
  117. 24.09.2020 //// Seite 42 WPS – Workplace Solutions SCHNEIDEN VON

    TEAMS ANHAND DER ARCHITEKTUR UI Business- Logic Application- Logic B C A D E F G Komponenten-Teams Team 1 Team 3 Team 2 Team 5 Team 4
  118. 24.09.2020 //// Seite 43 WPS – Workplace Solutions WAS IST

    NICHT MICROSERVICES? ▪ Team Client/ Team Server ▪ Team UI, Team Backend, Team DB ➔ Das ist eine Aufteilung nach technischen Aspekten ▪ Probleme: ▪ Viele Abhängigkeiten, viel Kommunikation ▪ Jedes neue Feature muss von allen Teams umgesetzt werden
  119. 24.09.2020 //// Seite 44 WPS – Workplace Solutions WIE SOLLEN

    DIE ENTWICKLUNGSTEAMS DEN BAUSTEINEN ZUGEORDNET WERDEN? UI Business- Logic Application- Logic B C A D E F G
  120. 24.09.2020 //// Seite 45 WPS – Workplace Solutions SCHNEIDEN VON

    TEAMS ANHAND DER ARCHITEKTUR UI Business- Logic Application- Logic B C A D E F G Feature-Teams Team 1 Team 2 Team 3
  121. 24.09.2020 //// Seite 46 WPS – Workplace Solutions SCHNEIDEN VON

    TEAMS ANHAND DER ARCHITEKTUR UI Business- Logic Application- Logic B C A D E F G Feature-Teams Team 2 Team 3 Team 1
  122. 24.09.2020 //// Seite 47 WPS – Workplace Solutions MICROSERVICES –

    WAS IST DAS? ▪ Ein Architekturstil und ein technische Idee, die mit der Modularisierung von Domänen gut zusammenpasst. ▪ unabhängig voneinander deployt ▪ eigener Prozess (oder sogar eine eigene VM) ▪ Läuft häufig in einem eigenen Container Micro- service A Micro- service B Micro- service C
  123. 24.09.2020 //// Seite 50 WPS – Workplace Solutions MICROSERVICES –

    WAS IST DAS? ▪ Ein Architekturstil und ein technische Idee, die mit der Modularisierung von Domänen gut zusammenpasst. ▪ unabhängig voneinander deployt ▪ eigener Prozess (oder sogar eine eigene VM) ▪ Läuft häufig in einem eigenen Container Micro- service A Micro- service B Micro- service C
  124. 24.09.2020 //// Seite 51 WPS – Workplace Solutions MICROSERVICES –

    WAS IST DAS? ▪ Ein Architekturstil und ein technische Idee, die mit der Modularisierung von Domänen gut zusammenpasst. ▪ unabhängig voneinander deployt ▪ eigener Prozess (oder sogar eine eigene VM) ▪ Läuft häufig in einem eigenen Container ▪ Hält seine Daten in einer eigenen Datenbank oder einem Schema Micro- service A Micro- service B Micro- service C
  125. 24.09.2020 //// Seite 52 WPS – Workplace Solutions MICROSERVICES –

    WAS IST DAS? ▪ Ein Architekturstil und ein technische Idee, die mit der Modularisierung von Domänen gut zusammenpasst. ▪ unabhängig voneinander deployt ▪ eigener Prozess (oder sogar eine eigene VM) ▪ Läuft häufig in einem eigenen Container ▪ Hält seine Daten in einer eigenen Datenbank oder einem Schema ▪ Kann in unterschiedlichen Technologien und Stylen implementiert sein → keine Wiederverwendung Micro- service A Micro- service B Micro- service C
  126. 24.09.2020 //// Seite 53 WPS – Workplace Solutions MICROSERVICES –

    TECHNOLOGIEFREIHEIT Micro- service A Micro- service B Micro- service C Microservices reden nur über Netzprotokolle miteinander  Nur Laufzeitabhängigkeit  Freiheit in der Wahl der Technologie ▪ Entscheidungen können schneller getroffen werden ▪ Technologie kann auf jeweiligen Service zugeschnitten werden ▪ Z.B. Graph-DB für Service, der viel mit Relationen hantiert ▪ Keine unnötige Komplexität durch unpassende Sprache / Frameworks / Datenbanken
  127. 24.09.2020 //// Seite 54 WPS – Workplace Solutions MICROSERVICES –

    WAS IST DAS? ▪ Ein Architekturstil und eine technische Idee, die mit der Modularisierung von Domänen gut zusammenpasst. ▪ unabhängig voneinander deployt ▪ eigener Prozess (oder sogar eine eigene VM) ▪ Läuft häufig in einem eigenen Container ▪ Hält seine Daten in einer eigenen Datenbank oder einem Schema ▪ Kann in unterschiedlichen Technologien und Stylen implementiert sein → keine Wiederverwendung ▪ Hat manchmal eine GUI, und manchmal nicht Micro- service A GUI Micro- service B Micro- service C
  128. 24.09.2020 //// Seite 55 WPS – Workplace Solutions MICROSERVICES –

    WAS IST DAS? ▪ Ein Architekturstil und eine technische Idee, die mit der Modularisierung von Domänen gut zusammenpasst. ▪ unabhängig voneinander deployt ▪ eigener Prozess (oder sogar eine eigene VM) ▪ Läuft häufig in einem eigenen Container ▪ Hält seine Daten in einer eigenen Datenbank oder einem Schema ▪ Kann in unterschiedlichen Technologien und Stylen implementiert sein → keine Wiederverwendung ▪ Hat manchmal eine GUI, und manchmal nicht ▪ Kommuniziert über Netz mit anderen Services durch verschiedene Technologien (synchron/asynchron) Micro- service A Micro- service B Micro- service C
  129. 24.09.2020 //// Seite 56 WPS – Workplace Solutions SCHNITTSTELLE EINES

    MICROSERVICES ▪ REST ▪ UI, zum Service ▪ synchron → Rest Resource passen fürs UI gestalten mit Value Objects → keine Entities oder Aggregate als Resource ▪ Messaging ▪ Zu Service ▪ Asynchron → Commands, Events, Request, Response mit Value Objects Service A UI A Service B POST GET PUT DELETE POST, GET, PUT, DELETE
  130. 24.09.2020 //// Seite 57 WPS – Workplace Solutions ÜBUNG: Welche

    Technologien in welchem Bounded Context? ▪ Wir nehmen die Bounded Contexts, die wir in der vorherigen Übung gefunden haben ▪ Überlegt für jeden Bounded Context: ▪ Welche Technologien setzt ihr ein? ▪ Wie wichtig ist die interne Architektur? ▪ Wie verteilen Sie die Entwickler?
  131. 24.09.2020 //// Seite 2 WPS – Workplace Solutions MONOLITH FIRST

    ▪ Ausschneiden eines MS aus einem Monolithen ist nur möglich, wenn dieser eine fachliche Architektur hat ➔Es lohnt sich mit DDD zu starten User Interface Domain Application Fachliches Modul B Fachliches Modul A Fachliche Schichtung Technische Schichtung Fachliches Modul C
  132. 24.09.2020 //// Seite 3 WPS – Workplace Solutions LEGACY-SYSTEME AUS

    DEN FRÜHEN 2000ER JAHREN Technische Schichtung Keine fachliche Struktur Wenige Schichten- verletzungen Fast alle 90 fachlichen Komponenten brauchen sich gegenseitig
  133. 24.09.2020 //// Seite 5 WPS – Workplace Solutions EIN GEMEINSAMES

    MODELL Einzelne fachliche UseCases Model verteilt auf Fachlichkeit
  134. 24.09.2020 //// Seite 6 WPS – Workplace Solutions JUST THE

    IDEA OF MICROSERVICES IS NOT ENOUGH @SImonBrown
  135. 24.09.2020 //// Seite 7 WPS – Workplace Solutions BROWNFIELD STRATEGIC

    DESIGN Ausgangslage: Ein Monolith mit mehreren miteinander vermengten Domänenmodellen ▪ Vorgehen: ???
  136. 24.09.2020 //// Seite 8 WPS – Workplace Solutions BROWNFIELD STRATEGIC

    DESIGN Ein Monolith mit mehrere miteinander vermengte Domänenmodelle ▪ Vorgehen: ▪ Die vermengten Modelle als einzelne Subdomänen denken
  137. 24.09.2020 //// Seite 9 WPS – Workplace Solutions WIE SCHNEIDE

    ICH MEINE DOMÄNE? ▪ Nach Grenzen im Geschäftsprozess, die die Domänenexperten beschreiben ▪ Nach Abteilungen in der Organisation bzw. Gruppen von Domänenexperten ▪ Nach Unterschieden in der Verwendung von fachlichen Begriffen ▪ Exklusive Domänenexperten
  138. 24.09.2020 //// Seite 10 WPS – Workplace Solutions BROWNFIELD STRATEGIC

    DESIGN Ein Monolith mit mehrere miteinander vermengte Domänenmodelle ▪ Vorgehen: ▪ Die vermengten Modelle als einzelne Subdomänen denken ▪ Für jede gedachte Subdomain eine eigene Ubiquitous Language erarbeiten
  139. 24.09.2020 //// Seite 11 WPS – Workplace Solutions SPRACHEN SIND

    LEBENDIG ▪ Experimentiere mit alternativen Ausdrucksformen ▪ Das Modell und die Sprache entwickeln sich weiter ▪ Überarbeite dann den Code ▪ Benenne Klassen, Methoden, Module ▪ Entspreche dem neuen Modell ▪ Eine Sprache will gesprochen werden: ▪ Beseitige Unklarheiten durch Konversation
  140. 24.09.2020 //// Seite 12 WPS – Workplace Solutions BROWNFIELD STRATEGIC

    DESIGN Ein Monolith mit mehrere miteinander vermengte Domänenmodelle ▪ Vorgehen: ▪ Die vermengten Modelle als einzelne Subdomänen denken ▪ Für jede gedachte Subdomain eine eigene Ubiquitous Language erarbeiten ▪ Business Klassen bzw. Entities untersuchen, ob Zerlegung und Refactoring möglich. Testabdeckung! ▪ Ggf. Duplizierung der Business Klassen und jeweils schrittweise Ausbau der nicht benötigten Funktionalität
  141. 24.09.2020 //// Seite 13 WPS – Workplace Solutions WAS WIR

    NICHT BAUEN WOLLEN ✘ ANEMIC DOMAIN MODEL ▪ „blutarme“ fachliche Objekte ▪ Schnittstelle ohne Aussagekraft ▪ aus Gettern/Settern ▪ Viele String Parameter ▪ Eigentliche Fachlichkeit außerhalb Entities + Value Objects in Services oder im UI ▪ Viele Util, Helper und Manager Klassen
  142. 24.09.2020 //// Seite 14 WPS – Workplace Solutions ANEMIC →

    FEHLENDE ROBUSTHEIT ▪ Designschulden ▪ Unklarer, schwer verständlicher Entwurf ▪ Verteilte Fachlichkeit ▪ Copy & Paste - Programmierung → Teure Wartung → Duplizierter Code → Viele Refactorings → Schlechte Testbarkeit
  143. 24.09.2020 //// Seite 15 WPS – Workplace Solutions WAS WIR

    NICHT BAUEN WOLLEN 119 Klassen aus 4 Komponenten + 28 weitere Klassen ZYKLEN
  144. 24.09.2020 //// Seite 16 WPS – Workplace Solutions ZYKLEN =

    BIG BALL OF MUD 327 Klassen aus 8 Komponenten brauchen sich gegenseitig
  145. 24.09.2020 //// Seite 17 WPS – Workplace Solutions BROWNFIELD STRATEGIC

    DESIGN Ein Monolith mit mehrere miteinander vermengte Domänenmodelle ▪ Vorgehen: ▪ Die vermengten Modelle als einzelne Subdomänen denken ▪ Für jede gedachte Subdomain eine eigene Ubiquitous Language erarbeiten ▪ Business Klassen bzw. Entities untersuchen, ob Zerlegung und Refactoring möglich. Testabdeckung! ▪ Ggf. Duplizierung der Business Klassen und jeweils schrittweise Ausbau der nicht benötigten Funktionalität ▪ Aufteilung in Bounded Contexts bzw. Microservices
  146. 24.09.2020 //// Seite 18 WPS – Workplace Solutions KONTEXTÜBERSICHT (CONTEXT

    MAP) ▪ Jedes Team kennt seinen Kontextgrenzen. Wie steht es um die anderen? ▪ Eine Kontextübersicht skizziert ▪ Die verschiedenen begrenzten Kontexte ▪ ihre wechselseitigen Beziehungen ▪ Begrenzte Kontexte sollten benannt sein.
  147. 24.09.2020 //// Seite 19 WPS – Workplace Solutions BROWNFIELD STRATEGIC

    DESIGN Ein Monolith mit mehrere miteinander vermengte Domänenmodelle ▪ Vorgehen: ▪ Die vermengten Modelle als einzelne Subdomänen denken ▪ Für jede gedachte Subdomain eine eigene Ubiquitous Language erarbeiten ▪ Business Klassen bzw. Entities untersuchen, ob Zerlegung und Refactoring möglich. Testabdeckung! ▪ Ggf. Duplizierung der Business Klassen und jeweils schrittweise Ausbau der nicht benötigten Funktionalität ▪ Aufteilung in Bounded Contexts bzw. Microservices ▪ Fachliches von Technischem trennen
  148. 24.09.2020 //// Seite 20 WPS – Workplace Solutions TRENNUNG VON

    FACHLICHE UND TECHNISCHE SOFTWARE Fachlicher Anwendungs- kern Port & Adapter Gateway Transformation P & A G/T Web-Client Rich Client RDBMS NoSQL Überall das selbe! • Domain-Driven Design (Evans 2004) • Hexagonale Architecture (Cockburn 1990/2005) • Onion/Clean Architecture (Jeffrey Palermo 2008 / Robert C. Martin 2012) • QUASAR = Quality Software Architecture (SD&M 2004) • WAM = Werkzeug & Material Ansatz (Züllighoven 1990)
  149. 24.09.2020 //// Seite 21 WPS – Workplace Solutions BROWNFIELD STRATEGIC

    DESIGN Weitere Aspekte: ▪ Asynchrone Kommunikation bevorzugen ▪ Verfügbarkeit/Robustheit ▪ Integration über das UI ▪ Legacy verlinkt auf den MS oder umgekehrt ▪ Single-Sign-On integrieren ▪ Risiken minimieren ▪ Mit kleinem unwichtigem Microservice beginnen ▪ Schrittweise migrieren, kein Big Bang ▪ Redundante fachliche Entwicklung vermeiden (Nur noch Änderungen in Microservices) ▪ Integrationstests für Microservices und Legacy-System
  150. 24.09.2020 //// Seite 22 WPS – Workplace Solutions Vom Altsystem

    zu einer neuen Architektur Refactorings Analyse + Diskussion Maßnahmen festlegen Ubiquitous Language Ist- Architektur Rekonstruktion Source- Code Bounded Contexts Begriff- + Prozessanalyse Architektur- alternativen • Priorisierung der Maßnahmen • Einplanung in den Entwicklungszyklus Verletzungen • Mit den Domänenexperten und dem Team diskutieren und modellieren Event Storming Domain Storytelling Context Mapping
  151. 24.09.2020 //// Seite 23 WPS – Workplace Solutions HAUPTBUCH- FÜHRUNG

    BROWNFIELD INTEGRATION VON STANDARDSOFTWARE VERTRIEB LOHNBUCH- HALTUNG HR ▪ Ziel: Eins-zu-eins-Abbildung ▪ In brownfield-Situation oft nicht möglich • Graue Flächen – Subdomänen • Bunte Linien – Bounded Contexts
  152. 24.09.2020 //// Seite 24 WPS – Workplace Solutions ZUSAMMENFASSUNG ▪

    Die Domäne ▪ hat einen Lösungs- und einen Problemraum ▪ Zerfällt in Subdomains ▪ Subdomains sind unterschiedlich wichtig ▪ Die Core Domain ist am wichtigsten ▪ Auch im Brownfield ist strategisches Design möglich
  153. 24.09.2020 //// Seite 25 WPS – Workplace Solutions ÜBUNG: BROWNFIELD

    ▪ Lesen Sie den zweiten Teil der Fallstudie ▪ Umdenken ▪ Welche Probleme sehen Sie bei dem Altsystem ▪ Welche Maßnahmen wären erforderlich um Grundlagen für eine Integration von REZI zu schaffen? ▪ Diskutieren Sie Migrationsstrategien um REZI in die neue Struktur zu überführen. ▪ Wie passen Ihre ursprünglich identifizierten Bounded Contexts zu denen von REZI?
  154. 24.09.2020 //// Seite 2 WPS – Workplace Solutions Überblick Modularisierung

    Integration Inst. + Rollout Betrieb + Co. Resilient
  155. 24.09.2020 //// Seite 3 WPS – Workplace Solutions MICROSERVICES Kinomana

    gement Kartenverk auf Marketing Kino-Anwendung Kinomana gement Kartenverk auf Marketing Legende WAR- File Java Package
  156. 24.09.2020 //// Seite 4 WPS – Workplace Solutions Mikro und

    Makro-Architektur Microservice 1 Microservice 2 Microservice 3 Microservice 4 Mikro-Architektur 2 Mikro-Architektur 3 Mikro-Architektur 4 Makro-Architektur Mikro-Architektur 1
  157. 24.09.2020 //// Seite 5 WPS – Workplace Solutions Mikro- und

    Makro-Architekturentscheidungen ▪ Typisch Makro-Architektur ▪ Kommunikationsprotokoll zwischen Microservices ▪ Authentifizierung ▪ Ggf. durch einen zentralen Identity Provider ▪ Look & Feel ▪ Falls Microservice eine eigene UI besitzen ▪ Technologie für Integrationstests ▪ Typisch Mikro-Architektur ▪ Autorisierung ▪ Konkrete Tests ▪ Continous Delivery Pipeline
  158. 24.09.2020 //// Seite 6 WPS – Workplace Solutions Mikro- und

    Makro-Architekturentscheidungen ▪ Entscheidungen können auf Mikro- oder Makroebene entschieden werden ▪ Makroebene ▪ Einsatz der Gesamtlösung wird eingeschränkt ▪ Unternehmensweite Standards ▪ Mikroebene ▪ Optimale Lösung für den einzelnen Bounded Context ▪ Sorgt für Unabhängigkeit der Teams ▪ Beispiele ▪ Die Programmiersprache ▪ Die Datenbank ▪ Look & Feel ▪ Dokumentation
  159. 24.09.2020 //// Seite 7 WPS – Workplace Solutions Getrennte Betriebsmannschaft

    You build it You run it Firmenkultur Betrieb: Mikro- und Makro-Architektur Betrieb • Konfiguration • Monitoring • Log-Analyse • Deployment-Technologie Mikroarchitektur Makroarchitektur
  160. 24.09.2020 //// Seite 8 WPS – Workplace Solutions Ebenen der

    technischen Integration von vertikalen Subsystemen Micro- service A Micro- service B Micro- service C UI Backend Daten
  161. 24.09.2020 //// Seite 9 WPS – Workplace Solutions Makroarchitektur und

    Integration Entscheidungen auf Makroarchitekturebene haben Auswirkungen auf die Integration
  162. 24.09.2020 //// Seite 10 WPS – Workplace Solutions Datenintegration (Shared

    Database) ▪ Mehrere Service arbeiten auf dem gleichen Datenbankschema ▪ Keine Datenredundanz ▪ Schema kann nur gemeinsame weiterentwickelt werden ▪ Das widerspricht dem Konzept „Microservice“ ▪ Nicht zu verwechseln mit Shared Kernel (Context Mapping) Subsystem A Subsystem B
  163. 24.09.2020 //// Seite 11 WPS – Workplace Solutions Datenintegration (Datenreplikation)

    ▪ Jeder Microservice hat sein eigene Datenbank oder eigenes Datenbankschema ▪ Redundanz der Daten ▪ Datenmigration kann durch „Extract, Transform, Load “- Prozesse (ETL) realisiert sein Micro- service A Micro- service B ETL
  164. 24.09.2020 //// Seite 12 WPS – Workplace Solutions Backendintegration File

    Transfer Vorteile ▪ Einfach ohne weitere Software zu realisieren. ▪ Auf allen Plattformen und in allen Programmiersprachen verfügbar. ▪ Asynchron, sodass die Applikationen getrennt weiter arbeiten können. ▪ Lose Kopplung zwischen den Applikationen. ▪ Kaum Eingriffe in die Applikation, um den Export zu realisieren. ▪ Interna der Apps bleiben verborgen. Nachteile ▪ Inkonsistenz zwischen Applikationen wegen großer Zeitintervalle zwischen den Updates der Daten. ▪ Viele Absprachen zwischen den Entwicklern notwendig über: ▪ Verzeichnisse und Dateinamen, ▪ Zeitpunkt der Fertigstellung und des Löschens eines Exports. ▪ Semantik der Daten wird in den Applikationen jeweils lokal festgelegt. Voraussetzung ▪ Gemeinsames Dateisystem ▪ Einigung über das Format (Textbasiert, XML, CSV, etc.) ▪ Exporter bzw. Importer verstehen das gleiche Format. Micro- service A Micro- service B
  165. 24.09.2020 //// Seite 13 WPS – Workplace Solutions Backendintegration RPC

    (Remote Procedure Call) Vorteile ▪ Funktionalität wird wiederverwendet. ▪ Daten sind lokal gekapselt, sodass jede Applikation beliebige eigene Formate wählen kann und die Integrität ihrer eigenen Daten wahrt. ▪ Potentiell weniger Codeverdopplung, weil Funktionen wiederverwendet werden. Nachteile ▪ Enge Kopplung und geringere Stabilität bei Ausfall einer Applikation. ▪ Performanz und Ausfallsicherheit von entfernten Aufrufen. ▪ Änderungen an einer Applikation betreffen potentiell alle entfernten Aufrufer. ▪ Sich gegenseitig aufrufende Applikationen bilden ein kaum zu entwirrendes Knäuel. Voraussetzung ▪ Veröffentlichung von nutzbaren Funktionen für andere Applikationen. ▪ Einigung über eine gemeinsame Technologie (z. B. CORBA, COM, .NET, RMI, SOAP mit HTTP). ▪ Berücksichtigung von Ausfällen des Netzwerks bzw. der aufgerufenen Applikation. Micro- service A Micro- service B Micro- service A Micro- service B
  166. 24.09.2020 //// Seite 14 WPS – Workplace Solutions GRPC ▪

    gRPC = gRPC Remote Procedure Call ▪ Entwickelt von Google ▪ Open Source ▪ Basiert auf ▪ HTTP/2 (Transport) ▪ Protobuf (Schnittstellenbeschreibung)
  167. 24.09.2020 //// Seite 15 WPS – Workplace Solutions Backendintegration REST

    (Representational State Transfer) Im Vergleich zu RPC ▪ Ähnlich wie RPC (ebenfalls synchrone Kommunikation) ▪ Anstatt Funktionsaufrufen wird auf Ressourcen gearbeitet ▪ Prinzipien ▪ Zustandslosigkeit ▪ Nachricht enthält alle Informationen, Server speichert keine Zustände zwischen zwei Nachrichten ▪ Caching ▪ HTTP Caching soll verwendet werden ▪ Einheitliche Schnittstelle ▪ Adressierbarkeit von Ressourcen ▪ http://webshop/api/bestellungen ▪ Repräsentationen zur Veränderung von Ressourcen ▪ HTML/JSON/XML ▪ Selbstbeschreibende Nachrichten ▪ Durch HTTP-Verben, GET, POST, DELETE, PUT Micro- service A Micro- service B
  168. 24.09.2020 //// Seite 16 WPS – Workplace Solutions HTTP Methoden

    HTTP-Methode Seiteneffekt-frei Idempotent GET Ja Ja PUT Nein Ja DELETE Nein Ja POST Nein Nein PATCH Nein Nein
  169. 24.09.2020 //// Seite 17 WPS – Workplace Solutions HATEOAS ▪

    Hypermedia As The Engine Of Application State (HATEOAS) ▪ Beispiel: ▪ http://api.domain.com/management/departments/10 { "departmentId": 10, "departmentName": "Administration", "locationId": 1700, "managerId": 200, "links": [ { "href": "10/employees", "rel": "employees", "type" : "GET" } ] }
  170. 24.09.2020 //// Seite 18 WPS – Workplace Solutions Wie finden

    sich Services eigentlich? Hey, ! Wo bist du und wenn ja, wen soll ich ansprechen?
  171. 24.09.2020 //// Seite 19 WPS – Workplace Solutions Service Discovery

    klassisch ▪ Konfigurationsdatei ▪ Wird gelegentlich aktualisiert ▪ Probleme bei Microservices ▪ Netzwerk-Adressen nicht statisch ▪ Microservices werden dynamisch gestartet oder gestoppt ▪ Wie wird Load Balancing durchgeführt Service Client Service Instanz A Service Instanz B Service Instanz C Client oder ein API Gateway Dynamische IP Adressen Skalierung REST API REST API REST API 10.10.2.12:8893 10.10.34.24:8034 10.10.1.99:8238 ?
  172. 24.09.2020 //// Seite 20 WPS – Workplace Solutions Service Discovery

    (Client Side Load Balancing) ▪ Client ist verantwortlich für die Bestimmung von verfügbaren Services und deren Location ▪ Client ist ebenfalls verantwortlich für das Load Balancing ▪ Ablauf ▪ Services melden sich bei der Service Registry an ▪ Client fragt Service Registry nach Services ab ▪ Client verwendet Load-Balancing Algorithmus und spricht Service an Service Instanz A Service Instanz B Service Instanz C REST API REST API REST API 10.10.2.12:8893 10.10.34.24:8034 10.10.1.99:8238 Service Register Service Instanz A Ein HTTP Client der das Register kennt Register Client Register Client Register Client
  173. 24.09.2020 //// Seite 21 WPS – Workplace Solutions Service Discovery

    (Server Side Load Balancing) ▪ Services melden sich ebenfalls bei der Service Registry an ▪ Ein Load Balancer übernimmt die Aufgabe der Service Auswahl Service Instanz A Service Instanz B Service Instanz C REST API REST API REST API 10.10.2.12:8893 10.10.34.24:8034 10.10.1.99:8238 Service Register Service Instanz A Register Client Register Client Register Client Load Balancer
  174. 24.09.2020 //// Seite 22 WPS – Workplace Solutions Backendintegration Messaging

    Vorteile ▪ Lose Kopplung, ähnlich wie File Transfer. ▪ Hohe Ausfallsicherheit des Gesamtsystems, weil Nachrichten aufgehoben werden. ▪ Weniger Performance-Probleme wegen Message- Queues. ▪ Asynchrone Kommunikation macht Zeitverzögerung übers Netz für Entwickler sichtbar. ▪ Über Nachrichten können Daten verschickt und Funktionsaufrufe abgesetzt werden. Nachteile ▪ Asynchrone Kommunikation muss beherrscht werden. ▪ Semantische Dissonanz zwischen Applikationen wird nicht behoben. Voraussetzung ▪ Applikationen sind an einen Message Bus angeschlossen. ▪ Entsprechende Technologie wird verwendet (JMS, IBM WebSphereMQ, Microsoft MSMQ, Asynchrone WebServices). Micro- service A Micro- service B
  175. 24.09.2020 //// Seite 24 WPS – Workplace Solutions Message-oriented Middleware

    (MOM) Grundkonzepte: • Send and Forget • Store and Forward Loose Coupling and Reliability Channels are separate from applications → Removes location dependencies Channels are asynchronous and reliable → Removes temporal dependencies Data is exchanged in self-contained messages → Removes data format dependencies
  176. 24.09.2020 //// Seite 25 WPS – Workplace Solutions Synchrone vs.

    Asynchrone Kommunikation Auswirkungen asynchroner Kommunikation • Prozesse arbeiten parallel → Schnellere Verarbeitung, aber schwieriges Debugging • Ergebnisse durch Callback → Empfang und Verarbeitung in neuem Kontext und bei Ausführung anderer Arbeiten • Unbestimmte Ausführungsreihenfolge → Unabhängige Prozesse mit Synchronisationslogik
  177. 24.09.2020 //// Seite 26 WPS – Workplace Solutions Delivering im

    MOM ▪ Messages werden in einer Queue auf dem Server persistiert. ▪ Eine Message kann nur einmal von einem Consumer gelesen werden. ▪ Mehrere Producer / Consumer können dieselbe Queue benutzen. A B P queue Q message producers message consumers
  178. 24.09.2020 //// Seite 27 WPS – Workplace Solutions Herausforderung durch

    MOM ▪ Komplexes Programmiermodell ▪ Event-getriebenes Programmiermodell. ▪ Logik wird auf Eventhandler verteilt. ▪ Debugging über Prozessgrenzen. ▪ Nachrichtenreihenfolge ▪ Nachrichten haben Zustellgarantie, aber keine Garantie der Reihenfolge. ▪ Abhängige Nachrichten müssen resequentialisiert werden . ▪ Synchrone Anwendungsszenarien ▪ Anwender gehen von einer synchronen Bearbeitung ihrer Anfrage aus. ▪ Anwendung muss entsprechend reagieren. ▪ Performanz ▪ Große Datenmengen zur Initialisierung besser außerhalb des MOM. ▪ Plattform Support ▪ Proprietäre MOMs oder Plattformen schränken die Möglichkeiten ein. ▪ Herstellerabhängigkeit ▪ Trotz Standards wie JMS sind die Implementierungen oft plattformabhängig. ▪ Die Integration von integrierten Lösungen ist eine weitere Herausforderung!
  179. 24.09.2020 //// Seite 28 WPS – Workplace Solutions Message Technologien

    ▪ Message Systeme ▪ RabbitMQ ▪ ActiveMQ ▪ Kafka ▪ Protokolle ▪ AMQP (Advanced Message Queuing Protocol) ▪ MQTT (Message Queue Telemetry Transport), Internet of Things ▪ STOMP (Streaming Text Oriented Messaging Protocol) ▪ APIs ▪ JMS
  180. 24.09.2020 //// Seite 31 WPS – Workplace Solutions Katalog mit

    65 Pattern [Gregor Hohpe, Bobby Woolf] Beispiele • Request/Reply • Publish/Subscribe • Broadcast
  181. 24.09.2020 //// Seite 32 WPS – Workplace Solutions Frontend UI-Integration

    (Frontend Monolith) ▪ Es gibt einen Frontend Monolithen ▪ Native Apps ▪ Desktop Anwendung ▪ Single-Page-Applikation ▪ Ggf. ein Team für die Frontendentwicklung ▪ Optional mit API-Gateway ▪ Einheitliches Look & Feel Micro- service A Micro- service B
  182. 24.09.2020 //// Seite 33 WPS – Workplace Solutions UI-Integration (Modularisiertes

    Frontend) ▪ Integration über ▪ Links ▪ Transklusion ▪ Übernahme von einem elektronischen Dokument oder Teilen davon in ein oder mehrere andere Dokumente durch einen Hypertext-Verweis ▪ Vorteile ▪ Lose Kooplung ▪ Login und UI in einem Microservice (Ein Team) ▪ Freie Wahl der Frontend-Technologie ▪ Herausforderung ▪ Einheitliches Look & Feel ▪ UI-Änderungen ggf. Querschnittlich (Z.B. bei Redesign) Micro- service A Micro- service B
  183. 24.09.2020 //// Seite 34 WPS – Workplace Solutions Micro frontends

    https://martinfowler.com/articles/micro-frontends.html
  184. 24.09.2020 //// Seite 35 WPS – Workplace Solutions Integrationsansätze für

    Micro-Frontends ▪ Serverseitige Template-Komposition ▪ Je nach URL-Suffix andere HTML-Datei in index.html inkludieren, oder ▪ Je nach URL-Suffix Teil-HTML von anderem Server abfragen ▪ Buildtime Integration ▪ Im Frontend die „Micro-Frontends“ als versionierte npm-dependencies einbinden ▪ Nachteil: Kopplung auf Release/Deployment-Ebene ▪ Laufzeit-Integration mit iframes ▪ Je nach Route direkt im index.html jeweiligen iframe von unterschiedlichen Ressourcen und unterschiedlichen Servern holen ▪ Lautzeit-Integration mit JavaScript ▪ index.html inkludiert JavaScript-Dateien von allen Micro-Frontends. Je nach Route wird der Entrypoint eines Micro-Frontends aufgerufen, der dann das Rendern übernimmt ▪ Flexibel ▪ Laufzeit-Integration mit WebComponents ▪ Je nach Route WebComponent von jeweiligem Micro-Frontend in den DOM laden ▪ Weniger flexibel, stärker am Web-Standard
  185. 24.09.2020 //// Seite 36 WPS – Workplace Solutions Self Contained

    System (SCS) ▪ Für Microservices gibt es keine einheitliche Definition ▪ Ein SCS ist eine Ausprägung von Microservices ▪ SCS geben einen Orientierungspunkt, wie eine Microservice-Architektur konkret aussehen kann ▪ SCS sind eine Sammlung von Best Practices ▪ SCS geben Elemente auf der Makro-Architekturebene vor http://scs-architecture.org/
  186. 24.09.2020 //// Seite 37 WPS – Workplace Solutions Self Contained

    System (SCS) ▪ Jedes SCS ist eine autonome Webanwendung ➔ Jedes SCS besitzt eine UI ▪ Es gibt keine gemeinsame UI ▪ Ein SCS kann optional eine API besitzen ▪ Z.B. für die Anbindung von einem mobilen App ▪ Ein SCS gehört einem Team ▪ Ein SCS kann aus mehreren Microservices bestehen ▪ Z.B. für Skalierung ▪ Priorisierung für die Kommunikation unter SCSs ▪ Prio 1: UI-Integration ▪ Prio 2: asynchrone Kommunikation ▪ Prio 3. synchrone Kommunikation Micro- service A Micro- service B 1 2
  187. 24.09.2020 //// Seite 38 WPS – Workplace Solutions Warum gibt

    es SOA? 1. Die Ansprüche von Kunden und Partnern steigen (Marktdruck) 2. Viele Geschäftsprozesse funktionieren ausschließlich mit IT-Unterstützung 3. Bestehende IT-Systeme sind häufig Applikationsmonolithen, unflexible und über lange Jahre gewachsene starre Anwendungssilos 4. IT-Budgets werden oftmals für die Entwicklung oder Modernisierung einzelner Anwendungen vergeben, ohne Bezug zu deren aktuellen oder künftigen Wertschöpfungen. → Unternehmen brauchen SOA für unternehmerische Flexibilität mit wertschöpfende Geschäftsprozesse unter geänderten Marktbedingungen → SOA wird ausschließlich durch geschäftliche Argumentation getrieben – Technik ist nur Mittel zum Zweck
  188. 24.09.2020 //// Seite 39 WPS – Workplace Solutions Was ist

    SOA? ▪ SOA ist eine unternehmensweite IT-Architektur mit Services (Diensten) als zentralem Konzept, in der die Services Geschäftsfunktionen realisieren oder unterstützen. ▪ Services werden als integrierbare Einheiten entworfen: ▪ Sie sind lose gekoppelt ▪ Sie sind selbständig betriebene, verwaltete und gepflegte Softwareeinheiten ▪ Sie kapseln ihre Funktionen über eine implementierungsunabhängige Schnittstelle. ▪ Zu jeder Schnittstelle gibt es einen Service-Vertrag, der die funktionalen und nichtfunktionalen Merkmale der Schnittstelle beschreibt. ▪ Die Nutzung von Services geschieht über (entfernte) Aufrufe und setzt so weit wie möglich auf offene Standards, wie XML, SOAP, WSDL etc.
  189. 24.09.2020 //// Seite 41 WPS – Workplace Solutions Portlets ▪

    Kombinierbare Komponenten einer Benutzeroberfläche ▪ Werden von einem Portalserver angezeigt und verwaltet ▪ Erweiterter Servlet Container ▪ Das Wort „Portlet“ ist abgeleitet von „Servlet“ ▪ Portlets kommunizieren über Events ▪ Geschichte ▪ Erste Drafts 2002 ▪ JSR-286 wude 2008 released Frontend 1 Backend Frontend 2 Frontend 3
  190. 24.09.2020 //// Seite 42 WPS – Workplace Solutions Orchestrierung (Workflow-Engine

    + ESB) ▪ Zentrale Orchestrierung über Workflow-Engine ▪ Workflow-Engine kann Standalone oder als Bestandteil eines ESBs laufen ▪ Muster eher unüblich für Microservice- Architekturen ▪ Leichtgewichtigere Lösungen werden bevorzugt Microservice Kino- management Microservice Ticketverkauf ESB Microservice Marketing Workflow-Engine
  191. 24.09.2020 //// Seite 43 WPS – Workplace Solutions Orchestrierung (Service)

    ▪ Microservices übernehmen die Orchestrierung ▪ Optional kann eine Workflow-Engine im Microservice laufen ▪ Beispiel: Camunda ▪ Harte Abhängigkeit bleibt zwischen den Services Microservice Ticketverkauf Microservice Marketing Microservice Kinomanagement Workflow-Engine
  192. 24.09.2020 //// Seite 44 WPS – Workplace Solutions Orchestrierung (EVENT-DRIVEN

    ARCHITECTURE) ▪ Bounded Contexts kommunizieren über Domain Events ▪ Ähnlichkeit zu Pipes-and-Filters ▪ Messaging ist Pipes ▪ Bounded Contexts sind Filters (besser Processors) ▪ Lose gekoppelt ▪ Vergleich mit Unix-Pipeline MANÖVERPLA NUNG TIEFE NEU GEPEILT
  193. 24.09.2020 //// Seite 45 WPS – Workplace Solutions Latenzzeit Verzögerungszeit,

    in unterschiedlichen Zusammenhängen auch Reaktionszeit oder Latenz(zeit) genannt, ist der Zeitraum zwischen einer Aktion oder einem Ereignis und dem Eintreten einer Reaktion. Dabei kann die Aktion verborgen sein und sich erst durch die Reaktion zeigen. Diskussion
  194. 24.09.2020 //// Seite 46 WPS – Workplace Solutions ÜBUNG: Integration

    ▪ Nehmen Sie an, jeder Bounded Context ist ein Microservice (falls es Ihnen sinnvoll erscheint, können Sie auch nochmal neu schneiden). ▪ Welche Entscheidungen würden Sie auf Makro- bzw. auf Mikro-Ebene treffen? ▪ Skizzieren Sie, wie Sie Ihre Microservices integrieren würden. ▪ Wie gehen Sie mit Latenzen um?
  195. 24.09.2020 //// Seite 48 WPS – Workplace Solutions Sicherheit ▪

    Abgrenzung der Begriffe ▪ Authentisierung: Nachweis der Identität ▪ Ich weise mich durch Eingabe meines Benutzernamens/Passwortes aus ▪ Ich weise mich mit meinem Personalausweis aus ▪ Authentifizierung: Prüfung des Nachweises ▪ Benutzername/Passwort wird geprüft ▪ Personalausweis und Verknüpfung mit meiner Person werden geprüft ▪ Autorisierung: Prüfung der Berechtigung ▪ Darf der Benutzer auf das Objekt zugreifen. ▪ Der Gast besitzt ein Ticket für sein entsprechenden Film. ▪ Nach der Authentifizierung ist das Subjekt autorisiert entsprechend seiner Berechtigungen zu arbeiten.
  196. 24.09.2020 //// Seite 49 WPS – Workplace Solutions Sicherheit ▪

    Monolith ▪ Oft als zentrales Login implementiert ▪ User-Repository ggf. Bestandteil des Monolithen ▪ User-Info wird an der Session gehalten ➔Authentifizierung und Autorisierung im Monolithen ▪ Microservices ▪ Zentrales User Repository ▪ Verwendung von SSO-Standards ▪ OAuth2 ▪ OpenID Connect ➔Authentifizierung zentral ➔Autorisierung in jedem Microservice
  197. 24.09.2020 //// Seite 50 WPS – Workplace Solutions Oauth2 ▪

    Anwender authentifiziert sich am „Authorization Server“ und erhält einen Access Token ▪ Access Token hat keine Information über den Anwender ▪ Man kann am „Authorization Server“ die Informationen zu einem Anwender abfragen
  198. 24.09.2020 //// Seite 51 WPS – Workplace Solutions Rollen ▪

    Resource owner (a.k.a. Anwender) - Eine Entität, welche Zugriff zu geschützten Resourcen gewähren kann. Wenn der Resource Owner eine Person ist, handelt es sich um den Anwender. ▪ Resource server (a.k.a. API server) - Der Server, auf dem die geschützte Resource läuft. Ist fähig Anfragen entgegenzunehmen, welche einen Access Token besitzen. ▪ Client - Eine Anwendung, welche im Namen eines Ressource owner Anfragen an geschützte Resourcen stellt. ▪ Authorization server - Der Server stellt Access Tokens an den Client aus, nachdem sich der Resouce Owner erfolgreich authentifizeirt hat. Der Resource Owner gibt ggf. explizit die Berechtigigung dazu.
  199. 24.09.2020 //// Seite 52 WPS – Workplace Solutions OAuth2 Token

    ▪ Authorization Code: Ein Code, mit dem der Client einen Access Token abfragen kann. ▪ Access Token: „Eintrittskarte“. Berechtigt den Client auf die geschützte Ressource zuzugreifen. ▪ Refresh Token: Der Access Token kann ggf. eine kurze Gültigkeitsdauer besitzen. Mit dem Refresh Token kann dann ein neuer Access Token abgefragt werden.
  200. 24.09.2020 //// Seite 53 WPS – Workplace Solutions Grant Types

    ▪ Authorization code grant ▪ Klassische Web-Applikation (Server-State) ▪ Client erhält einen Authorization Code, womit er sich einen Access Token holen kann. ▪ Implicit grant ▪ Single Page Web App (es werden keine Client-Credentials benötigt.) ▪ Client erhält direkt einen Access Token. ▪ Password (Resource owner credentials grant) ▪ Trusted 1st Party Clients ▪ Username/Passwort im Client eingegeben. Access Token wird ausgestellt, ▪ Client credentials grant ▪ Für Maschine-Zu-Maschie Authentifizierung. ▪ Authentifizeirung erfolgt per Client Credentials. ➔ Keine Anwenderinformationen. ▪ Refresh token grant ▪ Neuer Access Token und Refresh Token wird ausgestellt.
  201. 24.09.2020 //// Seite 54 WPS – Workplace Solutions Beispiel OAuth2

    Micro- service A Micro- service B REST REST Micro- service C REST API Gateway Token Token Token Authorization Server Single Page App Token Token REST UserInfo Bei jedem Zugriff-> Abfrage der UserInfo oder Session im Microservice
  202. 24.09.2020 //// Seite 55 WPS – Workplace Solutions OpenID Connect

    ▪ Baut auf OAuth2 auf ▪ Neben dem Access Token wird ein ID Token ausgestellt ▪ ID Token enthält Informationen über den Anwender ▪ Implementierung basiert auf JWT (JSON Web Token), welcher vom „Authorization Server“ signiert wurde ➔Microservice vertraut dem Token ▪ Durch Token kann Server Stateless bleiben (Token wird im Client gehalten) ➔Horizontale Skalierung
  203. 24.09.2020 //// Seite 56 WPS – Workplace Solutions Beispiel JWT

    Token { "access_token": "4vfKjkM8FcGvnzZUN4_KSP0aAp", "scope": "userinfo", "token_type": "Bearer", "expires_in": 3600, "id_token": "eyJhb...cifQ.ew...fQ.gg...zqg", "refresh_token": "67676q6876r8978rq7" }
  204. 24.09.2020 //// Seite 57 WPS – Workplace Solutions Beispiel ID_Token

    (Azure) { "aud": "2d4d11a2-f814-46a7-890a-274a72a7309e", "iss": "https://sts.windows.net/7fe81447-da57-4385-becb-6de57f21477e/", "iat": 1388440863, "nbf": 1388440863, "exp": 1388444763, "ver": "1.0", "tid": "7fe81447-da57-4385-becb-6de57f21477e", "oid": "68389ae2-62fa-4b18-91fe-53dd109d74f5", "upn": „[email protected]", "unique_name": " [email protected]", "sub": "JWvYdCWPhhlpS1Zsf7yYUxShUwtUm5yzPmw_-jX3fHY", "family_name": „Mustermann", "given_name": „Max" }
  205. 24.09.2020 //// Seite 58 WPS – Workplace Solutions Beispiel OpenID

    Connect Micro- service A Micro- service B REST REST Micro- service C REST API Gateway JWT JWT JWT Authorization Server Single Page App JWT JWT
  206. 24.09.2020 //// Seite 59 WPS – Workplace Solutions Stateless und

    Security Here’s a rule of thumb (attributed to Rob Winch): “if your application or API is going to be accessed by a browser, you need CSRF protection. It’s not that you can’t do it without sessions, it’s just that you’d have to write all that code yourself, and what would be the point because it’s already implemented and works perfectly well on top of HttpSession.” Quelle: https://spring.io/guides/tutorials/spring-security-and-angular-js/
  207. 24.09.2020 //// Seite 60 WPS – Workplace Solutions Edge Services

    ▪ Zuul wird an Edge-Services verwendet ▪ Routing and Filtering ▪ Authentication ▪ Security JWT enthät User Info. Daher ggf. vor dem API Gateway/Ede Service OAuth2 und dahinter JWT.
  208. 24.09.2020 //// Seite 2 WPS – Workplace Solutions Überblick Modularisierung

    Integration Inst. + Rollout Betrieb + Co. Resilient
  209. 24.09.2020 //// Seite 4 WPS – Workplace Solutions Deployment Deployment

    bezeichnet den Vorgang, eine neue Version eines Services in Produktion zu nehmen. Ziele eines Deployments ▪ Fehlerbehebung ▪ Service-Qualität verbessern ▪ neue Features Rechtliche Maßgaben beachten, ggf. menschlicher “Gatekeeper” notwendig. Bei minimalen Auswirkungen auf die Nutzer des Services! Entwicklungs- umgebung Integrations- umgebung Stagingumgebung eingeschränkter Betrieb vollständiger Betrieb
  210. 24.09.2020 //// Seite 5 WPS – Workplace Solutions Die Deployment-Pipeline

    https://martinfowler.com/bliki/DeploymentPipeline.html „One of the challenges of an automated build and test environment is you want your build to be fast, so that you can get fast feedback, but comprehensive tests take a long time to run. A deployment pipeline is a way to deal with this by breaking up your build into stages. Each stage provides increasing confidence, usually at the cost of extra time. Early stages can find most problems yielding faster feedback, while later stages provide slower and more through probing. Deployment pipelines are a central part of Continuous Delivery.“
  211. 24.09.2020 //// Seite 6 WPS – Workplace Solutions Continuous Integration,

    Delivery, Deployment Modultests ok? Integrationstests ok? Abnahme / Performance Tests ok? Betatests in Produktion ok? Entwicklungs- umgebung Integrations- umgebung Stagingumgebung eingeschränkter Betrieb vollständiger Betrieb Continuous Deployment Continuous Delivery Continuous Integration
  212. 24.09.2020 //// Seite 8 WPS – Workplace Solutions Einfachstes Deployment:

    Downtime ▪ Zugehörige und abhängige Systeme werden während des Deployments vom Netz genommen. ▪ Ops müssen Nacht- oder Frühschichten schieben ▪ Devs sind zeitlich eingeschränkt ▪ unmöglich bei 24/7 Anforderungen ▪ Gibt es eine bessere Lösung?
  213. 24.09.2020 //// Seite 9 WPS – Workplace Solutions Blau-/Grün-Deployment ▪

    Gesamte Produktivumgebung in Staging doppeln ▪ So identisch wie möglich ▪ Produktions- und Staging- Umgebungen wechseln sich ab
  214. 24.09.2020 //// Seite 10 WPS – Workplace Solutions Blau-/Grün-Deployment ▪

    Gesamte Produktivumgebung in Staging doppeln ▪ So identisch wie möglich ▪ Produktions- und Staging- Umgebungen wechseln sich ab
  215. 24.09.2020 //// Seite 11 WPS – Workplace Solutions Blau-/Grün-Deployment ▪

    Gesamte Produktivumgebung in Staging doppeln ▪ So identisch wie möglich ▪ Produktions- und Staging- Umgebungen wechseln sich ab
  216. 24.09.2020 //// Seite 23 WPS – Workplace Solutions Eingeschränkter Betrieb

    ▪ Risiko minieren: Neue Version erst bei einem Teil der Nutzer ausrollen ▪ Zufällig ausgewählt ▪ Zuerst interne, dann externe ▪ Nach Nutzerdaten ▪ Freiwillige (Beta-Test) ▪ Ziele ▪ Risikominimierung von Fehlern ▪ Kapazitätsplanung ▪ Nutzerverhalten (A/B-Tests) ▪ Alternativversionen parallel betreiben Entwicklungs- umgebung Integrations- umgebung Stagingumgebung eingeschränkter Betrieb vollständiger Betrieb
  217. 24.09.2020 //// Seite 24 WPS – Workplace Solutions Eingeschränkter Betrieb

    ▪ Risiko minieren: Neue Version erst bei einem Teil der Nutzer ausrollen ▪ Zufällig ausgewählt ▪ Zuerst interne, dann externe ▪ Nach Nutzerdaten ▪ Freiwillige (Beta-Test) ▪ Ziele ▪ Risikominimierung von Fehlern ▪ Kapazitätsplanung ▪ Nutzerverhalten (A/B-Tests) ▪ Alternativversionen parallel betreiben Entwicklungs- umgebung Integrations- umgebung Stagingumgebung eingeschränkter Betrieb vollständiger Betrieb Fehler gibt es trotzdem! Dauerhaft: ▪ Monitoring und Vergleich mit historischen Daten ▪ Logging, das die Fehlerdiagnose vereinfacht ▪ Problemfälle zum Normalfall machen
  218. 24.09.2020 //// Seite 25 WPS – Workplace Solutions Strategien zum

    Deployment 1. Downtime 2. Blau-/Grün-Deployment 3. Rollierendes Update VM VM VM VM VM VM IST SOLL VM VM VM VM VM VM Load Balancer VM VM VM VM VM VM Load Balancer Load Balancer Load Balancer Load Balancer Load Balancer Load Balancer VM VM VM VM VM VM VM VM VM VM VM VM VM VM VM VM VM VM
  219. 24.09.2020 //// Seite 26 WPS – Workplace Solutions Vor- und

    Nachteile der Strategien 1. Downtime ▪ Sehr einfach! ▪ Ops müssen Nacht- oder Frühschichten schieben ▪ Devs sind zeitlich eingeschränkt ▪ unmöglich bei 24/7 Anforderungen 2. Blau/Grün-Deployment ▪ Ressourcen-Verbrauch ist höher (oder man nimmt die Staging-Umgebung) ▪ “Big Bang” beim Umschalten ▪ Rollback ist einfach 3. Rollierendes Update ▪ Ressourcen kaum erhöht ▪ Konsistenzprobleme müssen bedacht werden ▪ komplizierter ▪ Rollback in der Mitte ist ein Problem
  220. 24.09.2020 //// Seite 28 WPS – Workplace Solutions Blau-/Grün-Deployment –

    Was ist mit den Daten? ▪ Es kommt ein letzter Request der die Erstellung eines Users fordert. ▪ Dieser wird auch erzeugt und erhält die ID 1234. ▪ Unmittelbar danach schaltet der Router um und stellt Version 1.1 live POST Request: CREATE USER “Hans Meier“
  221. 24.09.2020 //// Seite 29 WPS – Workplace Solutions Blau-/Grün-Deployment –

    Was ist mit den Daten? ▪ Danach erfolgt ein GET Request der die User mit dem Namen „Hans Meier“ anfordert. ▪ Wie stellen wir sicher, dass der Hans Meier mit der ID 1234 auch in der Antwort enthalten ist? GET Request: ALL USERS NAMED “Hans Meier“
  222. 24.09.2020 //// Seite 30 WPS – Workplace Solutions Blau-/Grün-Deployment –

    Synchronisation der Datenbanken ▪ Viele Datenbanksysteme Bieten die Möglichkeit Bi- Direktional zu synchronisieren
  223. 24.09.2020 //// Seite 31 WPS – Workplace Solutions Blau-/Grün-Deployment –

    Gemeinsame Datenbank ▪ Beide Versionen gehen gegen einen Datenbankcluster und die Datenbank erhält mit der neuen Version konservative Änderungen ▪ Die Datenbank bleibt N-1 Kompatibel. ▪ Das Konzept muss von Entwicklern verstanden sein und bei den Datenbank- refactorings berücksichtigt werden. 1.0 & 1.1
  224. 24.09.2020 //// Seite 32 WPS – Workplace Solutions Inkonsistenzen bei

    parallel betriebenen Versionen Beispiel während der Umstellung: Ich nutze den neuen Kino-Service, um einen neuen Saal anzulegen. Beim alten Kino-Service, schlägt der selbe Aufruf fehl, weil das Feature fehlt! Lösungsansätze ▪ Klient weiß, mit welcher Version er spricht ▪ Neue Features erst nutzen, wenn alle Services ersetzt sind ▪ Vorwärts- und Rückwärts-kompatible Schnittstellen Auch für veränderte DB-Schemata gibt es Lösungsansätze. Alle Lösungen müssen von Software-Entwicklern umgesetzt werden!
  225. 24.09.2020 //// Seite 33 WPS – Workplace Solutions Umgebungen Entwicklungs-

    umgebung Integrations- umgebung Stagingumgebung eingeschränkter Betrieb vollständiger Betrieb • Läuft meist auf Entwickler-Desktop • Log-Level ist sehr hoch • Läuft auf CI-Server • Komponenten werden erzeugt • Umgebung ist so nah an der Betriebs- umgebung wie möglich! • Komponente wird bei einigen Anfragen verwendet und überwacht • Komponente wird auf allen Instanzen in Produktion genommen unveränderte Komponente angepasste Konfiguration Minimale Test- Daten Produktive Daten Neu aufgesetzte, Minimale Test-Daten Realistische Daten
  226. 24.09.2020 //// Seite 34 WPS – Workplace Solutions Aber in

    der Integrationsumgebung ist der Fehler nicht aufgetreten!
  227. 24.09.2020 //// Seite 36 WPS – Workplace Solutions Umgebungen ▪

    Daten Möglichst gleich wie Produktion halten ▪ Auf Pseudonymisierung oder besser Anonymisierung achten! ▪ Möglichst gleiche Infrastruktur in allen Umgebungen dabei helfen ▪ Automatisierte Deployments ▪ Infrastructure as Code (Docker) ▪ Idealerweise wird die gesamte Infrastruktur mit dem Deployment neu erzeugt
  228. 24.09.2020 //// Seite 37 WPS – Workplace Solutions Konfiguration der

    Umgebungen ▪ Konfiguration sollte immer nachvollziehbar sein. ▪ Konfigurationsänderungen sollten reversibel sein ▪ Beides wird gefördert wenn sich die Konfiguration im Repository befindet. ▪ Im Idealfall betreiben wir in jeder Umgebung das gleiche Artefakt ▪ Feature Toggles helfen das hinzu und wegnehmen einzelner Funktionen zentral zu steuern ▪ Features die noch nicht produktionsreif sind werden nur in den vorgelagerten Umgebungen aktiviert
  229. 24.09.2020 //// Seite 38 WPS – Workplace Solutions Arten von

    Feature Toggles https://martinfowler.com/articles/feature-toggles.html
  230. 24.09.2020 //// Seite 39 WPS – Workplace Solutions Test ▪

    Stornieren von Buchungen ▪ Erstellen neuer Hotelzimmer ▪ Kreditkartenzahlung ▪ Buchung über mobile Website
  231. 24.09.2020 //// Seite 40 WPS – Workplace Solutions Staging ▪

    Stornieren von Buchungen ▪ Erstellen neuer Hotelzimmer ▪ Kreditkartenzahlung ▪ Buchung über mobile Website
  232. 24.09.2020 //// Seite 41 WPS – Workplace Solutions Produktion ▪

    Stornieren von Buchungen ▪ Erstellen neuer Hotelzimmer ▪ Kreditkartenzahlung ▪ Buchung über mobile Website
  233. 24.09.2020 //// Seite 42 WPS – Workplace Solutions Delivery ▪

    Ergebnis von Pipeline sollten Packages oder Images sein ▪ Ablegen in Docker Registry / Maven-Repo / Package-Manager ... ▪ Vereinfacht Deployments enorm ▪ Nachvollziehbarkeit (gleiche Version)
  234. 24.09.2020 //// Seite 44 WPS – Workplace Solutions ÜBUNG: DELIVERY

    PIPELINE ▪ Lesen Sie Teil 3 der Fallstudie. ▪ Auf der Grundlage der bisher gestalteten Makro Architektur: ▪ Wie könnte eine Deployment-Pipeline aussehen, die den Anforderungen an die Microservices gerecht wird? ▪ Welche Deployment-Strategien sehen Sie als sinnvoll an? ▪ Gibt es Release-Abhängigkeiten? Falls ja wie gehen Sie mit diesen um?
  235. 24.09.2020 //// Seite 2 WPS – Workplace Solutions Überblick Modularisierung

    Integration Inst. + Rollout Betrieb + Co. Resilient
  236. 24.09.2020 //// Seite 4 WPS – Workplace Solutions Das Server

    Sprawl-Syndrom ▪ Interne Systemressourcen werden nicht ausgelastet ▪ Prozessorleistung ▪ Arbeitsspeicher ▪ Festplattenspeicher ▪ Hierdurch werden andere Ressourcen unnötig belastet ▪ Stromnetz ▪ Kühlung ▪ Stellplätze
  237. 24.09.2020 //// Seite 5 WPS – Workplace Solutions Virtualisierung ▪

    Ermöglicht den bessere Auslastung der vorhandenen Systemressource ▪ Ressourcen wie Energie und Platz werden geschont ▪ Anwendungen laufen weiterhin isoliert auf getrennten Betriebssystemen
  238. 24.09.2020 //// Seite 6 WPS – Workplace Solutions Durchschnittliche Auslastung

    eines eCommerce Servers im Verlaufe des Monats November
  239. 24.09.2020 //// Seite 7 WPS – Workplace Solutions Cloud ▪

    Alles Dropbox oder was? ▪ Am Anfang war Amazon! ▪ Public Cloud ▪ Vollständiges Outsourcing der Hardware ▪ Fremde Rechen- und Speicherleistungen werden auf Bedarf eingekauft ▪ Private Cloud ▪ Vollständige Virtualisierung und Containerisierung ▪ Dynamisches hinzunehmen und entfernen von Rechenleistung ▪ Betrieb eigener Hardware
  240. 24.09.2020 //// Seite 8 WPS – Workplace Solutions Charakteristika (NIST)

    ▪ Selbstbedienung nach Bedarf ▪ Erreichbar per Internet ▪ Ressourcen-Pool für mehrere Kunden ▪ Hohe Elastizität ▪ Service wird gemessen / überwacht
  241. 24.09.2020 //// Seite 9 WPS – Workplace Solutions Cloud Service-Typen

    ▪ Software as a Service (SaaS) ▪ E-Mail, virtueller Desktop, Spiele, … ▪ Kunde hat eine Software zur Verfügung, die in einer Cloud läuft ▪ Platform as a Service (PaaS) ▪ Webserver, Datenbanken, Entwicklungsumgebungen, … ▪ Kunde kann Software auf der Cloud-Infrastruktur installieren ▪ Hoher Standardisierungs-Grad! ▪ Infrastructure as a Service (IaaS) ▪ Virtuelle Maschinen, Storage, Load Balancer, … ▪ Kunde kann Betriebssysteme, Datenspeicher und Netzwerke verwalten ▪ Zugrundeliegende Infrastruktur bleibt in der Verantwortung des Anbieters
  242. 24.09.2020 //// Seite 11 WPS – Workplace Solutions Managed Services

    oder Rechenressourcen? ▪ Abwägungsfrage: ▪ Managed Datenbank vom Cloudanbieter ▪ Oder eine reine VM/VMs auf denen die Datenbank selbst betrieben wird ▪ Häufig abzuwägen: ▪ Schneller Start vs. steile Lernkurve ▪ Für die Masse gute Leistung vs. auf individuellen Bedarf zugeschnittene Leistung ▪ Standardisierung vs. Flexibilität Standardisierung Flexibilität hoch niedrig niedrig hoch IaaS PaaS SaaS
  243. 24.09.2020 //// Seite 12 WPS – Workplace Solutions Leitbild: Pet

    vs Cattle „Server sind wie Haustiere“ Sie bekommen einen Namen, sind einmalig, werden liebevoll aufgezogen und versorgt. Wenn sie krank sind, werden sie gesund gepflegt. „Server sind wie Vieh“ Vieh bekommt Nummern und ist kaum unterscheidbar. Wenn es krank wird, holt man sich neues. Scale Out Scale Up CC-By-Nd “Sick dog large”, Yoel Ben-Avraham
  244. 24.09.2020 //// Seite 13 WPS – Workplace Solutions Ressourcen-Management ▪

    Hochfahren: ▪ Manuell nach Erfahrung ▪ Automatisch nach Auslastung ▪ Automatisch nach SLAs (eine Maschine pro X Besucher) ▪ Herunterfahren ▪ Bei geringer Last ▪ Erst nach Abkühl-Phase ▪ Klienten dürfen sich die Instanz nicht lange merken
  245. 24.09.2020 //// Seite 14 WPS – Workplace Solutions Was ist

    Serverless? ▪ Wie so oft: Es gibt keine einheitliche Definition. ▪ „Run code, not Server“ ▪ Entwickler sollen sich nur noch um die Entwicklung fachlicher Bausteine kümmern, nicht um technische Infrastruktur ▪ FaaS = Function as a service ▪ Kosten/Funktionsaufruf => Kosten skalieren ▪ Eventgesteuert ▪ Es gib keine laufenden Serverprozesse. Stattdessen gibt es einen Funktionsaufruf sobald ein Triggerevent ausgelöst wurde, zum Beispiel ein HTTP-Aufruf. ▪ Teilweise wird „BaaS= Backend as a service“ auch als serverless angesehen ▪ Keine Funktion, sondern Anwendungen
  246. 24.09.2020 //// Seite 15 WPS – Workplace Solutions Einordnung IaaS

    Application Data Runtime Middleware OS Virtualization Servers Storage Network PaaS Application Data Runtime Middleware OS Virtualization Servers Storage Network SaaS Application Data Runtime Middleware OS Virtualization Servers Storage Network Serverless (BaaS + FaaS) Application Data Runtime Middleware OS Virtualization Servers Storage Network 2000-2005 2004-2009 2008-2013 2014+
  247. 24.09.2020 //// Seite 19 WPS – Workplace Solutions Serverless Angebote

    ▪ AWS Lambda ▪ Google Cloud Functions ▪ Azure Functions ▪ IBM Cloud Functions ▪ Oracle Cloud Fn ▪ Webtask.io ▪ Hook.io
  248. 24.09.2020 //// Seite 21 WPS – Workplace Solutions Managed Services

    oder Rechenressourcen? ▪ Abwägungsfrage: ▪ Managed Datenbank vom Cloudanbieter ▪ Oder eine reine VM/VMs auf denen die Datenbank selbst betrieben wird ▪ Häufig abzuwägen: ▪ Schneller Start vs. steile Lernkurve ▪ Für die Masse gute Leistung vs. auf individuellen Bedarf zugeschnittene Leistung ▪ Standardisierung vs. Flexibilität Standardisierung Flexibilität hoch niedrig niedrig hoch IaaS PaaS SaaS FaaS
  249. 24.09.2020 //// Seite 24 WPS – Workplace Solutions Ausfallwahrscheinlichkeit ▪

    1 Maschine ▪ 99,9% verfügbar ▪ MTTF 1 Jahr ▪ MTTR 8 Stunden ▪ MTBF 15 Tage ▪ MTTR 8 Stunden ▪ MTTR 8 Stunden (HW repariert) ▪ MTTR 10 Minuten (VMs ziehen um) ▪ 24 Maschinen ▪ 99,9% verfügbar …
  250. 24.09.2020 //// Seite 25 WPS – Workplace Solutions Betroffene Applikationen

    ▪ Gleichzeitig fallen mehrere VMs / Service-Instanzen aus ▪ Die betroffenen Maschinen sind nicht “logisch” begrenzt, weil VMs flexibel auf den Hypervisorn verschoben werden 1 Hypervisor fällt aus, was passiert? Hypervisors Virtuelle Maschinen
  251. 24.09.2020 //// Seite 26 WPS – Workplace Solutions Netzwerk-Partition Konsistenz

    + Verfügbarkeit + Partitionstoleranz ist unmöglich! (CAP Theorem) Beispiele: ▪ DNS – Verfügbar und Partitionstolerant ▪ SQL-DBs – Konsistent und Verfügbar ▪ Banking-Anwendungen – Konsistent und Partitionstolerant switch switch
  252. 24.09.2020 //// Seite 27 WPS – Workplace Solutions Risiken und

    Nebenwirkungen ▪ höhere Latenzen kommen leichter und öfter vor ▪ VMs können sich gegenseitig beeinflussen (z.B. Zeit klauen) ▪ Ausfälle einzelner VMs kommen öfter vor, weil es viele sind ▪ Hardware-Fehler treffen viele VMs gleichzeitig ▪ Daten-Konsistenz muss bedacht werden ▪ Cluster-Dateisysteme müssen bedacht werden ▪ Viel mehr VMs zu managen
  253. 24.09.2020 //// Seite 29 WPS – Workplace Solutions Vor- und

    Nachteile von Virtualisierung Vorteile Nachteile Mengen-Komplexität Ressourcenverbrauch ggf. Lizenzmodelle Braucht schnelles Netzwerk Automatisierbar Skalierbarkeit Flexibilität schnellere Bereitstellung ▪ Virtualisierung ist technologisch gesehen komplizierter. ▪ Die Vorteile ergeben sich durch einen wesentlich höheren Service-Level
  254. 24.09.2020 //// Seite 30 WPS – Workplace Solutions Was wir

    durch Virtualisierung erreichen wollten
  255. 24.09.2020 //// Seite 31 WPS – Workplace Solutions Was wir

    durch Virtualisierung erreicht haben Und wieder werden Ressourcen nicht ausgenutzt!
  256. 24.09.2020 //// Seite 32 WPS – Workplace Solutions Das Server

    Sprawl-Syndrom kommt wieder ▪ Durch automatische Orchestrierung wird dem entgegen gewirkt ▪ VMs werden dynamisch und bedarfsgerecht dimensioniert ▪ VMs werden je nach Bedarf auf verschiedene physische Maschinen verteilt ▪ Tools zur Orchestrierung belasten das Netz und erfordern aufwändiges Tooling ▪ Es bleibt der Overhead für die Emulation der Hardware und das dedizierte Betriebssystem
  257. 24.09.2020 //// Seite 2 WPS – Workplace Solutions Überblick Modularisierung

    Integration Inst. + Rollout Betrieb + Co. Resilient
  258. 24.09.2020 //// Seite 4 WPS – Workplace Solutions Don‘t Repeat

    Yourself (DRY) ▪ Repetitive Konfigurationsarbeit soll nicht manuell gemacht werden, weil ▪ Konfigurationen nur schwer nachzuvollziehen und zu überwachen sind ▪ es die Änderbarkeit erschwert, da an vielen Rechnern Änderungen nachgezogen werden müssen. ▪ es zu Inkonsistenzen führen kann. ▪ so Rollbacks nur schwer möglich sind ▪ Auch „Single Point of Truth“ und „Single Point of Maintenance“
  259. 24.09.2020 //// Seite 5 WPS – Workplace Solutions Merkmale guter

    Bereitstellung Automatisierte Bereitstellung Nachvollziehbarkeit Befehle sollen wiederholbar sein Befehle sollen protokolliert sein Befehle sollen Standardisiert sein Regression Qualitätssicherung, automatisierte Tests Monitoring Rollback, Roll Forward Regelmäßigkeit If it hurts, do it more often Infrastructure as Code: verwalte alle Skripte im selben Repository! Diese Skripte müssen genauso Qualitätsgesichert werden wie Code. Bei manueller Arbeit sind diese Merkmale schwer zu erreichen. Bereitstellungszeit reduzieren Koordinierungs-Aufwand reduzieren Zeit für andere Aufgaben frei machen
  260. 24.09.2020 //// Seite 6 WPS – Workplace Solutions Infrastructure as

    Code Im Grunde wie Softwareentwicklung Code Versions- kontrolle Code Review Integration Deployment Text Editor Git o.ä. Review Tools Syntax Validierung Cloud Provider
  261. 24.09.2020 //// Seite 7 WPS – Workplace Solutions Deployment-Anweisungen sind

    Code ▪ Das Deployment der Anwendung in Code festhalten ▪ Den Code der das Deployment beschreibt im Repository einchecken ▪ Code muss getestet werden, z.B. mit Serverspec
  262. 24.09.2020 //// Seite 8 WPS – Workplace Solutions Provisionierung und

    Orchestrierung Orchestrierung ~ Prozess, Provisionierung ~ Aufgabe ▪ Provisionierung ist die Versorgung einer Maschine oder VM mit Software ▪ Betriebssystem, Zertifikate, Anwendungen ▪ Orchestrierung ist die übergeordnete Koordinierung ▪ Erschaffen / Migrieren / Vernichten von VMs ▪ Koordinierung von Provisionierungen
  263. 24.09.2020 //// Seite 9 WPS – Workplace Solutions Bereitstellung: Push

    vs. Pull Push • Zentrale Konfiguration • Einfacheres Modell Pull • Jede Instanz ist selbst verantwortlich für Updates • Flexibler skalierbar auf mehrere Admins Provisio- nierung Provisio- nierung
  264. 24.09.2020 //// Seite 10 WPS – Workplace Solutions Tools zur

    Provisionierung ▪ Push vs. Pull ▪ Reine Provisionierung oder Kombi-Lösung. Ansible z.B. übernimmt auch Aufgaben der Orchestrierung
  265. 24.09.2020 //// Seite 15 WPS – Workplace Solutions Beispiel Ansible:

    Konzepte Inventory • Definiert Hosts und Gruppen von Hosts Playbook • Weist Gruppen Provisionierungen zu • Direkt, oder • Durch Role Role • Beschreibung mehrerer Tasks, die nacheinander ausgeführt werden sollen
  266. 24.09.2020 //// Seite 16 WPS – Workplace Solutions Ansible Beispiel

    - name: Install Mysql package yum: name={{ item }} state=installed with_items: - mysql-server - MySQL-python - libselinux-python - libsemanage-python - name: Configure SELinux to start mysql on any port seboolean: name=mysql_connect_any state=true persistent=yes when: sestatus.rc != 0 - name: Create Mysql configuration file template: src=my.cnf.j2 dest=/etc/my.cnf notify: - restart mysql - name: Start Mysql Service service: name=mysqld state=started enabled=yes
  267. 24.09.2020 //// Seite 18 WPS – Workplace Solutions Von der

    Codebasis eines Microservices zum laufenden Verbund ▪ Wie wird der Code eines Microservice gebaut und lauffähig „installiert“? ▪ Das definiert die Container-Spec (z.B. Dockerfile)! ▪ Auf Basis der Container-Spec wird ein Image gebaut. ▪ Das Image sollte im Betrieb weiterhin konfigurierbar bleiben z.B. durch Umgebungsvariablen. ▪ Die Deployment-Spec beschreibt die Betriebsumgebung und Konfiguration des Containers. Z.B. Replica und Umgebungsvariablen Container- Spec Container- Spec Container- Spec Deployment-Spec
  268. 24.09.2020 //// Seite 19 WPS – Workplace Solutions Das braucht

    schon ein recht reifes Ökosystem Dockerfile Dockerimage Container- Registry Dockercontainer docker build docker push docker run
  269. 24.09.2020 //// Seite 20 WPS – Workplace Solutions Kubernetes et

    al helfen beim automatisierten Deployment von Containern apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80
  270. 24.09.2020 //// Seite 21 WPS – Workplace Solutions Container Patterns

    - Single-Container Pattern ▪ Oft Ausgangssituation ▪ Einfacher Einstieg ▪ Best practice, solange der Container nur eine Verantwortlichkeit hat ▪ Anti-Pattern, wenn der Container mehrere hat ▪ Z.B. Webserver + Log Prozessor Pod Container 1 Hauptanwendu ng
  271. 24.09.2020 //// Seite 22 WPS – Workplace Solutions Container Patterns

    – Sidecar/Sidekick Pattern - Kommunikation ▪ Kommunikation z.B. über geteiltes Volume oder lokales Netzwerk ▪ Beispiel: ▪ Anwendung schreibt logs einfach aufs Volume, wie lokal ▪ Sidecar liest logs und schickt sie an zentrale Sammelstelle weiter ▪ Die Anwendung weiß nichts von der Komplexität der Weiterleitung / dem zentralen Log Sammler ▪ Anwendung wurde erweitert ohne angepasst zu werden Pod Container 1 Hauptanwendu ng Sidecar Container Log Prozessor geteiltes Volume
  272. 24.09.2020 //// Seite 24 WPS – Workplace Solutions Ein ganz

    anderer Ansatz zur Provisionierung ▪ Statt eine laufende Instanz zu provisionieren bereiten wir provisionierte Images vor ▪ Und liefern das Maschine-Image aus
  273. 24.09.2020 //// Seite 25 WPS – Workplace Solutions Von Code

    zum Image mit fertig provisioniertem Betriebssystem
  274. 24.09.2020 //// Seite 26 WPS – Workplace Solutions Tools für

    Infrastrukturautomatisierung (Orchestrierung) ▪ Erzeugung von Infrastruktur-Ressourcen (VMs, Container, Managed Services)
  275. 24.09.2020 //// Seite 27 WPS – Workplace Solutions Terraform ▪

    Terraform: Cloud-Infrastruktur mit Code beschreiben ▪ Deklarative Syntax. Man beschreibt, welche Ressourcen es geben SOLL ▪ „terraform apply“ ▪ berechnet Diff. zwischen SOLL und IST ▪ Erstellt Plan und zeigt den an ▪ Fragt nach Bestätigung ▪ Code ins Git ▪ Versionierung / Auditing out of the box ▪ Team hat alles unter Kontrolle ▪ Konfigurationsdrift direkt erkennbar ▪ Module, Kapselung und Abstraktion möglich
  276. 24.09.2020 //// Seite 30 WPS – Workplace Solutions ÜBUNG: DELIVERY

    PIPELINE AUTOMATISIEREN ▪ Welche Schritte werden manuell angestoßen/durchgeführt, welche automatisch? ▪ Bei den aktuellen manuellen Arbeitsschritten, wo seht ihr Automatisierungspotential? ▪ Wie testen Sie den Erfolg eines Deployments?
  277. 24.09.2020 //// Seite 2 WPS – Workplace Solutions Überblick Modularisierung

    Integration Inst. + Rollout Betrieb + Co. Resilient
  278. 24.09.2020 //// Seite 4 WPS – Workplace Solutions Snowflake Servers

    „I too consider myself an artist and a craftsman of server building. With each click of a mouse, I create a work of art. With every option I select, every module I install, every registry tweak I make, every configuration file I edit, I create a unique, one of a kind masterpiece.“ http://tatiyants.com/devops-is-ruining-my-craft/
  279. 24.09.2020 //// Seite 5 WPS – Workplace Solutions Leitbild: Pet

    vs Cattle „Server sind wie Haustiere“ Sie bekommen einen Namen, sind einmalig, werden liebevoll aufgezogen und versorgt. Wenn sie krank sind, werden sie gesund gepflegt. „Server sind wie Vieh“ Vieh bekommt Nummern und ist kaum unterscheidbar. Wenn es krank wird, holt man sich neues. Scale Out Scale Up CC-By-Nd “Sick dog large”, Yoel Ben-Avraham
  280. 24.09.2020 //// Seite 6 WPS – Workplace Solutions Configuration Drift

    https://www.thoughtworks.com/de/insights/blog/moving-using-phoenix-pattern-part-3-evolving-recovery-strategy
  281. 24.09.2020 //// Seite 7 WPS – Workplace Solutions Phoenix Server

    https://www.thoughtworks.com/de/insights/blog/moving-to-phoenix-server-pattern-introduction
  282. 24.09.2020 //// Seite 8 WPS – Workplace Solutions Einfach alles

    einreißen und neu aufbauen ▪ Anpassungen der Konfiguration im Betrieb bringen immer Risiken mit ▪ Die Umstellung einer Konfiguration wirkt sich unvorhergesehen aus ▪ Die Test und Produktionsumgebung weichen hinsichtlich ihrer Konfiguration ab ▪ Also passen wir die Konfigurationen im Betrieb einfach nicht mehr an ▪ Wir machen die Infrastruktur unveränderlich ▪ Wir schreiben Code, der unsere Infrastruktur erzeugt ▪ Wenn die Konfiguration angepasst werden muss, wird der erzeugende Code modifiziert ▪ Wir haben Code der unsere Infrastruktur beschreibt ▪ Versionsgesichert ▪ Jederzeit nachvollziehbar ▪ Jederzeit anpassbar
  283. 24.09.2020 //// Seite 9 WPS – Workplace Solutions Blau-/Grün-Deployment ▪

    Gesamte Produktivumgebung in Staging doppeln ▪ So identisch wie möglich ▪ Produktions- und Staging- Umgebungen wechseln sich ab Phönix: https://pixabay.com/en/phoenix-bird-of-fire-mythical-fire-28028 Flammen: https://pixabay.com/en/fire-flame-danger-burn-light-306894
  284. 24.09.2020 //// Seite 10 WPS – Workplace Solutions Blau-/Grün-Deployment ▪

    Gesamte Produktivumgebung in Staging doppeln ▪ So identisch wie möglich ▪ Produktions- und Staging- Umgebungen wechseln sich ab Phönix: https://pixabay.com/en/phoenix-bird-of-fire-mythical-fire-28028 Flammen: https://pixabay.com/en/fire-flame-danger-burn-light-306894
  285. 24.09.2020 //// Seite 11 WPS – Workplace Solutions Blau-/Grün-Deployment ▪

    Gesamte Produktivumgebung in Staging doppeln ▪ So identisch wie möglich ▪ Produktions- und Staging- Umgebungen wechseln sich ab Phönix: https://pixabay.com/en/phoenix-bird-of-fire-mythical-fire-28028 Flammen: https://pixabay.com/en/fire-flame-danger-burn-light-306894
  286. 24.09.2020 //// Seite 13 WPS – Workplace Solutions Moderne Anwendungen

    Quelle: https://de.slideshare.net/dotCloud/why-docker
  287. 24.09.2020 //// Seite 14 WPS – Workplace Solutions Software kommt

    in vielen Formen ▪ Verschiedene Programmiersprachen ▪ Inkompatible Abhängigkeiten ▪ z.B. python 2.7 vs python 3.x ▪ Dependency Hell ▪ Unterschiede in ▪ Betriebssystem ▪ Rechnerkonfiguration (z.B. PATH, JAVA_HOME, ...) ▪ Java-Version ▪ Application-Server-Version ▪ Application-Server-Konfiguration ▪ Verschiedene Paketierungswege ▪ Z.B. für Java Anwendungen: ▪ Aus Eclipse starten ▪ Als jar-Datei verpacken ▪ Als war in tomcat deployen ▪ Als Service-Dienst in Windows registrieren ➢ Interferenzen zwischen Anwendungen ➢ Unterschiedliches Verhalten je nach System ➢ unvorhergesehene Bugs
  288. 24.09.2020 //// Seite 17 WPS – Workplace Solutions Die Lösung:

    Container Quelle: https://de.slideshare.net/dotCloud/why-docker
  289. 24.09.2020 //// Seite 18 WPS – Workplace Solutions Containerisierung: Tools

    ▪ Linux-Container: ▪ Docker ▪ rkt (Rocket) ▪ LXD ▪ Windows-Container: ▪ DrawBridge ▪ Spoon ▪ Offener Standard appc
  290. 24.09.2020 //// Seite 19 WPS – Workplace Solutions Wobei helfen

    Container? ▪Anwendung inkl. Software-Abhängigkeiten paketieren ▪Anwendung verteilen ▪Anwendung überall reproduzierbar starten ▪Externe Systemabhängigkeiten (z.B. DB) isolieren ▪In verschiedenen Umgebungen testen ▪Angriffsvektoren für Sicherheit minimieren
  291. 24.09.2020 //// Seite 20 WPS – Workplace Solutions Container Container

    Meine-App.jar JRE Ubuntu 8080 6006 db /logdir
  292. 24.09.2020 //// Seite 21 WPS – Workplace Solutions Container Host

    Container Meine-App.jar JRE Ubunt u 8080 6006 db /logdir Container mysql /Users/fvs/logdir 32768 32769
  293. 24.09.2020 //// Seite 22 WPS – Workplace Solutions Die Sache

    mit den Ports Wer will schon https://kino- blickfang.de:32768 besuchen?
  294. 24.09.2020 //// Seite 23 WPS – Workplace Solutions Reverse Proxy

    (klassisch) Buchung Payment Backoffice 1 Backoffice 2 kino-blickfang.de/api events.kino-blickfang.de Internet Privates Netz Affiliate Affiliate backend port_80 mode http balance roundrobin option httpchk HEAD / HTTP/1.0 server bo1 10.0.0.2:80 check server bo2 10.0.0.3:80 check buchung.kino-blickfang.de
  295. 24.09.2020 //// Seite 24 WPS – Workplace Solutions Reverse Proxy

    (dynamisch) Buchung Payment Backoffice 1 Backoffice 2 buchung.kino-blickfang.de kino-blickfang.de/api events.kino-blickfang.de Internet Privates Netz Affiliate API hört auf
  296. 24.09.2020 //// Seite 26 WPS – Workplace Solutions Docker Lifecycle

    Container Image Dockerfile BUILD SHIP RUN Registry build run push pull
  297. 24.09.2020 //// Seite 28 WPS – Workplace Solutions Docker CLI

    docker info docker pull docker images docker run docker ps docker stop docker logs ...
  298. 24.09.2020 //// Seite 29 WPS – Workplace Solutions Arten, Container

    zu starten ▪Dauerhaft laufende(r) Server oder Datenbank ▪docker run -d my-server ▪Kurzlebinges Skript (mit Antwort) ▪docker run --rm ubuntu ls ▪Interaktiver Container ▪docker run –it my-server sh
  299. 24.09.2020 //// Seite 30 WPS – Workplace Solutions Serverless “on

    premise“ ▪ Fission -> Serverless auf eigenen Servern https://fission.io/
  300. 24.09.2020 //// Seite 31 WPS – Workplace Solutions Dockerfile Beispiel

    FROM python:3.4 RUN groupadd -r uwsgi && useradd -r -g uwsgi uwsgi RUN pip install Flask==0.10.1 uWSGI==2.0.8 requests==2.5.1 redis==2.10.3 WORKDIR /app COPY app /app COPY cmd.sh / EXPOSE 9090 9191 USER uwsgi ENTRYPOINT ["/cmd.sh"]
  301. 24.09.2020 //// Seite 33 WPS – Workplace Solutions Virtualisierung und

    Containerisierung Virtualisierung Containerisierung In Anlehnung an https://www.docker.com/what-docker Infrastruktur Infrastruktur Betriebssystem Host Betriebssystem Host Hypervisior Container-Engine App 1 Bibliotheken Betriebs- system App 1 Bibliotheken Betriebs- system App 1 Bibliotheken Betriebs- system App 1 Bibliotheken App 1 Bibliotheken App 1 Bibliotheken
  302. 24.09.2020 //// Seite 37 WPS – Workplace Solutions Was wir

    durch Virtualisierung erreicht haben Und wieder werden Ressourcen nicht ausgenutzt!
  303. 24.09.2020 //// Seite 38 WPS – Workplace Solutions Containerisierung als

    Ergänzung der Virtualisierung ▪ Jeder Container ist ein Prozess im System ▪ Jeder Container nimmt sich die Ressourcen die er benötigt. ▪ Statt virtuelle Maschinen zu definieren werden Container isoliert ausgeführt ▪ Die Vorteile der Virtualisierung bleiben (weitestgehend) erhalten ▪ Die Nachteile der Virtualisierung fallen weg Aber Container haben andere Aufgaben als Virtuelle Maschinen! ▪ Virtualisierung sind absolut Isoliert -> Sicherheit & Mandantenfähig ▪ Container wollen die Anwendung mit ihren Abhängigkeiten verpacken -> Unabhängigkeit & Flexibilität
  304. 24.09.2020 //// Seite 2 WPS – Workplace Solutions Überblick Modularisierung

    Integration Inst. + Rollout Betrieb + Co. Resilient
  305. 24.09.2020 //// Seite 4 WPS – Workplace Solutions DevOps ▪

    Dev/Ops -> DevOps ▪ Organisationsformen für DevOps ▪ Schneiden von Teams ▪ Teilverantwortung für Betrieb bei Teams
  306. 24.09.2020 //// Seite 5 WPS – Workplace Solutions Definition DevOps

    DevOps ist die Praxis von Ops und Devs, im gesamten Software-Lebenszyklus, vom Design über die Entwicklung hin zur Produktion, zusammenzuarbeiten. DevOps is the practice of operations and development engineers participating together in the entire service lifecycle, from design through the development process to production support. http://theagileadmin.com/what-is-devops/
  307. 24.09.2020 //// Seite 6 WPS – Workplace Solutions Definition DevOps

    DevOps ist eine Menge an Praktiken, die die Zeit vom Commit einer Änderung bis zur produktiven Inbetriebnahme reduzieren und gleichzeitig eine hohe Qualität sicherstellen. DevOps is a set of practices intended to reduce the time between commiting a change to a system and the change being placed into normal production, while ensuring high quality. DevOps A Software Architect‘s Perspective, Len Bass
  308. 24.09.2020 //// Seite 12 WPS – Workplace Solutions Der grundsätzliche

    Zielkonflikt DevOps viele+stabile Releases QA Ops sind langsam. QA sind nutzlos. Entwickler sind unpünktlich. Nie läuft es rund. Entwickler brauchen immer Extra- würstchen.
  309. 24.09.2020 //// Seite 13 WPS – Workplace Solutions Der grundsätzliche

    Zielkonflikt DevOps viele+stabile Releases QA Korrektheit: Wenige Versionen ▪ Entwicklung einer Kultur der (agilen) Zusammenarbeit ▪ Qualitätssicherung und Effizienz- steigerung durch Automatisierung von Entwicklungs-, QA- und Betriebs- aufgaben
  310. 24.09.2020 //// Seite 15 WPS – Workplace Solutions Ziele von

    DevOps schnelle Releases + hohe Qualität ▪ Automatisierte Tests und ausgewählte Nutzer ▪ Liefermechanismus mit hoher Qualität ▪ gute Zusammenarbeit von Entwicklung und Betrieb ▪ gesamter Software-Lebenszyklus
  311. 24.09.2020 //// Seite 16 WPS – Workplace Solutions DevOps und

    Agile: Positionsbestimmung Anforderungen Entwicklung Build Tests Deployment Betrieb Agile Methoden / Scrum Business Analyst Product Owner DevOps
  312. 24.09.2020 //// Seite 18 WPS – Workplace Solutions ÜBUNG: INSTALLATION

    UND ROLLOUT ▪ Skizzieren Sie die Umgebungen und das Deployment in Ihrem aktuellen Projekt. ▪ Welche Umgebungen sind VMs, Bare Metal oder Container? ▪ Welche Umgebungen gibt es und wie oft finden in den einzelnen Umgebungen Deployments statt? ▪ Welche Personen sind am Deployment beteiligt?
  313. 24.09.2020 //// Seite 2 WPS – Workplace Solutions Überblick Modularisierung

    Integration Inst. + Rollout Betrieb + Co. Resilient
  314. 24.09.2020 //// Seite 3 WPS – Workplace Solutions Organisatorische Integration

    Quelle: https://pixabay.com/de/integration-h%C3%A4nde-ber%C3%BChren-innen-1691275/
  315. 24.09.2020 //// Seite 5 WPS – Workplace Solutions “Scrum is

    a framework for developing and sustaining complex products” - Scrum Guide A scrum (short for scrummage) is a method of restarting play in rugby that involves players packing closely together with their heads down and attempting to gain possession of the ball. Scrum
  316. 24.09.2020 //// Seite 6 WPS – Workplace Solutions Sprint ▪

    Time-Box von 1 Monat oder weniger ▪ Weit-verbreitet: 2 Wochen ▪ Ergebnis: ein Inkrement im Status „Done“ ▪ Direkt nach dem Sprint startet der nächste ▪ Während des Sprints: ▪ Keine Änderungen ▪ Jedenfalls keine die das Sprintziel gefährden ▪ Keine Verringerung des Qualitätsanspruches ▪ Minimierung von Risiko: das Team läuft nicht länger als der Sprint in die falsche Richtung Foto: Darren Wilkinson/Wikipedia
  317. 24.09.2020 //// Seite 7 WPS – Workplace Solutions Ein Sprint

    ▪ Besteht aus: ▪ Sprint Planning ▪ Daily Scrum ▪ Entwicklungsarbeit ▪ Sprint Review ▪ Sprint Retrospective Sprint Review Sprint Planning Entwicklung
  318. 24.09.2020 //// Seite 8 WPS – Workplace Solutions Planning Review

    Planning Review Planning Review Ein Sprint nach dem anderen
  319. 24.09.2020 //// Seite 9 WPS – Workplace Solutions Product Increment

    ▪ Version des Produktes ▪ Lauffähig ▪ (potentiell) releasebar
  320. 24.09.2020 //// Seite 10 WPS – Workplace Solutions Scrum vs.

    Continuous Delivery https://upload.wikimedia.org/wikipedia/ https://upload.wikimedia.org/wikipedia/
  321. 24.09.2020 //// Seite 11 WPS – Workplace Solutions Was ist

    Kanban? Kanban ist eine Methode um einen kontinuierlichen Verbesserungsprozess in Organisationen einzuführen. Drei Grundprinzipien 1. Beginne dort, wo Du dich im Moment befindest 2. Komme mit anderen Überein, das inkrementelle und evolutionäre Veränderungen angestrebt werden 3. Respektiere den aktuellen Prozess, Rollen, Verantwortlichkeiten und Berufsbezeichnungen
  322. 24.09.2020 //// Seite 12 WPS – Workplace Solutions Kanban –

    Die fünf Kernpunkte ▪ Visualisiere den Workflow: Mache die laufende Arbeit sichtbar. ▪ Begrenze Work in Progress (WIP): Beschränke die Anzahl offener Arbeitspakete. ▪ Führe Messungen zum Fluss durch und kontrolliere ihn: Messe Kennzahlen (z. B. Durchlaufzeiten) und optimiere anhand der Ergebnisse den Durchsatz. ▪ Mache die Regeln für den Prozess explizit: Formuliere Regeln für den Prozess und erfasse und bewerte Fehler objektiv. ▪ Verwende Modelle, um Chancen für Verbesserung zu erkennen: Nutze bewährte Modelle und Methoden, um den Prozess zu analysieren.
  323. 24.09.2020 //// Seite 13 WPS – Workplace Solutions Kernpunkt: Visualisiere

    den Workflow – Arbeitspakete / Aufgaben ▪ Zentrales Mittel zur Visualisierung des Workflows ist das Kanban Board. ▪ Auf einem Kanban-Board werden Arbeitspakete (z.B. Stories / Epics) und Aufgaben (z.B. Tasks oder Bugs) in Form von Karten angebracht.
  324. 24.09.2020 //// Seite 14 WPS – Workplace Solutions Kernpunkt: Begrenze

    Work in Progress (WIP) ▪ Begrenze die Zahl der offenen Baustellen! ▪ Pro Prozessabschnitt ist nur eine maximale Anzahl an parallel bearbeiteten Arbeitspaketen erlaubt. Fange kein neues Arbeitspaket an, wenn diese Zahl schon erreicht ist! ▪ Grundüberlegung: Eine abgeschlossene Baustelle ist mehr wert als zehn offene Baustellen! ▪ Die Durchlaufzeit eines einzelnen Arbeitspakets steigt mit jedem parallel dazu begonnenen Arbeitspaket. Risiken: ▪ Lange Durchlaufzeiten. ▪ Spätes Feedback!
  325. 24.09.2020 //// Seite 15 WPS – Workplace Solutions Kernpunkt: Begrenze

    den Work in Progress (WIP) – Das Pull-Prinzip ▪ Push-Prinzip: Fertige Arbeit wird einfach an die nächste Station zu übergeben ▪ Pull-Prinzip: Jede Station holt sich ihre Arbeit bei der Vorgängerstation ab. ▪ Pull-Prinzip mit Kapazitäten: Sind die Kapazitäten in einem Prozessabschnitt ausgelastet, stauen sich die nachfolgenden Arbeitspakete. Engpässe werden so sofort sichtbar und können optimiert werden.
  326. 24.09.2020 //// Seite 16 WPS – Workplace Solutions Kernpunkt :

    Fluss Messen und Regeln ▪ Um den Arbeitsfluss zu steuern, werden die Aufgaben bewertet, z.B. nach Priorität, Business Value, Kano, Kosten, Komplexität, Risiken, Dringlichkeit, Fehlerschwere, usw. – was immer im Projektkontext entscheidende Kriterien für unterschiedliche Aufgaben sind. ▪ Beliebt sind sog. Service-Klassen: ▪ Beschleunigt, z.B. Server-Crash beheben. ▪ Festes Datum, z.B. geplanter Versionswechsel eines Drittsystems, von dem unser System abhängt. ▪ Standard, z.B. die kontinuierliche, geplante Weiterentwicklung des Systems. ▪ Für Aufgaben der verschiedenen Bewertungskriterien werden oft Quoten festgelegt (z.B. müssen stets mind. 20% Standard-Aufgaben bearbeitet werden, damit kontinuierlich weiterentwickelt wird.
  327. 24.09.2020 //// Seite 17 WPS – Workplace Solutions Auf der

    Suche nach Toolunterstützung? https://xebialabs.com/periodic-table-of-devops-tools
  328. 24.09.2020 //// Seite 2 WPS – Workplace Solutions Überblick Modularisierung

    Integration Inst. + Rollout Betrieb + Co. Resilient
  329. 24.09.2020 //// Seite 3 WPS – Workplace Solutions Produktqualität nach

    DIN/ISO 25010 (früher 9126) • Qualität von Softwaresystemen wird immer bezogen auf Eigenschaften oder Merkmale. Die explizite Beachtung der relevanten Qualitätsmerkmale ermöglicht die Langlebigkeit der Anwendung! • Es gibt innere und äußere Qualitätsmerkmale Funktionalität Eignung Verwendba rkeit Genauigkei t Interoperab ilität Sicherheit Zuverlässigkeit Reife Fehlertoler anz Ausfallsich erheit Datensiche rheit Benutzbarkeit Verständlic hkeit Erlernbarke it Bedienbark eit Attraktivität Effizienz Zeitverhalte n Ressource nnutzung Sicherheit Integrität Vertraulichk eit Nachweisb arkeit Authentizit ät Verantwortl ichkeit Kompatibilität Austauschb arkeit Interoperab ilität Complianc e Wartbarkeit Analysierba rkeit Änderbarke it Erweiterbar keit Stabilität Testbarkeit Portierbarkeit Anpassbark eit Installierbar keit Ersetzbarke it Konfigurier barkeit Eigen- schaften Merkmale
  330. 24.09.2020 //// Seite 4 WPS – Workplace Solutions Architekten sind

    Diplomaten und Akrobaten Flexibilität → Standardisierung Komplexität → Einfachheit Kosten & Termine → Leistung Neue Technologie → Etablierte Technologie Minimale Schnittstellen → Enge Integration Strikte Kontrolle → Agile Entscheidungen Top-Down- Plannung → Bottom-Up- Realisierung Kosten Q Q Q Q Q Wartbarkeit Performance Einfachheit Flexibilität Time-to-Market Fehlertoleranz Q Q Skalierbarkeit Lösung Q Standardisierung Q
  331. 24.09.2020 //// Seite 5 WPS – Workplace Solutions Qualitätsbaum (utility

    tree) & Szenarien ▪ Ein Qualitätsbaum konkretisiert Qualitätsmerkmale ▪ Allgemeine Merkmale weiter links, spezielle Anforderungen rechts ▪ Wird in kleinen Workshops entwickelt ▪ erst Brainstorming dann Organisation der Qualitätsmerkmale in Baum spezifische Qualität Performance Erweiterbarkeit Verfügbarkeit Latenz Durchsatz Neue Middleware Neue Produktkategorie bei Hardwarefehler bei Bedienfehler Szenario Szenario
  332. 24.09.2020 //// Seite 6 WPS – Workplace Solutions Dokumentation von

    Qualität - Szenarien ▪ Qualitätsmerkmale können durch Szenarien beschrieben und Qualität so definiert werden. ▪ Szenarien beschreiben, was beim Eintreffen eines Stimulus auf ein System in bestimmten Situationen geschieht. ▪ Die Szenarien beschreiben konkrete Anforderungen bzgl. einzelner Qualitätsmerkmale (z.B. zu Performance oder Verständlichkeit). ▪ 3 Arten von Szenarien: ▪ Anwendungsszenarien beschreiben, wie das System auf einen bestimmten Auslöser reagieren soll ▪ Änderungsszenarien beschreiben eine Modifikation des Systems oder seiner Umgebung ▪ Stress- oder Grenzszenarien beschreiben, wie das System auf Extremsituationen reagiert → Szenarien sind die Grundlage um die Qualität von Architekturen zu bewerten.
  333. 24.09.2020 //// Seite 7 WPS – Workplace Solutions Szenarien ▪

    Bestandteile von Szenarien: ▪ Auslöser (Stimulus) ▪ Zusammenarbeit des auslösenden Stakeholders mit dem System ▪ Quelle des Auslösers ▪ Woher stammt der Auslöser (intern, extern, Benutzer, Angreifer) ▪ Umgebung ▪ Zustand des Systems zum Zeitpunkt des Auslösers ▪ Systembestandteil ▪ Welcher Bestandteil ist betroffen ▪ Antwort ▪ Wie reagiert das System ▪ Antwortmetrik ▪ Wie kann die Antwort gemessen/bewertet werden
  334. 24.09.2020 //// Seite 8 WPS – Workplace Solutions Szenarien -

    Beispiele Performanz: „Die Antwort auf eine Angebotsanfrage muss Endbenutzern im Regelbetrieb in weniger als 5 Sekunden angezeigt werden. Im Betrieb unter Hochlast (Lastspitzen) darf eine Antwort bis zu 15 Sekunden dauern, in diesem Fall ist ein entsprechender Hinweis anzuzeigen.“ Robustheit: „Bei Eingabe unzulässiger oder fehlerhafter Daten in die Eingabefelder muss das System entsprechende spezifische Hinweistexte ausgeben und danach im Normalbetrieb weiterarbeiten.“ Funktional: „Bei Benutzer-Eingabe eines Wertes in das Feld ‚Postleitzahl‘ wird automatisch der zugehörige Ort aus der Datenbank gelesen und im Feld ‚Wohnort‘ angezeigt.“
  335. 24.09.2020 //// Seite 10 WPS – Workplace Solutions ÜBUNG: Qualitätsbaum

    ▪ Welche Qualitätsaspekte sind für die einzelnen Microservices aus Ihrer Sicht am Wichtigsten. ▪ Skizzieren Sie einen Qualitätsbaum ▪ Formulieren Sie entsprechende Szenarien ▪ Prüfen Sie können die beschriebenen Szenarien gemessen werden?
  336. 24.09.2020 //// Seite 12 WPS – Workplace Solutions Was passiert

    in unserem System? Monitoring is the process of observing and recording state changes and data flow. Len Bass, Ingo Weber, Liming Zhu
  337. 24.09.2020 //// Seite 13 WPS – Workplace Solutions Devs und

    Ops haben unterschiedliche Fragen Fragen der Devs ▪ In welcher Reihenfolge wird der Code abgearbeitet? ▪ Sind alle notwendigen Schritte erfolgt? ▪ Wo und wann fliegen Exceptions? ▪ Wo stimmen Parameter nicht? ▪ Verhalten sich die Umsysteme wie erwartet? Fragen der Ops ▪ Wie ist die Last auf meinem System? ▪ Verhält sich das System ungewöhnlich? ▪ Ist etwas (teilweise) ausgefallen? ▪ An welcher Stelle muss ich die Ressourcen erhöhen? ▪ Gibt es Sicherheitsverletzungen? ▪ Sind die Verkaufszahlen erwartungskonform? ➢ Ops müssen den Devs sagen, was sie brauchen ➢ Anforderungen der Ops müssen Bestandteil des Architekturkonzepts sein ➢ Verschiedene Log-Level und -Filter
  338. 24.09.2020 //// Seite 14 WPS – Workplace Solutions Allgemeine Ziele

    von Monitoring Fehler erkennen • aktuell & nachträglich Verschlechterung der Performance erkennen • einzelne Systeme & Verbund von Systemen Kapazitäten planen • kurz- & langfristig Reaktion der Nutzer verstehen • verschiedene Oberflächen & Kampagnen Sicherheitsverletzungen erkennen • sofort & nachträglich The purpose of computing is insight, not numbers. Richard Hamming
  339. 24.09.2020 //// Seite 15 WPS – Workplace Solutions Was muss

    beobachtet werden? ▪ Allgemein ▪ Eingaben (REST-Anfragen, Benutzerinteraktion, …) ▪ Ressourcen (CPU, Speicher, Queues, Thread-Pools, …) ▪ Ergebnisse (Transaktionen, Rechnungs-Auftrag, …) ▪ Es gibt fachliches und technisches Monitoring ▪ Technische Infrastruktur ▪ Betriebssystem ▪ Virtualisierte Hardware ▪ Kommunikation zwischen Anwendungen ▪ Anwendungen ▪ CI-Server, Deployment-Vorgänge, Skripte, …
  340. 24.09.2020 //// Seite 16 WPS – Workplace Solutions Wie kann

    beobachtet werden? ▪ Datenbasis wird auch „Operations Database“, abk. OpsDB genannt (Nygard) ▪ Durch Persistenz können Aussagen über die Vergangenheit und Zukunft getroffen werden Big Data Systeme Business Intelligence Einbruchs- Erkennung … System 1 Anwendung Middleware Betriebssystem System 2 Anwendung Middleware Betriebssystem Monitoring System Datenbasis Visualisierung Alarm- auswertung Andere Systeme ohne agent Agent agenten- basiert extern Benutzer Tracking Logdateien Konfigurations- Management Metriken
  341. 24.09.2020 //// Seite 17 WPS – Workplace Solutions OpsDB ▪

    Business Feature: Geschäftsprozess, Funktion, … ▪ Node: Dienst, Anwendung, Server, Datenbank, … ▪ Observation: Geben Auskunft über den Zustand eines Nodes ▪ Expectation: Erwartungen für Observation, Z.B. Maximale Durchlaufzeit ▪ Observation/Expectation Type: Klassifizieren Obesrvations und Ecpectations OpsDB, Release IT!, Nygard (Quelle: Wikipedia)
  342. 24.09.2020 //// Seite 18 WPS – Workplace Solutions Historisch und

    Echtzeit ▪ Echtzeit-Monitoring ▪ Wie ist aktuell die Auslastung des Systems? ▪ Werden Schwellwerte überschritten? ▪ Grundlage für Alerting ▪ Historisches Monitoring ▪ Speicherung relevanter Kennzahlen ▪ System- und Anwendungslogdaten ▪ Erweiterte Möglichkeiten durch Datenanalyse ▪ Anomalieerkennung ▪ Langsam entstehende Ressourcenengpässe ▪ Nachbereitung von Ausfällen
  343. 24.09.2020 //// Seite 21 WPS – Workplace Solutions Bottom-Up vs

    Top-Down Rohdaten viele Daten Frühwarnung möglich Bottom-Up Top-Down Aggregierte Daten weniger Rauschen zeigt eingetretene Probleme
  344. 24.09.2020 //// Seite 22 WPS – Workplace Solutions Korrelation von

    Daten ▪ Einzelsysteme werden überwacht, aber Gesamtprozess muss erkennbar bleiben. ▪ Welche Log-Daten gehören zusammen? ▪ Komplexe Prozesse über mehrere Systeme verfolgen ▪ Sortieren nach Zeitstempel ist schwierig ▪ Uhrzeitabweichungen ▪ Latenzen ➢Ähnliche Zeitmessung durch NTP-Server (keine Garantie) ➢Totale Ordnung der Logs durch Vektorzeitstempel (aufwändig) ▪ Kontext ist wichtig! ▪ Welche VM? Welche Instanz? Welche Komponente?
  345. 24.09.2020 //// Seite 23 WPS – Workplace Solutions Correlation Identifier

    ▪ Ein Correlation Identifier hat 6 Attribute. ▪ Requestor: Eine Anwendung, die eine betriebswirtschaftliche Aufgabe ausführt, indem sie eine Anfrage sendet und auf eine Antwort wartet. ▪ Replier: Eine andere Anwendung, die die Anfrage erhält, sie erfüllt und dann die Antwort sendet. Sie holt sich die Request-ID aus dem Request und speichert sie als Korrelations-ID in der Antwort. ▪ Request: Eine Nachricht, die vom Requuestor an den Replier gesendet wird und eine Request-ID enthält. ▪ Reply: Eine Nachricht, die vom Replier an den Requuestor gesendet wird und eine Korrelations-ID enthält. ▪ Request ID: Ein Token im Request, welcher den Request eindeutig identifiziert. ▪ Correlation ID: Ein Token in der Antwort, welcher den gleichen Wert wie die Request-ID im Request hat. ▪ Beispiel: Für einen Reqest gibt es 3 Responses ▪ Correlation Identifier globaler: ▪ Und wenn man die User-ID immer mitsendet?
  346. 24.09.2020 //// Seite 24 WPS – Workplace Solutions Automatisierte Monitoring-Konfiguration

    Weil sich das „Normalverhalten“ ständig ändert, ist es schwer, mit historischen Profilen zu arbeiten ▪ Identifizieren, welche Daten sich nicht ändern ▪ Monitoring-Konfiguration automatisieren! ▪ Schwellwerte, Alarm-Situationen, … ▪ Server automatisch an- und abmelden ▪ Neue Werte aus “Kanarienvogel” ableiten
  347. 24.09.2020 //// Seite 25 WPS – Workplace Solutions Monitoring-Konfiguration anpassen

    In vielen Situationen, sollte das Monitoring verändert werden: ▪ Warnungen & Alarm ▪ Deployment ▪ Kanarienvogel ▪ Rollierendes Update ▪ Featuretoggles ▪ Änderung von Infrastruktur-Software ▪ Änderung jeglicher Konfigurations-Parameter
  348. 24.09.2020 //// Seite 26 WPS – Workplace Solutions Meta-Monitoring ▪

    Monitoring für das Monitoring System ▪ Drei Tage kommt kein Alert ▪ Ist alles gut? ▪ Oder ist das Monitoring System ausgefallen? ▪ Wir benötigen einen Mechanismus der Ausfälle und Leistungsengpässe am Monitoring-System aufdeckt.
  349. 24.09.2020 //// Seite 27 WPS – Workplace Solutions Tools ▪

    Nagios: Plugin-basiertes Alarm-System ▪ Sensu und Icinga: Skalierbare Erweiterung von Nagios ▪ Ganglia: Dezentrales Cluster-Logging ▪ Graylog2, Logstash und Splunk: Verteilte Log-File Analyse ▪ Kafka: Messaging-System von LinkedIn ▪ Storm, Fkume, S4: Stream-Verarbeitung
  350. 24.09.2020 //// Seite 28 WPS – Workplace Solutions Logging ▪

    Probleme: ▪ Starke Abhängigkeit von der Protokollierung vermeiden (invasiv) ▪ Hohe Flexibilität notwendig ▪ Welche Ereignisse protokollieren? ▪ Kategorisierung (DEBUG, INFO, WARN, ERROR, FATAL) ▪ Ausgabekanäle (Logdatei? SMS? Mail?) ▪ Formatierung (Übersetzung? Text?, HTML? XML?) ▪ Protokollierung über Betriebssystem- und Programmiersprachengrenzen hinweg ▪ Zusammenführen ist komplex (Netzbelastung, Parameterübergabe zwischen Programmiersprachen) ▪ Getrennte Protokollierung erschwert die Konsolidierung ▪ Können viel Daten verursachen
  351. 24.09.2020 //// Seite 29 WPS – Workplace Solutions Logging ▪

    Lösungen: ▪ Bestehendes Framework nutzen und Logging-Fassade nutzen um unabhängig vom Logging- Framework zu bleiben ▪ Alle Benutzerinteraktionen protokollieren, um Gang des Benutzers durch die Applikation nachvollziehbar zu machen ▪ Alle Subsystem-/Komponenteninteraktionen protokollieren ▪ Ringpuffer nutzen wenn Platzprobleme drohen ▪ Aspektorientierte Programmierung kann sehr viel „Standard-Loggingcode“ ersetzen ▪ Kein Debug-Loglevel auf Produktivsystemen ▪ Log-Ausgaben für Ops schreiben ▪ Log-Verzeichnis konfigurierbar
  352. 24.09.2020 //// Seite 34 WPS – Workplace Solutions ELASticSearch ▪

    NoSQL DB ▪ CRUD über HTTP-Schnittstelle ▪ GET, PUT, POST, DELETE ▪ JSON-basierte Query Language Relationale DB ElasticSearch Database Index Table Type Row Document Column Field Schema Mapping SQL Query DSL GET /bank/_search { "query":{ "match" : { "city":„Hamburg" } } }
  353. 24.09.2020 //// Seite 35 WPS – Workplace Solutions KIBANA ▪

    Webanwendung ▪ Grafische Oberfläche für ElasticSearch ▪ Werkzeuge um Visualisierungen und Dashboard zu definieren
  354. 24.09.2020 //// Seite 37 WPS – Workplace Solutions ÜBUNG: Monitoring-

    und Logging-Infrastruktur ▪ Auf der Grundlage ihrer bisherigen Architektur und Qualitätsanforderungen. ▪ Wie könnte für das Hotel eine geeignete Monitoring- und Logging-Infrastruktur aussehen? ▪ Halten Sie fest, was Sie zu der Entscheidung bewegt hat.
  355. 24.09.2020 //// Seite 38 WPS – Workplace Solutions Tracing ▪

    Spezielle Art des Loggings ▪ Enthält Informationen zur Ablaufverfolgung ▪ Meldung beim Einsprung in eine Funktion ▪ Meldung beim Verlassen ▪ Ggf. mit Argumenten Stacktrace bei Exceptions
  356. 24.09.2020 //// Seite 39 WPS – Workplace Solutions Tracing und

    Microservice Microservice A Microservice B Microservice C ➔ Verteiltes Tracing
  357. 24.09.2020 //// Seite 43 WPS – Workplace Solutions Metriken „Metrik,

    ist eine Funktion, die eine Eigenschaft in einen Zahlenwert, auch Maßzahl genannt, abbildet“
  358. 24.09.2020 //// Seite 44 WPS – Workplace Solutions Arten von

    Metriken ▪ System ▪ Wie ist die CPU-Auslastung? ▪ Wie voll ist die Festplatte? ▪ Anwendung ▪ Wie viele Threads sind im Thread Pool? ▪ Wie ist die mittlere Antwortzeit eines Requests? ▪ Fachliche ▪ Wie viele Bücher wurden verkauft? ▪ Wie viele Benutzer sind angemeldet? ▪ Fachliches Monitoring ist historisch Aufgabe von BI und Controlling ▪ Warum betrachten wir es hier?
  359. 24.09.2020 //// Seite 45 WPS – Workplace Solutions Metriken aus

    Logs ▪ Logging = Protokollierung ▪ Metriken aufgrund von Log-Dateien aufsetzen ▪ Z.B.: Anzahl der 400er-Fehler im Apache-Log ▪ Aufgrund von Logs im eigenen System, Z.B.: Bestellung ausgeführt ▪ Problematisch: Kopplung zwischen Metrik und Log-Ausgabe
  360. 24.09.2020 //// Seite 46 WPS – Workplace Solutions Metrik Pipeline

    Anwendung Instrumentieren Erfassen Sammeln Samplen Persistieren Visualisieren ? ? ?
  361. 24.09.2020 //// Seite 47 WPS – Workplace Solutions Beispiel Metrik

    Pipeline Anwendung Instrumentieren Erfassen Sammeln Samplen Persistieren Visualisieren ? ? ?
  362. 24.09.2020 //// Seite 49 WPS – Workplace Solutions Logging vs

    Metriken Logging/Tracing Metriken Fehlersuche Monitoring Fehleranalyse Fehlererkennung Debugging Alerting Auditing Profiling
  363. 24.09.2020 //// Seite 50 WPS – Workplace Solutions Log und

    Alarm Best Practices Gute Logdateien sollten… ▪ ein konsistentes Format haben! ▪ sagen, warum eine Meldung ausgegeben wurde! ▪ Kontext enthalten: Zeit, Codezeile, PID, Request-ID, VM ID, …! ▪ “Raster”-Informationen enthalten: Schweregrad, Alarm-Level! Warnungen und Alarme sollten… ▪ kontextsensibel sein – z.B. zu bestimmten Tageszeiten oder bei Deployments deaktiviert! ▪ auch prüfen, ob erwartete Dinge nicht passieren! ▪ zusammengefasst werden, wenn gleiche Ursache! ▪ klar definierte Schwere und Dringlichkeits-Level haben!
  364. 24.09.2020 //// Seite 51 WPS – Workplace Solutions Große Datenmengen

    ▪ Probleme: ▪ Millionen von Events und Metriken brauchen Platz und kosten Rechen-Kapazität ▪ Durch häufige Logabfrage wird das Netzwerk belastet ▪ Poll-Frequenz an die aktuelle Systemlast anpassen ▪ Etablierte Frameworks und Systeme nutzen ▪ Log-Level anpassen
  365. 24.09.2020 //// Seite 52 WPS – Workplace Solutions Große Datenmengen

    ▪ Besonders historische Daten verbrauchen viel Platz ▪ Verteilte Speicherung ▪ Verdichten: Detaillierte Daten durch Mittelwertbildung (Bei Metriken) ▪ Beispiel: Alle 5 Minuten Bandbreite abfragen und loggen ▪ Nach 1 Woche nur noch stündliche Mittelwerte behalten ▪ Wegwerfen der Daten nach Zeitüberschreitung ▪ Optional Archivieren auf externem Datenträger ▪ Je nach Anwendungszweck entscheiden ➢Verdichtungs- und Wegwerfgrad konfigurierbar halten
  366. 24.09.2020 //// Seite 53 WPS – Workplace Solutions Performance Overhead

    ▪ Performance Overhead im Blick behalten ▪ Speziell durch Instrumentalisierung des Codes ▪ Ggf. Metriken abschaltbar ▪ Gleiche Konfiguration auf Prod, Stage, …
  367. 24.09.2020 //// Seite 54 WPS – Workplace Solutions Zusammenfassung ▪

    Monitoring hat viele Aufgaben: Fehlererkennung, Performanceprobleme, Kapazitätsplanung, Sicherheitsverletzungen ▪ Jede Aufgabe braucht eigene Daten und Umgang damit ▪ Es gibt viele Monitoring-Systeme aber eine gemeinsame Struktur hilft ▪ Daten müssen miteinander kombiniert werden für sinnvolle Aussagen ▪ Logging und Metriken erfüllen unterschiedliche Zwecke ▪ Anpassbare Konfiguration für verschiedene Monitoring-Zwecke ▪ Die großen Datenmengen sind schwer zu meistern aber es gibt Lösungen ▪ Die großen Datenmengen erlauben komplexe Big-Data Analysen
  368. 24.09.2020 //// Seite 55 WPS – Workplace Solutions ÜBUNG: BETRIEB

    ÜBERWACHUNG FEHLERANALYSE ▪ Welche Werkzeuge setzen Sie für Betrieb, Überwachung und Fehleranalyse ein? ▪ Welche Logausgeben produzieren Sie? ▪ Welche Metriken erheben Sie? ▪ Fachlich ▪ System ▪ Anwendung ▪ Was fehlt Ihnen?
  369. 24.09.2020 //// Seite 2 WPS – Workplace Solutions Überblick Modularisierung

    Integration Inst. + Rollout Betrieb + Co. Resilient
  370. 24.09.2020 //// Seite 3 WPS – Workplace Solutions ACID-Transaktionen A

    C I D = Atomar = Konsistenz = Isoliert = Dauerhaft
  371. 24.09.2020 //// Seite 4 WPS – Workplace Solutions ACID und

    Microservice-Architekturen ▪ Microservice-Architekturen haben getrennte Datenbanken ▪ Innerhalb eines Microservice kann ACID umgesetzt werden ▪ Microservice-übergreifend ist Konsistenzbewahrung schwierig/unmöglich Micro- service A Micro- service B Getrennte Datenbanken
  372. 24.09.2020 //// Seite 5 WPS – Workplace Solutions CAP Theorem

    ▪ C = consistency (Konsistenz) ▪ Wenn man verschiedene Knoten nach einem Datum fragt, bekommt man dieselben Informationen. ▪ A = availability (Verfügbarkeit) ▪ Die Verfügbarkeit im Sinne akzeptabler Antwortzeiten. Alle Anfragen an das System werden stets beantwortet. ▪ P = partition tolerance (Ausfallsicherheit) ▪ Die Ausfalltoleranz der Rechner-/Servernetze. Das System arbeitet auch bei Verlust von Nachrichten, einzelner Netzknoten oder Partition des Netzes weiter. Das CAP-Theorem oder Brewers Theorem besagt, dass in einem verteilten System, maximal 2 Eigenschaften garantiert werden können. In der Praxis: Partitionen von Netzen kommen vor. => Daher C oder A
  373. 24.09.2020 //// Seite 6 WPS – Workplace Solutions BASE-Transaktionen B

    S E = Basically = Soft-state = Eventual Consistency = Available A Die Datenbank funktioniert die meiste Zeit. Der Zustand kann sich ohne Input ändern. Zu einem späteren Zeitpunkt wird Konsistenz erreicht.
  374. 24.09.2020 //// Seite 7 WPS – Workplace Solutions CAP und

    Microservices ▪ CP = Durch zentrale Datenhaltung ▪ AP = Durch Replikation von Daten ➔Microservices haben ein eigenes Datenbankschema ➔Sobald man horizontal skaliert, muss man mit Partitionen umgehen (P). Dann kann nur Eventual Consistency zugesichert werden
  375. 24.09.2020 //// Seite 8 WPS – Workplace Solutions Produktbeispiele ▪

    NoSQL ▪ MongoDB, HBase, Redis ▪ CouchDB, Cassandra, DynamoDB, Riak
  376. 24.09.2020 //// Seite 9 WPS – Workplace Solutions Produktbeispiele ▪

    Service Discovery ▪ Apache Zookeeper ▪ Netflix Eureka
  377. 24.09.2020 //// Seite 11 WPS – Workplace Solutions Resilienz Bedeutung

    „psychische Widerstandskraft; Fähigkeit, schwierige Lebenssituationen ohne anhaltende Beeinträchtigung zu überstehen“ Herkunft „zu lateinisch resilire = zurückspringen“ Duden
  378. 24.09.2020 //// Seite 13 WPS – Workplace Solutions Nobody is

    perfect ▪ Was sind perfekte Systeme? ▪ Software ohne Fehler ▪ Hardware, die nie versagt ▪ Menschen, die immer die richtigen Entscheidungen treffen → Perfekte Systeme gibt es nicht → Es wird immer Fehler geben
  379. 24.09.2020 //// Seite 14 WPS – Workplace Solutions Stabilitätsansätze ▪

    A (Verfügbarkeit) soll maximiert werden ▪ Traditionell: MTTF maximieren, + ➔ A => 1 ▪ Redundante Hardware, Cluster, Vermeidung von Fehlern auf Softwareebene ▪ Geht davon aus, dass die Anwendung isoliert läuft ▪ Resilience Ansatz: MTTR minimieren, + ➔ A => 1 ▪ Fehler sind in verteilten Systemen der Normalfall, nicht die Ausnahme, und es ist nicht möglich, sie vorherzusagen. → Do not try to avoid failures. Embrace them.
  380. 24.09.2020 //// Seite 15 WPS – Workplace Solutions Resilience Wie

    macht man Systeme resilient? Die Biologie macht es vor
  381. 24.09.2020 //// Seite 18 WPS – Workplace Solutions Resilience in

    der Biologie Jede Zelle ist identisch aus einem unveränderlichen Bauplan (der DNA) erstellt
  382. 24.09.2020 //// Seite 19 WPS – Workplace Solutions Resilience in

    der Biologie Zellen können vervielfacht werden
  383. 24.09.2020 //// Seite 20 WPS – Workplace Solutions Zerstörung einer

    Zelle ist kein Problem Resilience in der Biologie
  384. 24.09.2020 //// Seite 21 WPS – Workplace Solutions Zerstörung einer

    Zelle ist kein Problem Resilience in der Biologie
  385. 24.09.2020 //// Seite 22 WPS – Workplace Solutions Der Körper

    kann sich selbst heilen Resilience in der Biologie
  386. 24.09.2020 //// Seite 23 WPS – Workplace Solutions Der Körper

    kann sich selbst heilen ... indem schadhafte Zellen erkannt werden Resilience in der Biologie
  387. 24.09.2020 //// Seite 24 WPS – Workplace Solutions Der Körper

    kann sich selbst heilen ... indem schadhafte Zellen erkannt und repariert werden? → Nein Resilience in der Biologie
  388. 24.09.2020 //// Seite 25 WPS – Workplace Solutions Der Körper

    kann sich selbst heilen ... indem schadhafte Zellen erkannt und zerstört werden! Resilience in der Biologie
  389. 24.09.2020 //// Seite 26 WPS – Workplace Solutions Der Körper

    kann sich selbst heilen ... indem schadhafte Zellen erkannt und zerstört werden ... und neue erzeugt werden Resilience in der Biologie
  390. 24.09.2020 //// Seite 27 WPS – Workplace Solutions Resilience Resilience

    ist vor allem die Fähigkeit zur Selbstheilung Man definiert, was der Soll-Zustand des Systems ist ▪Welche Services ▪In welcher Anzahl Das System behebt selbstständig Abweichungen vom Soll
  391. 24.09.2020 //// Seite 29 WPS – Workplace Solutions Vorbedingung: Automatisierung

    Absolute Vorbedingungen für Resilience: - Anwendungs-Blaupausen (z.B. Docker Images) - Infrastrukturautomatisierung - Apps müssen auf Skalierbarkeit ausgelegt sein - Service Discovery
  392. 24.09.2020 //// Seite 30 WPS – Workplace Solutions Um Probleme

    zu beheben, muss man sie zunächst erkennen →Monitoring ... und die richtigen Reaktionen ausführen Vorbedingung: Probleme erkennen und beheben Beides muss auf mehreren Ebenen geschehen
  393. 24.09.2020 //// Seite 31 WPS – Workplace Solutions Ebenen für

    Monitoring und Reaktionen Anwendung (z.B. Kubernetes Pods / Deployments) Infrastrukturknoten (z.B. Kubernetes Nodes oder EC2 Instanzen) Hardware
  394. 24.09.2020 //// Seite 32 WPS – Workplace Solutions Monitoring ▪Health-Checks

    für Endpunkte definieren ▪z.B. durch Kubernetes Readiness- (schon voll da?) und Liveness-Probes (noch lebendig?) Reagieren ▪Scheduler (z.B. Kubernetes Master) checkt Heath- Checks und trifft Entscheidungen ▪Abschießen ▪Skalieren ▪Rollback Ebene: Anwendung Anwendung Infrastrukturknoten Hardware
  395. 24.09.2020 //// Seite 33 WPS – Workplace Solutions Monitoring ▪Erkennen,

    wann ein Infrastrukturknoten unzureichende oder ungebrauchte Ressourcen hat ▪CPU, Memory, Disk I/O ▪Tools (Auswahl): ▪AWS Autoscaling Group + AWS CloudWatch ▪Kubernetes Cluster Autoscaler Addon Reagieren ▪Anzahl der Infrastrukturknoten erhöhen oder verringern Ebene: Infrastrukturknoten Anwendung Infrastrukturknoten Hardware
  396. 24.09.2020 //// Seite 34 WPS – Workplace Solutions Monitoring ▪Rechner-Ausfälle

    ▪Abnutzung von Festplatten / Datenkorruption ▪Netz-Ausfälle Reagieren ▪Macht der Cloud-Anbieter Ebene: Hardware Anwendung Infrastrukturknoten Hardware
  397. 24.09.2020 //// Seite 35 WPS – Workplace Solutions Vorbedingung: Zero

    Downtime ▪Automatische Eingriffe und Skalierungen durch Resilience müssen bruchlos vonstatten gehen ▪Voraussetzung: Deployments dürfen keine Downtime bedeuten! ▪Strategien: ▪Blau-/Grün-Deployment ▪Rollierendes Update VM VM VM VM VM VM IST SOLL VM VM VM VM VM VM Load Balancer VM VM VM VM VM VM Load Balancer Load Balancer Load Balancer Load Balancer Load Balancer Load Balancer VM VM VM VM VM VM VM VM VM VM VM VM VM VM VM VM VM VM
  398. 24.09.2020 //// Seite 36 WPS – Workplace Solutions Resilience Ausbaustufen

    Stufe 1: Auf Probleme reagieren Stufe 2: Vorausschauende Resilience. System prognostiziert Probleme, bevor sie sich manifestieren
  399. 24.09.2020 //// Seite 37 WPS – Workplace Solutions Vorausschauende Resilience

    ▪Nicht nur Anzahl lebendiger Knoten überwachen, auch Antwortzeiten und Auslastung ▪Aus Hochrechnungen ableiten, wann Knoten oder Anwendungen überlastet sein werden ▪System skaliert vorausschauend. Das bedeutet auch, dass die Anzahl an Replicas nicht mehr fest definiert ist, sondern dynamisch ermittelt wird. ▪Auch Erfahrungswerte mittels Machine Learning für die Prognose nutzen
  400. 24.09.2020 //// Seite 38 WPS – Workplace Solutions Resilience testen

    ▪ Auch (gerade!) Resilience muss getestet werden, ansonsten erlebt man böse Überraschungen ▪ Beispiel: ▪ Infrastruktur ist automatisiert, Cluster konfiguriert, Monitoring und Skalierung vermeintlich auf allen Ebenen aktiviert ▪ Eine Anwendung kommt in eine Endlosschleife und blockiert einen Knoten zu 100% ▪ Der Cluster erkennt, dass die Anwendung nicht mehr erreichbar ist → Cluster erzeugt weitere Replicas der Anwendung ▪ Auf Infrastrukturebene greift das Monitoring nicht, weil der Knoten nur sehr langsam antwortet, aber eben doch antwortet → Der Knoten wird nicht abgeräumt. Es werden keine weiteren Knoten erzeugt ▪ Nach und nach werden weitere Replicas der Anwendung auf den vorhandenen Knoten erzeugt, bis alle Knoten überlastet sind ▪ Der Cluster ist komplett lahmgelegt
  401. 24.09.2020 //// Seite 39 WPS – Workplace Solutions Tools für

    Resilience Orchestrierung / Konfigurationsmanagement • Chef, Puppet, Ansible, Salt • Packer, Terraform Paketierung • Docker Scheduling • Kubernetes, ECS, Swarm, Mesos Monitoring • AWS CloudWatch • Kubernetes Autoscaler Addon • Prometheus
  402. 24.09.2020 //// Seite 41 WPS – Workplace Solutions Resilient Muster

    ▪ Einstiegsprinzipien ▪ Isolation - Probleme, die lokal bestehen sollen sich nicht ausbreiten ▪ Latenzüberwachung – Latenzprobleme erkennen und behandeln ▪ Muster (Auswahl) ▪ Bulkhead (Isolation) ▪ Timeouts (Latenz) ▪ Fail Fast (Latenz) ▪ Circuit Breaker (Isolation) ▪ Fallback (Isolation) ▪ Redundanz (Isolation&Latenz)
  403. 24.09.2020 //// Seite 42 WPS – Workplace Solutions Bulkhead ▪

    Analogie zu den Schottwänden auf Schiffen ▪ Das System darf nicht als Ganzen kaputt gehen ▪ System wird in möglichst unabhängige Einheiten aufgeteilt (Failure Units) ▪ Bulkheads (Schottwand) trennen die Systeme ▪ Keine konkrete Implementierungsanweisung Wie passt das mit Microservices? Schott
  404. 24.09.2020 //// Seite 43 WPS – Workplace Solutions Bulkhead-Ebenen ▪

    Das Bulkhead-Muster sollte man auf mehreren Ebenen anwenden ▪ Prozesse über Container voneinander isolieren ▪ Fachlich und technisch autarke Bounded Contexts / Self-Contained Systems definieren ▪ Infrastruktur in getrennte Netze einteilen ▪ Unterschiedliche Cloud-Accounts für verschiedene Umgebungen nutzen ▪ Dadurch wird jeweils der „Blast Radius“ von Ausfällen, Fehlern und Angriffen reduziert Getrennte Cloud-Anbieter Getrennte Cloud-Accounts Getrennte (virtuelle) Netze, z.B. VPCs Getrennte Cluster Getrennte Namespaces im Cluster Getrennte Self-Contained Systems Getrennte VMs Getrennte Container Getrennte Prozesse
  405. 24.09.2020 //// Seite 44 WPS – Workplace Solutions Timeouts ▪

    Durch Timeouts blockiert synchrone Kommunikation nicht ▪ Timeouts für alle Ressourcen verwenden ▪ HTTP-Aufrufe ▪ DB-Aufrufe ▪ Threads ▪ Vorsichtig mit schnellen Retries ▪ Langsame Retries machen das Gesamtsystem robuster (Beispiel: Mailversand) ▪ Nachrichten müssen idempotent sein
  406. 24.09.2020 //// Seite 45 WPS – Workplace Solutions Fail Fast

    ▪ Beispiel ▪ Stehen in der Warteschlange ▪ Am Schalter Zurückweisung, Erst Formular XY ausfüllen ▪ Langsame Antworten sind schlimmer als keine Antworten ▪ Abgrenzung zu Timeouts (Zwei Seiten der Medaille) ▪ Timeouts ▪ Zur Absicherung des Systems gegen Fehlern von anderen ▪ Für Ausgangsnachrichten ▪ Fail Fast ▪ Zum Benachrichtigen, warum man eine Anfrage nicht bearbeiten kann ▪ Für Eingangsnachrichten Asterix erobert Rom
  407. 24.09.2020 //// Seite 46 WPS – Workplace Solutions Circuit Breaker

    ▪ Wie der Schutzschalter im Sicherungsschrank ▪ Wird auf Ressourcen angewendet ▪ Andere Microservices ▪ Thread Pools ▪ Connection Pools ▪ Ist der Schutzschalter geschlossen, arbeitet das System normal ▪ Ab einer bestimmten Anzahl/Frequenz an Fehlern öffnet sich der Schalter ➔Aufrufe werden sofort fehlerhaft beantwortet (fail first) ▪ Nach Ruhezeit wird Schalter wieder geöffnet Schutzschalter
  408. 24.09.2020 //// Seite 48 WPS – Workplace Solutions Fallback ▪

    Strategie, wenn ein Fehler erkannt wurde ▪ Sollte Bedürfnisse der Nutzer als auch der Administratoren so gut wie möglich unterstützen ▪ Fehlerbehandlung sollte möglichst vollständig automatisiert erfolgen ▪ Beispiel: Schreibanfrage eines Benutzers per Webanwendung, langsame Datenbank ▪ Fallback Option 1: Fehler an den Benutzer. Bitte versuchen Sie es später ▪ Fallback Option 2: Command in eine Queue und asynchrone Bearbeitung ▪ Nicht: Sanduhr anzeigen Plan A B
  409. 24.09.2020 //// Seite 49 WPS – Workplace Solutions Redundanz ▪

    Systemteile redundant auslegen ▪ Failure Units ▪ Durch Redundanz werden unterschiedliche Szenarien adressiert ▪ Failover ▪ Latenz gering halten (Schnelle Antworten) ▪ Fehlererkennung, z.B. Flugzeug (Systeme sind dreifach ausgelegt) ▪ Lastverteilung
  410. 24.09.2020 //// Seite 50 WPS – Workplace Solutions Anforderungen an

    Infrastruktur Micro- service Micro- service DB DB REST Messaging Anforderungen an Infrastruktur • Muss viele Services unterstützen • REST und Messaging unterstützen • Resilient Muster unterstützen • Projekte müssen einfach erstellt werden können
  411. 24.09.2020 //// Seite 51 WPS – Workplace Solutions Spring Boot

    App App Webserver Webserver War File Spring Boot JVM Libraries OS Kernel JVM Libraries OS Kernel Support für: • Rest • Messaging • Metriken (Actuator) • Spring MVC • Executable JAR • Einfach zu erstellen • Spring-Boot-Starter @SpringBootApplication public class ApplicationBerth { public static void main(String[] args) { SpringApplication.run(ApplicationBerth.class, args); } }
  412. 24.09.2020 //// Seite 52 WPS – Workplace Solutions Spring Cloud

    ▪ Setzt auf Spring Boot auf ▪ Bietet Werkzeuge für Entwickler, um schnell gebräuchliche Muster von verteilten Systemen zu entwickeln ▪ 20 Haupt-Projekte ▪ Spring Cloud Config, Zentralisiertes Konfigurationsmanagement ▪ Spring Cloud for Cloud Foundry, Anbindung an Cloud Foundry ▪ Spring Cloud Security, Oauth2, JWT, … ▪ Spring Cloud Sleuth, Distributed Tracing ▪ Spring Cloud Zookeeper, Service Discovery mit Apache Zookeeper ▪ Spring Cloud for Amazon Web Services, Integration in die Amazon Cloud ▪ Spring Cloud Stream, Leichtgewichtiges eventgetriebenes Framework ▪ Spring Cloud Netflix, Der Name sagt es schon…
  413. 24.09.2020 //// Seite 53 WPS – Workplace Solutions Spring Cloud

    Netflix ▪ 35 Prozent die höchste Downstream-Bandbreite in den USA ▪ Youtube 15% ▪ Entwicklung einer Microservice-Landschaft 2008 – 2012 ▪ Technische Komponenten und Bibliotheken zur Entwicklung, Überwachung und Skalierung von Microservices ▪ Werden im Netflix Open Source Software Center (Netflix OSS) als freie Software zur Verfügung gestellt
  414. 24.09.2020 //// Seite 54 WPS – Workplace Solutions Spring Cloud

    Netflix ▪ Spring Cloud Netflix, ein Unterprojekt von Spring Cloud, benutzt sechs Dienste aus dem Netflix OSS: ▪ Eureka: Service-Registry ▪ Hystrix: Bibliothek, die Fehler beim Zugriff auf externe Dienste isoliert und so die Ausfallsicherheit in einem verteilten System erhöht (Circuit Breaker) ▪ Ribbon: Library für Interprozesskommunikation mit eingebautem Softwarelastverteiler ▪ Archaius: Bibliothek für Konfigurationsmanagement, basiert auf Apache Commons Configuration und erweitert das Projekt für den Cloud-Einsatz ▪ Zuul: Edge-Service für dynamisches Routing, Monitoring, Security, Ausfallsicherheit und einiges andere mehr ▪ Feign: Library, die das Schreiben von HTTP-Clients vereinfacht
  415. 24.09.2020 //// Seite 55 WPS – Workplace Solutions Spring Release

    Trains ▪ Spring Cloud richtet sich nach den Releases von Spring Boot ▪ Versionen der einzelnen Projekte werden über eine BOM (Bill of Materials) gemanagt Spring Boot Spring Cloud 1.3.x Brixton 1.4.x Camden 1.5.x Dalston, Edgware 2.0.x Finchley 2.1.x Greenwich
  416. 24.09.2020 //// Seite 56 WPS – Workplace Solutions ▪ Problem:

    Es kann ständig zu kleinen und großen Problemen kommen ▪ Ziel: Cloud-Potential durch Redundanz und Fehlertoleranz heben ▪ Idee: Wilde bewaffnete Affen im Rechenzentrum frei lassen ▪ Wenn wir das überleben, stehen wir auch bei ungeplanten Problemen gut da.
  417. 24.09.2020 //// Seite 57 WPS – Workplace Solutions Beispiel: Feueralarm!

    https://c2.staticflickr.com/8/7354/12768490243_04d79962f1.jpg
  418. 24.09.2020 //// Seite 58 WPS – Workplace Solutions Struktur bei

    AWS Region 1 Verfügbar keits- zone … VM Region 2 Region 3
  419. 24.09.2020 //// Seite 59 WPS – Workplace Solutions Chaos Monkey

    ▪ Findet gruppen von Services und terminiert eine Instanz ▪ Arbeitet nur während der Arbeitszeiten
  420. 24.09.2020 //// Seite 60 WPS – Workplace Solutions Janitor ▪

    Sucht ungenutzt Ressourcen, um sie wegzuräumen ▪ Läuft einmal am Tag ▪ Regelbasiert ▪ markieren, informieren, löschen ▪ Cluster, Festplatten, Backups, …
  421. 24.09.2020 //// Seite 61 WPS – Workplace Solutions Conformity ▪

    Sucht Instanzen, die sich nicht an vordefinierte Regeln bzgl. best practices halten ▪ Verschickt Emails bei Verstößen ▪ Prüft stündlich, mailt täglich
  422. 24.09.2020 //// Seite 62 WPS – Workplace Solutions Latency ▪

    Erzeugt künstliche Latenzen an Web- Schnittstellen
  423. 24.09.2020 //// Seite 63 WPS – Workplace Solutions Doctor ▪

    Sucht ungesunde Instanzen um sie zu isolieren ▪ Äußere Anzeichen wie Last ▪ Isolieren, melden, terminieren
  424. 24.09.2020 //// Seite 64 WPS – Workplace Solutions Security ▪

    Sucht Sicherheits-Verstöße und Lücken, um betroffene Instanzen zu terminieren ▪ Sichert, dass alle SSL-Zertifikate gültig bleiben ▪ Erweiterung vom Conformity-Affen
  425. 24.09.2020 //// Seite 65 WPS – Workplace Solutions Chaos Gorilla

    ▪ Simuliert Ausfall einer ganzen Region
  426. 24.09.2020 //// Seite 67 WPS – Workplace Solutions WAS MICROSOFT

    DAZU SCHREIBT https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/
  427. 24.09.2020 //// Seite 69 WPS – Workplace Solutions AUSBLICK Microservices

    ▪ Containers ▪ .NET Core versus .NET Framework ▪ Azure vs. AWS ▪ API Gateway/Backend For Front-End ▪ Azure API Management ▪ OR-Mapping: ▪ Entity Framework ▪ Dapper ▪ UI: ▪ ASP.NET Core MVC ▪ WPF