Horizontale schaalvergroting houdt in dat er nieuwe instanties van de applicatie worden toegevoegd (bijvoorbeeld nieuwe servers of containers) om de belasting over hen te verdelen. Verticale schaalvergroting is het verhogen van de middelen op één server (toevoegen van CPU, RAM, schijven).
Bij het kiezen van een aanpak worden de volgende criteria in overweging genomen:
Voorbeeld van horizontale schaalvergroting via Kubernetes:
apiVersion: apps/v1 kind: Deployment metadata: name: my-app spec: replicas: 5 # aantal pods - horizontale schaal selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: containers: - name: my-app image: myimage:v1
Belangrijke kenmerken:
Is horizontale schaalvergroting altijd beter dan verticale?
Nee. Voor bepaalde taken (bijvoorbeeld voor monolithische of stateful services) kan verticale schaalvergroting eenvoudiger en efficiënter zijn.
Vereist horizontale schaalvergroting geen enkele aanpassing van de applicatie?
Nee. De applicatie moet stateless zijn, session sharing ondersteunen (bijvoorbeeld met een externe cache) en correct reageren op schaalvergroting.
Wordt database-schaalvergroting altijd horizontaal uitgevoerd?
Nee. Niet alle DBMS'en zijn gemakkelijk horizontaal schaalbaar. Klassieke relationele databases worden vaak verticaal geschaald (scale-up) of gebruiken sharding/replika.