Concepts¶
Environnements virtuels¶
myDocker mets à la disposition de ses utilisatrices et utilisateurs une variété d’environnements virtuels (ou simplement environnements), fournis à la demande; chacun de ces environnement virtuel consiste en un ensemble de ressources :
une interface utilisateur (ex. Jupyter, RStudio, VSCode, environnement de bureau type XFCE, terminal via SSH, ...) donnant accès à des logiciels (ex. Python, scikit-learn) et des données
avec un dossier personnel
le tout s’appuyant sur des ressources physiques: processeur (CPU, GPU), mémoire, espace disque, etc.
Lorsque l’utilisateur demande un environnement :
un serveur est identifié pour héberger l’environnement
l’image docker contenant les logiciels de l’environnement est téléchargée sur ce serveur (si elle n’y est pas déjà présente);
une machine virtuelle légère (#conteneur docker) est lancée sur le serveur;
le cas échéant, le dossier personnel de l’utilisateur est monté dans la machine virtuelle;
l’interface utilisateur est démarrée dans la machine virtuelle, et mise à disposition de l’utilisateur, typiquement via une nouvelle page web.
Demander un environnement¶
Pour demander un environnement, l’utilisateur peut au choix :
le sélectionner depuis son tableau de bord s’il l’a déjà utilisé;
ouvrir un lien web (URL) de la forme
https://mydocker.../join/xxxxoùxxxidentifie l’environnement. Ce lien peut par exemple venir de cette page de documentation du service, ou être fournie par un enseignant, par mail, sur la page web du cours, ou via un Environnement Numérique de Travail comme Moodle;ouvrir une activité myDocker depuis un Environnement Numérique de Travail comme Moodle. Une telle activité utilise le protocole d’intégration LTI qui permet de transmettre à myDocker l’identité de l’utilisateur et son rôle (élève, professeur).
Dossiers personnels persistants¶
Dans la plupart des environnements virtuels, l’utilisatrice dispose d’un dossier pour héberger des documents personnels. Ce dossier est persistant: l’utilisatrice y retrouvera ces documents après avoir éteint puis redémarré l’environnement. Selon l’environnement, ce dossier personnel peut être dédié à l’environnement, ou partagé avec les autres environnements (global).
Pour permettre une large gamme d’usages, il n’y a actuellement pas de quota imposé. Cependant ce dossier personnel est conçu pour un usage interactif et non pas pour du stockage de fichiers sur le long terme. Aussi il n’y a pas de garanties de sauvegarde ou de préservation de longue durée (plusieurs années).
Nous comptons sur votre coopération pour nous permettre de conserver une politique des données libérales. Nous nous réservons le droit d’intervenir sans préavis pour, par exemple, nettoyer des fichiers temporaires facilement reconstructibles (typiquement cache pip, conda, ...) ou des contenus illégaux. Ou avec préavis pour d’autres fichiers volumineux.
Rôles: élève, professeur, administrateur¶
myDocker ne fait pas de différence entre les utilisateurs pour utiliser des environnements virtuels: une fois dans l’un d’entre eux, on est sur une machine linux générique avec un compte local; comme par exemple en salle de TP.
Le rôle de «Professeur» permet en outre à l’utilisateur de définir et mettre à disposition de nouvelles images et nouveaux environnements, via un onglet dédié sur le tableau de bord de myDocker. On peut avoir le rôle de Professeur parce que l’établissement auprès du quel on s’est authentifié a indiqué que l’on était personnel de l’établissement et non étudiant, ou parce qu’un admin a donné le rôle de Professeur.
Sur l’interface il est possible de passer du mode “Élève” (utilisateur d’environnements) au mode “Professeur” (créateur d’environnements) grâce au bouton en haut à droite à côté de la sortie de l’interface.

(a)vers l'interface administrateur

(b)vers l'interface élève
Le rôle d’«Administrateur» permet enfin de gérer les utilisateurs (notamment de configurer leur rôle).
Comment organiser un cours utilisant myDocker¶
Si l’un des environnements préexistant vous convient, vous pouvez simplement indiquer à vos étudiants de l’utiliser, par exemple en leur fournissant un lien vers l’environnement.
Inclure myDocker comme activité dans Moodle/eCampus/... (à venir)
Si l’utilisation est large (par exemple plus d’une centaine d’étudiants utilisant simultanément myDocker), merci de nous contacter; nous essayerons alors de garder un œil plus attentif sur le service, notamment lors des premières séances. Cela permettra aussi de mieux planifier d’éventuelles interruptions de service hors de périodes critiques (exemple: rendus de projets). Merci aussi de nous contacter si vous avez besoin de ressources physiques importantes (exemple: GPU, gros volumes de données).
Si vous avez des besoins spécifiques (par exemple un logiciel ou version d’un logiciel particulière), vous pouvez créer et partager votre propre environnement.
Alternativement, la plupart des environnements existants utilisent un système de paquet
comme pip ou conda. Il est alors possible d’installer des nouveaux logiciels
directement depuis l’environnement. Ils seront typiquement installés dans un dossier
/conda où l’utilisateur a les droits d’écriture. Notez cependant que cette installation
n’est pas persistante (sauf à explicitement installer dans le dossier utilisateur): il
faudra réinstaller les logiciels à chaque redémarrage de l’environnement. Cette
alternative est donc plutôt à réserver pour des petits logiciels rapides à télécharger et
installer.
Enfin, nous vous proposons ci-dessous plusieurs stratégies pour mettre des ressources pédagogiques à la disposition des élèves.
Comment fournir des ressources (pédagogiques)¶
Option 1: Import manuel¶
Le plus simple techniquement, mais pas le plus pratique pour les étudiants -- est de mettre les ressources à disposition des étudiants dans leur ENT (Moodle, ...)
des ressources péda ou archives (avec jupyterlab-archive) à la main
Option 2: Import depuis un dépôt git¶
Option 3: Sous Jupyter, avec nbgitpuller¶
Option 4: Avec Travo¶
Gestion des devoirs¶
Comment organiser le rendu des devoirs :
à la main, éventuellement avec jupyterlab-archive
travo
Comment fournir des données (à venir)¶
Télécharger au vol
Inclure dans l’environnement, typiquement via un fichier de contexte
Montage S3 (à venir)
Collaboration temps réel (à venir)¶
À ce stade, mydocker (comme JupyterHub@Paris-Saclay précédemment) ne propose pas en soi de fonctionnalité de collaboration. C’est une limitation bien identifiée!
Cela étant dit: pour les environnements basés sur JupyterLab, il est possible de configurer l’environnement pour lancer JupyterLab en mode collaboratif. Dans ce cas, l’utilisateur pourra partager un lien d’invitation pour que d’autres personnes se joignent à sa session, avec édition collaborative comme dans Google colab.
https://
Les limitations sont:
Nous n’avons pas encore eu l’occasion de tester sur le terrain
Cela donne un accès complet à l’environnement de l’utilisateur. Si cet environnement contient par exemple des dossiers correspondant à différents cours, tous ces dossiers seront accessibles.
Le lien est limité à la session courante. Les invités ne peuvent pas l’utiliser pour accéder à l’environnement collaboratif -- et notamment le redémarrer -- une fois la session terminée.
Nous souhaiterions avancer sur le sujet, et serions très intéressés pour vous accompagner si vous étiez partant pour béta tester. Un premier exemple d’environnement qui utilise la collaboration contient une installation LaTeX pour l’edition collaborative et le rendu temps réel.
En complément, vous pourriez être intéressés par l’outil de gestion des devoirs (préparation, distribution, suivi, collecte) Travo, basé sur GitLab, qui dispose de quelques fonctionnalités de collaboration asynchrone simple.