Die Skalierung der Architektur ist die Auswahl von Ansätzen, die es dem System ermöglichen, steigende Lasten ohne Leistungseinbußen und Zuverlässigkeitsverluste zu verarbeiten.
Es gibt zwei Arten der Skalierung:
Wichtige Strategien umfassen:
Beispiel mit Kubernetes (horizontale Skalierung):
apiVersion: apps/v1 kind: Deployment metadata: name: myapp spec: replicas: 5 template: spec: containers: - name: myapp image: myapp:latest
Wichtige Merkmale:
Kann man einen Stateful-Dienst genauso einfach skalieren wie einen Stateless?
Nein, Stateful-Dienste (z. B. Datenbanken) benötigen komplexe Replikations- und Konsistenzmechanismen. Stateless-Dienste lassen sich leicht klonen und in mehreren Instanzen bereitstellen.
Erlaubt eine einzige Datenbank eine einfache Handhabung der Last bei vertikaler Skalierung?
Nur bis zu einem bestimmten Punkt. Danach entsteht ein "Flaschenhals", dessen Lösung die horizontale Skalierung durch Sharding oder Migration auf verteilte DBMS ist.
Kann man monolithische Anwendungen effektiv skalieren?
Es kann möglich sein, bringt jedoch große Einschränkungen mit sich — Monolithen skalieren in der Regel horizontal schlecht, und es ist schwieriger, Kopien bei sich ändernder Last hinzuzufügen und zu warten.