← Derniers articles
💻 computer science

Distributed Architecture Reconstruction of Polyglot and Multi-Repository Microservice Projects

Cet article présente un nouveau cadre pour la reconstruction d'architecture statique distribuée qui surmonte les limitations existantes en utilisant des extracteurs modulaires et spécifiques à chaque technologie afin d'unifier les données et de générer une documentation précise pour les projets de microservices polyglottes et multi-dépôts.

Auteurs originaux : Oscar Manglaras, Alex Farkas, Thomas Woolford, Christoph Treude, Markus Wagner

Publié 2026-02-10
📖 5 min de lecture🧠 Analyse approfondie

Auteurs originaux : Oscar Manglaras, Alex Farkas, Thomas Woolford, Christoph Treude, Markus Wagner

Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète

Imaginez que vous avez une ville immense et bouillonnante composée de centaines de petits quartiers indépendants. Chaque quartier (un microservice) est construit par une équipe différente, utilisant des matériaux différents (langages de programmation) et suivant son propre style unique. Certains sont faits de briques (Java), d'autres de bois (Python) et d'autres de verre (Go).

Le problème ? Personne n'a de carte complète de la ville. Les plans originaux sont soit perdus, soit obsolètes, soit écrits dans une langue que seuls les constructeurs d'origine comprennent. Comme ces quartiers changent très rapidement et sont construits séparément, essayer de dessiner une seule carte géante de toute la ville est un caucasse. Si vous essayez de regarder toute la ville à la fois, vous restez bloqué dans les embouteillages, et si un quartier change, vous devez redessiner toute la carte.

Ce document présente un nouvel outil appelé ModARO pour résoudre ce problème. Voici comment il fonctionne, en utilisant des analogies simples :

1. Les « Éclaireurs Spécialisés » (Extracteurs)

Au lieu d'embaucher un seul robot géant et super intelligent pour comprendre tous les types de matériaux de construction de la ville, les auteurs ont créé une équipe d'éclaireurs spécialisés appelés Extracteurs.

  • Comment ils fonctionnent : Chaque éclaireur est un expert dans un domaine précis. Un éclaireur ne sait lire que les plans « Java ». Un autre ne connaît que les conteneurs « Docker ». Un autre ne connaît que les fichiers de configuration « YAML ».
  • La Magie : Vous n'avez pas besoin d'apprendre à l'éclaireur Java à lire le Python. Vous envoyez simplement l'éclaireur Java dans le quartier Java. Il observe les alentours, trouve les détails importants et les note sur un carnet de notes standardisé.
  • Pas de mémoire : Ces éclaireurs sont des « amnésiques ». Ils ne se souviennent pas de ce qu'ils ont vu dans le quartier précédent. Ils regardent seulement le bâtiment spécifique devant eux en ce moment. Cela les rend rapides et les empêche de s'embrouiller.

2. Le « Carnet de Notes Universel » (Le Modèle)

Lorsqu'un éclaireur termine son travail, il ne garde pas ses notes pour lui. Il écrit ses découvertes sur un Carnet de Notes Universel (un modèle JSON).

  • Ce carnet possède un format spécifique dont tout le monde est d'accord.
  • Si l'éclaireur Java trouve une « porte » (un point de terminaison d'API), il le note. Si l'éclaireur Python trouve une « fenêtre » (une connexion à une base de données), il le note aussi.
  • Parce que tout le monde utilise le même format de carnet de notes, les informations du quartier Java et du quartier Python peuvent finalement être combinées.

3. L'« Orchestrateur » (L'Algorithme)

Il y a un chef d'orchestre (l'Algorithme de Reconstruction) qui gère les éclaireurs.

  • Le chef d'orchestre dit : « D'accord, regardons ce bâtiment. »
  • L'éclaireur Java vérifie le bâtiment et ajoute des notes.
  • Le chef d'orchestre voit que de nouvelles notes ont été ajoutées et dit : « Oh, maintenant que nous savons qu'il y a un fichier Java ici, appelons l'éclaireur Docker pour voir s'il y a aussi un conteneur. »
  • Cela se produit en boucle jusqu'à ce qu'aucune nouvelle information ne soit trouvée. Le chef d'orchestre veille à ce que si deux éclaireurs tentent d'écrire des choses contradictoires sur la même ligne, le système s'arrête et lève un drapeau (une erreur) afin que les humains puissent corriger le tir, plutôt que de laisser la carte devenir désordonnée.

4. La « Carte Distribuée » (Reconstruction Multi-Repo)

C'est la plus grande innovation de ce document. Autrefois, pour dessiner une carte, il fallait rassembler chaque plan de chaque quartier dans une seule pièce géante et les examiner tous ensemble. C'est lent et cela brise l'esprit « indépendant » de la ville.

L'approche est Distribuée :

  • Travail Indépendant : Chaque quartier dessine sa propre mini-carte pendant qu'il construit ou met à jour ses propres maisons. Ils n'ont pas besoin d'attendre que les autres quartiers aient terminé.
  • L'Assemblage : Plus tard, ces mini-cartes sont rassemblées et emboîtées comme des briques LEGO.
  • Les « Connexions Fantômes » : Parfois, un quartier dit : « Nous envoyons du courrier à un endroit appelé 'Test-Service'. » Ils ne connaissent pas encore l'adresse exacte ou l'ID de cet endroit parce qu'il se trouve dans un autre quartier. Le système leur permet d'écrire : « Envoyer du courrier à n'importe qui nommé 'Test-Service'. » Une fois que toutes les mini-cartes sont emboîtées, le système connecte automatiquement les points, faisant correspondre l'expéditeur « Test-Service » au destinataire « Test-Service ».

Pourquoi est-ce meilleur ?

  • Pas de « Taille Unique » : Vous n'avez pas besoin d'un système complexe et fragile qui essaie de comprendre tous les langages de programmation à la fois. Vous ajoutez simplement un nouvel éclaireur (extracteur) chaque fois qu'un nouveau langage apparaît.
  • Rapidité : Comme chaque quartier travaille sur sa propre carte, vous pouvez mettre à jour la carte d'un service sans arrêter toute la ville.
  • Flexibilité : Vous pouvez utiliser des outils existants. Si vous avez déjà un outil qui analyse le code Java, vous l'enveloppez simplement dans une « tenue d'éclaireur », et il peut rejoindre l'équipe.

En résumé, ce document construit un système où de petites équipes spécialisées peuvent documenter de manière indépendante leurs parties d'un système complexe, puis assembler automatiquement ces pièces en une image complète et précise de l'architecture entière, sans avoir besoin de tout savoir sur les autres parties pendant qu'elles travaillent.

Noyé(e) sous les articles dans votre domaine ?

Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.

Essayer Digest →