Datalab SSPCloud
Le Datalab permet aux statisticiennes et statisticiens de découvrir, d’expérimenter, d’apprendre, de se former aux outils de la data.
Liens utiles :
- https://www.sspcloud.fr/
- Le Datalab de l’INSEE : https://datalab.sspcloud.fr/
- La documentation
- Mais aussi des tutoriels, des formations et un agent conversationnel local et basé sur des modèles d’IA open source
- Datalab de l’ENSAE-ENSAI
- https://www.onyxia.sh/ : l’application qui permet à n’importe qui de déployer des services, sans avoir besoin de connaissances techniques de l’infrastructure.
- Besoin d’assistance ? Contactez l’équipe du SSPCloud sur Slack
Pourquoi un Datalab ?
Dans le monde professionnel, plusieurs problèmes se posent :
- 🐢 la machine n’est pas assez puissante
- ⛔ installer certains logiciels est parfois interdit et bloqué par le système
- 🔒 la nécessité d’analyser des données sensibles en toute sécurité
À l’INSEE, un projet est né pour pallier à ce besoin : Onyxia porté par le lab de l’INSEE.
La première étape fut de créer une infrastructure Cloud avec des CPUs, des GPUs, de la RAM et du stockage.
Ensuite, avoir plein de ressources c’est très bien, mais encore faut-il savoir les utiliser. Or lancer des services dans le cloud nécessite quelques compétences spécifiques (Docker, Kubernetes, Helm, S3…) qui ne sont pas à la portée de tous.
D’où l’idée de créer une interface graphique pour pouvoir lancer des services en quelques clics. Onyxia s’appuie sur des technologies sous-jacentes (Kubernetes, Helm, S3…) pour proposer une IHM agréable pour le datascientist. Cependant, la philosophie du projet Onyxia est d’être une brique qui facilite le travail sans se rendre indispensable. L’idée est d’éviter que les utilisateurs ne s’enferment dans un choix technologique et qu’il soit couteux d’en sortir.
À l’INSEE, une instance de ce logiciel a été installée sur le Datalab SSP Cloud, ouverte à tous les agents publics. Vous pouvez y créer un compte avec votre mail ENSAI prenom.nom@eleve.ensai.fr.
Ne déposez pas de données sensibles sur cette instance, ni sur celle du GENES.
Pour celles et ceux qui iront à l’INSEE, une autre instance nommée LS3 n’est accessible qu’en interne et autorise l’utilisation de données sensibles.
Onyxia est un logiciel Libre et Open Source. Chacun peut installer sa propre instance sur son infra. C’est ce qu’ont fait de nombreux organismes, ainsi que le GENES.
Les services
Le principe est d’offrir aux utilisateurs la possibilité de lancer de nombreux services à la demande (Jupyter, Rstudio, VSCode, PostgreSQL…) avec une puissance de calcul adaptée aux besoins.
Ces services sont éphémères, car si les ressources sont importantes, il faut savoir les partager !
Le principe général est le suivant :
- 🚀 Vous lancez votre service en réservant des ressources (CPU, GPU, RAM, Stockage)
- 👷 Vous effectuez votre travail
- 💾 Vous sauvegardez votre code (git) et vos résultats (MinIO)
- 🗑️ Vous supprimez votre service et libérez les ressources
Analogie avec une location de PC
Lancer un service, c’est un peu comme se servir dans un magasin informatique.
| Utiliser le Datalab | Location de PC |
|---|---|
| Lancer un service | Louer une machine avec des logiciels installés |
| Réserver des ressources | Choisir la configuration (CPU, GPU, RAM, Go…) |
| Paramétrer votre espace | Installer d’autres logiciels, packages, extensions… |
| Effectuer le travail | Réaliser vos calculs ou vos analyses |
| Sauvegarder votre code | Avant de rendre la machine, envoyer votre code sur un dépôt Git |
| Sauvegarder vos données | Vous exportez vos données vers le stockage S3 |
| Supprimer le service | Vous rendez la machine. Elle est remise à zéro pour d’autres |
Comment ça marche ?
Si vous voulez en savoir plus sur l’histoire du projet et comment ça fonctionne.
Une présentation complète du projet Onyxia au Devoxx 2023, de sa philosophie et de son fonctionnement par Olivier LEVITT, Joseph GARRONE et Frédéric COMTE.
Une présentation plus courte
Prenons l’exemple de ce qu’il se passe en arrière plan lorsque vous lancez un service
Vscode-python:Construction de l’image Docker
Une image Docker est un paquet léger et autonome qui contient tout le nécessaire pour exécuter une application : le code, les bibliothèques, les dépendances, les variables d’environnement et les fichiers de configuration.
Les images Docker permettent de créer des environnements isolés et cohérents, garantissant ainsi la portabilité et la reproductibilité des applications.
Vous avez maintenant une image Docker avec tout ce qu’il faut pour bien travailler.
DockerHub
Cette image est construite et déposée sur DockerHub onyxia-vscode-python.
Nous allons ensuite lancer une instance de cette image : un conteneur.
Une image est comme un moule, et un conteneur est un objet fabriqué à partir de ce moule. L’image contient les instructions, et le conteneur est l’instance concrète créée à partir de ce modèle. Vous verrez le même principe dans le cours de POO avec les classes (modèles) et les objets (instances)
Pour gérer tous les conteneurs lancés sur le datalab, nous avons besoin d’un orchestrateur : Kubernetes.
Chart Helm
Cependant, nous allons d’abord utiliser Helm pour faciliter le déploiement.
Helm simplifie le processus de déploiement d’applications sur Kubernetes en automatisant les tâches répétitives et en fournissant une gestion centralisée des configurations.
Le chart Helm vscode-python est un ensemble de fichiers de configuration qui facilite le déploiement d’application dans un envrionnement Kubernetes.
Déploiement sur Kube
Kubernetes (K8s) est un système open-source qui automatise le déploiement, la mise à l’échelle et la gestion d’applications conteneurisées. C’est un orchestrateur de conteneurs.
K8s récupére via le chart Helm toutes les infos nécessaires et déploie le conteneur (créé à partir de l’image Docker) sur l’infra du datalab.