Environnement/contexte
VIP (Virtual Imaging Platform) est un portail web (https://vip.creatis.insa-lyon.fr) pour la simulation et le traitement de données massives en imagerie médicale. En exploitant efficacement les ressources de calcul et stockage de la grille européenne EGI, VIP offre à ses utilisateurs des services de haut niveau leur permettant d’exécuter simplement et de manière distribuée des applications d’imagerie médicale. VIP compte, en novembre 2020, plus de 1200 utilisateurs enregistrés et une vingtaine d’applications ouvertes à tous ses utilisateurs. 61 publications internationales ont été réalisées par des utilisateurs de VIP depuis 2011.
Position
Le stagiaire accueilli au laboratoire Creatis (https://www.creatis.insa-lyon.fr/site7) sous la supervision d’Axel Bonnet. Il interagira avec les autres ingénieurs VIP et les membres du laboratoire CREATIS.
Sujet
Le code de VIP est ouvert et disponible en accès-libre sur github (https://github.com/virtual-imaging-platform/VIP-portal). Il suit une méthodologie de développement bien définie afin d'assurer la bonne qualité du logiciel mis à la disposition des utilisateurs à chaque livraison. Cependant, l'architecture actuelle de VIP ne permet pas de vérifier de façon automatique l'absence de régression à chaque évolution, et ne permet pas non plus d'automatiser les tâches importantes telles que les déploiements ou la surveillance. Remédier à cela serait une grande avancée pour VIP car cela permettrait, entre autres :
de réduire la part des choses faites manuellement, et ainsi de réduire le risque d'erreurs humaines et de gagner du temps à long-terme
de réduire le risque de régressions, de bugs, et ainsi d'améliorer la qualité du logiciel fourni
de pouvoir livrer plus souvent et de proposer les évolutions plus rapidement aux utilisateurs
Ces changements sont intrinsèquement liés à la création d'une plateforme d'intégration continue (CI) pour VIP, se basant probablement sur Jenkins (https://www.jenkins.io/). Le travail à fournir consistera dans un premier temps à :
mettre en place et configurer cette plateforme
mettre en place une instance de test de VIP (différente et sans lien avec l'instance de production)
écrire les scripts pour livrer automatiquement VIP
créer une batterie de tests fonctionnels automatisés qui valide l'absence de régression à chaque livraison
modifier le code de VIP pour que les tâches précédentes soient possibles
Dans un second temps, en fonction de la durée du stage, le tâches suivantes seront envisagées :
faire le même travail pour d'autres briques logicielles liées à VIP (outils de transfert de fichier, de gestion de workflow, etc), afin d'avoir un environnement de test le plus proche possible de celui de production.
bien prendre en compte les systèmes externes qui sont en interaction avec VIP sur l'instance de test : il faut les déployer, les simuler ou les bouchonner en fonction des possibilités
étoffer les suites de tests automatisés pour ajouter plus de tests fonctionnels, des tests unitaire et des tests d'intégration
Ces travaux se feront sous la supervision d'ingénieurs expérimentés qui accompagneront le stagiaire afin de le former à ces concepts rarement approfondis en école. Il est également à noter qu'une plateforme d'intégration Jenkins et des tests fonctionnels ont déjà été mis en place par le passé sur VIP et pourront servir de base pour ce stage.
Compétences requises
Bonnes compétences en informatique, programmation Java et systèmes Linux
Notions de python
Connaissances ou intérêt porté sur l'intégration continue et les tests
Durée
de 3 à 6 mois
Contact
Axel Bonnet, email:axel.bonnet @ creatis.insa-lyon.fr