ENES

Scalability

How well a system keeps working when it has to handle much more.

Two ways to grow: on the left one server becomes a bigger server, on the right one server becomes four servers of the same size

Scalability is the ability of a system to handle more work, more users, more data, more requests, by adding resources, without being redesigned from scratch. An online shop that runs fine with a hundred visitors and also with a hundred thousand, just by adding machines, is scalable. One that slows to a crawl and needs a rewrite is not.

There are two basic ways to grow. Vertical scaling (scaling up) means a bigger machine: more CPU, more RAM. It is simple but has a ceiling and a single point of failure. Horizontal scaling (scaling out) means more machines of the same size working side by side, with a load balancer spreading the traffic. It has almost no ceiling, but the software must be built so any copy can answer any request.

The cloud made horizontal scaling cheap and quick: you can rent ten more servers in minutes and give them back tomorrow. That is why scalability is now a design question more than a hardware one. The parts that scale worst are usually the ones that share state, like a single database everyone writes to.

Keep in mind

Go deeper

Related terms

More in Cloud