Je partage l'avis de l'auteur !
Les microservices apportent plus de problèmes que de solutions aux problèmes qu'ils traitent. Ils augmentent d'un ou deux ordres de grandeurs la quantité de compétences à détenir pour exécuter une même tâche, ralentissent considérablement les développements, réduisent la robustesse applicative et impliquent des compétences folles en architecture réseau pour se maintenir.
Je suis intervenue sur un projet qui aurait clairement dû être un batch monolithique mais qui fût à la place découpé en trois microservices.
Résultat :
-
Des lenteurs incroyables car de simples appels de fonctions ont été remplacées par des appels réseau.
-
Lancer une des applications en local impliquait :
- De setuper le Postgre d'une appli A, puis de migrer son schéma à l'aide de liquibase.
- Idem pour l'application B.
- Idem pour l'application C qu'il fallait coder.
- Puis setuper un Kafka, créer et paramètrer une dizaines de topics, puis y injecter des messages.
- Lancer l'appli A
- Lancer l'appli B.
- En enfin, on pouvait lancer C pour la vérifier/debuger en local.
Moralité :
-
1 an de développement planifié, déja 1 an de retard et une livraison replanifiée au bout de 3 ans avec 70% des fonctionnalités initialement prévues.
-
Le projet qui aurait dû coûter 500 k€ aura coûté 5 millions.
-
Des problèmes de performances qui ont requis l'intervention d'experts de haut vol et une réécriture partielle des grosses briques.
Les microservices, c'est comme les antibiotiques, c'est pas automatique !