Chapitre 1 · Leçon 1
Choisir la bonne stratégie selon la croissance
Section 1
Step 1
Scaling vertical (scale up) : augmenter les ressources d'une seule machine. Scaling horizontal (scale out) : ajouter des machines identiques. Les deux approches ont des limites et des cas d'usage différents.
snippet.typescript
1/*
2 * SCALING VERTICAL (Scale Up)
3 * ───────────────────────────────────────────────────────────────
4 * Serveur 1 : 4 CPU, 16 GB RAM → 100 req/s
5 * ↓ Upgrade
6 * Serveur 1 : 32 CPU, 256 GB RAM → 800 req/s
7 *
8 * ✅ Avantages :
9 * - Simple : pas de changement d'architecture
10 * - Pas de problème de cohérence de données
11 * - Adapté aux bases de données (moins de complexité)
12 *
13 * ❌ Limites :
14 * - Coût exponentiellement croissant
15 * - Single point of failure (1 machine = 1 crash = tout down)
16 * - Limite physique (max 128 CPU dans un serveur)
17 * - Downtime pendant l'upgrade
18 *
19 *
20 * SCALING HORIZONTAL (Scale Out)
21 * ───────────────────────────────────────────────────────────────
22 * Serveur 1 : 4 CPU, 16 GB RAM → 100 req/s
23 * ↓ x10 instances
24 * 10 × Serveur : 4 CPU, 16 GB RAM → 1000 req/s
25 *
26 * ✅ Avantages :
27 * - Coût linéaire (10 petites machines < 1 grosse)
28 * - Haute disponibilité (si une tombe, les autres continuent)
29 * - Scalabilité quasi-illimitée
30 * - Déploiement sans downtime (rolling updates)
31 *
32 * ❌ Challenges :
33 * - Nécessite des services stateless
34 * - Partage de sessions (pas de mémoire locale)
35 * - Cohérence des données plus complexe
36 * - Load balancer nécessaire
37 *
38 * RÈGLE PRATIQUE :
39 * - 0 → 100k users : scaling vertical + optimisation
40 * - 100k → 1M users : scaling horizontal des services stateless
41 * - 1M+ users : architecture distribuée complète
42 */Step 2
Un service stateless ne stocke aucune donnée en mémoire entre les requêtes. Chaque requête contient toutes les informations nécessaires. C'est la condition indispensable au scaling horizontal.
Section 2
Step 3
Le load balancer distribue les requêtes entre plusieurs instances. L'algorithme de distribution impacte la performance et la cohérence.