Schaalbaarheid van de architectuur is het kiezen van benaderingen die het systeem in staat stellen om toenemende belastingen te verwerken zonder in te boeten op prestaties en betrouwbaarheid.
Er zijn twee soorten schaalvergroting:
Belangrijke strategieën zijn onder meer:
Voorbeeld met gebruik van Kubernetes (horizontale schaalvergroting):
apiVersion: apps/v1 kind: Deployment metadata: name: myapp spec: replicas: 5 template: spec: containers: - name: myapp image: myapp:latest
Belangrijke kenmerken:
Is het mogelijk om een stateful-dienst net zo eenvoudig te schalen als een stateless?
Nee, stateful-diensten (bijvoorbeeld databases) vereisen complexe mechanismen voor replicatie en consistentie. Stateless-diensten kunnen eenvoudig worden gekloond en in meerdere instanties worden uitgerold.
Maakt één database het gemakkelijk om om te gaan met de belasting bij verticale schaalvergroting?
Alleen tot een bepaald punt. Daarna ontstaat er een "knelpunt", de oplossing is horizontale schaalvergroting door sharding of migratie naar gedistribueerde databasesystemen.
Kan men monolithische toepassingen effectief schalen?
Het kan mogelijk zijn, maar met grote beperkingen - monolieten schalen meestal moeilijk horizontaal en het is moeilijker om kopieën toe te voegen en te onderhouden bij veranderende belasting.