Autoscaling
Dynamische, automatische Anpassung von Instanzen und Ressourcen an Lasten zur Verbesserung von Verfügbarkeit und Kosten.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypArchitektur
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Oszillation durch aggressive Skalierungsraten und fehlende Cooldowns.
- Kostenexplosion bei fehlerhaften Regeln oder Lastvorhersage.
- Kaskadierende Fehler, wenn abhängige Systeme nicht gleichzeitig skaliert werden.
- Konservative Default‑Grenzen und iterative Anpassung statt aggressiver Regeln.
- Mehrere Metriken kombinieren (z. B. CPU + Latenz) statt nur einer Kennzahl.
- Cooldowns und Hysteresis verwenden, um Oszillationen zu vermeiden.
I/O & Ressourcen
- Metriken (CPU, Memory, custom metrics, Queue‑Depth)
- Skalierungsregeln und Policies (Min/Max, Targets, Cooldown)
- Monitoring, Alerting und Observability‑Daten
- Automatisch veränderte Kapazität (Skalierung hoch/runter)
- Messbare Auswirkungen auf Latenz und Durchsatz
- Auditierbare Skalierungsereignisse und Logs
Beschreibung
Autoscaling passt die Ressourcen- und Instanzanzahl einer Anwendung automatisch an reale Lastbedingungen an. Es optimiert Verfügbarkeit und Kosten, indem Kapazität dynamisch skaliert wird — in der Cloud, auf Container-Orchestratoren oder in hybriden Umgebungen. Entscheidungskriterien und Metriken steuern Regeln und Grenzwerte.
✔Vorteile
- Automatische Anpassung reduziert manuelle Eingriffe und Betriebsaufwand.
- Kosteneffizienz durch bedarfsorientierte Ressourcenbereitstellung.
- Verbesserte Verfügbarkeit und Reaktionsfähigkeit bei Lastspitzen.
✖Limitationen
- Skalierung reagiert meist verzögert; kurzfristige Peaks können unbehandelt bleiben.
- Falsche Metriken oder Thresholds können zu Fehlverhalten führen.
- Nicht alle Komponenten sind ohne weiteres horizontal skalierbar (Stateful Services).
Trade-offs
Metriken
- Replikate/Instanzen
Anzahl laufender Instanzen oder Pods zur Kapazitätsmessung.
- CPU-/Speicherauslastung
Prozentuale Ressourcenausschöpfung zur Auslösung von Skalierungsaktionen.
- Anfrage‑Rate / Latenz
Durchsatz und Reaktionszeit als Indikatoren für notwendige Skalierung.
Beispiele & Implementierungen
Kubernetes Horizontal Pod Autoscaler
Weit verbreitete Implementierung von Pod-basiertem Autoscaling anhand von CPU- und benutzerdefinierten Metriken.
AWS Auto Scaling Groups
Cloud‑Anbieter‑Mechanismus für automatische Skalierung von EC2-Instanzen nach Policies und Zielmetriken.
Serverless Concurrency/Provisioned Scaling
Beispiele aus Functions-as-a-Service (z. B. Provisioned Concurrency) zur Steuerung von Startzeit und Durchsatz.
Implementierungsschritte
Metriken und Observability einrichten; relevante Metriken validieren.
Skalierungsregeln mit Min/Max- und Cooldown-Parametern definieren.
Automatisches Scaling in Stufen testen (Staging → Canary → Prod) und überwachen.
⚠️ Technische Schulden & Engpässe
Tech Debt
- Manuelles Tuning von Thresholds ohne Automatisierung oder Tests.
- Fehlende Kapazitätsmodelle für Template‑Berechtigungen und Quotas.
- Unvollständige Telemetrie, die Ursachen für Skalierungsentscheidungen verschleiert.
Bekannte Engpässe
Beispiele für Missbrauch
- Autoscaling für stateful Datenbanken ohne geeignete Replikationsstrategie.
- Aggressive Skalierungsregeln, die Kosten unkontrolliert erhöhen.
- Skalierung nur hoch, ohne automatisches Runterskalieren bei sinkender Last.
Typische Fallen
- Ignorieren von Abhängigkeiten, die Flaschenhälse bleiben (DB, Netzwerk).
- Fehlende Tests für kombinierte Lastszenarien führen zu Überraschungen in Prod.
- Blindes Vertrauen in Cloud‑Defaults ohne Anpassung an eigene Workloads.
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Abhängigkeiten, die nicht horizontal skaliert werden können (z. B. monolithische DB).
- • Provider‑Limits oder Quoten in der Cloud.
- • Netzwerk- oder Storage‑Durchsatzbegrenzungen.