Horizontal vs Vertical Scaling

DevOps 🟡 Mid

Définition

Vertical = plus de CPU/RAM sur une machine. Horizontal = plus de machines. Le horizontal est quasi illimité mais nécessite des apps stateless.

Analogie

Vertical = acheter un plus gros camion. Horizontal = acheter plus de camions.

Exemple de code

# Vertical : upgrader l'instance
aws ec2 modify-instance --type m5.2xlarge

# Horizontal : ajouter des instances
kubectl scale deployment api --replicas=10

Cas d'usage

Horizontal scaling pour les apps stateless derrière un load balancer.

Anti-pattern

State en mémoire locale : impossible de scaler horizontalement.

Termes liés

#devops#scaling#interview

En entretien

  1. Explique-moi la différence entre scaling horizontal et vertical.

    Le vertical consiste à ajouter plus de CPU/RAM sur une machine, l'horizontal à ajouter plus de machines ; c'est comme acheter un plus gros camion contre acheter plus de camions. L'horizontal est quasi illimité mais nécessite des applications stateless.

  2. Quand privilégier le scaling horizontal ?

    Pour les applications stateless placées derrière un load balancer, par exemple avec kubectl scale deployment api --replicas=10. Le vertical, lui, se fait plutôt en changeant le type d'instance, comme aws ec2 modify-instance --type m5.2xlarge.

  3. Quel anti-pattern empêche de scaler horizontalement ?

    Garder du state en mémoire locale sur chaque instance : dans ce cas, impossible de répartir les requêtes entre plusieurs machines sans perdre des données. Il faut rendre l'application stateless pour scaler horizontalement.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre