Comment Le Wagon apprend à coder à des milliers d'étudiants avec Scalingo

Scalingo

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.

Deux étudiants en train de coder

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 mobilisait une personne à temps complet, et à son départ personne n’avait les compétences pour maintenir cette architecture. ”
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.

“ J'aime cette flexibilité dans toute la configuration et cette maîtrise des coûts. Grâce à ça on fait des économies ! ”
Sébastien Saunier, CTO @ Le Wagon

Pour Sébastien, la gestion fine des conteneurs est l’un des atouts principaux de Scalingo.

C'est à ce niveau que la gestion plus fine des conteneurs devient intéressante, Sébastien nous explique que cela lui permet d'optimiser ses coûts selon l'importance de l'application. Par conséquent, il évite ainsi de dépenser plus que nécessaire pour une application qui requiert moins de ressources.

Cette fonctionnalité combinée à l'autoscaling rend la tâche encore plus simple, et permet de se concentrer sur autre chose, tout en étant serein quant à l'optimisation des conteneurs pour l'application.

Le dashboard et les métriques

“ Je trouve que votre dashboard est meilleur que celui d’Heroku. ”
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.

La page métriques sur le dashboard Scalingo

Le déploiement

“ Grâce à Scalingo, on arrête de jouer avec des serveurs et on se concentre sur ce qu’on sait faire le mieux : améliorer notre produit. ”
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

“ Notre DevOps est externalisé chez vous, pour la moindre question, on a une réponse rapide et précise. ”
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.

Partager l'histoire

Essayez gratuitement Scalingo

30 jours d'essai gratuit / Pas de CB nécessaire / Hébergé en France