Skalierung

Aus Zweites Gehirn, dem persönlichen Wiki
Skalierung
TypKonzept
QuellenQuelle - Effektive Softwarearchitekturen
Erstellt2026-09-27
Aktualisiert2026-09-27
Tagssoftwarearchitektur, skalierbarkeit, scale-up, scale-out, elastizität, cloud

Die Fähigkeit eines Systems, mit wachsenden Datenmengen, Anfragen oder Transaktionen Schritt zu halten. Man kann eine Maschine aufrüsten (Scale-up) oder weitere Maschinen hinzufügen (Scale-out), entweder nach Schichten getrennt (vertikal) oder als gleichartige Kopien nebeneinander (horizontal). Die Cloud macht Elastizität bezahlbar.

Begriffe

Abschnitt von Phillip Ghadir (Quelle - Effektive Softwarearchitekturen, S. 298–303):

  • Skalierbarkeit: Ein System lässt sich an veränderte Datenmengen, Nutzeranfragen oder Transaktionen pro Zeit anpassen.
  • Lineare Skalierbarkeit: mit n-fachem Aufwand die n-fache Kapazität.
  • Hochskalieren bei steigendem, Herunterskalieren bei sinkendem Bedarf, was Kosten spart.
  • Elastizität: schnell hoch- und herunterskalieren. Früher musste man die Kapazität für die Hochsaison das ganze Jahr vorhalten; heute bucht man in der Cloud in Minuten dazu (S. 299).

Strategien

Strategie Idee Beispiel
Scale-up eine Maschine aufrüsten: CPU, RAM, Platten ein Engpass, der nur in einem Thread läuft, braucht die schnellste CPU
Vertikaler Scale-out das System nach Schichten auf mehrere Knoten verteilen Frontend auf Netzwerk-I/O optimiert, Geschäftslogik auf CPU, Backend auf Platten-I/O
Horizontaler Scale-out gleichartige Knoten nebeneinander, Lastverteilung z. B. per Round Robin Content Delivery Networks

Die Tabelle folgt dem Buch (S. 299–301). Meist ist ein Strategiemix sinnvoll. Vertikales Verteilen erhöht die Latenz, kann sich aber lohnen. Horizontal skaliert man fast grenzenlos, wenn Anfragen keinen gemeinsamen Zustand brauchen. Dafür steigt der Aufwand für die Überwachung.

Daumenregeln

  • Leistungsfähigere Hardware zu kaufen ist oft sehr kosteneffizient (S. 301).
  • Nach Amdahls Gesetz begrenzen die Teile, die sich nicht parallelisieren lassen, den Gewinn durch Parallelisierung.
  • John Gall: „Ein System, das durch einfaches Vergrössern eines kleineren funktionierenden Systems entsteht, verhält sich überhaupt nicht wie das kleinere“ (S. 302).
  • Weitere Stellschrauben: CPU, GPU, RAID, Speicherbus, geringere Bandbreite im Netz.
Einordnung (Claude)

Horizontales Skalieren ist genau das, was Kubernetes mit Replikas und automatischer Skalierung macht. Deshalb sollen Microservices möglichst zustandslos sein (Container-Orchestrierung).

Verwandt