Note : 7 ; La promesse tenue d’un tour d’horizon ni trop technique, ni stratosphérique.
Cet ouvrage est déjà la référence sur l’architecture Microservices, donc de fait un préalable à mes autres lectures sur le sujet ! Le texte en lui-même est de taille moyenne, avec 250 pages structurées en 12 chapitres. Le propos n’est pas de rentrer ici dans des arcanes techniques, mais de rester à un niveau architectural concret, mettant en œuvre des patterns spécifiques à ce type d’architecture. C’est donc un bon deal.
Le premier chapitre est assez succinct et reste à très haut niveau : pourquoi fait-on des microservices ? Quelles en sont les propriétés principales ? Quels sont les bénéfices attendus ? Si l’on ne retrouve pas le thème de l’hétérogénéité technologique ailleurs (une propriété pourtant importante), les autres se retrouvent égrenés au long des autres chapitres : résilience, scalabilité, alignement sur l’organisation, facilité de déploiement ou de remplacement et composabilité. Le chapitre 2 est plus inattendus, car il s’intéresse au rôle de l’architecte. Un rôle bien mal défini et qui n’a rien à voir avec le rôle des architectes certifiés du génie civile, comme le fait remarquer l’auteur ! C’est en tant que « architecte évolutionnaire » que Sam Newman conçoit ce rôle, à cheval entre la vision et la gouvernance (zoning du domaine, alignement stratégique), mais aussi humain à travers la capitalisation de pratique et la collaboration avec l’équipe. Au final un chapitre qui est une heureuse surprise.
Le chapitre 3 est court d’une dizaine de pages : comment modéliser un service. Ici, l’auteur fait un lien naturel avec les « bounded contexts » du Domain-Driven Design. Mais il évoque aussi un sujet que l’on retrouvera plus loin : le découpage en microservices se fait par split de services ou applications de plus forte granularité. Le chapitre 4 est lui le plat de résistance de l’ouvrage : l’intégration ! J’en retiens plusieurs éléments : tout d’abord la mise en œuvre de chorégraphie distribuée via des évènements plutôt qu’une orchestration centralisée. Des appels synchrones qu’il faut rendre simples et agnostiques. Si je ne suis pas d’accord avec l’avis de l’auteur pour qui SOAP est protocole dépendant et REST protocole indépendant (désolé, mais c’est l’inverse), je trouve intéressant son appréciation de XML par rapport à Json, qui n’est pas dans l’air du temps. Bien sûr qui dit asynchronisme des évènements dit transaction distribuées ou mécanisme de compensation, des sujets ici tout juste évoqués, tout comme le versionning sémantique.
Continuer à lire « Note de lecture : Building Microservices, par Sam Newman »


