Web

Comprendre l’Architecture MACH

by Marc Hugon 16 janvier 2024

Tournée vers l’évolutivité, la scalabilité et la performance, l’architecture MACH a de nombreux atouts. Elle repose sur des microservices, c’est-à-dire sur une structure sur laquelle des composants sont développés indépendamment les uns des autres.

Une approche MACH découple le front-end et le back-end pour les travailler de façon indépendante. Toutes les fonctionnalités du programme sont accessibles via une API et exploitent les capacités du cloud.

Pour mieux appréhender ces aspects techniques, nous vous expliquons en détail ce qu’est une architecture MACH.

Que signifie MACH ?

L’acronyme MACH signifie littéralement :

Nous allons nous intéresser à chacun de ces aspects techniques afin de définir ce qu’est une architecture MACH.

M comme Microservice based

Le terme microservice désigne une architecture dans laquelle on développe des composants indépendants qui remplissent une unique fonction. Dans une architecture MACH, c’est surtout la manière de travailler qui est empruntée à la conception de microservices.

En effet, cette méthode de développement apporte une grande flexibilité aux équipes. Plusieurs chantiers peuvent être travaillés en parallèle et déployés au moment le plus pertinent. Les différents composants évoluent tout en étant maintenus dans leur écosystème.

A comme API-first

Tout ce qui est proposé par la solution mise en place doit être disponible en API-first. Toutes les fonctionnalités doivent être accessibles via une API pour connecter les différents composants avec les applications métiers ou les autres outils utilisés par l’entreprise.

Cela permet de limiter la dépendance aux outils eux-mêmes. L’architecture MACH permet littéralement connecter ou déconnecter chacun d’entre eux en cas de nécessité.

C comme Cloud-native

Le cloud native désigne une architecture disponible dans le cloud et qui en exploite toutes les capacités. Il ne s’agit pas uniquement de stockage et d’hébergement, mais bien de l’évolutivité de la technologie dans cet environnement. Celle-ci se base sur des technologies comme Docker, Kubernetes ou Serverless.

Une solution cloud-native gagne en rapidité, en évolutivité, en réactivité et en scalabilité.

H comme Headless

Il s’agit du découplage des parties front-end et back-end. Cela donne une grande liberté de conception en travaillant sur chaque partie de façon totalement indépendante. On se concentre sur la raison d’être de l’outil mis en place.

Par exemple, un CMS (content management system) n’est pas un outil qui se soucie de la présentation du contenu, mais seulement de sa gestion. Même si c’est possible, avec des plateformes comme WordPress, ce n’est pas la raison d’être du CMS. Cette dernière est la gestion du contenu.

Le headless impose donc une utilisation de l’API qui permet une interopérabilité entre les différents composants. Il offre une adaptabilité aux besoins.

 

Webinar

MACH et architecture composable : avantages et défis

voir le webinar

Comment fonctionne une architecture MACH ?

Un seul point d’entrée pour tous les outils métiers

Une entreprise utilise de multiples applications métiers. Outre le CMS, le CRM, l’ERP, le PIM ou le SSO sont souvent nécessaires. En effet, ces applications correspondent chacune à des besoins très spécifiques. Élément particulièrement intéressant : ces plateformes proposent de plus en plus d’API.

Votre entreprise a sa propre raison d’être et propose une valeur ajoutée et des interactions avec les clients qui apportent des résultats. Or, d’un point de vue technique, il est nécessaire de faire le lien entre cette raison d’être et ces outils. C’est ce qu’on appelle le back for front. Ce logiciel va gérer la connexion avec tous ces outils métiers via API, rest ou autres.

Le back for front propose un point d’entrée unique pour l’ensemble des applicatifs. Via une plateforme cloud native, il propose une API comme GraphQL. L’objectif est de ne pas être trop dépendant des outils de votre SI. Le back for front expose toutes les données disponibles et permet d’en disposer selon vos besoins.

Une solution performante et résiliente

L’architecture MACH permet de :

  • Mettre à disposition rapidement de nouvelles fonctionnalités grâce à l’utilisation de Docker ou Kubernetes ;
  • Travailler de manière parallèle sur le développement frontend et backend.
  • Mettre en place des caches pour les données froides. Il est inutile d’appeler plusieurs fois une API si on connaît la réponse.
  • Contrôler l’expiration du cache avec un système de hook. Une URL est configurée dans l’outil, par exemple un CMS, pour appeler une URL de back for front lorsqu’une mise à jour est effectuée. Il n’y a pas besoin d’attendre que le cache soit mis à jour, l’information arrive en temps réel.

Un exemple concret de back for front

Voici un cas pratique. Un logiciel PIM qui contient une base de disques CD avec les données suivantes : artiste, titre, format, dates, pistes, SKU. Le besoin est de relier le PIM au CMS qui permet à un rédacteur de rédiger des critiques des disques en question.

Rédacteur Back for front Lecteur
  • Le rédacteur crée une nouvelle critique ;
  • Il utilise une zone de saisie pour entrer le SKU ;
  • Il vérifie que c’est le bon disque qui est indiqué ;
  • Il publie sa critique.
  • Le BFF appelle le CMS pour aller récupérer les données éditoriales, et il récupère aussi le SKU.
  • Avec le SKU, le BFF fait une requête au PIM pour récupérer toutes les informations du produit, et les ajoute aux informations reçues par le CMS.
  • La critique est disponible
    avec le disque lié.

 

L’architecture MACH apporte une expérience plus fluide et évolutive

Contrairement à une structure monolithique, l’architecture MACH permet de travailler différents éléments de façon indépendante, d’où le gain de liberté. Il s’agit d’une approche DevOps fondamentalement différente du développement web traditionnel. Grâce à cette approche, de nouvelles fonctionnalités peuvent être ajoutées rapidement. C’est une solution résolument performante et résiliente.

Marc Hugon

Marc Hugon

CTO Projets

Marc met son expertise technique au service de la transformation digitale des entreprises. Grâce à de nombreuses années d’expérience en tant que CTO de sites e-commerce d’envergure, il conjugue compréhension des enjeux métier et intégration des problématiques technologiques et méthodologiques.

Commentaires

Ajouter un commentaire

Votre commentaire sera modéré par nos administrateurs

Vous avez un projet ? Nos équipes répondent à vos questions

Contactez-nous