Lors du Black Friday de l’année dernière, Shopify a réussi à traiter 1,27 million de requêtes par seconde. Et vous pensez probablement qu’une telle quantité de requêtes ne peut être gérée que par certains microservices sophistiqués. La vérité est un peu différente.
Shopify utilise une approche monolithique modulaire, conservant tout son code dans une seule base de code mais modulaire. L’architecture monolithique est la plus facile à comprendre et à mettre en œuvre. Étant donné que la conception monolithique est simple à construire et permet aux équipes de se déplacer rapidement au début, elle peut mener une application loin pour mettre son produit devant les clients plus tôt.
Il existe de nombreux avantages à centraliser le déploiement de votre application et la maintenance de la base de code. Toutes les fonctionnalités seront accessibles dans un dossier ; vous n’avez besoin de gérer qu’un seul référentiel. De plus, cela implique qu’un pipeline de test et de déploiement doit être maintenu, ce qui peut économiser beaucoup de travail. La possibilité d’appeler différents composants plutôt que de s’appuyer sur des API de services Web est l’un des avantages les plus séduisants de l’architecture monolithique par rapport à plusieurs autres services.
Shopify a implémenté une version du monolithe modulaire avec composants dans Ruby on Rails. Ils organisent une base de code autour de concepts réels (comme les commandes, l’expédition, l’inventaire et la facturation), ce qui facilite l’étiquetage du code et des personnes qui le comprennent. Chaque composant est une mini application Rails (un module) qui isole les domaines métier les uns des autres. Chaque composant revendique la propriété exclusive des données associées et définit une interface simple et dédiée avec des limites de domaine communiquées via une API publique.
Références :
- https://shopify.engineering/deconstructing-monolith-designing-software-maximizes-developer-productivity
- https://twitter.com/ShopifyEng/status/1597983918900510720
Source : https://newsletter.techworld-with-milan.com/p/stack-overflow-architecture