En 2021, certains se souviennent peut-être que WeScale a lancé un coding game baptisé Abhra Shambala. Ce projet visait à engager les développeurs à travers des défis stimulants, favorisant ainsi l’apprentissage et la collaboration au sein de la communauté technologique.
Forts du succès rencontré lors de cette première édition, nous avons décidé en 2023 de franchir une nouvelle étape pour la saison 2 en concevant une plateforme plus sophistiquée. Cette initiative avait pour ambition de créer un écosystème dynamique où chaque développeur pouvait non seulement participer, mais aussi contribuer activement en élaborant ses propres épreuves intégrées à l'univers du jeu. L'approche par les conteneurs permettait de standardiser les conditions de participation, garantissant une expérience homogène pour tous les participants (et la mise en pratique des compétences utiles à la résolution des puzzles).
Bien que le projet n’ait pas eu la portée envisagée, les discussions entre collègues et les enseignements tirés des premières tentatives ont constitué les prémisses de nos premières plateformes d’outillage internes.
Confrontés à des besoins opérationnels internes, différents des usages dans des contextes hétérogènes de mission, nous avons finalement dû accepter l’idée qu’il n’y aurait pas de solution miracle (et ce n’est toujours pas le cas…). Nous avons atteint un stade où nos besoins se sont clarifiés autour de deux axes technologiques principaux :
Les contraintes que nous nous sommes fixées demeurent nos lignes directrices aujourd'hui :
Nous avons beaucoup expérimenté. Les visions différentes des deux plateformes nous amènent parfois à déplacer des composants de l’une à l’autre, voire à dupliquer certaines capacités (ah, le casse-tête de l'authentification !).
L’équipe autour d’OXP est conséquente, et propose régulièrement de nouveaux produits à tester et intégrer. De plus, nos collègues construisent actuellement des plateformes pour leurs clients et nous amènent de nouveaux contextes, donc de nouveaux sujets de réflexion.
Nous nous réunissons régulièrement pour discuter de nos expérimentations, de nos lectures et de nos convictions. Il nous arrive de nous accorder, mais plus souvent, ce sont des désaccords qui engendrent des débats constructifs et donnent lieu à de nouvelles expérimentations.
La vie du produit "Plateforme" n'est pas un long fleuve tranquille.
À l’heure actuelle, voici l’implémentation que nous utilisons au quotidien. Nous aurons l’occasion de revenir sur ses différentes composantes.
OXP s’exécute sur un cluster K8S managé par Scaleway.
Une plateforme comme OXP nécessite de la surveillance, des mises à jour, bref : de la maintenance. Cette histoire ressemble à un conte mythologique grec classique : OXP a bien engendré sa mère. Les besoins récurrents de maintenance, ainsi que la nécessité de démarrer de nouvelles instances d’OXP dans différentes versions pour faire des expériences, ont conduit à l’idée de créer une plateforme ancêtre. Cette nouvelle plateforme aura un niveau de complexité technique moins élevé qu’OXP, pour réduire son Total Cost of Ownership (TCO) propre et ainsi maximiser l'effort sur les instances OXP.
Cette réflexion nous a amené à vouloir TOC comme une plateforme :
Les réflexions et solutions posées ici sont liées à notre contexte opérationnel. Chaque organisation et chaque contexte technique trouveront des solutions adaptées à leurs besoins. Nous vous partageons ici les quelques convictions que nous avons retirées de nos sessions de conception, en espérant contribuer à inspirer les vôtres.
Adopter une approche de Platform Engineering soulève plusieurs questions d’ordre philosophique…
Une fois ces principes posés, il est temps de démarrer l’implémentation. Et c’est souvent là que le bât blesse : par où démarrer cette construction ? Mais cela fera l’objet d'un prochain article !