Go to blue arrow
back to Tech Blog
Développement
Affaires
Alexandra Mendes
André Santos

6 août 2026

Min Read

Micro-frontends : définition et avantages pour votre entreprise

Femme travaillant à un bureau avec deux écrans, programmant une micro-interface pour une entreprise informatique.

Une architecture de micro-frontends divise une application web en segments développés et déployés de manière indépendante, chacun étant pris en charge de bout en bout par une seule équipe. Au lieu d'une base de code unique où chaque équipe fait la queue pour apporter des modifications, on obtient plusieurs bases de code que chaque équipe déploie via son propre pipeline. Le frontend cesse ainsi d'être le goulot d'étranglement derrière un backend en microservices.

C'est là toute la promesse. Mais cela a un prix. Vous gagnez en indépendance de déploiement, en liberté de choix technologique par segment et en réduction de la taille des bundles ; en contrepartie, vous devez maintenir une plateforme commune, veiller à l'application d'un design system entre les équipes et gérer des coûts de coordination que seules quelques équipes peuvent absorber. En dessous de trois ou quatre équipes autonomes, la surcharge opérationnelle coûte généralement plus cher que le monolithe qu'elle remplace.

La question est-elle donc de savoir si les micro-frontends fonctionnent ? Non. La question est de savoir si votre organisation a atteint le stade où ils deviennent rentables. Cet article explique ce qu'est un micro-frontend, comment cette architecture s'articule avec les microservices, les avantages et les inconvénients réels en termes de livraison, les coûts de fonctionnement de la plateforme, ainsi qu'un test de préparation en trois étapes que vous pouvez appliquer à votre propre environnement avant de vous lancer.

Qu'est-ce qu'un micro-frontend ?

Un micro-frontend est composé de plusieurs petits composants modulaires et autonomes. Ces modules sont indépendants et peuvent être réutilisés sur d'autres pages. Vous pouvez écrire ces composants dans n'importe quel langage de programmation : JavaScript et ses frameworks sont les choix les plus courants, mais tout ce qui peut être compilé et packagé dans un bundle JavaScript peut être importé et intégré par le reste du frontend.

Imaginez un centre commercial. Un seul toit, une entrée unique, un parking commun, une signalétique partagée, et derrière chaque vitrine, une équipe différente qui aménage son propre espace selon son propre calendrier. Les clients font l'expérience d'un lieu unique, tandis que chaque boutique est gérée par ceux qui maîtrisent le mieux leur métier.

Dans une architecture micro-frontend, c'est exactement le même principe. Vous divisez l'application monolithique en fragments plus petits que vous codez, testez et déployez séparément, permettant ainsi à des équipes pluridisciplinaires de développer chaque composant, de la base de données à l'interface utilisateur, de manière indépendante. Ce qui permet de masquer les jointures, c'est le shell et le système de design partagé : le shell assemble chaque fragment sur une page unique avec une navigation et une session communes, tandis que le système de design garantit l'uniformité des composants et du style.

Ce modèle a été nommé et répertorié sur micro-frontends.org, et l'équipe de Martin Fowler a publié l'article de référence sur le modèle des micro-frontends, incluant les styles d'intégration que nous détaillons plus bas.

Entreprises renommées utilisant les micro-frontends

Voici quelques entreprises bien connues qui utilisent les micro-frontends :

  • IKEA : un détaillant européen de meubles disposant d'une vaste plateforme de vente en ligne. Les présentations de son équipe d'ingénierie sur la composition de pages à partir de fragments gérés indépendamment figurent parmi les études de cas référencées sur micro-frontends.org.
  • DAZN : un service européen de streaming sportif présent dans neuf pays. Luca Mezzalira, ancien vice-président de l'architecture chez DAZN et désormais architecte de solutions principal chez AWS, documente cette approche dans son livre publié chez O'Reilly Building Micro-Frontends, mis à jour dans une deuxième édition en 2025 (Building Micro-Frontends: Distributed Systems for the Frontend).
  • Upwork : un réseau de freelances qui met en relation des professionnels indépendants du monde entier.
  • Spotify : ce fournisseur de streaming a assemblé ses applications de bureau à partir de segments frontend développés indépendamment et intégrés dans un shell, l'application hôte qui charge chaque segment et l'affiche sur la page. Spotify a par la suite abandonné la composition par iframe pour son client de bureau pour des raisons de performance. Un rappel utile : l'adoption de ce modèle est une décision que vous pouvez également annuler.
  • SoundCloud : une plateforme européenne de partage de musique et de distribution audio offrant une expérience cohérente sur le web, le mobile et les lecteurs intégrés.

Considérez cette liste comme la preuve que le modèle est évolutif, et non comme une raison de l'adopter. Chaque entreprise citée gère des dizaines d'équipes frontend. C'est la condition à laquelle cette architecture répond.

blue arrow to the left
Imaginary Cloud logo

Aperçu de l'architecture micro-frontend

L'objectif d'une architecture micro-frontend est d'apporter au front-end les avantages des microservices, sans les inconvénients liés à un monolithe front-end massif.

Pour comprendre pourquoi cela fonctionne, il faut être précis sur deux points : ce que les microservices ont réellement changé côté serveur, et ce qui est resté obstinément inchangé côté client. Nous avons vu ces deux aspects se reconstruire Intégration front-end et back-end d'Eurofound, où un back-end modulaire devait toujours s'adapter à un front-end unique.

Évolution architecturale : d'une application monolithique aux micro-frontends pour votre entreprise.

Qu'est-ce que l'architecture microservices ?

L'architecture microservices est un modèle de conception utilisé dans le développement back-end. Là où une architecture monolithique est livrée en un seul bloc, les microservices sont constitués de plusieurs composants déployables indépendamment, séparés par domaines métier et connectés via des API.

Ce que cela apporte concrètement à une entreprise est plus limité que ce que suggère la liste habituelle d'adjectifs, et mérite d'être énoncé clairement :

  • Un changement est déployable sans file d'attente. Un service peut passer en production sans que tous les autres soient prêts, ce qui réduit à zéro le nombre d'équipes en attente d'une fenêtre de déploiement.
  • La capacité est achetée là où elle est consommée. Vous dimensionnez les deux services sous charge plutôt que l'application entière, ce qui permet à la facture d'infrastructure de suivre l'usage réel plutôt que les pics.
  • Une défaillance est contenue. La panne d'un service dégrade une seule fonctionnalité au lieu de faire tomber tout le produit ; l'impact d'un incident est ainsi proportionnel à la taille du changement qui l'a provoqué.
  • Les choix technologiques ne sont plus définitifs. Chaque service peut utiliser la technologie la plus adaptée, de sorte que le remplacement de l'un d'eux ne nécessite pas une décision à l'échelle de toute la plateforme.

Ces quatre points sont précisément les propriétés dont un monolithe front-end est dépourvu, aussi moderne soit le back-end qui le soutient. Notre guide sur l' architecture logicielle détaille les compromis à faire selon la taille des équipes.

Pourquoi un monolithe frontend est-il inadapté aux microservices ?

Un monolithe frontend est la partie client d'une application web construite à partir d'une base de code unique. De nombreux produits en utilisent encore un, y compris ceux dont le backend est entièrement décomposé. Le côté serveur est modulaire, mais le frontend reste un bloc monolithique.

Pour une ou deux équipes, c'est la structure idéale. À vrai dire, c'est généralement la structure idéale bien plus longtemps qu'on ne le pense. Les symptômes apparaissent à mesure que le nombre d'équipes travaillant sur cette base de code augmente, et ils sont suffisamment spécifiques pour être identifiés :

  • Conflits de déploiement. Chaque équipe utilise le même pipeline de livraison, donc une mise en production ne peut avoir lieu que lorsque la modification la plus lente est prête. Le test défaillant d'une équipe bloque le travail terminé de toutes les autres.
  • Files d'attente avant chaque modification. Une petite modification frontend attend la validation des responsables des autres parties de la base de code, puis attend le prochain cycle de déploiement. Le travail prend quelques heures. Le délai de livraison se compte en semaines.
  • Rayon d'impact. Une régression n'importe où dans un bundle partagé peut faire tomber toutes les fonctionnalités associées ; chaque déploiement comporte donc le risque de l'ensemble du frontend plutôt que le risque lié à une seule modification.
  • Un couplage qui survit à la décision initiale. Les versions des frameworks et des dépendances sont partagées, si bien qu'une mise à jour devient un projet touchant tout le produit, est reportée, et finit par devenir une migration — l'accumulation lente de dette technique que personne n'a le temps de résorber.

En d'autres termes, un monolithe frontend restreint l'indépendance de livraison que vous recherchiez en adoptant les microservices. C'est précisément ce fossé que comblent les micro-frontends. Et il faut être franc sur la nature de ce fossé : il est organisationnel. Si le délai provient de la culture de revue de code ou d'un comité de changement plutôt que de la base de code elle-même, diviser le code ne résoudra rien.

Le déploiement indépendant n'est utile que si le processus de livraison qui le sous-tend est rigoureux, ce qui est là où les meilleures pratiques agiles trouvent toute leur utilité.

Illustration d'une femme avec fiches de planification et texte sur 18 meilleures pratiques agile.
blue arrow to the left
Imaginary Cloud logo

Pourquoi utiliser une micro-interface ?

Grâce aux micro-interfaces, les entreprises peuvent :

  • Offrir une expérience utilisateur cohérente sur tous les appareils et plateformes tierces. Chaque segment est intégré dans une même structure globale, garantissant que la navigation, les sessions et les jetons de design — ces valeurs partagées pour les couleurs, la typographie et l'espacement — se comportent de manière identique, quel que soit le point de contact de l'utilisateur. Ce mécanisme repose sur la structure globale et le système de design, et non sur le découpage lui-même ; c'est pourquoi ces deux éléments doivent être pris en charge dès le premier jour.
  • Réduire les délais de mise en œuvre des changements d'interface. Une équipe responsable d'un segment peut le déployer sans attendre un cycle de publication commun. Ainsi, une modification est mise en ligne dès qu'elle est prête, plutôt que selon un calendrier imposé. Le gain se mesure sur le temps de cycle, et non sur les effectifs techniques.
  • Étendre la surface du produit sans réécriture. Chaque nouvelle fonctionnalité est ajoutée sous forme de segment distinct plutôt que par une modification du code existant. La capacité du produit n'est donc plus limitée par les contraintes d'une base de code unique.
Équipes pluridisciplinaires gérant des fonctionnalités distinctes en architecture micro-frontend.

Cette approche est idéale pour les équipes qui gèrent déjà des déploiements indépendants sur le back-end. Les avantages sont réels, mais chacun d'entre eux implique un coût, détaillé dans la section suivante.

blue arrow to the left
Imaginary Cloud logo

Ce que vous apportent les micro-frontends

Les listes d'avantages publiées pour cette architecture sont longues. Dans la pratique, elles se résument à quatre gains majeurs, chacun reposant sur un mécanisme précis et une condition nécessaire.

  • Une responsabilité de bout en bout. Une équipe prend en charge un segment, de la conception à la mise en production et au support, et c'est cela qui élimine les frais de coordination, et non le simple découpage du code. Plusieurs équipes travaillent alors sur le même produit en parallèle, avec beaucoup moins de négociations qu'une base de code partagée ne l'exigerait. La condition est une réelle autonomie : une équipe qui doit encore obtenir des validations externes n'y gagne rien.
  • L'indépendance de déploiement et la cadence de mise en production qui en découle. Chaque segment possède son propre pipeline, ce qui permet à une fonctionnalité d'atteindre la production sans attendre que toutes les autres équipes soient prêtes, et à un retour en arrière de ne concerner qu'un seul segment plutôt que l'ensemble du frontend. C'est cet avantage qui justifie l'architecture. C'est aussi celui qu'il faut mesurer.
  • Des bases de code assez petites pour être appréhendées dans leur ensemble. Un frontend monolithique devient désorganisé car aucune équipe ne peut en avoir une vision globale. Maintenir chaque segment dans le champ de compréhension d'une seule équipe permet d'obtenir un code plus propre et des tests plus simples, deux conséquences de la taille plutôt que des propriétés intrinsèques du modèle. Le corollaire est que le test du produit assemblé devient plus complexe, ce qui fait l'objet de la liste suivante.
  • Des choix technologiques par segment, incluant la liberté d'en changer. Différents segments peuvent utiliser des frameworks et des versions distincts, évitant ainsi qu'une partie du produit ne soit bloquée sur un choix obsolète pendant toute la durée de vie de l'application, et permettant de valider une mise à jour sur un segment avant de la généraliser. La taille des bundles est à double tranchant : le navigateur ne télécharge que le code nécessaire à la page, mais si chaque segment embarque sa propre copie du framework, le poids total peut dépasser celui du monolithe. Gérez les dépendances partagées avec discernement.
blue arrow to the left
Imaginary Cloud logo

Le coût des micro-frontends

Ces coûts correspondent aux quatre mêmes propriétés, vues sous un autre angle. Aucune ne justifie de rejeter cette architecture. Mais chacune nécessite un responsable avant même de commencer.

  • Le produit assemblé doit être testé en tant que tel. Chaque segment est testé individuellement sans problème. Mais prouver qu'ils fonctionnent ensemble, à travers des pipelines indépendants, nécessite une suite de tests de bout en bout et une personne responsable, sous peine de voir les problèmes d'intégration apparaître en production.
  • Une livraison plus complexe. Une architecture frontend distribuée implique davantage de pipelines, plus de dépendances entre les segments et plus de risques d'assemblage incorrect. À mesure que le nombre de segments augmente, l'effort nécessaire pour maintenir une vision claire des dépendances afin de déployer en toute sécurité s'accroît également.
  • La cohérence n'est plus automatique. L'utilisation de frameworks mixtes peut entraîner une pile technique hétérogène, des performances inégales et une interface qui se fragmente visuellement d'une partie à l'autre du produit. Pour reprendre l'analogie du centre commercial : sans signalétique commune ni politique de location, vous obtenez une simple rangée de boutiques plutôt qu'un lieu de destination.
  • Un coût de plateforme permanent. Le shell, la couche de composition, le système de design et la suite de tests de bout en bout doivent être construits puis maintenus, tout comme la capacité de gestion nécessaire pour coordonner plusieurs équipes. Ce coût commence avant la livraison du premier segment et ne s'arrête pas après le lancement.
blue arrow to the left
Imaginary Cloud logo

Micro-frontends vs monolithe : un comparatif

Ces deux architectures répondent à des problématiques différentes. Voici un aperçu des compromis à prendre en compte : ne cherchez pas à savoir laquelle est la « meilleure », mais plutôt « à quelle contrainte êtes-vous réellement confronté ? ».

DimensionFrontend monolithiqueMicro-frontend
Base de codeUn dépôt partagé que tout le monde modifiePlusieurs modules indépendants
DéploiementUn pipeline / train de déploiement partagéPipeline par module, déploiement à la demande
Taille de l'équipe adaptéeUne ou deux équipesTrois, quatre équipes autonomes ou plus
Rythme des livraisonsFreiné par la modification la plus lente du lotChaque module est déployé dès qu'il est prêt
Rayon d'impact (Blast radius)Une régression peut faire tomber l'ensemble du frontendLimité à un seul module
TechnologieFramework et versions partagés ; une mise à niveau est un projet à l'échelle du produit entierChoix par module ; une mise à niveau est d'abord éprouvée sur un seul module
Taille du bundleUn seul bundle, aucune duplicationUniquement le code dont une page a besoin — mais risque de duplication des frameworks
TestsPlus simple de bout en bout : une seule unité à testerLes modules sont testés de manière isolée ; le produit assemblé nécessite sa propre suite de tests E2E
Coût de la plateforme sous-jacenteAucun au-delà de l'application elle-mêmeCoque (Shell) + composition + design system + suite E2E (≈ un ingénieur plus un responsable du design system)
Idéal lorsqueLes conflits de déploiement ne constituent pas votre goulot d'étranglementPlusieurs équipes autonomes font la queue pour déployer sur la même base de code
blue arrow to the left
Imaginary Cloud logo

Combien coûte une micro-interface et quand est-elle rentabilisée ?

L'argument commercial repose sur un arbitrage entre coût de coordination et vitesse de livraison, qui n'est pertinent qu'à partir d'une certaine échelle. Les chiffres ci-dessous sont indicatifs et non universels. La nature de cet arbitrage importe davantage que les chiffres eux-mêmes.

  • Le seuil de taille d'équipe. En dessous de trois ou quatre équipes frontend autonomes, les micro-interfaces coûtent généralement plus cher qu'elles ne rapportent : le travail sur la plateforme et la coordination inter-équipes coûtent plus cher que les conflits de déploiement qu'ils permettent d'éliminer. Une équipe unique se retrouve avec un système distribué sans aucun des avantages organisationnels associés.
  • Frais généraux de plateforme et de coordination. Prévoyez un coût fixe pour le shell, le système de design partagé, la couche de composition et la suite de tests de bout en bout. D'après nos observations, cela représente environ la capacité à temps plein d'un ingénieur, en plus d'un responsable du système de design, et ces coûts persistent après le lancement.
  • Où se situe le retour sur investissement. Le gain réside dans l'indépendance de déploiement ; mesurez-le donc en temps de cycle et en fréquence de publication plutôt qu'en économies d'effectifs. Les équipes qui passent d'un train de publication bimensuel partagé à leur propre pipeline constatent les changements les plus significatifs. Celles qui publient déjà quotidiennement ne verront que peu de différences.
  • Séquençage. Migrer un monolithe existant tranche par tranche, derrière le shell, est l'approche la moins risquée, mais elle se compte en trimestres plutôt qu'en sprints. Une réécriture en une seule étape comporte les risques inhérents à toute refonte complète.
  • Les modes de défaillance qui imposent un retour en arrière. Trois reviennent fréquemment : la duplication des charges utiles des frameworks qui ralentit la page par rapport au monolithe ; un système de design sans responsable, entraînant une dérive visuelle de l'interface entre les différentes tranches ; et le décalage de version, où des tranches utilisent des versions incompatibles d'une dépendance ou d'un contrat partagé, ce qui n'apparaît généralement qu'une fois déployé en production. Chacun de ces problèmes relève de la gouvernance plutôt que de la technique, c'est pourquoi le test de préparation ci-dessous porte sur l'organisation.
blue arrow to the left
Imaginary Cloud logo

Quand utiliser les micro-frontends

L'architecture micro-frontend présente de réels avantages, mais ce n'est pas une solution universelle. Toutes les applications web ne s'y prêtent pas, et les facteurs déterminants sont autant organisationnels que techniques.

Le test de préparation en trois étapes

Avant d'adopter les micro-frontends, nous soumettons chaque projet à trois critères de validation. Si l'un d'eux échoue, le monolithe reste la meilleure option, et le critère en question devient le point à travailler en priorité.

  • Nombre d'équipes et autonomie. Existe-t-il au moins trois ou quatre équipes frontend, chacune capable de déployer sans l'approbation d'une autre ? Si les décisions de mise en production passent toujours par un responsable unique ou un comité de validation, cette architecture supprime un goulot d'étranglement qui n'est pas la cause réelle du retard.
  • Séparabilité des domaines. Le produit peut-il être divisé en segments autonomes aux frontières claires, permettant à chaque partie de gérer ses propres données et son interface de bout en bout ? Un système de gestion intégrée (ERP) composé de plusieurs modules (finance, CRM, RH, stocks) se segmente facilement. Un flux de travail unique et dense sur lequel toutes les équipes interviennent, non.
  • Maturité du déploiement. Chaque équipe peut-elle déployer à la demande via des « feature flags » — ces interrupteurs permettant de livrer une fonctionnalité désactivée pour l'activer plus tard — avec un suivi et une procédure de retour arrière maîtrisée ? Les micro-frontends multiplient le nombre de déploiements indépendants ; un processus de livraison fragile sur un pipeline sera encore pire sur huit.

Deux conditions de soutien sont également importantes. L'utilisation de piles technologiques distinctes pour différents modules doit être une exigence réelle plutôt qu'une simple préférence, et le budget doit pouvoir couvrir les coûts de plateforme permanents mentionnés précédemment.

Si vous n'êtes pas certain que les micro-frontends conviennent à votre projet, passez en revue ces trois étapes avec une personne ayant déjà mené une telle migration. En fin de compte, tout dépend des spécificités de votre plan d'affaires, et non des mérites théoriques de l'architecture.

Web and mobile development banner with an isometric computer monitor and smartphone app featuring a React logo.
blue arrow to the left
Imaginary Cloud logo

Ce qui assure la cohérence des segments : routage, état et authentification

Découper le frontend est la partie la plus simple. La cohérence du résultat dépend de quatre domaines dont aucun segment n'a la responsabilité exclusive, et chacun nécessite une décision avant la première migration plutôt qu'après.

  • Routage. Le shell gère les routes de premier niveau et transmet l'URL correspondante au segment concerné ; ce dernier gère tout ce qui se trouve sous ce chemin. Si cette limite est mal définie, vous vous retrouvez avec deux routeurs en conflit et un bouton retour qui se comporte différemment selon les zones du produit.
  • État partagé et session. Réduisez la surface partagée au strict nécessaire : identité de l'utilisateur, droits d'accès, locataire ou paramètres régionaux. Tout le reste appartient au segment propriétaire des données. Les segments qui lisent l'état interne des autres recréent silencieusement le couplage que vous cherchiez justement à éliminer.
  • Authentification. Authentifiez l'utilisateur une seule fois dans le shell, puis transmettez un jeton que les segments vérifieront auprès de l'API. Les segments qui intègrent leur propre flux de connexion créent des ruptures immédiatement perceptibles par les utilisateurs.
  • Gouvernance du système de design. Les composants partagés nécessitent une politique de versioning, un processus de dépréciation et un responsable ayant l'autorité de trancher. Sans cela, chaque segment finit par forker le composant dont il a besoin, et l'interface se fragmente en moins d'un trimestre.

Les composants utilitaires qui gèrent l'état ou interagissent avec l'environnement applicatif, plutôt que d'effectuer un rendu visuel, peuvent être chargés à la demande comme n'importe quel autre segment. Comme ils ne possèdent généralement pas d'interface utilisateur, il est facile de les oublier au moment de définir les responsabilités de chacun.

Comment implémenter une micro-interface ?

Vous pouvez intégrer des micro-interfaces de deux manières : au moment de la compilation ou au moment de l'exécution.

Intégration à la compilation : segments installés en tant que bibliothèques

Le conteneur installe chaque segment comme une bibliothèque, tout comme vous installeriez un paquet depuis npm, le registre de paquets Node.js. C'est ainsi que la plupart du code est écrit aujourd'hui, et c'est la solution la plus simple qui fonctionne.

Les inconvénients expliquent pourquoi la plupart des équipes finissent par abandonner cette approche. Plusieurs versions de bibliothèques partagées doivent être maintenues synchronisées, ce qui entraîne des problèmes de compilation en cas de décalage. Combiner plusieurs technologies est difficile. Le paquet final contient toutes les dépendances, ce qui le rend volumineux. De plus, comme toute modification d'une dépendance nécessite de reconstruire et de redéployer le conteneur, celui-ci et tous ses segments restent étroitement couplés. C'est précisément ce couplage que cette architecture cherche à éliminer.

Intégration à l'exécution : composition côté serveur, edge et client

L'intégration à l'exécution compose la page à partir de segments déployés indépendamment au moment où elle est servie, ou après son chargement, permettant ainsi de publier un segment sans reconstruire le conteneur. Il existe trois types de composition :

  • Composition côté serveur. Le backend détermine quel segment charger et quand, les URL définissant la manière dont le serveur achemine les requêtes.
  • Composition côté edge. L'orchestration se produit sur le réseau de diffusion de contenu (CDN), le réseau distribué de serveurs situé entre votre origine et l'utilisateur. Le edge assemble les pages et sert le contenu statique, prenant en charge des tâches qui seraient autrement effectuées par le serveur d'origine.
  • Composition côté client. Un conteneur dans le navigateur décide quelle version de chaque segment charger, car le conteneur et les segments sont déployés séparément, et il demande chaque segment au moment où il est nécessaire. C'est l'option privilégiée, et l'outil standard pour cela est Module Federation — désormais en version 2 et disponible dans Webpack 5 et Rspack — qui charge les segments à partir de points d'entrée distants lors de l'exécution. Next.js est l'exception notable qui mérite d'être mentionnée : la communauté @module-federation/nextjs-mf n'a jamais pris en charge que l'ancien Pages Router, jamais l'App Router par défaut, et ses mainteneurs ont annoncé sa fin de vie vers fin 2026. Pour les projets utilisant l'App Router, le paquet propriétaire de Vercel @vercel/microfrontends — basé sur un modèle Multi-Zones plutôt que sur l'assemblage de chunks à l'exécution — est désormais la solution recommandée. single-spa demeure l'alternative principale lorsque les segments sont développés avec des frameworks différents.

Foire aux questions

Qu'est-ce qu'un micro-frontend, en termes simples ?

Un micro-frontend est une partie de l'interface utilisateur d'une application web, conçue et déployée de manière autonome par l'équipe qui en est responsable. Au lieu d'une base de code frontend unique modifiée par tout le monde, la page est assemblée à partir de plusieurs segments indépendants, soit lors de la compilation, soit directement dans le navigateur. Chaque équipe peut ainsi effectuer ses déploiements sans attendre les autres.

Micro-frontend ou monolithe : que choisir ?

Optez pour le monolithe, sauf si les conflits de déploiement constituent votre véritable goulot d'étranglement. Une base de code frontend unique est plus simple à construire, à tester et à appréhender, et reste la solution idéale pour une ou deux équipes. Les micro-frontends deviennent rentables lorsque plusieurs équipes autonomes font la queue pour déployer sur la même base de code, et que c'est cette file d'attente, et non le code lui-même, qui ralentit votre progression.

Quel est le coût de fonctionnement d'un micro-frontend ?

Au-delà des équipes elles-mêmes, prévoyez un budget pour les coûts de plateforme : le shell, la couche de composition, un design system partagé et une suite de tests de bout en bout. D'après nos observations, cela représente environ la capacité continue d'un ingénieur, plus un responsable du design system, et ce coût persiste après le lancement. L'économie réalisée se mesure en temps de cycle, et non en réduction d'effectifs.

Combien d'équipes faut-il pour que les micro-frontends soient rentables ?

Le seuil se situe généralement à trois ou quatre équipes frontend autonomes, l'autonomie étant plus déterminante que le nombre. Si chaque mise en production doit encore passer par un responsable unique ou un comité de validation, diviser le frontend ne fera que supprimer un goulot d'étranglement qui n'était pas la véritable contrainte. Une équipe isolée qui adopte les micro-frontends en supportera les coûts opérationnels sans en retirer aucun bénéfice organisationnel.

Quelles sont les erreurs les plus fréquentes avec les micro-frontends ?

Trois erreurs reviennent souvent. Embarquer une copie du framework avec chaque segment, ce qui rend la page plus lente que le monolithe initial. Négliger la gouvernance du design system, entraînant une incohérence visuelle entre les segments. Et laisser les versions diverger entre des segments déployés indépendamment, ce qui ne se révèle qu'en production. Ces trois points relèvent davantage de la gouvernance que de la technique.

Les micro-frontends ralentissent-ils le chargement des pages ?

Cela dépend. Diviser l'application permet au navigateur de ne télécharger que le code nécessaire à la page, ce qui est un avantage. À l'inverse, la duplication des dépendances entre les segments peut alourdir la charge totale par rapport à l'original. Le résultat dépend de la gestion rigoureuse des dépendances partagées ; il est donc préférable de mesurer la vitesse de chargement à chaque version plutôt que de faire des suppositions.

Peut-on migrer vers les micro-frontends progressivement ?

Oui, et c'est l'approche la moins risquée. Installez un shell devant votre monolithe actuel, isolez une fonctionnalité verticale aux contours bien définis et confiez-en la responsabilité complète à une équipe. Répétez l'opération pour chaque segment suivant. Prévoyez une migration sur plusieurs trimestres plutôt que sur quelques sprints, et gardez toujours la possibilité d'interrompre le processus en cours de route.

Conclusion

Les micro-frontends apportent au frontend ce que les microservices ont apporté au backend : une livraison indépendante, en échangeant des coûts de coordination contre une vitesse de déploiement accrue. Ce compromis n'est rentable qu'à grande échelle : la plateforme entraîne des coûts fixes et les points de défaillance sont davantage organisationnels que techniques. Appliquez donc d'abord les trois filtres : nombre et autonomie des équipes, séparabilité des domaines et maturité des déploiements. Si l'un d'eux fait défaut, il est plus judicieux de le corriger en priorité, et le monolithe reste pour l'instant la meilleure solution.

Nous avons conçu, maintenu et migré aussi bien des micro-frontends que des monolithes, et nous serions ravis d'évaluer votre infrastructure au regard de ces trois filtres, même si la conclusion est de ne rien changer. Contactez-nous et nous étudierons votre situation.

Alexandra Mendes
Alexandra Mendes

Alexandra Mendes est spécialiste senior de la croissance chez Imaginary Cloud et possède plus de 3 ans d'expérience dans la rédaction de textes sur le développement de logiciels, l'IA et la transformation numérique. Après avoir suivi un cours de développement frontend, Alexandra a acquis des compétences pratiques en matière de codage et travaille désormais en étroite collaboration avec les équipes techniques. Passionnée par la façon dont les nouvelles technologies façonnent les entreprises et la société, Alexandra aime transformer des sujets complexes en contenus clairs et utiles pour les décideurs.

LinkedIn

Read more posts by this author
André Santos
André Santos

Votre développeur web de tous les jours qui aime se cacher dans le backend. Javascript et Ruby sont mes préférés. Je me débrouille toujours avec Docker et mes builds se cassent assez souvent.

Read more posts by this author

People who read this post, also found these interesting:

Dropdown caret icon