Scaling is a fundamental requirement for a system running over one node.
The scalability of a system measures how well the system can scale itself for increasing loads.
There are two ways of scaling.
- Vertical scaling, or scaling up, by using more powerful machines with faster CPU, higher memory, and larger disk space.
- Horizontal scaling, or scaling out, by adding more machines into a cluster. The performance of the cluster is the summary of all machines and the network in-between.
Moore's law has reached the end, meaning the limit of vertical scaling is out there. As a result, if you want your system continuously grow, do horizontal scale!