Microservices – Konzeption und Design
Ich durfte für den mitp Verlag das Buch Microservices – Konzeption und Design lesen und berichte euch hier meine Erfahrungen. Microservices gelten aktuell als die Alternative zu monolithischer Software und sind insbesondere im Kontext von kleinen agilen Softwareteams und für den Einsatz in der Cloud relevant. Microservices haben viele Vorteil, sie sind aber nicht der heilige Gral der Softwareentwicklung.
Microservices – Konzeption und Design
Das Buch von Sam Newman ist bereits 2015 erschienen. Obwohl sich in 5 Jahren die Technik geändert hat, sind die Konzepte auch heute noch relevant. Aus meiner persönlichen Sicht sind die im Buch besprochenen Themen und Probleme im Kontext der Microservices gerade dann spannend, wenn man als Entwickler „erst“ jetzt damit in Berührung kommt. Microservices werden von großen Technologieunternehmen wie Amazon, Microsoft, Netflix, usw. (werden auch im Buch genannt) schon seit Jahren verwendet. Bei mittelständigen Unternehmen die erst jetzt die ersten Schritte Richtung Cloud unternehmen ist dieses Thema neu und wirft oft Grundsätze in der Art und Weise über den Haufen, wie man mit den eigenen Software Projekten umgeht. Wie Unterstützt das Buch nun den Leser?
Autor
Der Autor Sam Newman ist Berater und Entwickler und hat Erfahrungen mit größeren Unternehmen. Aus den Kapiteln im Buch liest man sehr gut heraus, welche Probleme er in eigenen Projekten gegenüber stand und wieso er welche Entscheidung getroffen hat. Der Autor dürfte sehr stark im AWS und Java Umfeld arbeiten, die Beispiele sind aber alle unabhängig von einer bestimmten Technologie.
Kapitel
Das Buch ist in 12 Kapitel gegliedert:
- Microservices
Was sind Microservices und welche Vor- beziehungsweise Nachteile haben diese im Vergleich zum klassischen Softwaredesign eines Monolithen. - Der fortentwickelte Systemarchitekt
In diesem Kapitel lernt man die Schwierigkeiten im Zusammenhang mit der Systemarchitektur kennen denen man bei der Entwicklung von Microservices unweigerlich in Berührung kommt. - Gestaltung von Services
Mit dem Ansatz des DDD (Domain-Driven Designs) lernt man die Herangehensweise zur Erstellung einzelner Microservices und ziehen der Grenzen zu anderen Microservices kennen. - Integration
Microservices haben Schnittstellen. In dem Kapitel geht es darum diese identifizieren zu können und wie man eine Kommunikation zum und vom Microservice implementiert. - Die Aufspaltung des Monolithen
Die meisten Entwickler kommen mit Microservices oder der Cloud in Kontakt, wenn es darum geht eine bestehende Software zu migrieren. In diesem Kapitel werden Lösungsvorschläge diskutiert wie man einen Monolithen am besten zerlegt. - Deployment
Dieses Kapitel richtet sich um das Deployment von Microservices, das im besten Fall vollständig automatisiert werden soll. Ein Agiles Team kann problemlos ein Microservice mehrmals täglich in der Produktionsumgebung deployen. - Testen
Eine spezialisierte Software kann eines sehr gut, trotzdem muss man diese auch testen. In diesem Kapitel Consumer-Driven Contracts zur Qualitätssicherung vorgestellt. - Monitoring
Verteilte Systeme mit Dutzenden Microservices brauchen ein ordentliches Monitoring um schnell Fehler zu finden und Bottlenecks zu identifizieren. - Sicherheit
Authentifizierung und Autorisierung sind bei der komplexen Kommunikation in einem verteilten System ein wesentlicher Bestandteil dessen Sicherheit. In diesem Kapitel geht es darum sich darüber bewusst zu werden und darauf zu achten die Sicherheit nicht zu vergessen. - Conways Gesetz und Systemdesign
In diesem Kapitel geht es um das Zusammenspiel von Organisationsstruktur und Systemarchitektur. - Microservices skalieren
Ein Hauptargument für Microservices in der Cloud ist die Skalierbarkeit der Anwendung. Damit das klappt muss man sich schon bei der Entwicklung von Microservices über dessen möglichen Ausfall oder hoher Auslastung Gedanken machen. - Auf den Punkt gebracht
Eine Liste von 7 Kernpunkten soll die Besonderheiten von Microservices noch einmal hervorheben.
Persönliche Meinung
Das Buch ist meiner Meinung nach schwer zu lesen, wenn man es von vorne bis hinten wie einen Roman liest. Es wird da leider schnell sehr trocken. Die Grafiken lockern den Text zwar auf, jedoch sind diese oft sehr speziell für ein bestimmtes Beispiel, dass der Autor offenbar in der Praxis hatte. Für die eigenen Probleme sind diese nur bedingt zu gebrauchen. Wenn man das Buch jedoch als Nachschlagewerk nutzt, kann man sich aus den einzelnen Kapitel viele wertvolle Informationen herausholen. Insbesondere dann, wenn man gerade ähnliche Aufgabenstellungen hat. Beispiel: das Zerlegen eines Monolithen in Microservices. Da ich das aktuell auch mache sind die Tipps sehr hilfreich und aus der Praxis heraus sehr gut verständlich.
Fazit
Wenn man aktuell neu im Thema Microservices ist, dann kann ich das Buch Microservices – Konzeption und Design empfehlen. Es gibt keine Copy-Paste Lösungen, man bekommt aber gut ein Bild, welche Probleme und Herausforderungen auf einen warten. Nach dieser Lektüre bin ich jedenfalls motiviert mich mit diesem Thema weiter beschäftigen. Ich werde mich in der nächsten Zeit bestimmt mit Technologien rund um das Thema Cloud und Microservices beschäftigen und darüber schreiben.