Читать книгу Vom Monolithen zu Microservices - Sam Newman - Страница 5
Inhalt
ОглавлениеModellierung rund um eine Businessdomäne
Welche Vorteile können Microservices haben?
Welche Probleme werden entstehen?
Black-Box-Systeme von Fremdherstellern
Herausforderungen von Monolithen
Gerade genug Domain-Driven Design
Aggregate und Kontextgrenzen auf Microservices abbilden
Warum wollen Sie Microservices einsetzen?
Kostengünstig auf Last reagieren
Die Anzahl der Entwickler erhöhen
Wann können Microservices eine schlechte Idee sein?
Beim Kunden installierte und verwaltete Software
Gefühl für die Dringlichkeit vermitteln
Vision und Strategie entwickeln
Veränderungsvision kommunizieren
Mitarbeitern umfangreiche Unterstützung ermöglichen
Nutzen konsolidieren und weitere Veränderungen anstoßen
Neue Ansätze in der Unternehmenskultur verankern
Die Wichtigkeit der inkrementellen Migration
Nur die Produktivumgebung zählt
Reversible und irreversible Entscheidungen
Bessere Orte zum Experimentieren
Ein Domänenmodell zum Priorisieren einsetzen
Es gibt nicht die eine Lösung für alle
Woher wissen Sie, ob die Transformation funktioniert?
Vermeiden Sie den Sunk-Cost-Effekt
Seien Sie offen für neue Ansätze
Ändern wir den Monolithen, oder lassen wir es bleiben?
Ausschneiden, einfügen oder reimplementieren?
Pattern: Strangler Fig Application
Beispiel: Message Interception
Andere Beispiele für das Strangler Fig Pattern
Verhaltensänderung während der Migration
Pattern: Branch by Abstraction
Beispiel: Preisbildung von Kreditderivaten
Dark Launching und Canary Releasing
Pattern: Decorating Collaborator
Beispiel: Loyalty-Karten ausgeben
Change Data Capture implementieren
Die Datenbank als öffentlicher Vertrag
Pattern: Database Wrapping Service
Pattern: Database-as-a-Service Interface
Eine Mapping Engine implementieren
Pattern: Aggregate Exposing Monolith
Pattern: Change Data Ownership
Pattern: Synchronize Data in Application
Schritt 1: Daten Bulk-synchronisieren
Schritt 2: Synchrones Schreiben, aus dem alten Schema lesen
Schritt 3: Synchrones Schreiben, aus dem neuen Schema lesen
Wo dieses Pattern genutzt werden kann
Beispiel: Bestellungen bei Square
Physische versus logische Datenbanktrennung
Zuerst die Datenbank oder zuerst den Code aufteilen?
Zuerst die Datenbank aufteilen
Datenbank und Code gleichzeitig aufteilen
Was sollte ich also als Erstes aufteilen?
Beispiele zur Schemaaufteilung
Pattern: Move Foreign-Key Relationship to Code
Beispiel: Gemeinsam genutzte statische Daten
Weiterhin ACID, aber ohne Atomarität?
Verteilte Transaktionen: Sagen Sie einfach Nein!
Saga versus verteilte Transaktionen
Mehr Services – mehr Schmerzen
Wie kann sich dieses Problem zeigen?
Wann kann sich das Problem zeigen?
Wie kann sich dieses Problem zeigen?
Wann kann sich das Problem zeigen?
Wann kann sich dieses Problem zeigen?
Monitoring und Troubleshooting
Wann kann sich dieses Problem zeigen?
Wie kann sich das Problem zeigen?
Wie kann sich dieses Problem zeigen?
Wann kann sich das Problem zeigen?
Wie kann sich dieses Problem zeigen?
Wann kann sich das Problem zeigen?
Wie kann sich dieses Problem zeigen?
Wann kann sich das Problem zeigen?
Globale versus lokale Optimierung
Wie kann sich dieses Problem zeigen?
Wann kann sich das Problem zeigen?
Wie kann sich dieses Problem zeigen?
Wann kann sich das Problem zeigen?
Wie kann sich dieses Problem zeigen?