Présentation du projet

En résumé

Le projet SK8 propose d’étudier, d’organiser, de mettre en place et de maintenir une offre de service pour l’hébergement d’applications R-Shiny pour les utilisateurs en priorité travaillant sur les thématiques du CATI IMOTEP (les différentes plateformes d’épidemiosurveillances et départements/unités associées) ainsi que tout CATis et toutes unités de l’institut INRAE intéressées.

Contexte

Ce projet est soutenu par le CATI IMOTEP et ses membres. Le CATI IMOTEP est un collectif regroupant des forces d’ingénierie au sein des équipes de recherches positionnées dans les domaines de l’épidémiologie (animale et végétale) et de la dynamique des populations dans les paysages agricoles.

Au sein de ces équipes de recherche, la pratique de R et le développement d’applications web R-Shiny est très répandu car elle permet aux chercheurs de partager facilement leurs travaux via des applications Web. Pour d’autres membres plus opérationnels, par exemple dans le cadre de plateformes d’épidémiosurveillance, les applications R-Shiny répondent à un besoin de restitution et de vulgarisation de résultats de leurs travaux à destination du grand public, des décideurs et des scientifiques. Les possibilités de visualisations interactives (cartographie, statistiques, visualisation de données…) permettent une communication efficace et compréhensible des études réalisées par les statisticiens et épidémiologistes des différentes plateformes.

La forte demande au sein de l’institut remonté par différents CATIs début 2022 à amené le projet SK8 à élargir son périmètre d’action une fois la phase 1 terminé. Ceci en incluant de nouveaux membres de différents CATIs et la remonté de nouveaux cas d’usages.

Constat

De par la diversité de nos unités de recherche (compétences, infrastructures, …), nous avons constaté que les solutions de déploiement des applications Shiny développées à INRAE étaient très hétérogènes. Que ce soit avec ShinyProxy, ShinyServer voire Shinyapps, ces solutions nécessitent soit un minimum de compétences en administration système, soit ne sont pas pérennes ou difficiles à maintenir et nécessitent l’accès à un serveur d’hébergement. Ceci rend la tâche complexe pour le public (non informaticien) concerné par le développement d’applications Shiny.

L’idée du projet SK8 est donc de fournir un service d’hébergement d’applications Shiny qui soit simple d’utilisation, pérenne et évolutif pour répondre aux besoins des laboratoires. Ce service institutionnel permet ainsi d’avoir une harmonisation des travaux de l’institut, à la fois scientifiques et opérationnels et d’offrir une meilleure visibilité de ces derniers.

Une contrainte forte est que la solution proposée devait se baser sur des outils déjà offerts par la Direction des Systèmes d’Information INRAE pour pouvoir rester intégralement gérée dans l’institut. Nous nous sommes inspirés d’une solution déjà existante dans l’unité BioSP pour l’adapter à une plus grande échelle que celle d’un laboratoire. Nous nous sommes tournés vers des solutions libres et open source pour faciliter la maintenance et la reproductibilité.

Le projet est basé l’instance institutionnelle Gitlab (ForgeMIA). L’équipe SK8 a développé des templates et des workflows d’intégration continue pour générer une image Docker par application, et également de déploiement continu puisque ces conteneurs sont instanciés dans un cluster Kubernetes auto-géré sur une instance openStack institutionnelle. Lors de la création des conteneurs, pour gérer la reproductibilité des applications et de leur environnement de déploiement, le package {renv} est activé, même s’il n’a pas été utilisé durant le développement. Ceci permet à la fois de stabiliser les applications en figeant l’environnement dans le conteneur Docker mais également d’être plus économe en termes de ressources pour l’installation de packages nécessaires par utilisation du cache.

Du point de vue utilisateur, le fonctionnement est simple puisqu’il suffit de déposer le code Shiny dans un espace dédié sur la forge et d’accèder à l’application en ligne via une URL : https: //<projet>.sk8.inrae.fr. Le développeur·se de l’application Shiny conserve la propriété de son code, ce qui permet d’assurer la maintenance et l’évolution de l’application. Le projet a été conçu de manière à proposer un service évolutif, répondant aux besoins des utilisatrices et utilisateurs avec un fonctionnement transparent des templates et la possibilité de customiser le Dockerfile.

Les membres du projet SK8 sont structurés en deux équipes: une équipe “devops” qui gère toute l’infrastructure et les templates de CI/CD et une équipe “utilisateurs” qui assure le lien avec les utilisatrices et utilisateurs du service en répondant aux demandes d’hébergement et en remontant les besoins spécifiques.

Les acteurs du projet SK8

Le projet SK8 regroupe plusieurs acteurs INRAE et quelques extérieurs qui participent à différents groupes de travail.

Historiquement, le projet est principalement composé des agents du CATI IMOTEP, issus des Départements MathNUM, SPE et SA. Plusieurs membres sont issus des différentes plateformes d’épidémiosurveillance PESV, PESA et PSCA.

Plusieurs membres de différents CATIs nous ont rejoint depuis :

  • GEDEOP
  • CODEX
  • IUMAN
  • Bios4Biol
  • SoNet
  • Baric
  • PROSODie
  • CITISES
  • BOOM

Le projet compte aussi la participation d’agents des directions de la DipSO et de la DSI INRAE.

Groupes de travail

Le projet s’organise en deux groupes de travail principaux animés par un groupe de pilotage.

Le groupe Pilote

Il s’agit du groupe de conduite de projet composé d’un noyau dur de participants.

Réunion : le cas écheant.

Le groupe Utilisateur

Ce groupe rassemble des participants en développement R et R-Shiny.

Ils ont le rôle des futures utilisateurs.

Ils participent, au recueil des besoins, au développement R et R-Shiny, à la partie UX, à la rédaction des tests ainsi qu’à la documentation interne et externe.

Réunion : l’avant dernier Mardi de chaque mois.

Le groupe DevOps

Ce groupe rassemble des participants en développement avancé et administration systèmes.

Ils ont le rôle des gestionnaires du service.

Ils participent, au recueil des besoins, au développement et maintien du service ainsi que à la documentation interne.

Réunion : le deuxième Mardi de chaque mois

Dans les grandes lignes

Actuellement le projet SK8 est dans sa Phase 2.

La version Bêta accessible, depuis avril 2022, offre la possibilité d’héberger le code des applications R-Shiny sur le GitLab de la forgemia. L’utilisation de templates pour l’intégration continu et plus largement de différents workflows automatisés, permettent de générer la containérisation des applications et leurs mises en production dans un cluster Kubernetes, le tout géré, développé et maintenu par l’équipe SK8.

L’utilisateur à juste à déposer son code R-Shiny dans le groupe de la forgemia sk8-apps et il accède à son application en ligne via une URL: https: //\<projet\>.sk8.inrae.fr

Version Bêta de SK8

Participer - nous rejoindre

Le projet se veut ouvert à toutes participations, il est toujours possible de rejoindre l’équipe du projet (Cf. Contacts)