KubeDiagrams rend visible l’architecture des applications cloud native

Compatibilité
Sauvegarder(0)
partager

© Inria
Philippe Merle, chercheur dans l'équipe-projet Spirals
du centre Inria de l'Université de Lille.

Dans quel contexte a été développé KubeDiagrams ?

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. 

Comment a été reçu KubeDiagrams lorsque vous l’avez rendu public ?

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. 

À quels besoins répond ce logiciel ?

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. 

Comment cette représentation graphique est-elle générée ?

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.

Coordonnées
Inria