Scaling up and out – horizontal versus vertical
Scalability, like availability, is a fundamental architectural aspect that serves as a ground for building reliability. The number of requests or users an application has varies with external factors that are not under control. It’s inevitable to find the application demand surpassing the available resources. In such cases, we need to add resources or instances so the application can attend to more requests or users. Adding resources or instances is called scaling.
There are two types of scaling, as shown in the following diagram:
Figure 8.14 – The two types of scaling
There are disadvantages and advantages to horizontal scaling or scaling out, and vertical scaling or scaling up. Also, in a virtualized environment, mainly on cloud platforms, we have the autoscaling feature, which automates scaling.
We will detail horizontal scaling next.
Horizontal
Horizontal scaling or scaling...