Overview
Présentation
Ce composant se base sur l'outil JupyterHub. Il a pour objectif de permettre la mise au point d'algorithmes pour exploiter au mieux les données disponibles sur le système.
Ces algorithmes pourront ensuite être intégrés sous forme d'applications ou de briques de traitement. Cette phase de développement peut nécessiter l'ajout de librairie dans la resgistry de la plateforme. Pour cela il doit en faire la demande à un administrateur système.
Les algorithmes mis au point peuvent être stockés dans Gitlab à des fins de sauvegarde mais aussi pour pourvoir exporter ces fichiers pour les fournir au développeur d'applications.
Rôles
Cet outil est à destination des rôles suivants :
- Data Scientist
- Data Analyst
- Data Engineer
Qu'est-ce que JupyterHub ?
JupyterHub met la puissance des notebooks à la disposition de groupes d'utilisateurs. Il leur permet d'accéder à des environnements et ressources de calcul sans les surcharger avec des tâches d'installation et de maintenance. Les utilisateurs, qu'ils soient étudiants, chercheurs ou data scientists, peuvent travailler dans leurs propres espaces de travail sur des ressources partagées, gérées efficacement par les administrateurs système.
JupyterHub fonctionne dans le cloud ou sur votre propre matériel et permet de fournir un environnement de data science préconfiguré à n'importe quel utilisateur dans le monde. Personnalisable et évolutif, il convient aux petites comme aux grandes équipes, aux formations universitaires et aux infrastructures à grande échelle.
Principales fonctionnalités de JupyterHub
Personnalisable - JupyterHub peut être utilisé pour gérer une variété d'environnements. Il prend en charge des dizaines de noyaux avec le serveur Jupyter et peut être utilisé pour gérer diverses interfaces utilisateur, notamment Jupyter Notebook, Jupyter Lab, RStudio, nteract, et bien plus encore.
Flexible - JupyterHub peut être configuré avec l'authentification afin de fournir l'accès à un sous-ensemble d'utilisateurs. L'authentification est modulable et prend en charge plusieurs protocoles d'authentification (tels qu'OAuth et GitHub).
Évolutif - JupyterHub est compatible avec les conteneurs et peut être déployé avec les technologies de conteneurs modernes. Il fonctionne également sur Kubernetes et peut gérer jusqu'à des dizaines de milliers d'utilisateurs.
Portable - JupyterHub est entièrement open source et conçu pour fonctionner sur diverses infrastructures, notamment les fournisseurs de cloud commerciaux, les machines virtuelles, voire votre propre ordinateur portable.
Le code et la technologie de base de JupyterHub sont disponibles dans le dépôt JupyterHub. Ce dépôt et la documentation JupyterHub contiennent plus d'informations sur le fonctionnement interne de JupyterHub, sa personnalisation et sa configuration.
Accès aux espaces de stockage
Pour préparer ses données et ses algorithmes, l'utilisateur va devoir accéder aux différents EdS disponibles. La plateforme applique différente politique d'accès suivant l'environnement cible :
- Si l'EdS est
Bac à SableouEID, l'accès est possible en lecture et écriture ; - Si l'EdS est
Production, l'accès est possible en lecture seule ; - Via Trino : accès en lecture seule en utilisant l'interface unifiée de requêtage.
Des librairies d'accès aux différents moyens de stockage sont disponibles dans Jupyter.
La gestion de la connexion aux EdS pour l'utilisateur connecté à Jupyter est réalisée par la librairie KEDS qui prend en charge :
- le controle ABAC de l'accès aux EdS ;
- la connexion technique au moyen de stockage au travers des IAD (ce qui permet l'utilisation du matricule de l'utilisateur connecté et qui garantit l'application du BeC si une politique a été définie).
Des librairies dédiées permettent également d'utiliser Trino et les catalogues qui auront été déclarés par l'administrateur système.
Des exemples sont fournis selon le type d'EdS :
- OpenSearch
- S3
- PostgreSQL
- vStore
- Trino
Images fournies
Le système est fournie avec des images par défaut adaptées à vos cas d'utilisation spécifiques.
Toutes vos images fonctionnent avec et sans GPU
- Minimal – Image minimaliste pour les cas d'utilisation simples sans bibliothèques spécifiques.
- R Language – Image adaptée aux cas d'utilisation nécessitant le langage R.
- Scientific Computing and Machine Learning – Image conçue pour l'IA et les cas d'utilisation scientifiques, incluant des bibliothèques comme Pandas et Scikit-Learn.
- Spark for Python, R, and Scala – Image compatible avec Spark et le langage Scala.
- Visualization Demo Image – Contient les bibliothèques requises pour la visualisation, telles que Plotly, Folium ou Tensorboard. Ceci est fourni à titre d'exemple et son utilisation n'est pas recommandée.