| Typ | Konzept |
|---|---|
| Quellen | Quelle - Effektive Softwarearchitekturen |
| Erstellt | 2026-09-27 |
| Aktualisiert | 2026-09-27 |
| Tags | softwarearchitektur, 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.
Horizontales Skalieren ist genau das, was Kubernetes mit Replikas und automatischer Skalierung macht. Deshalb sollen Microservices möglichst zustandslos sein (Container-Orchestrierung).
Verwandt
- Softwarequalität – Effizienz als Qualitätsmerkmal
- Microservices – einzelne Dienste unabhängig skalieren
- Container-Orchestrierung – horizontal skalieren in der Praxis
- Architekturstil – Master-Slave und verteilte Stile
