Lastausgleich in Operationen
1) Warum sollte das Operationsteam den Ausgleich verwalten?
Beim Lastausgleich geht es nicht nur um die Verteilung von Anfragen. Es ist eine Schicht des Risiko- und Performance-Managements: Begrenzung des Fehlerradius, vorhersehbare Latenz, Einsparungen bei der Skalierung, Isolierung von „lauten Nachbarn“, direkte Auswirkungen auf die SLO-Ausführung und die Kosten von Vorfällen.
2) Ausgleichsschichten: vom Netzwerk zum Geschäftsbetrieb
L3/L4 (IP/Port): einfach und schnell (DSR, ECMP, IPVS, LVS). Ideal für TCP/UDP-Dienste, Broker, Gates.
L7 (HTTP/gRPC/WebSocket): Routing über Pfad/Header/Metadaten; canary, A/B, Geo- und Client-aware Politik.
GSLB/GeoDNS/Anycast: Globale Verteilung nach Regionen/RoR, Berücksichtigung von Verzögerung, Nähe und Gesundheit der Regionen.
In-Service Balancing: Kunden mit Service Discovery (xDS, Consul, Eureka), Client Balancer (gRPC pick_first/round_robin), Service Mesh.
3) Verteilungsalgorithmen und wann sie anzuwenden sind
Round-Robin (RR): einfache Basisvariante mit homogenen Knoten und kurzen Abfragen.
Least Connections (LC): Besser bei unterschiedlichen Abfragedauern.
Least Request/Peak EWMA: Reduziert adaptiv die Latenz bei „langen“ Anfragen und Rauschen.
Weighted RR/LC: berücksichtigt die Leistung der Knoten oder „cost guardrails“.
Consistent Hashing (Rendezvous/Maglev): für sticky Schlüssel (Benutzer, Tisch/Raum, Warenkorb), reduziert die Umleitung beim Skalieren.
Power of Two Choices: Gute Annäherung von LC bei hoher Last mit weniger Telemetrie.
Hedged/Retry Budgeted Requests: Parallele Nachholanfragen mit einem Retrace-Budget für p99.
4) Sitzungen, Zustand und Klebrigkeit
Sticky-Sessions (Cookie/IP/ID) - wenn der Cache lokal besiedelt ist oder es einen stateful-Kontext gibt (z.B. Live-Tisch in iGaming).
Nachteile: Hotspot-Effekt, schwieriger zu evakuieren Knoten.
Die Lösung: kurze TTL-Tackings, Statusübergabe an externe Speicher (Redis, Session Store), Shared-Nothing und Event-Sourcing wo immer möglich.
5) Gesundheitschecks und Schutz vor Flapping
L7 Content Checks (assssert nach Body/Header) statt „200-wie-Erfolg“.
Kombinierte Proben: TCP + NTTR + intern '/ready 'mit verschiedenen Zeiträumen.
Debauns: n Misserfolge → Ausnahme; m Erfolg → Rückkehr in den Pool.
Outlier-Erkennung: Automatisches Ausschließen von Knoten mit hoher Fehlerrate/Latenz (Ejection).
6) Timeout-, Retray- und Backpressure-Richtlinien
Budgetorientierte Retrays: Begrenzung der Gesamtzeit des Benutzers (z. B. 800 ms SLA → retriable 2 × 200 ms + Marge).
Circuit Breakers: Begrenzen Sie gleichzeitige Anfragen/Verbindungen/Fehler.
Quotas/Rate Limits: Default „Per-Tenant/Per-IP/Per-Key“ Limits am Rand.
Server-Side-Queueing: kurze Warteschlangen oder Ausfall mit deutlicher Degradierung, um den Schwanz der Latenz nicht zu „zerstreuen“.
7) Globaler Ausgleich und Fehlertoleranz
Geo-Routing: nach Verzögerung (latenzbasiert), nach Kundenregion, nach Gesundheit.
Anycast + health-probes: Sofortige Konvergenz der Routen, wenn PoP fällt.
Failover-Hierarchie: RoR→region→oblako kalt/warm/heiß DR.
Traffic Partitioning: Produkt-/rechtliche Isolation (Länder, Zahlungsanbieter, VIP-Segmente).
8) Balancing für Streams und Echtzeit
WebSocket/SSE/gRPC-Stream: Langzeitverbindungen → Verbindungen/Knoten überwachen, Umverteilung beim Scale-Out.
Sticky nach Benutzer oder nach Raum/Tisch durch konsistentes Hashing.
Drain/PreStop Hooks: Es ist richtig, Verbindungen bei Freigabe und Auto-Scale zu vertreiben.
9) Sicherheit am Perimeter
TLS-Terminierung, HSTS, ALPN; mTLS für Ost-West.
WAF/Bot Management zum Anwendungsbalancer.
DDoS-защита: rate-limits, challenge-/proof-of-work, upstream scrubbing.
Richtlinien als Code (OPA/Kyverno/Envoy RBAC).
10) Beobachtbarkeit und SLO für Ausgleich
SLI: erfolgreiche Abfragen, Fehler/sec, p50/p95/p99 Latenz, Saturationen (CPU/conn/epoll).
Per-Backend-Metriken: Anforderungsrate, Fehlerrate, EWMA-Latenz → Eingabe in Algorithmen.
L7-Protokolle: mit Releases (Anmerkungen), Fitch-Flaggen, Kanarienvögeln korrelieren.
Allerts: durch die Burn-Rate des Fehlerbudgets und durch die Symptome des Kunden (externe Synthetik).
11) Auto-Scaling und Kosten-Effizienz
HPA/VPA/KEDA: Skalierung nach RPS, Warteschlangen, benutzerdefinierten Metriken.
Weighted-Routing nach Kosten: Günstigere Regionen/Wolken bekommen unter Normallast mehr Gewicht.
Warm Pools/Warm Up: vorgewärmte Exemplare, um den Kaltstart nicht zu „fangen“.
12) Change Management: Kanarische, Schatten, blau-grün
Canary-Routing: 1%→5%→25% mit Auto-Stop bei SLO-Degradation.
Schattenverkehr: Duplizieren von Anfragen in eine neue Version, ohne dem Kunden zu antworten (zur Validierung).
Blau-Grün: sofortiges Umschalten der VIP/Routing-Tabelle; schnelles Rollback.
13) Konfiguration und GitOps
Eine einzige Quelle der Wahrheit: Routen, Gewichte, Timeout-Richtlinien und Limits - im Repository.
Förderung der Konfiguration am Mittwoch (dev→stage→prod) mit der gleichen Pipeline.
Validierung und Konfigurationstests: Linter, Dry-Run, Verkehrskartensimulation.
14) Private Fälle (regulierte Domains)
Zahlungs-/CUS-Anbieter: parallele Kanäle, Qualitäts-/Antwortzeitumschaltung; Per-Anbieter SLO.
Multi-Jurisdiktionen: Geo-Routing, Content/Limit Policy nach Land.
VIP-Segmente: einzelne Gewichte/Kanäle, erhöhte SLOs, „Griffe“ der UX-Degradation.
15) Anti-Muster
Ein Balancer als „einziger Fehlerpunkt“.
Sticky über IP hinter NAT - „klebrige“ Cluster und Verkehrsverzerrung.
Universal RR für schwere/lange Anforderungen - p99 Tail Growth.
Retrays ohne Budget und ohne Idempotenz sind ein Sturm von Anfragen.
Health-check nur TCP - „grün“, wenn die Anwendung nicht funktioniert.
„Ewige“ Klebesitzungen ohne TTL - die Unmöglichkeit, Knoten zu evakuieren.
Configs werden von Hand regiert, ohne Revue und Promotion - Drift und Zwischenfälle.
16) Checkliste Umsetzung
- Level ausgewählt: L4/L7/GSLB, Ziele und Verantwortungsbereiche definiert.
- Der Verteilungsalgorithmus entspricht dem Lastprofil (EWMA/LC/Hash).
- Konsistentes Hashing, wo stateful-Kontext benötigt wird.
- Kombinierte Health-Checks, Outlier-Ejection, Debounce.
- Timeouts/Retrays/Limits - wie Code, mit Zeitbudgets.
- Per-Backend-Beobachtbarkeit und Kunden-Synthetik; burn-rate alert.
- Canary/blue-green + shadow traffic; schnelles Rollback.
- GitOps für Config; Dry-Run und Routentests.
- DR-Plan und Failover-Hierarchie (RoR→region→oblako).
- Isolierung von VIP/legalen Kohorten und Anbietern.
17) Beispiel für architektonischen Fluss
1. GSLB (latenzbasiert) führt den Kunden in die nächstgelegene gesunde Region.
2. Edge/L7-Balancer wendet WAF, TLS, Rate-Limits, Kanarienvogel 5% an.
3. Service Mesh verteilt auf Pods mit LC + EWMA ohne Outliers.
4. Für Real-Time-Tische - consistent Hashing durch 'table _ id', sticky TTL 10 min.
5. HPA skaliert Frontends nach RPS und Warteschlangen; Warmpool → ohne Kaltstart.
6. Beobachtbarkeit: p50/p95/p99 dashboard, error-rate, saturations, burn-rate.
7. Bei Degradation: Auto-Eject-Knoten, Reduzierung des Kanarienvogels, Wechsel zum Ersatzanbieter, Rollback-Version.
18) Ergebnis
Load Balancing ist eine operative Disziplin, die Netzwerk, Anwendung, Daten und Business SLO verbindet. Ein richtig abgestimmtes Level (L4/L7/GSLB), adäquate Algorithmen, strenge Health-Checks, Timeout- und Retrayrichtlinien, Beobachtbarkeit und GitOps-Management machen den Spagat von der „Customization Box“ zum Mechanismus für eine nachhaltige und wirtschaftliche Bereitstellung von Dienstleistungen.