EasyLab
Adieu le "Ça marche pas sur ma machine".

Logo EasyLab : la mascotte au labo
Logo EasyLab : la mascotte au labo
29 Octobre 2026
Photo de Matthieu Vincent
Photo de Matthieu Vincent

Matthieu VINCENT

Lead Platform Engineering

9 h 02

L'atelier a commencé à 9 h 00.

25 personnes, 25 portables : 10 versions d'outils, 3 derrière un proxy d'entreprise, 2 sans droits admin.

On a prévu 3h d'atelier. On en passe 40 minutes à installer.

Ce qui casse
à chaque atelier

Installation

Docker vs Podman, l'installation du JDK, la version de Node mais aussi du Windows, du Linux et du MacOS. Sans oublier 25 personnes qui tirent la même image de 2 Go sur le wifi de la conférence.

Le poste

Proxy d'entreprise, antivirus qui bloque, pas de droits admin. Ou juste pas envie d'installer plein d'outils sur son poste "juste pour un atelier".

L'après

Mon cluster créé pour l'occasion tourne encore trois semaines plus tard. J'oublie mais la facture, non.

Comment se s'implifier la vie ?

Les technos
simple et efficace

Un serveur Go, du Pulumi pour l'infrastructure, un cluster Kubernetes - et un workspace par personne.

  • Rendu côté serveur, html/template : pas de SPA, pas de build front
  • Le SDK Pulumi, en Go
  • Providers OVHcloud et Azure - ou votre kubeconfig
  • Un Deployment, un Service et un PVC par personne. L'IDE, c'est code-server
  • Traefik en ingress, cert-manager, un wildcard. ExternalDNS en option
  • Une image multi-arch, un chart publié en artefact OCI

Trois topologies
où poser le serveur

Les workspaces vivent dans un cluster. Le serveur, lui, vit où vous voulez.

  • Le serveur sur le poste de l'admin relié à un cluster de lab distant
    Le serveur sur le poste de l'admin relié à un cluster de lab distant
    Le serveur sur le portable, le lab à distance. Un kubeconfig suffit.
  • Le serveur et les workspaces dans le même cluster
    Le serveur et les workspaces dans le même cluster
    Un helm install dans le cluster du lab. Rien à transporter.
  • Un serveur unique pilotant trois clusters de lab distincts
    Un serveur unique pilotant trois clusters de lab distincts
    Une instance, plusieurs labs. Chacun garde sa date.

En fonction de votre besoin et du cycle de vie, plusieurs possibilités s'offrent à vous.

Démo

Regardons comment ça fonctionne en tant qu'administrateur et en tant que participant.

Croquis du serveur et du cluster avec un workspace par personne
Croquis du serveur et du cluster avec un workspace par personne

En résumé
côté admin, côté participant.e

Deux espaces : un pour les admins qui gèrent les labs, un pour les participant.es.

Admin

  • Créer un lab - un cluster neuf chez OVHcloud ou Azure, ou un kubeconfig
  • Essayer avant de créer - le dry run simule tout, et ne touche à rien
  • Décrire un workspace - un formulaire, du YAML, ou le devcontainer.json
  • Nettoyer - un TTL par workspace, une date de suppression du lab
  • Aider - la possibilité de se connecter au lab d'un participant
  • Notifier - informer les participant.es des changements ou de la fin du lab
  • Configurer - faciliter la création de labs (cluster, DNS), la connexion aux workspaces (GitLab, GitHub, EntraID)

Participant.e

  • Une URL - pas d'installation, pas de VPN, pas de compte
  • VSCode / Openchamber dans le navigateur - le home sur un volume : rien ne se perd
  • Donner du feedback - une note, une difficulté, rattachées au lab

Faciliter la vie de tout le monde

Merci

Matthieu VINCENT - Lead Platform Engineering, Sopra Steria
https://me.yodamad.fr

La doc : https://docs.easylab.yodamad.fr
Le code : https://github.com/yodamad/easylab
Les slides : https://slides.bdxio26.yodamad.fr

QR code vers la documentation d'EasyLab
QR code vers la documentation d'EasyLab