Application Shiny COVIDiSTRESS

Bonjour,

Je travaille avec des psychologues et des neurobiologistes dans un consortium international chargé d'analyser les conséquences de l'épidémie covid-19 sur la psychologie humaine (stress, confiance, respect des règles sanitaires). Voici le lien : https://osf.io/v6wgx/

Nous avons une publication en cours de rédaction et j'ai développé une application Shiny pour en visualiser les résultats. Jacques, Claudine et Christophe sont favorables à ce que l'application soit hébergée à l'IFB.

Comment procéder pour l'installation de l'application ?

Merci d'avance.
Bonne journée à vous.

Bonjour Guillaume,

Nous pouvons mettre à votre disposition une machine virtuelle avec un environnement R prêt à l'emploi incluant Shiny. Il vous faudra alors installer votre application Shiny ainsi que les bases de données associées le cas échéant.
Nous avons pour habitude de déployer les applications à l'aide de rôles et playbooks Ansible. Nous pourrons vous accompagner dans ce domaine si nécessaire.

Par ailleurs, nous nous chargerons de mettre en place un répartiteur de charge (vraisemblablement NGiNX) qui jouera le rôle de point d'entrée pour votre application. Il nous faudra alors déterminer le nom de domaine nécessaire

Quelques questions préliminaires :

  • Quelle version de R et Shiny souhaitez-vous utiliser ?
  • Disposez-vous déjà d'un dépôt Git permettant d'accéder aux sources de votre application ?
  • Pouvez-vous nous indiquer les resources nécessaire pour cette application (CPU, RAM, stockage) ?
  • Votre application doit-elle soumettre des tâches à notre infrastructure de calcul (via SLURM) ?
  • Avez-vous des compétences en Ansible ?
  • Souhaitez-vous un nom de domaine en .france-bioinformatique.fr pour cette application ?

Bonjour @ggautreau,

Quand vous parlez d'hébergement avec Jacques, Claudine et Christophe, vous aviez identifié l'IFB Core Cluster ou l'IFB Core Cloud ?
Nous avons un peu parlé en interne et nous pouvons en effet vous proposer de monter un Virtual Machine pour héberger cette application.

@Francois pourrait en effet vous guider dans ce déploiement.

Bonjour @gildaslecorguille,

Christophe suggérait plutôt l'IFB cluster dans son mail d'hier.

Très bien, j'attends le message de @Francois.

Merci !

Bonjour, j'ai les mêmes questions que @julien en fait :wink:

Bonjour @julien

Actuellement nous utilisons R 3.6.1 et Shiny 1.4.0.2 mais si nous devons utiliser d'autres versions on peut s'adapter je pense.

Voici le github de l'application shiny https://github.com/lboullu/COVIDiStress-Shiny mais le développement est toujours en cours.

En ressource, je propose :

1Go de disque dur serait bien.
Pour le CPU 8 coeurs serait bien.
16Go de RAM serait bien aussi.

La consomation en ressource va dépendre du nombre de connection donc c'est difficile à prévoir.

Je ne connais pas du tout Ansible.

Pour le nom de domaine, nous voulons bien un sous domaine comme par exemple : covidistress.france-bioinformatique.fr

Merci, bonne journée.

J'ai repondu @Francois.

C'est vous qui fournirez le jeu de données (via un dépôt SFTP) où c'est l'utilisateur qui upload son jeu de données ?

C'est faisable

Ansible est un "orchestrateur" qui permet de déployer des recettes d'installation et de configuration sur des serveurs physiques ou virtuels. Ces recettes qui peuvent être jouées à l'infini si on change de serveur, de localisation, si la machine a planté ou encore si nous devons déployer le même service sur une centaine de machine ... Cela nous assure un niveau de qualité car nous n'intervenons pas sur les machines directement.

Pour l'instant le jeu de donnée c'est nous oui.

D'accord, il faut donc que je fasse un recette Ansible, il y a un template quelque part ?

Sinon je voulais savoir combien de temps l'herbergement est possible ?

Si vous nous fournissez des instructions détaillés sur comment installer votre application shiny sur un environnement vierge, par exemple une VM vide.

Alors on peux se charger d’écrire le script Ansible. Comme ça vous aurez un modèle pour la prochaine fois :wink:

A part ça je crois qu'il n'y pas vraiment de limite de temps pour l’hébergement. En tout cas pour l'instant. C'est possible que ça change un jour, et dans ce cas on vous tiendra au courant.

2 « J'aime »

En effet, nous n'avons pas de limite de temps [pour le moment], mais nous allons quand même formaliser quelques conditions d'utilisation :slight_smile:

En bref, un déploiement peut-être réévaluer périodiquement pour estimer si il est toujours maintenu et si il répond toujours à un besoin.

Bonjour @Francois ,

Désolé pour la réponse tardive, j'ai eu un problème d'ordinateur.

Il faudrait donc une VM vide sur laquelle sont installée R ainsi que les packages R suivant :

library(shiny)
library(shinyWidgets)
library(shinythemes)
library(tools)
library(ggplot2)
library(plotly)
library(stringr)
library(dplyr)
library(maps)
library(countrycode)
library(wpp2019)
library(tm)
library(SnowballC)
library(wordcloud)
library(RColorBrewer)

Pour le reste le code est là https://github.com/lboullu/COVIDiStress-Shiny et pour l'executer, il faut 1) ajouter le fichier "COVIDiSTRESS_May_04_clean.csv" dans le repertoire principal du Github puis 2) faire en R (un cran au dessus du repertoire principal du Github) :

library(shiny)
runApp("COVIDiStress-Shiny")

Le fichier "COVIDiSTRESS_May_04_clean.csv" est disponible ici https://drive.google.com/file/d/1wfF8JE9lJDEB6nT_7yFgIlzfgmyp8ZQK/view?usp=sharing

Voilà merci encore.

@Francois avez-vous vu mon message ?

Bonjour, Oui oui j'ai vu, je regarde et je vous tiens au courant :wink:

1 « J'aime »

Bonjour Guillaume @ggautreau ,

Le rôle Ansible est la: https://gitlab.com/ifb-elixirfr/ansible-roles/ansible-covidistress-shiny
Si vous êtes curieux, je vous encourage à aller voir à quoi ça ressemble :wink:

Je suis en train de faire quelques tests en local (sur mon pc) pour vérifier que tout fonctionne bien.
Cependant Google n'aime pas trop les scripts qui télécharge automatiquement sur leur serveur...
C'est possible d'avoir un lien ailleurs pour récupérer les datas ? Peut-être directement ici https://osf.io/4cyqn/ ?

Maintenant que l'installation est automatisé, la VM devrait arriver assez vite, j’espère cette semaine.

Sur mes tests en local je trouve que l'ensemble de l'application est bien grise:

C'est normal ? Un problème de Data peut-être ?
Ça doit pas afficher des graphiques normalement ?

Du coup le fait que ce soit grisé, c'est à cause d'un souci de proxy et de websocket. Mais on a trouvé la solution pour le regler.

La VM de prod est en cours de création, pour l'instant on a mis 2CPU et 6G de ram, mais on pourra augmenter si à l'usage on se rend compte que ce n'est pas suffisant.

2 « J'aime »

Ha super ! D'accord. Pour la VM je vais pouvoir me connecter en SSH, c'est ça ?

L'application sera-t-elle disponible à cette adresse covidistress.france-bioinformatique.fr ?

Merci beaucoup en tout cas.

Bonsoir,

Non nous n'avons pas prévu de connexion ssh, vous pensez en avoir besoins pourquoi ?

A noter que les mises à jour se feront automatiquement grâce au script Ansible que j'ai mentionné plus haut.

Et oui ça sera a cette adresse: https://covidistress.france-bioinformatique.fr/

On a fait quelques tests sur notre pre-production, et effectivement l'application à l'air un peu gourmande en ressource, du coup on va augmenter les valeurs que j'ai donné précédemment pour la ram et les cpus