🇫🇷-version below / version 🇫🇷 plus loin
This is the slide deck of a talk by Alexis "Horgix" Chotard and Laurentiu Capatina presented at the DevFest Nantes conference in October 2024 in Nantes about the feedback on how PayFit move away from a monolithic hell of a self-hosted MongoDB cluster to managed alternatives. Pitch below.
March 15, 2023, 6:59 AM: a MongoDB cluster collapses. Tough luck, this cluster contains 95% of user data and is absolutely vital for even minimal operation of our application. To worsen matters, this cluster is 7 years behind on versions, is not scalable, and barely observable. Furthermore, even the data model would quickly raise eyebrows: applications communicating with each other by reading/writing in the same MongoDB documents, documents reaching the maximum limit of 16MiB with hundreds of levels of nesting, and so forth. The incident will last several days and result in the loss of many users. We've seen better scenarios.
Let's explore how PayFit found itself in this hellish situation and, more importantly, how we managed to overcome it!
On the agenda: technical stabilization, untangling data models, breaking apart a Single Point of Failure (SPOF) into several elements with a more restricted blast radius, transitioning to managed services, improving internal accesses, regaining control over risky operations, and ultimately, approaching a technical migration when it impacts all development teams.
---
🇫🇷
Ceci est le deck de slides du talk présenté par Alexis "Horgix" Chotard et Laurentiu Capatina à la conférence DevFest Nantes en octobre 2024 à Nantes, et partageant le retour d'expérience sur la manière dont PayFit s'y est pris pour sortir de l'enfer monolithique qu'était devenu un cluster MongoDB self-hosted, au profit d'alternatives managées. Pitch ci-dessous.
15 mars 2023, 6h59 : un cluster MongoDB s'écroule. Pas de bol, celui-ci contient 95% des données utilisateur, et est absolument vital à un fonctionnement même minimal de notre application. Facteur aggravant : celui-ci a 7 ans de retard de versions, n'est pas scalable, et à peine observable. Enfin, même le modèle de données ferait rapidement lever les sourcils : des applications qui communiquent entre elles via lecture/écriture dans les mêmes documents MongoDB, des documents qui atteignent la limitation maximum de 16MiB avec des centaines de niveaux d'imbrication, etc. L'incident durera plusieurs jours et résultera en la perte de nombreux utilisateurs. On a vu meilleur portrait.
Voyons comment PayFit s'est retrouvé dans cette situation infernale, et surtout comment nous nous y sommes pris pour en sortir !
Au programme : stabilisation technique, détricotage de modèle de données, éclatement d'un SPOF en plusieurs éléments au blast radius plus restreint, transition vers des services managés, amélioration des accès internes, reprise de maîtrise sur les opérations risquées, et finalement, approche d'une migration technique quand celle-ci impacte l'intégralité des équipes de développement.