Enix et l’Institut Pasteur, un conte(neur) Kubernetes

Environnement

SVG

Technologies

SVG

Services

SVG

Nous avons débuté notre collaboration avec l’Institut Pasteur il y a quatre ans pour des missions ponctuelles sur le réseau et la mise en place de Kubernetes. Nous assurons désormais la gestion opérationnelle de leur plateforme utilisée pour la recherche scientifique.

Remise du Banana d'Or du plus gros cluster Kubernetes avec des GPUs !

Petit entretien détendu animé par Sébastien (Associé Enix) avec leurs équipes pour découvrir leur plateforme, leur migration à K8s et les dessous de notre collaboration!

Stéphane, peux-tu nous en dire plus sur vos activités de recherche et vos besoins IT à l’Institut Pasteur ?

Stéphane (DSI à l’Institut Pasteur) : En life sciences, comme dans d’autres domaines de recherche, la recherche peut se diviser en deux grandes typologies : la science humide et la science sèche. La science humide, c’est le travail du chercheur en blouse blanche, avec ses éprouvettes, tel qu’on se l’imagine souvent, de manière un peu cliché. En parallèle, la science sèche, ou science in silico, repose sur l’informatique avec le développement d’algorithmes, l’utilisation de softs très spécifiques (ex. Alpha Fold), de modèles informatiques ou encore de création de banques de données (banques de génomes, de microscopie, etc.). Dans tous les cas, le but des chercheurs est de faire des publications dans les revues les plus prestigieuses. Ces scientifiques, parfois accompagnés par des informaticiens ou des bio-informaticiens, ont besoin de plateformes robustes et agiles. Outre un HPC (High Performance Computing) pour les calculs lourds, l’adoption de Kubernetes et l’automatisation de la conception et du déploiement des applications ont été centraux pour nous dans la mise en œuvre de cette agilité.

Vos plateformes sont on-premise, avez-vous besoin de hardware particulier ?

Stéphane : Tout ce travail de recherche nous demande beaucoup de ressources IT. Nous essayons de les optimiser au mieux, notamment parce que l’Institut Pasteur est une fondation dont le financement provient de la générosité du public pour un tiers de son budget. Pour le plan de contrôle de nos clusters Kubernetes par exemple, nous avons réutilisé des serveurs de notre HPC lorsque nous les renouvelions pour acquérir des modèles plus performants. Nous utilisons aussi du GPU, par exemple pour des applis utilisant de l’inférence, après avoir entraîné un modèle sur le HPC par exemple. Pour simplifier, on peut considérer que nous avons deux plateformes, la plateforme Kubernetes pour la majorité des applications et services dont ceux exposés sur Internet, et la plateforme HPC lorsqu’on veut faire du calcul parallélisé et de haute performance.

Thomas, tu es le spécialiste Kubernetes chez Pasteur, comment vous y êtes (par)venus ?

Thomas (Responsable adjoint Opérations SI à l’Institut Pasteur) : Nous recherchions plus de scalabilité et à mieux automatiser le travail des chercheurs. Après avoir étudié l’option Openshift, nous avons opté pour une approche plus simple et moins onéreuse, avec une solution plus ouverte et sur mesure comprenant une CI/CD (intégration et déploiement continus) et Kubernetes ainsi que son écosystème technologique.

Image Description
Image Description
Image Description

Comment avons-nous pu vous aider sur votre passage à Kubernetes ?

Thomas : Nous avions déjà fait une V1 avec un seul cluster Kubernetes. Nous voulions l’industrialiser et le généraliser pour les différents usages des chercheurs. C’était complexe de trouver de l’expertise sur ces technologies. Stéphane nous a mis en relation avec vous et nous sommes tombés sur une équipe qui pouvait nous accompagner sur Kubernetes et plus globalement sur les technologies d’infrastructure que nous employions déjà.

Dans un premier temps, nous avons revu ensemble les composants de notre cluster v1. Certains ont été gardés et d’autres remplacés pour notre architecture cible. Après avoir déployé nos 4 nouveaux clusters, vous nous avez accompagnés sur la migration des applications. Elle était particulièrement complexe car nous avions 60 à 80 projets à migrer vers les nouveaux clusters, incluant par exemple notre Data Lake.

Depuis, vous assurez la gestion opérationnelle des clusters et accompagnez les scientifiques lorsqu’ils ont des problématiques sur leurs applications. Il peut s’agir de questions réseaux dans le cluster, ou liées à la mise en production de leurs applications, ou bien de nouveaux besoins spécifiques sur Elasticsearch par exemple.

Vous n’utilisez pas Kubernetes seul mais aussi une CI/CD avancée…

Thomas : Oui, nous avons une forge logicielle interne et une chaîne d’intégration continue basés sur Gitlab CI qui sont le point d’entrée pour déployer nos applications sur les clusters K8s. Un scientifique, ou tout utilisateur de la plateforme, dispose de droits spécifiques sur la consultation et le déploiement sur les infras. Nous avons également adhéré à la mouvance GitOps pour inciter les utilisateurs à faire les choses plus proprement et versionner les modifications.

Bryan, toi qui es plutôt un utilisateur du côté des chercheurs, qu’est-ce que cette nouvelle plateforme t’a apporté ?

Bryan (Ingénieur de recherche à l’Institut Pasteur) : Ce qui plaît beaucoup, c’est l’aspect reproductibilité. Auparavant, lorsque les développeurs déployaient leurs applications sur des VMs, chacun le faisait un peu à sa façon et avec des opérations manuelles. Le fait d’automatiser la chaîne de conception des applications et leur déploiement sur K8s offre la possibilité aux scientifiques de déployer de manière plus “propre” et plus facile à maintenir dans le temps. En science, la reproductibilité est fondamentale, nous devons pouvoir refaire les expériences plusieurs mois ou années plus tard, souvent même avec de nouveaux chercheurs.

Photo de groupe des intervenants dans le salon Enix.

Peux-tu nous parler d’un exemple d’usage en particulier ?

Bryan : J’ai commencé à utiliser K8s sur un projet de recherche sur les phages. Ce sont des virus utilisés pour tuer des bactéries ciblées. Chaque chercheur séquence ses différents phages et a besoin d’une plateforme pour les partager, comparer et agréger ses résultats. Je leur ai proposé une plateforme web déployée sur le cluster K8s où ils pouvaient soumettre leurs données. L’aspect K8s et la mise en place CI/CD accélèrent la mise en production des nouvelles fonctionnalités, en ayant des environnement de staging à la demande. Cette réactivité-là, les chercheurs sont très contents de l’avoir.

Au-delà de K8s, quelle a été l’évolution de vos besoins ces dernières années ?

Thomas : Nous avons eu une approche par briques. Le premier gros sujet était la mise en place des clusters Kubernetes de dev et de prod. Nous avons ensuite ajouté un cluster K8s avec du GPU et des fonctionnalités spécifiques. Je voulais qu’on mette en place Kubeflow pour mettre à la disposition des chercheurs en Machine Learning des GPUs via une interface graphique.

Nous avons également eu des besoins de stockage en complément de notre baie Isilon NFS. Nous utilisons un Ceph dont vous assurez également le Run. Nous avons aussi eu des besoins de collecte de logs et de métriques avec ElasticSearch, Kibana et Vector. Et nous continuons de faire évoluer les clusters Kubernetes, récemment nous avons ajouté des politiques de validation des ressources avec Kyverno.

Pour finir, quelques mots sur comment nos équipes collaborent au quotidien ?

Thomas : Depuis le début, votre approche n’est pas de remplacer l’expertise déjà présente chez nous. Vous vous placez comme l’extension de notre équipe existante, avec votre expertise sur Kubernetes ou plus globalement sur les sujets devops et infrastructure. Nous avons bridgé notre Rocket Chat et votre Slack ensemble, et lorsque nous avons des questions ou des besoins sur les plateformes, les interactions sont fluides et rapides entre nos équipes. Cela nous sécurise et nous libère du temps pour pouvoir mener simultanément les sujets infrastructure purs et l’accompagnement des chercheurs.