Scalability is a system’s ability to handle growing load by adding resources — either by using a bigger machine (vertical scaling) or by adding more machines (horizontal scaling).1
Overview
Vertical scaling, or scaling up, means giving one server more CPU, memory, or faster disks. It is simple but bounded by the largest machine you can buy and leaves a single point of failure. Horizontal scaling, or scaling out, means running many servers behind a load balancer and dividing the work among them. Scaling out has no hard ceiling and pairs naturally with redundancy, but the software must be designed for it — stateless services and shared data stores scale out far more easily than monoliths. Elasticity is the related ability to add and remove capacity automatically as demand changes.
Where it fits
Scalability is about handling more, while high availability is about staying up; horizontal scaling tends to deliver both. Cloud computing, Kubernetes, and serverless computing all exist largely to make scaling out routine. GopherTrunk scales horizontally in a natural way: cover more sites by adding capture nodes, each decoding its own RF and feeding a shared back end.
Sources
-
Scalability — Wikipedia, on vertical and horizontal scaling. ↩