Leçon 02 · Scaling

Scalabilité : Grandir sans craquer

Votre application a du succès, bravo ! Mais maintenant, les serveurs fument. Deux choix s'offrent à vous : acheter une machine de guerre ou recruter une armée de petits serveurs. Bienvenue dans le duel Scale Up vs Scale Out.

1

Le Duel : Vertical vs Horizontal

Vertical Scaling (Scale Up)
L'analogie du Bodybuilder :
Pour porter plus lourd, vous envoyez votre déménageur à la salle de sport. Il revient plus fort, plus gros, capable de porter 2 frigos à la fois.
  • Simple : pas de changement de code.
  • Limité : il y a une limite physique (CPU/RAM max).
  • Cher : le matériel haut de gamme coûte une fortune.
Horizontal Scaling (Scale Out)
L'analogie de l'Armée des Clones :
Au lieu d'entraîner un seul déménageur, vous en embauchez 10 normaux. Ensemble, ils vident la maison en 5 minutes.
  • Illimité : ajoutez autant de serveurs que nécessaire.
  • Résilient : si un serveur meurt, les autres sont là.
  • Complexe : nécessite du Load Balancing et de la gestion d'état.
2

Visualisation

Diagramme de scalabilité verticale vs horizontale
Diagramme illustrant la scalabilité verticale (gauche) et horizontale (droite).
3

Tableau Comparatif

CritèreVertical (Scale Up)Horizontal (Scale Out)
CoûtExponentiel (Matériel spécialisé)Linéaire (Matériel standard)
ComplexitéFaible (Même architecture)Élevée (Load Balancer, Synchro)
Point de panneUnique (SPOF)Redondant
LimitePlafond matériel (Hardware limit)Quasi illimité
4

L'Histoire : De 1 à 1 Million

Phase 1 : Le Garage (1-100 users)

Tout tourne sur ton vieux laptop ou un petit VPS à 5€.
Architecture : 1 Serveur Web + DB (Monolithe).

Phase 2 : Le Succès (10k users)

Le site ralentit. Tu achètes un serveur plus gros (plus de RAM, meilleur CPU).
Action : Vertical Scaling. Ça tient... pour l'instant.

Phase 3 : La Viralité (1M+ users)

Le plus gros serveur du monde ne suffit plus. Tu achètes 10 petits serveurs et tu mets un "bouchon" (Load Balancer) devant.
Action : Horizontal Scaling. Bienvenue chez les grands.

5

Les Pièges Classiques

Sticky Sessions

Si tu stockes la session utilisateur dans la RAM du serveur 1, et que la prochaine requête arrive sur le serveur 2... l'utilisateur est déconnecté !
Solution : Redis (Store de session externe).

Le Coût Caché

Scaler horizontalement c'est cool, mais gérer 100 serveurs coûte cher en maintenance (DevOps).
Solution : Serverless ou Managed Services (AWS, Vercel) au début.

6

En Entretien (Le "System Design Interview")

Ce qu'il faut dire

Ne dites jamais "On va juste ajouter des serveurs". Montrez que vous comprenez les compromis.

Le Réflexe :"Pour commencer, le Vertical Scaling est souvent suffisant et plus simple à gérer. C'est une bonne première étape."
L'Évolution :"Dès qu'on atteint les limites ou qu'on a besoin de haute disponibilité (HA), on passe au Horizontal Scaling avec un Load Balancer."
Le Piège :"Attention aux bases de données ! Scaler une DB horizontalement (Sharding) est beaucoup plus dur que scaler un serveur web (Stateless)."
7

Flash Quiz

Auto-évaluation
8

À toi de jouer

Mission : Transition vers l'Horizontal

Dessine une architecture qui passe d'un serveur unique (Monolithe) à une architecture scalée horizontalement.
Éléments à inclure : Load Balancer, 3 Serveurs Web, 1 Base de Données (pour l'instant unique).

9

Pour les curieux (Bonus)

La fin de la Loi de Moore ?
Pendant longtemps, on pouvait compter sur le fait que les processeurs doublaient de puissance tous les 2 ans (Loi de Moore). Aujourd'hui, cette progression ralentit à cause des limites physiques. C'est pourquoi le Scale Out est devenu la norme chez les géants comme Google ou Facebook : on ne peut plus fabriquer de processeur assez puissant pour tout gérer seul.
Scalabilité vs Élasticité
Nuance importante !
Scalabilité : La capacité du système à grandir pour gérer plus de trafic.
Élasticité : La capacité à grandir ET rétrécir automatiquement (Auto-scaling). Utile dans le Cloud pour payer moins cher la nuit quand il y a moins de monde.