Logo Sciencesconf

Gestion automatisée et reproductible de l'environnement logiciel pour les utilisateurs des moyens de calcul Inria

Philippe Virouleau  1@  

1 : Centre Inria de l'Université de Bordeaux
Institut National de Recherche en Informatique et en Automatique

La gestion de l'environnement logiciel utilisateur présente un enjeu important pour les infrastructures de calcul en général et le projet Abaca qui construit une infrastructure nationale agrégeant les ressources des différents centres de calcul d'Inria, pour répondre principalement à des besoins HPC/IA. Jusqu'à présent la solution utilisée est basée sur Spack, et par conséquent liée au système sous-jacent Debian 11, et est principalement manuelle. Les demandes d'installation de logiciels ou de mises à jour sont relativement fréquentes, et demande un investissement en temps de l'équipe technique important. Nous nous sommes rapidement heurtés aux différentes limites de la solution en place, et dans l'intérêt de faciliter la vie de l'équipe et de pérenniser la solution technique, nous avons décidé de développer une solution qui répondrait à nos différents besoin : - Avoir un moyen reproductible de passer d'une description de l'environnement (liste de logiciels par exemple) à un ensemble de modules. - Être en mesure de garder et restaurer la version d'un environnement "passé". - Être en mesure de tester un ensemble de modules arbitraire (et donc tester les modules en place ou ceux d'un nouveau commit). - Rendre indépendant la gestion de l'environnement logiciel et du système d'exploitation des noeuds. - Pouvoir automatiser la mise à jour de l'environnement logiciel. Nous nous sommes basés sur différents logiciels pour nous permettre de satisfaire ces différents points. Guix est un gestionnaire de paquet qui nous permet de passer d'une description des logiciels (appelée *manifest*) et des dépôts utilisés (appelés *channel*) à des modules utilisables de manière classique. L'ensemble étant parfaitement définis par des commit git, Guix nous permet de reconstruire cet environnement de modules bit à bit à tout moment, et complètement isolé du système d'exploitation sous-jacent. ReFrame est un outil qui nous permet d'écrire des tests indépendant de l'environnement logiciel et du matériel sur lequel il va s'exécuter. Cela nous offre la possibilité de faire tourner notre batterie de tests en utilisant un environnement de modules arbitraire, sur nos différents noeuds proposant des composants matériesl très variés (réseau HPC, capacité des GPUs, ...). L'ensemble est orchestré par une pipeline Gitlab : des changements soumis dans le *manifest* ou les versions des *channels* démarrent une nouvelle génération des modules, et son test sur la plateforme. Une fois les changements intégrés dans la branche principale, ils sont automatiquement déployés sur les différents sites d'Abaca. La présentation reviendra sur les motivations des choix techniques (liées aux contraintes techniques de la plateforme Abaca), sur les difficultés rencontrées, et sur les fonctionnalités que nous souhaitons développer dans le futur.

Type : : Présentation

Thématiques : Cycle de vie du logiciel, génie logiciel, usines logicielles

Chargement... Chargement...