Leçon 06 · Architecture

Monolithe vs Microservices : L'Art du Découpage

C'est le débat le plus enflammé de la décennie. Faut-il construire une seule application géante ou une armée de petits services autonomes ? La réponse n'est pas technique, elle est organisationnelle.

1

Les Trois Mousquetaires

Le Monolithe

Le Couteau Suisse. Tout est dans un seul bloc de code (Auth, Paiement, Produits). Une seule base de données.

  • Simple à déployer.
  • Difficile à maintenir quand ça grossit.
Microservices

La Boîte à Outils. Des dizaines de petits programmes indépendants qui se parlent via réseau (HTTP/gRPC).

  • Scalabilité précise.
  • Enfer opérationnel (DevOps).
Monolithe Modulaire

Le Juste Milieu. Un seul code déployable, mais avec des dossiers strictement séparés à l'intérieur.

  • Le meilleur des deux mondes pour commencer.
2

Visualisation

Monolithu vs Microservices diagramme architecturale
🧊 vs 🎲Diagramme Architecture
À gauche : Une seule DB partagée (Couplage fort). À droite : Chaque service a sa propre DB (Indépendance).
3

Tableau de Vérité

CritèreMonolitheMicroservices
DéploiementSimple (1 binaire)Complexe (Orchestration requise)
DéveloppementRapide au début, lent à la finLent au début, rapide à l'échelle
Base de DonnéesPartagée (Jointures faciles)Séparée (Jointures impossibles)
PanneTout peut crasher (SPOF)Isolée (Le reste survit)
ÉquipesTout le monde touche à toutÉquipes autonomes (Squads)
4

Quand choisir quoi ? (Le Guide de Survie)

Choisir le Monolithe si...

  • Vous êtes une Startup ou en phase MVP.
  • Votre équipe est petite (< 10 développeurs).
  • Le domaine métier est flou et change souvent.
  • Vous n'avez pas d'expert DevOps dédié.

Passer aux Microservices si...

  • Vous avez besoin de scaler des parties spécifiques (ex: Encodage Vidéo) indépendamment du reste.
  • Vous avez plusieurs équipes (> 30 développeurs).
  • Vous avez besoin de technologies différentes (Python pour l'IA, Node pour l'API).
5

En Entretien (System Design)

La Réponse Parfaite

"Ne proposez jamais des Microservices dès le jour 1, sauf si on vous demande explicitement de concevoir Uber ou Netflix."

L'Approche :"Pour commencer, je choisirais une architecture Monolithique pour la simplicité de déploiement et la cohérence des données. Cependant, je vais structurer le code de manière modulaire (Modular Monolith) pour faciliter l'extraction future de services (ex: Service de Paiement) si la charge augmente."
6

Flash Quiz

Auto-évaluation
7

À toi de jouer : Le Chirurgien

Mission : Extraire un service

Vous avez un site E-commerce monolithique.
Le module "Génération de Facture PDF" consomme 80% du CPU et ralentit tout le site.

Ta mission : Dessine l'architecture après avoir extrait ce module dans son propre Microservice. N'oublie pas la communication (Queue ou HTTP ?) et le stockage.

8

Pour les curieux (Bonus)

Le Strangler Fig Pattern
Comment migrer un vieux monolithe vers des microservices ? On ne réécrit pas tout !
Comme un Figuier Étrangleur (plante tropicale), on construit les nouveaux services autour du vieux système, en interceptant petit à petit les requêtes, jusqu'à ce que le monolithe ne serve plus à rien et puisse être éteint.
Service-Oriented Architecture (SOA)
L'ancêtre des Microservices (années 2000). La différence ? SOA visait la réutilisation de services d'entreprise via un bus central (ESB), souvent lourd et complexe. Les Microservices visent le découplage et la vitesse ("Smart endpoints and dumb pipes").