Allgemeine Informationen
Das Buch umfasst 304 Seiten und besteht aus 12 Kapiteln ohne Unterteilung in Abschnitte. Die Leseschwierigkeit ist mittelmäßig (obwohl dies nicht auf technische Komplexität, sondern auf den durchgehenden Text zurückzuführen ist). Es gibt nur wenige Code-Einschübe, fast keine Bilder, aber gelegentlich werden verschiedene Diagramme und Schemata verwendet. Am Ende jedes Kapitels gibt es eine kurze Zusammenfassung.
Inhalt des Buches
Das erste Kapitel behandelt das Konzept von Microservices. Ihre Vor- und Nachteile. Merkmale (z. B. kann jeder Microservice seine eigene Datenbank oder Bereitstellung haben).
Das zweite Kapitel beschäftigt sich damit, wann und wie ein Monolith in Microservices aufgeteilt werden sollte und wie die Grenzen definiert werden können.
Das nächste Kapitel ist noch theoretischer — es geht um die Modellierung von Services oder genauer gesagt um die Kriterien, die sie erfüllen sollten (lose Kopplung und starke Kohäsion).
Das vierte Kapitel erklärt, wie Microservices innerhalb eines Systems „verbunden“ werden können. Hier werden die Regeln und Mechanismen der Kommunikation besprochen. Es behandelt auch die Arbeit mit APIs, RPC, REST, Datenbankinteraktion, JSON und alles andere, womit Sie wahrscheinlich täglich arbeiten.
Das folgende Kapitel befasst sich mit der Aufteilung eines Monolithen in Teile. Es ist praxisorientierter, da ein fiktives Beispiel verwendet wird, obwohl es in der Regel nicht über Flussdiagramme hinausgeht.
Das nächste Kapitel geht erneut auf die Bereitstellung ein. Ohne spezifische Details werden lediglich einige Tools wie Puppet, Chef und Ansible aufgelistet. Ein paar Worte zu CI/CD, Konfiguration, verschiedenen Laufzeitumgebungen, Containerisierung und vieles mehr. Wie immer — viele Blöcke und Diagramme, aber ohne Code, nicht einmal Konfigurationsdateien.
Als nächstes nähern wir uns schrittweise dem Thema des Testens von Microservices. Hier besteht wahrscheinlich kein Bedarf, tiefer darauf einzugehen, da die Ansätze und Prinzipien den üblichen Tests sehr ähnlich sind.
Das nächste Kapitel beschäftigt sich mit der Überwachung. Was hier ungewöhnlich ist, sind vielleicht die Besonderheiten der Überwachung, wenn ein Dienst an mehreren Standorten bereitgestellt wird, sowie die allgemeinen Besonderheiten der Überwachung für Microservices. Im Übrigen ist alles ziemlich standardmäßig.
Das nächste Kapitel widmet sich ebenfalls einer Anforderung an jede Software — der Sicherheit. Ein starker Fokus liegt auf Autorisierung und Authentifizierung, dem Aufbau von Firewalls und Ähnlichem.
Als das Buch sich dem Ende nähert, geht der Autor auf das Conway-Gesetz ein (das Gesetz, das besagt, dass die Struktur der Software direkt proportional zur Struktur der Organisation und den etablierten Kommunikationswegen ist). Die Diskussion dreht sich darum, wie gut Microservices dafür geeignet sind.
Das vorletzte Kapitel behandelt eine weitere moderne Anforderung an Software — Skalierbarkeit. Es werden die Besonderheiten der Skalierung von Microservices, Caching, das CAP-Theorem und vieles mehr erläutert.
Das letzte Kapitel ist eine Art Zusammenfassung des bisher Gesagten und behandelt Fragen, die noch nicht angesprochen wurden und die schwer einem bestimmten Kapitel zuzuordnen sind (z. B. Ausfälle und Wiederherstellung).
Meinung
Nach der Lektüre des Buches bin ich zwiegespalten: Einerseits ist das Buch trocken und rein theoretisch, andererseits eignet es sich sehr gut, um den Horizont zu erweitern und Wissenslücken zu schließen. Das Buch behandelt Themen wie die Vorteile von Microservices gegenüber Monolithen, CI/CD für Microservices, Sicherheit, Tests und Überwachung, Skalierbarkeit, die richtige Aufteilung eines Monolithen in Microservices sowie praktische Technologien, die verschiedene Probleme bei der Arbeit mit Microservices lösen können. Als Pluspunkte sind die klare und gut strukturierte Navigation zu nennen. Als Minuspunkte, wie bereits erwähnt: Die Lektüre ist mäßig und manchmal langweilig, es gibt nur wenige Code-Beispiele, und es ist eher theoretisch. Trotz der Nachteile würde ich dennoch empfehlen, es zu lesen oder ihm zumindest eine Chance zu geben, da das Material einige Wissenslücken gut schließt und das Thema Microservices umfassend abdeckt.