Informations Générales
Le livre compte 304 pages, composé de 12 chapitres sans subdivisions en sections. La difficulté de lecture est modérée (bien que ce ne soit pas dû à une complexité technique, mais au texte continu). Il y a peu d'insertions de code, presque pas d'images, mais des diagrammes et des schémas apparaissent périodiquement. À la fin de chaque chapitre, il y a un résumé bref.
Contenu du Livre
Le premier chapitre traite du concept de microservices. Leurs avantages et inconvénients. Caractéristiques (par exemple, chaque microservice peut avoir sa propre base de données ou son propre déploiement).
Le deuxième chapitre est consacré à savoir quand et comment diviser un monolithe en microservices et comment définir les limites.
Le chapitre suivant est encore plus théorique — il parle de la modélisation des services, ou plutôt des critères qu'ils doivent remplir (faible couplage et forte cohésion).
Le quatrième chapitre explique comment "connecter" les microservices au sein d'un système. Les règles et mécanismes de communication y sont discutés. On y aborde également le travail avec les API, RPC, REST, l'interaction avec les bases de données, JSON et tout ce avec quoi vous travaillez probablement au quotidien.
Le chapitre suivant traite de la division d'un monolithe en parties. Il est plus pratique, car il utilise un exemple fictif, bien qu'il ne dépasse généralement pas les organigrammes.
Le chapitre suivant revient sur le déploiement. Sans détails spécifiques, il énumère simplement quelques outils, comme Puppet, Chef et Ansible. Quelques mots sur le CI/CD, la configuration, les différents environnements d'exécution, la conteneurisation, et bien plus encore. Comme toujours — beaucoup de blocs et de diagrammes, mais sans code, pas même des fichiers de configuration.
Ensuite, nous abordons progressivement le sujet des tests des microservices. Ici, il n'est probablement pas nécessaire de s'attarder, car les approches et les principes sont assez similaires aux tests classiques.
Le chapitre suivant traite de la surveillance. Ce qui est inhabituel ici, ce sont peut-être les particularités de la surveillance lorsqu'un service est situé à plusieurs endroits, ainsi que les particularités générales de la surveillance pour les microservices. Pour le reste, tout est assez standard.
Le chapitre suivant est également consacré à l'une des exigences de tout logiciel — la sécurité. Une grande importance est accordée à l'autorisation et à l'authentification, à la construction de pare-feu, etc.
En approchant de la conclusion, l'auteur aborde la loi de Conway (la loi qui stipule que la structure du logiciel est directement proportionnelle à la structure de l'organisation et aux communications établies). La discussion porte sur la pertinence des microservices pour cela.
L'avant-dernier chapitre traite d'une autre exigence moderne pour les logiciels — l'évolutivité. On y aborde les particularités de la mise à l'échelle des microservices, la mise en cache, le théorème CAP, et bien plus encore.
Le dernier chapitre est une sorte de synthèse de tout ce qui a été discuté précédemment et couvre des questions qui n'ont pas encore été abordées et qui sont difficiles à attribuer à un chapitre spécifique (par exemple, les pannes et la récupération).
Avis
Après avoir lu ce livre, j'ai eu des sentiments mitigés : d'un côté, le livre est sec et purement théorique ; de l'autre — il est très utile pour élargir ses horizons et combler les lacunes de connaissances. Le livre aborde des sujets tels que : les avantages des microservices par rapport aux monolithes, le CI/CD pour les microservices, la sécurité, les tests et la surveillance, l'évolutivité, la division correcte d'un monolithe en microservices, et les technologies pratiques qui peuvent résoudre divers problèmes lors du travail avec les microservices. Les points positifs incluent une navigation claire et bien organisée. Les points négatifs, comme déjà mentionné : la lecture est modérée et parfois ennuyeuse, avec peu d'exemples de code, et c'est assez théorique. Malgré les inconvénients, je recommanderais tout de même de s'y plonger ou au moins de lui donner une chance, car le matériel fait un bon travail en comblant certaines lacunes de connaissances et en couvrant bien le sujet des microservices.