class: center, middle, inverse, title-slide .title[ # Construire et maintenir une plateforme de calcul R ] .subtitle[ ##
] .author[ ### ArData ] --- ## Jupyterhub Serveur multi-utilisateurs d'environnements de calcul. Il peut fournir les outils R, python, julia, JupyterLab, RStudio, Shiny, et bien plus encore. Il permet de multiples scénarios de déploiement, pour : - une petite équipe - une organisation à taille variable - une organisation publique Les environnements de calcul sont définis dans des conteneurs logiciels comme "Docker". Nous allons nous focaliser sur une utilisation dans une architecture Kubernetes. --- background-image: url("static/assets/img/jupyter_overview.png") background-position: center background-size: contain ## Fonctionnement utilisateur --- class: inverse, middle, center # Caractéristiques de jupyterhub --- ## Personnalisation .column-2[ ![](static/assets/img/jupyterlab2.png) L'outil peut délivrer un ensemble large d'environnements tels que les moteurs R, python, julia, shell, node.js et bien d'autres encore. Le tout est défini dans une image docker. <br> <br> Les environnements de développement RStudio, Jupyter Notebooks, Visual Studio Code peuvent être intégrés à la plateforme mais aussi des services tels que "shiny" ou "dash" grâce aux `Jupyter Notebook extensions`. ![](static/assets/img/rstudio.png) ] --- ## Authentication L'outil s'adapte à la majorité des systèmes authentication, par exemple, LDAP, OAuth, `/etc/passwd` bien sûr, SAML, kerberos, ... PAM (Pluggable Authentication Modules) est bien sûr disponible. Les identités types GitHub, GitLab ou Google sont aussi supportés. ```yaml auth: type: ldap ldap: server: address: ldap.xxxxxxx.com dn: templates: - 'uid={username},dc=xxxxxxx,dc=com' ``` --- ## Scalable/Évolutif .column-2[ JupyterHub peut servir des profils d'utilisateurs différents en fonction de leurs besoins. ![des taureaux de tailles différentes dans un espace fermé](static/assets/img/ferdinand.jpg) Les ressources de l'utilisateur, c'est à dire le nombre et le type de CPU, la quantité de RAM et le stockage, sont configurables. Par exemple, le Hub peut servir des utilisateurs expérimentés ayant des besoins importants en ressources ainsi que des utilisateurs débutants ayant des besoins plus basiques. On peut aussi garantir une quatité minimale de RAM à certains profils. ] --- ## Gestion des ressources Vous pouvez maîtriser les ressources associées aux différents environnements définis et consommables. Le système de configuration permet de conditionner les ressources. Le système est programmable et permet aussi l'implémentation de logiques métiers adaptées aux besoins de votre organisation. ```yaml - display_name: 'environnement standard' kubespawner_override: cpu_limit: 2 mem_limit: '4G' - display_name: 'pour thanos' kubespawner_override: image: 'ardata-fr/dev-machine:v23' cpu_limit: 32 mem_limit: '128G' ``` --- class: inverse, middle, center # Cas client --- class: border-layout, nord-light .west.height-100.width-51.p-xxs.mr-m[ .card.noborder.noround.mt-xl.width-99.height-100[ .img[![](static/assets/img/maxlamenace.jpg)] ] ] .b-center.mr-l[ .pt-xl[ .font-xxl[La mission d'ArData] .mt-m.opacity-60[ Solution peu coûteuse pour tout d'abord satisfaire une population d'utilisateurs de R, plus tard avec des utilisateurs de python Accès conditionné par la solution d'autentification interne, géré par le SI, Un système de partage de fichiers gérable par l'équipe IT, Une "forge logicielle". ] ] ] --- class: border-layout, nord-dark .east.height-100.width-53.p-xxs.ml-m[ .card.noborder.noround.m-0.width-100.height-100[ .img[![](static/assets/img/ferdinand-end.png)] ] ] .b-center[ .right[ .font-xxl.nord4[Solution actuelle] .mt-xxl.nord4.opacity-90[ La solution, utilisée par bientôt 15 personnes, est aujourd'hui composée de : Un système d'authentification Google. une connexion à Google Drive pour la gestion des fichiers partagés. Un espace collaboratif GitLab. Quelques packages spécifiques, quelques scripts d'initialisations, quelques configurations pour l'intégration au SI. Une maintenance assurée par ArData. ] ] ]