
Comment Le Wagon apprend à coder à des milliers d'étudiants avec Scalingo
Avec 44 campus et près de 14 000 diplômés, Le Wagon est la référence des “Bootcamps”, ces écoles où l’on apprend à être développeuse/développeur en un temps record.
Créé en 2014 à Paris avec la mission de transformer la vie des gens et des entreprises grâce à l'apprentissage du code, le Wagon est aujourd’hui l’un des leaders des formations de code dans le monde.
Le Wagon propose des formations de Web Development et de Data Science, en plein temps (9 semaines) ou en temps partiel (24 semaines). Et ce dans 44 campus répartis en Europe, en Asie et Pacifique, en Amérique, en Afrique et au Moyen-Orient. En parallèle, le Wagon propose la possibilité de se former en ligne.
Pour comprendre comment une école qui forme des milliers d’élèves par an utilise Scalingo, nous avons eu le plaisir de discuter avec Sébastien Saunier, le co-fondateur et le CTO du Wagon.
Nous allons nous pencher sur les coulisses de l’infrastructure du Wagon, et voir en quoi Scalingo en tant que PaaS leur offre une solution optimale pour leur utilisation.
Le Wagon : un réseau mondial de campus
Avec la formation en ligne et des campus aux quatre coins du monde, Le Wagon offre un réseau mondial qui permet aux personnes d’apprendre le code en un temps record.
Ils permettent aux étudiants d'avoir une formation diplômante, ainsi qu'un accompagnement après la fin de la formation et l'accès au réseau d'alumni qui travaillent maintenant dans les entreprises tech les plus innovantes, comme Skello, Doctolib, Spendesk, Matera, Farmitto et bien d’autres ! En moyenne, 93% des étudiants diplômés trouvent un emploi, lancent leur activité en freelance, ou créent leur propre startup après la formation.
Les équipes du Wagon ont conçu et maintiennent leur propre LMS (Learning Management System). Cela leur permet d'avoir un contrôle total sur ce qui est proposé et d'ainsi offrir une expérience la plus riche possible auprès des élèves, tout en dépassant les limites techniques que pourrait imposer un LMS tiers.
C'est sur cette application codée en Ruby on Rails que tout se passe, à la fois l'ensemble des processus pédagogiques, mais aussi la gestion des candidatures, des contrats, de la facturation ainsi que, l'accompagnement des élèves après le bootcamp.
Le développement et le maintien d'un tel outil nécessite énormément de moyens techniques et humains. Les professeurs du Wagon étaient donc au départ aussi développeurs ! Avec la croissance il a été décidé en 2022 de séparer la partie ingénierie de l'opérationnel.
L’équipe est aujourd’hui composée à 100% d'alumni et compte 25 personnes dont 5 personnes dans l'équipe Data et 15 développeurs qui s'occupent essentiellement des applications qui permettent le bon fonctionnement du bootcamp.

L’organisation avant Scalingo
Avant de passer sur Scalingo, Le Wagon hébergeait ses applications Ruby on Rails sur Heroku jusqu'à ce qu'ils rencontrent une limite pour leur plateforme pédagogique.
Cette application en question a pour but de tester le code des élèves pour vérifier si ce dernier est bon. L'application renvoie par la suite à l'élève un message indiquant si son code est correct ou incorrect, à la manière d’une intégration continue.
Quatre jours du bootcamp Web Development sont consacrés à l’apprentissage des bases de données et du langage SQL, à ce titre des exercices utilisent la base de données légère SQLite. Les tests conçu par l’équipe pédagogique fonctionnaient bien en local sur les machines des élèves mais ne tournaient pas correctement sur Heroku, en l’absence de headers SQLIte sur les machines proposées sur ce PaaS
Ils ont donc recherché un nouvel hébergeur pour cette application (tout en gardant le reste chez Heroku), et AWS Elastic Beanstalk a été le choix pour ce test. Cependant, ils n'étaient pas satisfaits, l'expérience n'était pas idéale pour eux, et le support ne leur convenait pas. Cependant, Le Wagon est resté plusieurs années sur cette plateforme en gardant en tête l’envie de migrer dès l’arrivée de compétences DevOps plus poussées en interne.
En 2019, l’équipe a décidé d’extraire la fonctionnalité d’intégration continue de l’application pédagogique, afin de tester le code des élèves dans une Sandbox sécurisée, en utilisant Docker.
Pour cela, ils ont créé une nouvelle application Rails qui avait cette fonction, et ils ont profité de cette occasion pour tester Kubernetes pour le déploiement.
Ce test s'avère concluant, mais Kubernetes présentait toutefois plusieurs challenges, notamment les clusters qui avaient des problèmes deux à trois fois par mois.

“ Kubernetes was taking up one person's time, and when he left no one had the skills to maintain the architecture. ”
Sébastien Saunier, CTO @ Le Wagon
Il a fallu un an à un employé pour apprendre Kubernetes et être capable de maintenir l'application.
Lorsque ce membre de l'équipe est parti, Sébastien s'est retrouvé seul à gérer la maintenance des applications qui avaient été migrées vers Kubernetes.
En conséquence, des problèmes techniques sont apparus quelques jours après le départ du seul membre DevOps. Cet outil complexe était maîtrisé par un seul membre de l'équipe, et son absence est devenue un problème immédiat.
C'est à ce moment que Sébastien a décidé de revenir à un PaaS pour contourner ce problème, reconnaissant une erreur de gestion en permettant un point de défaillance unique dans son équipe, et un échec à mettre l'équipe à jour sur Docker/Kubernetes.
La transition vers Scalingo et son utilisation
Suite à ce problème, Sébastien s'est tourné vers Scalingo pour héberger les applications de Le Wagon.
L'objectif était d'avoir une infrastructure stable qui ne nécessitait pas d'intervention humaine. La compatibilité de Scalingo avec la technologie open-source des Buildpacks, la gestion en ligne de commande et le tableau de bord web a permis à l'équipe technique de retrouver un niveau d'autonomie sur l'infrastructure en ayant un accès facile aux logs et à une console en production.
Avec Kubernetes, il était nécessaire de passer par le seul devops ou d'installer des outils qui n'étaient pas bien maîtrisés pour se connecter aux clusters.
Grâce à l'expérience de Scalingo, notamment le déploiement autonome depuis GitHub et l'auto-scaling, la migration depuis Kubernetes a été effectuée en moins d'un jour avec très peu d'interruption.
Gestion des conteneurs
Le Wagon héberge sept applications Rails différentes sur Scalingo, toutes ayant un rôle fondamental dans le bon fonctionnement de la plateforme.

“ I like the flexibility in all the configuration and the cost control. It saves us money! ”
Sébastien Saunier, CTO @ Le Wagon
Il aura fallu à un employé un an entier pour apprendre Kubernetes et pouvoir maintenir l'application.
Lorsque ce membre de l'équipe est parti, Sébastien s'est retrouvé seul à devoir gérer le maintien des applications qui entre temps avaient été migrées vers Kubernetes.
Résultat, des soucis techniques sont apparus quelques jours après le départ de l’unique DevOps. Cet outil complexe était maîtrisé par un seul membre de l’équipe, et son absence est devenu un problème immédiat.
C'est à ce moment que Sébastien s'est décidé à revenir sur un PaaS pour contourner ce problème, reconnaissant une erreur de management en autorisant dans son équipe un Single Point of Failure, et un échec de la montée en compétence de l’équipe sur Docker / Kubernetes..
La transition vers Scalingo et son utilisation
Suite à ce problème, Sébastien s'est tourné vers Scalingo pour héberger les applications du Wagon.
Le but était de retrouver une infrastructure stable ne nécessitant pas d’intervention humaine. La compatibilité de Scalingo avec la technologie open-source de Buildpacks, la ligne de commande et la gestion par un Dashboard web permettent à l’équipe technique de retrouver un niveau d’autonomie sur l’infrastructure en ayant un accès simple aux logs & une console en production.
Avec Kubernetes, il fallait passer par l’unique devops ou bien installer des outils mals maîtrisés pour se connecter aux clusters.
Grâce à l’expérience Scalingo, notamment l’auto-déploiement depuis GitHub et l’auto-scaling, la migration depuis Kubernetes s’est fait en moins d’une journée avec très peu d’interruption.
La gestion des conteneurs
Le Wagon héberge sept applications Rails différentes sur Scalingo, qui ont toutes un rôle fondamental pour le bon fonctionnement de la plateforme.
Pour Sébastien, la gestion minutieuse des conteneurs est l'un des principaux atouts de Scalingo.
C'est à ce niveau que la gestion plus détaillée des conteneurs devient intéressante, Sébastien explique que cela lui permet d'optimiser ses coûts en fonction de l'importance de l'application. En conséquence, il évite de dépenser plus que nécessaire pour une application nécessitant moins de ressources.
Cette fonctionnalité combinée à l'auto-scaling simplifie encore davantage la tâche, et lui permet de se concentrer sur d'autres choses, tout en étant serein sur l'optimisation des conteneurs pour l'application.
Le tableau de bord et les métriques

“ I think that your dashboard is better than Heroku's. ”
Sébastien Saunier, CTO @ Le Wagon
Un autre point que Sébastien a souligné, est la simplicité et l'efficacité du dashboard Scalingo.
Ce dashboard lui permet d'être plus performant, en accédant à l'information qu'il recherche de manière simple et rapide.
De même, l'utilisation des métriques lui permet de déboguer facilement lorsqu'une application devient plus lente.
Le suivi de certaines métriques tel que l’utilisation du CPU et de la RAM, les requêtes par minutes et le temps de réponses, sont ici accessibles directement dans le dashboard, et cela facilite les diagnostics.

Le déploiement

“ Thanks to Scalingo, we stop playing with servers and concentrate on what we do best: improving our product. ”
Sébastien Saunier, CTO @ Le Wagon
Sur les outils précédents que Le Wagon utilisaient, le déploiement était une étape qui posait quelques soucis.
La tâche était fastidieuse, et Sébastien nous a expliqué que c'était toujours un processus assez délicat que les développeurs n'aimaient pas faire.
Depuis la transition chez Scalingo, cela ne semble plus être un souci, notamment grâce aux intégrations GitHub.
Cela s'avère particulièrement plus pratique pour un fonctionnement comme celui de l'équipe du Wagon qui fait du Déploiement Continu.
Les Review apps
Les Review Apps sont des environnements temporaires construits automatiquement ou à la demande en fonction de Pull Request GitHub (ou Merge Request GitLab). Ceci permet aux utilisateurs de tester une version de leur application dans un environnement similaire au principal, sans affecter l’application de base. C’est un outil idéal pour le travail en collaboration.
Dans le cadre de l’utilisation du Wagon, les Review Apps sont activées manuellement lorsqu'il s'agit de faire des tests avec des personnes qui ne sont pas expérimentées en tech.
Particulièrement pour les tests de SEO, et pour tout ce qui est lié à des changements visuels sur le site web “www”.
La qualité du support technique
Le support s'avère être une force importante de Scalingo pour l'équipe du Wagon. Car comme nous a expliqué Sébastien, le support est toujours réactif et prêt à aider, même lorsqu'il n'y a pas de problèmes techniques

“ Our DevOps is outsourced to you, for the slightest question, we have a quick and precise answer. ”
Sébastien Saunier, CTO @ Le Wagon
Dès que l'équipe du Wagon a une question à poser, ou un problème d'ordre technique, ils peuvent contacter le support à tout moment pour avoir une aide et une expertise sur leur demande.
Pour Le Wagon, cela représente une grosse force, notamment puisque leur équipe ne possède plus de DevOps en interne, et que Scalingo leur permet de remplacer ce poste et de rester serein quant à l'hébergement et le maintien de leurs applications.
Conclusion
Le Wagon est une école qui forme des milliers d'étudiants au code, et Scalingo se montre être une partenaire de confiance.
Voici les points principaux qui ont convaincu Le Wagon de se tourner vers Scalingo
La gestion fine des conteneurs et l'optimisation des coûts
Le dashboard simple d'utilisation et les métriques
Le déploiement facile, rapide et automatisé
Les différentes fonctionnalités tel que les review apps
Le support de qualité toujours prêt a aider
Et vous qu'attendez-vous pour essayer Scalingo ? N'hésitez pas à utiliser votre essai gratuit de 30 jours ou nous contacter pour une démo.












