Skaling automatique et équilibre SLA
Skaling automatique et équilibre SLA
1) Objectifs et principes
L'objectif du skating automatique est de maintenir le SLO (latence/disponibilité) à un coût minimum.
SLA↔SLO↔SLA Cost : Ne pas poursuivre une échelle « infinie » - skater dans le budget des erreurs et des limites monétaires.
Modèle de charge ouvert : les requêtes arrivant forment un flux d'intensité 'λ' ; le système doit fournir un parallélisme moyen « N' ≈ λ × W » (loi de Little), où « W » est le temps de service moyen.
2) Quelles métriques conviennent aux déclencheurs
Technique :- CPU/RAM/IO (proxy pour saturation).
- Concurrence (in-flight) et pool wait.
- p95/p99 application latency (reflète réellement le SLO).
- Taux RPS/arrival (taux de demande).
- Files d'attente : profondeur, âge des messages, vitesse de traitement.
- Proportion de transactions réussies ≤ T secondes (dépôts, chèques).
- Heure de confirmation des opérations.
Recommandation : combiner 2-3 signaux : par exemple, latency + pools pour les services et queue depth + age pour les workers.
3) Jet vs skale prédictif
Réactif (feedback) : HPA/ASG augmente/réduit les répliques en fait. C'est simple, mais il y a une larme.
Prédictif (feed-forward) : calendrier/télémétrie passée/market-ivens. Comprend le pré-warm : soulever N instances jusqu'à Δ t au sommet.
En pratique : hybride - baseline (minimum), buste prédictif avant les événements, réactif.
4) Politiques de skale et paramètres de stabilité
Target tracking : garder la métrique autour de la cible (par exemple, CPU 60 %).
Step scaling : étapes en cas de dépassement (agressif sur les épices).
Fenêtre de stabilisation/cooldown : lisser le flapping (par exemple, 60-180 secondes).
Min/Max : limites inférieure et supérieure ; max - dans le cadre des limites OBD/fournisseur.
5) Coordination des niveaux (cascade architecturale)
1. Périmètre/passerelle API - élastique, mais avec limites et backpressure.
2. Services - HPA par latency/RPS/pool wait.
3. Files d'attente/workers - KEDA/ASG par profondeur/âge des messages.
4. Base de données/cache - mise à l'échelle prudente (répliques/chardonnages), à l'avance.
Règle : n'agrandissez pas l'application plus rapidement que les « données ».
6) Les files d'attente et la loi de Little (comment compter les workers)
Pour une file d'attente avec entrée 'λ' (msg/s) et temps de traitement moyen 'W' (s) :- Le parallélisme souhaité est « N _ min ≈ λ × W ».
- Avec une réserve par pic/queue : 'N ≈ λ × W × (1. 2–1. 5)`.