KubeDiagrams rend visible l’architecture des applications cloud native
Date:
Mis à jour le 23/10/2025
Ce logiciel est né d’un petit script en Python développé dans le cadre de la thèse de Hugo Monfleur de l’équipe-projet Spirals. Il servait à visualiser les résultats de sa chaîne d’outils.
Je m’en suis servi plus tard pour visualiser une application que nous développions dans le cadre du projet ANR SCALER, et la présenter dans un séminaire. Le diagramme généré a suscité l’intérêt d’un collègue industriel, qui a souhaité utiliser le script à son tour. Cela m’a encouragé à l’extraire pour en faire un véritable outil autonome.
Nous l’avons partagé sur le forum r/Kubernetes de Reddit. La réaction a été immédiate. En quelques semaines, le projet est passé de 20 à 100 étoiles sur GitHub – l’équivalent des "favoris" sur cette plateforme. Cela montre que de nombreuses personnes souhaitaient observer comment nous allions le faire évoluer. Dix mois plus tard, il approche les 1 800 étoiles et a été téléchargé plus de 12 000 fois. C’est une croissance remarquable, qui dépasse celle de nombreux autres projets issus de la recherche.
Mais au-delà des chiffres, ce qui nous a le plus surpris, c’est l’implication de la communauté. Très vite, des développeurs éparpillés dans le monde entier ont partagé leurs retours d’expérience sur les réseaux sociaux, rédigé des articles de blog, proposé des cas d’usage auxquels nous n’avions pas pensé, et même contribué directement au code de façon bénévole.
Il s’inscrit dans l’environnement Kubernetes, un système de développement et de gestion d’applications cloud native (adaptées au Cloud). Conçu chez Google au début des années 2010, ce système est devenu un standard de l’industrie. Depuis son ouverture au public en 2013, Kubernetes est utilisé dans des domaines aussi variés que la finance, la santé, le commerce en ligne ou la recherche scientifique.
Mais ce système est difficile à appréhender directement. En effet, les applications y sont décrites par des fichiers de configuration, et le résultat final peut différer de ce qui était prévu en phase de développement. Sans outil adapté, il est donc complexe de vérifier si l’architecture déployée correspond bien à l’intention initiale. C’est précisément ce que propose KubeDiagrams, qui est capable de générer une représentation visuelle de l’architecture des applications.
Kubernetes utilise un langage spécifique, selon un modèle déclaratif : au développement, on définit un ensemble de "ressources", c’est-à-dire des fonctions logicielles, nécessaires à l’application. De grosses applications peuvent utiliser jusqu’à plusieurs centaines de ressources. Celles-ci sont identifiées par un "type", et un numéro de version. Dans le cadre d’une application donnée, elles peuvent aussi être référencées par un nom, et diverses métadonnées.
KubeDiagrams récupère toutes ces informations, et en fait un diagramme. Les ressources y apparaissent sous forme de "nœuds", leurs relations sont représentées par des liens, et les ressources liées entre elles sont regroupées dans des ensembles colorés. Ensuite, les icônes, les couleurs et les types de traits permettent de distinguer rapidement les différentes affiliations. Tout cela est totalement configurable : on peut personnaliser la représentation, masquer certains comportements par défaut, ajouter de nombreux types de ressources, etc.
Cette visualisation trouve son utilité à toutes les étapes d’un projet. Elle peut aider un développeur à vérifier pendant la phase de conception que ce qu’il a décrit correspond bien à ce qu’il avait imaginé. Elle permet aussi de comparer plusieurs solutions ou d’identifier d’éventuelles incohérences. Une fois l’application en fonctionnement, KubeDiagrams sert à prendre des “photos” à un instant T de son évolution et à observer les modifications au fil du temps. Il peut également servir dans le cadre d’un audit.
Typiquement, l’un des premiers utilisateurs de KubeDiagrams nous a expliqué avoir détecté un défaut dans une de ses applications. Elle contenait des ressources en trop : de vieux morceaux de code qu’il avait oublié de supprimer. L’outil lui a permis de repérer immédiatement qu’il restait du code inutile. Sans représentation visuelle, cette erreur serait probablement passé inaperçue.
Notre première version était très simple et ne représentait que quelques types de ressources Kubernetes. Aujourd’hui, KubeDiagrams gère près d’une cinquantaine de ressources par défaut, ainsi que de nombreuses métadonnées. Le projet, désormais public sur GitHub, bénéficie de contributions extérieures, venant à la fois de développeurs industriels et de stagiaires.
Ce qui est étonnant dans ce projet, c’est que le processus est inversé par rapport à la recherche habituelle. Classiquement, on publie d’abord des résultats scientifiques, et parfois cela conduit à la création d’un logiciel. Avec KubeDiagrams, c’est l’inverse : nous avons commencé par développer un outil dont nous avions nous-mêmes besoin, qui soulève maintenant des problématiques de recherche sur ses cas d’usage concrets.
Ainsi, notre premier article scientifique sur KubeDiagrams a été présenté à la conférence VISSOFT en septembre 2025 à Auckland, en Nouvelle-Zélande. Plusieurs autres publications sont en cours de préparation. Nous collaborons pour cela avec Fabio Petrillo, chercheur de l’ETS Montréal, pour mener des expériences comparatives et affiner les méthodes de visualisation.
étoiles sur GitHub en 10 mois
téléchargements
publication scientifique présentée en conférence
Plusieurs chantiers sont en cours. Nous menons d’abord une étude pour évaluer l’impact des choix visuels sur la compréhension des diagrammes, afin de déterminer ce qui aide réellement les développeurs et ce qui, au contraire, surcharge inutilement l’information. Nous travaillons aussi sur des algorithmes capables de détecter et de corriger automatiquement certains défauts d’architecture, par exemple lorsqu’une ressource est mal étiquetée.
Nous préparons également un site web permettant d’utiliser KubeDiagrams à travers une interface Web, sans devoir l’installer sur sa propre machine. Enfin, KubeDiagrams est candidat à un prix national récompensant les logiciels libres de recherche. À terme, notre ambition est que cet outil devienne incontournable pour tout développeur ou développeuse Kubernetes.