3 raisons de construire des systèmes monolithiques
Vous développez un nouveau produit et envisagez de mettre en place une architecture "Microservices" ?
Malgré des avantages indéniables, elle pourrait ne pas être adapté, peut-être devriez-vous plutôt privilégier une architecture monolithique... 🤔
Recommander une architecture monolithique de nos jours risque de m'attirer les foudres de certains mais comme souvent, il n'existe pas de solution miracle, c'est une question de contexte et de compromis.
Pour vous aider dans votre réflexion
➤ Une architecture monolithique peut aider à apprivoiser les inconnues
Lorsque vous débutez, vous n'avez pas encore de système à décomposer et dans un contexte agile, il est peu probable que vous disposiez, dès le départ, de l'ensemble des exigences.
Décomposer des exigences qu'on ne connait pas encore en un ensemble de services faiblement couplés peut être un véritable challenge.
Au fur et à mesure que vous étofferez le logiciel, le brouillard se dissipera, il sera beaucoup plus facile d'identifier les services composant le système.
Cette approche incrémentale sera plus efficace que d'essayer de tout mettre en place avant de savoir quoi que ce soit.
➤ Une architecture "microservices" est plus compliquée
Même lorsque le système est bien défini, décomposer un système en microservices n'est pas toujours simple.
Le découpage est souvent une question de compromis et l'équipe a besoin des compétences pour prendre les bonnes décisions.
Si l'équipe manque d'expérience, il sera nécessaire d'investir dans la formation et/ou de compléter l'équipe avec des profils disposant des compétences nécessaires. Cela peut prendre du temps, d'autant plus que peu d'entreprises peuvent se permettre de suspendre le développement le temps que l'équipe se mette à niveau.
➤ Une architecture monolithique peut être votre chemin le plus rapide vers le marché
Pour de nombreuses entreprises, en particulier les startups travaillant avec un financement limité, la vente est primordiale pour survivre. Les microservices s'accompagne d'un coût initial.
Une bonne architecture microservices n'est ni facile, ni rapide, ni accidentelle. Il existe aujourd'hui de nombreux exemples d'entreprise s'appuyant sur des architectures "microservices" matures mais il est fort probable qu'elles aient commencé par des applications monolithiques qui ont progressivement évolué.
❓ Dans quel cas commencer par une architecture "microservices" ?
- Votre application est déjà assez bien définie
- Votre équipe maîtrise les microservices
- Votre entreprise a le temps et l'argent
👉 Soyez pragmatiques, les choix technologiques doivent servir les besoins de l'entreprise. Ne laissez pas la recherche de la "perfection" technique et le "hype" entraver la réussite de votre entreprise.
(⚠️ce qui ne signifie pas qu'il faille négliger la qualité sous peine d'être également handicapé par son absence 😅, rappelez-vous, c'est avant tout une question de compromis 😉)
Sources
3 Reasons to Build Monolithic Systems
https://medium.com/design-and-tech-co/3-reasons-to-build-monolithic-systems-6f06be80cdfa