1er conseil : Découpler les différents services : Créer du couplage entre services est l’erreur classique avec les architectures micro-services. Si plusieurs services sont couplés, chaque modification sur un service entraîne des modifications sur d’autres services. Cela fait directement perdre les promesses de modularité, d’évolutivité et d’interchangeabilité.
Ce couplage peut intervenir après un mauvais découpage métier des différents services : en faisant des services trop petits, on crée du couplage entre ces services qui auraient dû être au sein d’un même service.
Ce couplage peut également intervenir avec une mauvaise architecture applicative. Au sein du code, il faut créer des couches de sérialisation afin de transformer les données telles qu’elles sont envoyées par un service avant de les utiliser. Ainsi, si l’on souhaite remplacer un service on peut directement le faire en modifiant uniquement cette couche de sérialisation. Cette pratique, couramment utilisée entre services backend, doit également être mise en place sur les frontends, permettant ainsi de ne pas coupler ces frontends avec les backends.
Grâce à la modularité apportée par l’architecture MACH, l’intégration de Saas externe est facilitée et est même recommandée. On parle alors de stratégie “Buy vs Build”. Acheter des services Saas plutôt que les construire permettra d’accélérer grandement le time-to-market. De nombreux outils existent dans des domaines variés, par exemple Algolia pour la recherche, Contentful pour l’édition de contenu, BigCommerce ou Shopify pour des solutions core e-commerce, ou encore des Storefront comme NextJS Commerce. Certains de ces outils sont certifiés par la MACH Alliance, organisation qui garantit le respect des principes MACH sur ces solutions et donc leur interchangeabilité.
Ces outils fournissent d’ailleurs des connecteurs entre eux afin d’accélérer leur intégration. En quelques clics, vous pouvez par exemple retrouver vos produits et contenus sur votre moteur de recherche, synchroniser votre catalogue avec vos contenus, ou encore connecter votre storefront à un store Shopify ou BigCommerce.
On peut être tenté de choisir des solutions “all-in-one” pour simplifier les process, et couvrir un maximum de domaines métier d’un seul coup. Mais dans une architecture MACH, on va plutôt chercher à exploiter le meilleur de chaque solution dans leur domaine métier, apportant ainsi une expérience de pointe.
De plus, même si les solutions “all-in-one” proposent de plus en plus d’APIs pour s’intégrer à d’autres services, les intégrations ne sont pas aussi fluides et les possibilités de customisation pas aussi élevées que des solutions “best-of-the-breed”, conçu by-design pour être intégrée facilement. En effet, ces solutions sont généralement conçues dès le début pour être intégrées via APIs, avec des contrats d’interfaces simples et génériques, tandis que sur une solution all-in-one ont des APIs qui ont été rajoutées par la suite et qui héritent de la complexité du système global.
Une erreur commune est de vouloir construire tout de suite l’architecture cible parfaite. Ou bien de se dire que l’approche MACH ne convient pas car elle est trop complexe. On va plutôt privilégier une approche progressive. Si on démarre un nouveau projet, l’architecture peut simplement être composée d’un front et d’une solution core e-commerce, puis on ajoutera les nouvelles briques au gré des nouveaux besoins. Si on réalise une refonte, on peut refondre progressivement module par module en privilégiant les fonctionnalités avec le plus de valeur.
Une approche progressive va permettre de sortir très rapidement des fonctionnalités, par exemple en utilisant une solution Saas, et il ne faut pas craindre de changer de solution par la suite. Car grâce à la modularité apportée par l’architecture MACH, changer de solution aura un faible coût.
La mise en place d’une architecture MACH, qui apporte son lot de bénéfices mais également son lot de complexité, n’est pas à la portée de tous. Mal implémentée, celle-ci peut s’avérer coûteuse et les promesses peuvent ne pas être au rendez-vous. Il est important de recruter ou de s’entourer d’experts sur le sujet.
Les experts sur les architectures MACH sauront éviter les différents pièges classiques et mettre en place une architecture qui ne dégrade pas la qualité et la performance.
De plus, des experts MACH ayant l’habitude des différentes solutions sur le marché faciliteront leurs intégrations. A force d’utiliser ces outils, il est également courant pour ces experts de développer des partenariats avec les providers, permettant ainsi de bénéficier d’une formation continue et d’une hotline privilégiée pour résoudre rapidement les différents obstacles pouvant être rencontrés durant une implémentation.