Comment une startup en pleine croissance a failli couler six mois après avoir adopté une MSA
(medium.com)J’ai récemment lu un article devenu viral sur un blog tech étranger, "Microservices Killed Our Startup. Monoliths Would’ve Saved Us", et son contenu était à la fois si douloureusement juste et si parlant que j’en partage ici un résumé.
Cela ressemble à une excellente « fiche d’erreurs à ne pas reproduire » sur les dangers d’adopter les dernières technologies de manière dogmatique.
1. Le point de départ : « Faisons comme Netflix, nous aussi »
- Contexte : levée seed de 2,5 M$, croissance mensuelle du chiffre d’affaires de 40 %, 50 000 utilisateurs. Une startup qui tournait très bien avec un monolithe Rails.
- Début du problème : un lead architect arrive et propose une transition vers une MSA au nom de la « scalabilité ».
- Logique : « Notre architecture actuelle est trop couplée. Regardez Netflix ou Uber. Si on veut devenir comme eux, il faut passer aux microservices. »
- Réalité : une équipe de 4 développeurs et 1 ingénieur DevOps décide d’adopter une architecture façon Netflix.
2. Six mois d’enfer (chronologie de l’adoption de la MSA)
[Mois 1 : lune de miel]
- La séparation du service de notifications est un succès. « Vous voyez ? Ça marche très bien ! » se félicite l’équipe.
- Mais les premiers signes avant-coureurs apparaissent : temps de déploiement plus longs, multiplication des dépôts, etc.
[Mois 2 à 3 : les premières fissures]
- Le service de facturation (
Billing) est séparé. Or il est lié aux services utilisateurs, stock et commandes. - Résultat : à cause de la latence réseau, le temps de réponse passe de 200 ms à 800 ms. Quand un service tombe, il entraîne des pannes en cascade sur l’ensemble du système.
[Mois 4 à 5 : le cauchemar des transactions distribuées]
- Là où une simple transaction DB suffisait dans le monolithe, l’environnement distribué impose même l’adoption du pattern Saga.
- Le stock diminue mais le paiement échoue, les rollbacks s’emmêlent... et l’incohérence des données déclenche une avalanche de tickets support.
- Ajouter une simple colonne oblige à toucher 6 services : ce qui prenait 2 heures demande désormais 3 jours.
[Mois 6 : l’effondrement de l’équipe]
- Les développeurs consacrent tout leur temps à gérer l’infrastructure au lieu de développer des fonctionnalités.
- Coût d’infrastructure : 3 000 $ → 12 000 $ (multiplié par 4).
- Départ d’un développeur clé (« Je suis venu pour construire un produit, pas pour passer mes journées à bricoler Kubernetes. »)
3. La décision : « Nous ne sommes pas Netflix »
L’architecte continue pourtant d’insister : « adoptons un Service Mesh et ajoutons plus d’outils de monitoring ». Mais l’auteur finit par exploser.
« Nous ne sommes pas Netflix ! Netflix a 500 ingénieurs, nous sommes 4 ! »
Finalement, l’architecte quitte l’entreprise et l’équipe décide de revenir au monolithe (rollback).
4. Retour au monolithe, puis renaissance
- Pendant 8 semaines, l’équipe réintègre le code dans un monolithe.
- Résultats :
- reprise de la vitesse de livraison des fonctionnalités (de 4 à 20 par mois)
- temps de réponse stabilisé à 220 ms
- baisse des coûts d’infrastructure
- et surtout, hausse du bonheur des développeurs
5. Leçons essentielles (la conclusion de l’article)
- La MSA n’est pas un outil pour résoudre un “problème technique”, mais un “problème organisationnel”.
- On l’utilise quand il y a plus de 50 développeurs qui se marchent dessus, ou quand les cycles de déploiement divergent trop fortement.
- Netflix/Google ne sont pas vos modèles.
- Eux aussi ont commencé avec un monolithe. Ils ont changé d’architecture à cause de leur échelle, pas dès le départ.
- La complexité est une taxe.
- À mesure que les services se multiplient, le coût de gestion augmente de façon composée.
- Les appels réseau ne sont pas gratuits.
- Un appel de fonction en mémoire (nanosecondes) et un appel réseau (millisecondes), ce n’est pas du tout le même ordre de grandeur.
Résumé en une phrase :
« Le monolithe n’est pas l’ennemi. Le vrai ennemi, c’est une mauvaise architecture. Pour une équipe de 4 personnes, par pitié, utilisez simplement un monolithe. »
14 commentaires
Voilà. Les fanatiques de la MSA vont maintenant débarquer.
S’il s’agit d’un service créé par 4 personnes, il n’y a sans doute aucune raison de le découper en MSA.
Les appels réseau ne sont pas gratuits : c’est effectivement vrai. Un appel de fonction et un appel d’API sont clairement deux choses différentes.
Pour faire du MSA, il faut aussi que l’organisation soit adaptée au MSA...
Je pense que le point 4 dans le résumé exprime sans doute bien l’idée principale. Et, globalement, je trouve que le contenu en lui-même parle assez juste.
« Je suis venu pour créer un produit, pas pour passer mes journées à bidouiller Kubernetes » —> C’est probablement la phrase la plus débile que j’aie jamais entendue.
Pourquoi ? Ça me semble juste, si on est dans une situation où on fait du k8s avec k8s comme finalité.
J’aime bien les commentaires de bungker, donc je clique dessus un par un, mais sur celui-ci, je n’arrive pas vraiment à être d’accord, hmm. Pourriez-vous donner quelques explications supplémentaires ?
C’est un post sur l’IA sans aucun contenu ; c’est pour ça qu’en ce moment je ne regarde presque plus Medium.
Euh... il y a quelque chose qui cloche, je trouve.
On dirait que cet article a été écrit par une IA.
Moi aussi, c’est quelque chose que je ressens souvent en ce moment..
Je me dis que beaucoup d’articles de blog sont probablement écrits à partir de l’expérience personnelle de leur auteur + avec l’aide de l’IA.
Les textes sont trop bien structurés et trop faciles à lire.
Ce que je voulais dire, c’est que ce texte fait très IA et ne cite aucune référence, donc je préférerais qu’il ne soit pas partagé.
C’est un billet publié sur Hacker News. La plupart des articles que je publie viennent de Hacker News.
https://news.ycombinator.com/item?id=46469845
Comme vous l’avez dit... je devrais effectivement ajouter la référence Hacker News.
1) Doutes sur la crédibilité du texte : ça sent le marketing / le contenu généré par IA
En bref
Citation qui démonte tout (traduite)
Verdict en une ligne
2) Critique du leadership / des architectes : le problème n’était pas la techno, mais la structure de décision
En bref
Citation qui pique (traduite)
Verdict en une ligne
3) Angle business : est-ce que le MSA a vraiment causé l’échec de la startup ?
En bref
Citation qui démonte tout (traduite)
Verdict en une ligne
4) Enseignements techniques : conseils utiles issus de l’expérience monolithe vs MSA
En bref
Citation qui pique (traduite)
Verdict en une ligne
« Commencez par un monolithe, et ne séparez en services que lorsque les frontières apparaissent naturellement. »
Bilan global de la communauté en une phrase
La plupart étaient d’accord avec l’idée “nous ne sommes pas Netflix”, mais en même temps, la suspicion était forte que ce texte lui-même vende une narration de “maladie de Netflix” — autrement dit du marketing / du contenu IA.