Scalability
Cloud systems are expected to behave correctly under high loads, or at least to adjust between different loads. This requires the software to be scalable. Scalability is the ability of the software to be allowed to grow and accept more requests, mostly by increasing resources.
There are two types of scalability:
- Vertical scalability: Increasing resources to each node, making them more powerful. This is the equivalent of buying a more powerful computer; adding more RAM, more hard drive space, a faster CPU…
- Horizontal scalability: Adding more nodes to the system, without them being necessarily more powerful. For example, instead of having two web servers, increase them to five.
In general, horizontal scalability is considered more desirable. In a cloud system, the capacity of adding and removing nodes can be automated, allowing for deployments to adjust automatically based on the number of current requests flowing into the system. Compared...