Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Équilibrer autonomie et alignement
Les architectures micro-frontend sont fortement orientées vers l'autonomie des équipes. Cependant, il est important de faire la distinction entre les domaines qui peuvent favoriser la flexibilité et la diversité des approches pour résoudre les problèmes, et les domaines dans lesquels la normalisation est nécessaire pour parvenir à l'alignement. Les hauts dirigeants et les architectes doivent identifier ces domaines dès le début et prioriser les investissements afin d'équilibrer la sécurité, les performances, l'excellence opérationnelle et la fiabilité des micro-frontends. Trouver cet équilibre implique les étapes suivantes : création, test, publication, journalisation, surveillance et alerte de micro-frontend.
Création de micro-frontends
Idéalement, toutes les équipes sont parfaitement alignées afin de maximiser les avantages en termes de performances pour les utilisateurs finaux. Dans la pratique, cela peut être difficile et demander plus d'efforts. Nous vous recommandons de commencer par des directives écrites auxquelles plusieurs équipes peuvent contribuer dans le cadre d'un débat ouvert et transparent. Les équipes peuvent ensuite progressivement adopter le modèle logiciel Cookiecutter, qui permet de créer des outils qui fournissent un moyen unifié de structurer un projet.
En utilisant cette approche, vous pouvez intégrer des opinions et des contraintes. L'inconvénient est que ces outils nécessitent des investissements importants pour leur création et leur maintenance, et pour garantir que les bloqueurs sont traités rapidement sans affecter la productivité des développeurs.
End-to-end tests pour les micro-frontends
Les tests unitaires peuvent être laissés aux propriétaires. Nous vous recommandons de mettre en œuvre une stratégie dès le début pour tester de manière croisée les micro-frontends exécutés sur un shell unique. La stratégie inclut la capacité de tester les applications avant et après une version de production. Nous recommandons de développer des processus et de la documentation pour le personnel technique et non technique afin de tester manuellement les fonctionnalités critiques.
Il est important de veiller à ce que les modifications ne dégradent pas l'expérience client fonctionnelle ou non fonctionnelle. Une stratégie idéale consiste à investir progressivement dans des tests automatisés, à la fois pour les fonctionnalités clés et pour les caractéristiques de l'architecture telles que la sécurité et les performances.
Libérer les micro-frontends
Chaque équipe peut avoir sa propre façon de déployer son code, de recueillir des opinions et de disposer de sa propre infrastructure. Le coût de la complexité de la maintenance de tels systèmes est généralement dissuasif. Nous recommandons plutôt d'investir dès le début pour mettre en œuvre une stratégie partagée pouvant être appliquée par des outils partagés.
Développez des modèles avec la plateforme CI/CD de votre choix. Les équipes peuvent ensuite utiliser les modèles préapprouvés et l'infrastructure partagée pour apporter des modifications à la production. Vous pouvez commencer à investir dans ce travail de développement très tôt, car ces systèmes ont rarement besoin de mises à jour importantes après une période initiale de test et de consolidation.
Journalisation et surveillance
Chaque équipe peut avoir différents indicateurs commerciaux et systèmes qu'elle souhaite suivre à des fins opérationnelles ou analytiques. Le modèle du logiciel Cookiecutter peut également être appliqué ici. La diffusion des événements peut être résumée et mise à disposition sous forme de bibliothèque que plusieurs micro-frontends peuvent utiliser. Pour trouver un équilibre entre flexibilité et autonomie, développez des outils permettant de consigner des métriques personnalisées et de créer des tableaux de bord ou des rapports personnalisés. Les rapports favorisent une collaboration étroite avec les responsables des produits et réduisent la boucle de feedback du client final.
En normalisant la livraison, plusieurs équipes peuvent collaborer pour suivre les indicateurs. Par exemple, un site Web de commerce électronique peut suivre le parcours de l'utilisateur depuis le micro-frontend « Détails du produit » au micro-frontend « Panier », en passant par le micro-frontend « Acheter » pour mesurer l'engagement, le taux de désabonnement et les problèmes. Si chaque micro-frontend enregistre les événements à l'aide d'une seule bibliothèque, vous pouvez utiliser ces données dans leur ensemble, les explorer de manière globale et identifier des tendances pertinentes.
Alerte
À l'instar de la journalisation et de la surveillance, les alertes bénéficient de la standardisation avec une certaine flexibilité. Les différentes équipes peuvent réagir différemment aux alertes fonctionnelles et non fonctionnelles. Cependant, si toutes les équipes disposent d'un moyen consolidé pour lancer des alertes sur la base de mesures collectées et analysées sur une plateforme partagée, l'entreprise peut identifier les problèmes entre les équipes. Cette fonctionnalité est utile lors d'événements liés à la gestion des incidents. Par exemple, les alertes peuvent être déclenchées par les moyens suivants :
-
Nombre élevé d'exceptions JavaScript côté client sur une version de navigateur donnée
-
Temps nécessaire pour obtenir une dégradation significative au-delà d'un seuil donné
-
Nombre élevé de codes d'état 5xx lors de l'utilisation d'une API particulière
En fonction de la maturité de votre système, vous pouvez équilibrer vos efforts sur différentes parties de votre infrastructure, comme indiqué dans le tableau suivant.
Adoption |
Recherche et développement |
Ascension |
Maturité |
---|---|---|---|
Créez des micro-frontends. |
Expérimentez, documentez et partagez les apprentissages. |
Investissez dans de l'outillage pour construire de nouvelles micro-frontends. Évangéliser l'adoption. |
Consolidez l'outillage pour les échafaudages. Faites pression pour l'adoption. |
Testez les micro-frontends de bout en bout. |
Mettez en œuvre des mécanismes pour tester manuellement tous les micro-frontends associés. |
Investissez dans des outils pour automatiser les tests de sécurité et de performance. Étudiez les indicateurs de fonctionnalités et la découverte de services. |
Consolidez l'outillage pour la découverte des services, les tests en production et les end-to-end tests automatisés. |
Relâchez les micro-frontends. |
Investissez dans une infrastructure CI/CD partagée et dans des versions automatisées dans plusieurs environnements. Évangéliser l'adoption. |
Consolider l'outillage pour l'infrastructure CI/CD Mettre en œuvre des mécanismes de restauration manuels. Faites pression pour l'adoption. |
Créez des mécanismes pour lancer des annulations automatisées en plus des indicateurs et alertes du système et de l'entreprise. |
Observez les performances du micro-frontend. |
Investissez dans une infrastructure de surveillance et une bibliothèque partagées pour une journalisation cohérente du système et des événements commerciaux. |
Consolidez les outils de surveillance et d'alerte. Implémentez des tableaux de bord inter-équipes pour surveiller l'état général et améliorer la gestion des incidents. |
Standardisez les schémas de journalisation. Optimisez en fonction des coûts. Mettez en œuvre des alertes basées sur des indicateurs commerciaux complexes. |