Auto Scaling und SLA Balance
Auto Scaling und SLA Balance
1) Ziele und Grundsätze
Das Ziel des Auto-Scaling ist es, die SLO (Latenz/Verfügbarkeit) bei minimalen Kosten zu halten.
SLA↔SLO↔SLA Cost: Verfolgen Sie nicht die „unendliche“ Skala - gehen Sie innerhalb des Budgets von Fehlern und Geldgrenzen.
Offenes Lastmodell: Eingehende Anfragen bilden den Intensitätsfluss „λ“; Das System muss eine durchschnittliche Parallelität von „N ≈ λ × W“ (Little's Law) bieten, wobei „W“ die durchschnittliche Dienstzeit ist.
2) Welche Metriken zu Triggern passen
Technisch:- CPU/RAM/IO (Proxy für Sättigung).
- Wettbewerb (in-flight) und Pool warten.
- p95/p99 Anwendungslatenz (spiegelt tatsächlich SLO wider).
- RPS/Ankunftsrate (Antragsgeschwindigkeit).
- Warteschlangen: Tiefe, Alter der Nachrichten, Verarbeitungsgeschwindigkeit.
- Der Anteil der erfolgreichen Transaktionen ≤ T sec (Einlagen, Check-out).
- Zeitpunkt der Bestätigung der Transaktionen.
Empfehlung: 2-3 Signale kombinieren: z.B. latency + pools für Services und queue depth + age für Worker.
3) Reaktive vs Predictive Scale
Reaktiv (Feedback): HPA/ASGs vergrößern/verkleinern Nachbildungen nach Faktum. Einfach, aber es gibt einen Lag.
Vorausschauend (feed-forward): Kalender/vergangene Telemetrie/Marktevents. Inklusive Pre-Warm: N Instances Δ t zum Peak anheben.
In der Praxis: Hybrid - baseline (Minimum), prädiktiver Boost vor Ereignissen, reaktive Triebe.
4) Scale-Richtlinien und Stabilitätseinstellungen
Zielverfolgung: Halten Sie die Metrik in der Nähe des Ziels (z. B. CPU 60%).
Step scaling: Stufen bei Überschreitungen (aggressiv auf Verwachsungen).
Stabilisierungsfenster/Cooldown: Flapping glätten (z.B. 60-180 Sek.).
Min/Max: untere und obere Grenze; max - innerhalb der Grenzen des OBD/Provider.
5) Koordination der Ebenen (architektonische Kaskade)
1. Perimeter/API-Gateway - elastisch, aber mit Grenzen und Backpress.
2. Dienstleistungen - HPA durch Latenz/RPS/Pool warten.
3. Warteschlangen/Worker - KEDA/ASG nach Nachrichtentiefe/Alter.
4. DB/Cache - Scale-up sorgfältig (Repliken/Sharding), im Voraus.
Die Regel: Vergrößern Sie die App nicht schneller, als die „Daten“ halten.
6) Warteschlangen und Little's Law (wie man Worker zählt)
Für eine Warteschlange mit dem Eingang 'λ' (msg/s) und der durchschnittlichen Bearbeitungszeit'W'(s):- Die gewünschte Parallelität:'N _ min ≈ λ × W'.
- Mit einer Marge von Peaks/Tails:'N ≈ λ × W × (1. 2–1. 5)`.