Skalierung
Kurz: Skalierung bedeutet, ein System so zu erweitern, dass es mehr Last (Nutzer, Daten, Anfragen) bewältigt.
Genauer: Bei einer beliebten Webseite steigt die Zahl der Besucher. Skalierbar ist ein System, wenn man die Leistung mit überschaubarem Aufwand an den Bedarf anpassen kann, hoch wie auch wieder herunter.
Im Detail
Zwei Wege
- Vertikal (scale up): Ein stärkerer Rechner mit mehr Prozessor, RAM, schnellerem Speicher. Einfach, aber begrenzt und ein einzelner Ausfallpunkt.
- Horizontal (scale out): Mehr Rechner nebeneinander, auf die die Last verteilt wird (Load Balancing). Fast unbegrenzt, aber die Anwendung muss dafür gebaut sein, etwa ohne lokale Zustände.
Weitere Mittel
- Caching: häufige Antworten zwischenspeichern.
- Datenbank: Replikation (Lesekopien) und Sharding (Daten aufteilen).
- Asynchrone Verarbeitung: Aufgaben in Warteschlangen.
- Automatisch (Auto-Scaling): In der Cloud starten und stoppen sich Instanzen nach Last.
Grenzen
Engpässe verschieben sich: Ist der Server schnell, wird die Datenbank oder das Netz zum Flaschenhals (Bandbreite). Skalierung kostet Geld und sollte aus Messwerten begründet werden (KPI).
Siehe auch: Systemarchitektur, Redundanz, Instanz