Mikroservices. Entwicklungs- und Refactoring-Muster
520 Seiten
German
PDF
4.5

Mikroservices. Entwicklungs- und Refactoring-Muster

Mikroservices. Entwicklungs- und Refactoring-Muster

Autor:

Jahr:

Zusammenfassung:

Einleitung

Das Buch „Microservices Patterns“ (auf Deutsch: „Mikroservices. Entwicklungs- und Refactoring-Muster“) von Chris Richardson ist wohl das grundlegendste Werk zum Entwurf von Mikroservices-Systemen, das 2018 erschienen ist. Der Autor ist ein bekannter Architekt, Schöpfer des Saga-Musters und Gründer der Plattform Eventuate. Das Buch ist für Tausende von Entwicklern, die vom Monolithen zu Mikroservices wechseln, zum Standardwerk geworden. Obwohl die Beispiele in Java (mit Spring Cloud und Netflix OSS) geschrieben sind, sind die beschriebenen Muster universell und in jeder Sprache, einschließlich Python, anwendbar.

Worum geht es in diesem Buch

Das Buch besteht aus 13 Kapiteln, die in drei Teile gegliedert sind. Der erste Teil führt in die Grundlagen der Mikroservices-Architektur, die Motivation für den Wechsel vom Monolithen und grundlegende Konzepte ein. Der zweite Teil ist der Kern des Buches: eine detaillierte Analyse von über 20 Mustern, gruppiert nach Problembereichen:

  • Aufteilung in Services (nach Geschäftsfähigkeiten, nach DDD-Subdomänen);
  • Kommunikation (synchron über REST/gRPC, asynchron über Nachrichten);
  • Datenverwaltung (Saga, CQRS, Event Sourcing);
  • Service Discovery (Service Registry, Client-Side Discovery);
  • Fehlertoleranz (Circuit Breaker, Bulkhead, Retry);
  • Sicherheit (API Gateway, Access Token);
  • Beobachtbarkeit (Health Check, Log Aggregation, Distributed Tracing);
  • Bereitstellung (Docker, Kubernetes, Serverless).

Der dritte Teil widmet sich dem Refactoring des Monolithen in Mikroservices – die Strangler-Fig-Strategie, das Herauslösen von Modulen, die schrittweise Migration.

Für wen ist dieses Buch geeignet

Das Buch richtet sich an Softwarearchitekten und erfahrene Entwickler, die bereits Erfahrung mit der Erstellung verteilter Systeme haben. Für Anfänger wird es schwierig sein – es werden Kenntnisse in Java, Spring Framework, Datenbanken und Netzwerkprotokollen vorausgesetzt. Für Python-Entwickler, die mit Flask/FastAPI und Docker vertraut sind, ist das Material jedoch ebenfalls nützlich: Alle Muster werden auf konzeptioneller Ebene erklärt, und der Java-Code lässt sich leicht nach Python übertragen.

Was der Leser lernen wird

  • Wie man eine Anwendung mit DDD und Bounded Contexts richtig in Mikroservices zerlegt;
  • Wie man Transaktionen zwischen Services mit dem Saga-Muster (Choreografie und Orchestrierung) organisiert;
  • Wie man CQRS und Event Sourcing für komplexe Abfragen und Auditing implementiert;
  • Wie man ein API Gateway, Lastverteilung und Service Discovery aufbaut;
  • Wie man Fehlertoleranz mit Circuit Breaker und Bulkhead gewährleistet;
  • Wie man zentralisiertes Logging, Metriken und Tracing einrichtet;
  • Wie man Mikroservices in Docker und Kubernetes bereitstellt;
  • Wie man einen Monolithen sicher refactored, ohne das Geschäft zu unterbrechen.

Stärken

Der Hauptvorteil des Buches ist seine Systematik. Richardson listet nicht nur Muster auf, sondern ordnet sie in eine logische Karte ein: Jedes Problem (z. B. „Wie bewahrt man die Datenkonsistenz zwischen Services?“) erhält mehrere Lösungsvarianten mit einer Analyse der Kompromisse. Das Buch ist reich an realen Beispielen aus der Praxis (Amazon, Netflix, Uber). Besonders hervorzuheben ist das Kapitel über Refactoring – ein seltenes Thema, das Autoren normalerweise umgehen.

Der Java-Code ist gut strukturiert und verwendet moderne Bibliotheken (Spring Boot, Spring Cloud, Hystrix, Kafka). Für die Python-Community ist dies eine hervorragende Gelegenheit zu lernen, wie dieselben Muster im Java-Ökosystem implementiert werden, und bewährte Praktiken in den eigenen Stack zu übernehmen.

Empfehlung

Das Buch ist ein Muss für alle, die Mikroservices-Systeme entwerfen, mit verteilten Daten arbeiten oder eine Migration vom Monolithen planen. Es ist sowohl für Architekten als auch für Teamleiter und Senior-Entwickler nützlich. Wenn Sie in Python schreiben, aber Mikroservices verwenden, lassen Sie sich nicht verunsichern

Empfehlungen