Vom Monolithen zu Microservices

Vom Monolithen zu Microservices
Автор книги: id книги: 1994264     Оценка: 0.0     Голосов: 0     Отзывы, комментарии: 0 1907,17 руб.     (20,78$) Читать книгу Купить и скачать книгу Купить бумажную книгу Электронная книга Жанр: Математика Правообладатель и/или издательство: Bookwire Дата добавления в каталог КнигаЛит: ISBN: 9783960104247 Скачать фрагмент в формате   fb2   fb2.zip Возрастное ограничение: 0+ Оглавление Отрывок из книги

Реклама. ООО «ЛитРес», ИНН: 7719571260.

Описание книги

Bestehende Systeme erfolgreich in eine Microservices-Architektur umgestalten Wie entflechtet man ein monolithisches System und überführt es in eine Microservices-Architektur? Und wie erhält man gleichzeitig den normalen Betrieb aufrecht? Sam Newman, Autor des viel beachteten Titels «Building Microservices», beschreibt Szenarien und erprobte Strategien, um bestehende Systeme erfolgreich zu migrieren: von der ersten Planung bis zum Zerlegen von Anwendung und Datenbank. Newman greift hierbei auf viele anschauliche Beispiele zurück, stellt aufschlussreiche Pattern für die Migration vor und gibt praktische Ratschläge. – Für Organisationen, die ihre Codebasis in Richtung einer Microservices-Architektur überführen und nicht komplett neu aufbauen wollen – Unterstützt Unternehmen bei der Frage, ob und wann sie migrieren und wo sie konkret beginnen sollten – Befasst sich mit der Integration und Migration von Legacy-Systemen und der Kommunikation mit diesen Systemen – Stellt Migrationspattern vor und beschreibt, wo und wie sie am besten eingesetzt werden – Bietet Beispiele für die Datenbankmigration und begleitende Synchronisationsstrategien – Beschreibt das Zerlegen von Anwendungen einschließlich einer Reihe von Refaktorisierungspattern

Оглавление

Sam Newman. Vom Monolithen zu Microservices

Vom Monolithen zu Microservices

Inhalt

Vorwort

Was Sie lernen werden

Konventionen in diesem Buch

Danksagung

KAPITEL 1. Gerade genug Microservices

Was sind Microservices?

Unabhängige Deploybarkeit

Modellierung rund um eine Businessdomäne

Die eigenen Daten besitzen

Welche Vorteile können Microservices haben?

Welche Probleme werden entstehen?

Benutzeroberflächen

Technologie

Größe

Und Ownership

Der Monolith

Der Ein-Prozess-Monolith

Und der modulare Monolith

Der verteilte Monolith

Black-Box-Systeme von Fremdherstellern

Herausforderungen von Monolithen

Vorteile von Monolithen

Zu Kopplung und Kohäsion

Kohäsion

Kopplung

Implementierungskopplung

Zeitliche Kopplung

Deployment-Kopplung

Domänenkopplung

Gerade genug Domain-Driven Design

Aggregat

Kontextgrenzen

Aggregate und Kontextgrenzen auf Microservices abbilden

Weitere Quellen

Zusammenfassung

KAPITEL 2. Eine Migration planen

Das Ziel verstehen

Drei zentrale Fragen

Warum wollen Sie Microservices einsetzen?

Teamautonomie verbessern

Können Sie das auch anders erreichen?

Time-to-Market verringern

Können Sie das auch anders erreichen?

Kostengünstig auf Last reagieren

Können Sie das auch anders erreichen?

Robustheit verbessern

Können Sie das auch anders erreichen?

Die Anzahl der Entwickler erhöhen

Können Sie das auch anders erreichen?

Neue Technologien einsetzen

Können Sie das auch anders erreichen?

Wann können Microservices eine schlechte Idee sein?

Unklare Domäne

Start-ups

Beim Kunden installierte und verwaltete Software

Keinen guten Grund haben!

Abwägungen

Die Menschen mitnehmen

Organisationen verändern

Gefühl für die Dringlichkeit vermitteln

Führungskoalition schaffen

Vision und Strategie entwickeln

Veränderungsvision kommunizieren

Mitarbeitern umfangreiche Unterstützung ermöglichen

Kurzfristige Erfolge erzielen

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

Veränderungskosten

Reversible und irreversible Entscheidungen

Bessere Orte zum Experimentieren

Wo fangen wir also an?

Domain-Driven Design

Wie weit müssen Sie gehen?

Event Storming

Ein Domänenmodell zum Priorisieren einsetzen

Ein kombiniertes Modell

Teams reorganisieren

Sich verändernde Strukturen

Es gibt nicht die eine Lösung für alle

Eine Änderung vornehmen

Veränderte Fähigkeiten

Woher wissen Sie, ob die Transformation funktioniert?

Regelmäßige Checkpoints

Quantitative Messgrößen

Qualitative Messwerte

Vermeiden Sie den Sunk-Cost-Effekt

Seien Sie offen für neue Ansätze

Zusammenfassung

KAPITEL 3. Den Monolithen aufteilen

Ändern wir den Monolithen, oder lassen wir es bleiben?

Ausschneiden, einfügen oder reimplementieren?

Den Monolithen refaktorieren

Ein modularer Monolith?

Inkrementelles Überarbeiten

Migrations-Patterns

Pattern: Strangler Fig Application

Wie es funktioniert

Wo wir es einsetzen

Beispiel: HTTP Reverse Proxy

Schritt 1: Proxy einfügen

Schritt 2: Funktionalität migrieren

Schritt 3: Aufrufe umleiten

Daten?

Proxy-Optionen

Inkrementelles Roll-out

Protokolle wechseln

Service Meshes

Beispiel: FTP

Beispiel: Message Interception

Inhaltsbasiertes Routing

Selektiver Konsum

Andere Protokolle

Andere Beispiele für das Strangler Fig Pattern

Verhaltensänderung während der Migration

Pattern: UI Composition

Beispiel: Page Composition

Beispiel: Widget Composition

Mobile Anwendungen

Beispiel: Micro Frontends

Wo wir es einsetzen

Pattern: Branch by Abstraction

Wie es funktioniert

Schritt 1: Abstraktion erstellen

Schritt 2: Abstraktion verwenden

Schritt 3: Neue Implementierung erstellen

Schritt 4: Implementierung wechseln

Schritt 5: Aufräumen

Als Fallback-Mechanismus

Wo wir es einsetzen

Pattern: Parallel Run

Beispiel: Preisbildung von Kreditderivaten

Beispiel: Homegate-Angebote

Verifikationstechniken

Spione einsetzen

Scientist von GitHub

Dark Launching und Canary Releasing

Wo wir es einsetzen

Pattern: Decorating Collaborator

Beispiel: Loyalty-Programm

Wo wir es einsetzen

Pattern: Change Data Capture

Beispiel: Loyalty-Karten ausgeben

Change Data Capture implementieren

Datenbank-Trigger

Transaktionslog pollen

Batch-Delta-Kopierer

Wo wir es einsetzen

Zusammenfassung

KAPITEL 4. Die Datenbank aufteilen

Pattern: Shared Database

Hilfreiche Patterns

Wo wir es einsetzen

Aber es geht nicht!

Pattern: Database View

Die Datenbank als öffentlicher Vertrag

Präsentations-Views

Grenzen

Ownership

Wo wir es einsetzen

Pattern: Database Wrapping Service

Wo wir es einsetzen

Pattern: Database-as-a-Service Interface

Eine Mapping Engine implementieren

Vergleich mit Views

Wo wir es einsetzen

Ownership transferieren

Pattern: Aggregate Exposing Monolith

Als Weg zu weiteren Services

Wo wir es verwenden

Pattern: Change Data Ownership

Wo wir es verwenden

Datensynchronisation

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

Wo wir es verwenden

Pattern: Tracer Write

Datensynchronisierung

Beispiel: Bestellungen bei Square

Den neuen Service erstellen

Die Daten synchronisieren

Konsumenten migrieren

Wo wir es verwenden

Die Datenbank aufteilen

Physische versus logische Datenbanktrennung

Zuerst die Datenbank oder zuerst den Code aufteilen?

Zuerst die Datenbank aufteilen

Pattern: Repository per Bounded Context

Wo wir es verwenden

Pattern: Database per Bounded Context

Wo wir es verwenden

Zuerst den Code aufteilen

Pattern: Monolith as Data Access Layer

Wo wir es verwenden

Pattern: Multischema Storage

Wo wir es verwenden

Datenbank und Code gleichzeitig aufteilen

Was sollte ich also als Erstes aufteilen?

Beispiele zur Schemaaufteilung

Pattern: Split Table

Wo wir es verwenden

Pattern: Move Foreign-Key Relationship to Code

Den Join ersetzen

Datenkonsistenz

Vor dem Löschen prüfen

Elegant mit Löschungen umgehen

Kein Löschen erlauben

Wie sollen wir nun das Löschen handhaben?

Wo wir es verwenden

Beispiel: Gemeinsam genutzte statische Daten

Pattern: Duplicate Static Reference Data

Wo wir es verwenden

Pattern: Dedicated Reference Data Schema

Wo wir es verwenden

Pattern: Static Reference Data Library

Wo wir es verwenden

Pattern: Static Reference Data Service

Wo wir es verwenden

Was würde ich tun?

Transaktionen

ACID-Transaktionen

Weiterhin ACID, aber ohne Atomarität?

Zwei-Phasen-Commit

Verteilte Transaktionen: Sagen Sie einfach Nein!

Sagas

Fehlersituationen in Sagas

Saga-Rollbacks

Schritte für weniger Rollbacks neu ordnen

Fail-Backward- und Fail-Forward-Situationen kombinieren

Sagas implementieren

Orchestrierte Sagas

Choreografierte Sagas

Stile mischen

Sollte ich Choreografie oder Orchestrierung nutzen?

Saga versus verteilte Transaktionen

Zusammenfassung

KAPITEL 5. Wachsende Probleme

Mehr Services – mehr Schmerzen

Ownership im großen Maßstab

Wie kann sich dieses Problem zeigen?

Wann kann sich das Problem zeigen?

Mögliche Lösungen

Disruptive Änderungen

Wie kann sich dieses Problem zeigen?

Wann kann sich das Problem zeigen?

Mögliche Lösungen

Verhindern Sie unabsichtliche disruptive Änderungen

Denken Sie zweimal nach, bevor Sie eine disruptive Änderung vornehmen

Geben Sie Ihren Konsumenten Zeit, zu migrieren

Reporting

Wann kann sich dieses Problem zeigen?

Mögliche Lösungen

Monitoring und Troubleshooting

Wann kann sich dieses Problem zeigen?

Wie kann sich das Problem zeigen?

Mögliche Lösungen

Log Aggregation

Tracing

Testen im Produktivumfeld

Observability anstreben

Lokale Entwicklung

Wie kann sich dieses Problem zeigen?

Wann kann sich das Problem zeigen?

Mögliche Lösungen

Zu viele Dinge laufen lassen

Wie kann sich dieses Problem zeigen?

Wann kann sich das Problem zeigen?

Mögliche Lösungen

End-to-End-Tests

Wie kann sich dieses Problem zeigen?

Wann kann sich das Problem zeigen?

Mögliche Lösungen

Den Scope automatisierter funktionaler Tests begrenzen

Consumer-Driven Contracts einsetzen

Automatisierte Release Remediation und Progressive Delivery nutzen

Die Feedback-Zyklen zur Qualität kontinuierlich verbessern

Globale versus lokale Optimierung

Wie kann sich dieses Problem zeigen?

Wann kann sich das Problem zeigen?

Mögliche Lösungen

Robustheit und Resilienz

Wie kann sich dieses Problem zeigen?

Wann kann sich das Problem zeigen?

Mögliche Lösungen

Verwaiste Services

Wie kann sich dieses Problem zeigen?

Wann kann sich das Problem zeigen?

Mögliche Lösungen

Zusammenfassung

Abschließende Worte

ANHANG A. Literatur

ANHANG B. Pattern-Index

Fußnoten. KAPITEL 1 Gerade genug Microservices

KAPITEL 2 Eine Migration planen

KAPITEL 3 Den Monolithen aufteilen

KAPITEL 4 Die Datenbank aufteilen

KAPITEL 5 Wachsende Probleme

Index

Über den Autor

Kolophon

Отрывок из книги

Patterns, um bestehende Systeme Schritt für Schritt umzugestalten

Sam Newman

.....

Pattern: Decorating Collaborator

Beispiel: Loyalty-Programm

.....

Добавление нового отзыва

Комментарий Поле, отмеченное звёздочкой  — обязательно к заполнению

Отзывы и комментарии читателей

Нет рецензий. Будьте первым, кто напишет рецензию на книгу Vom Monolithen zu Microservices
Подняться наверх