ScalingHorizontal Vs Vertical Scaling

Vertical scaling is simpler and quicker but has physical limits on how much you can scale up. Horizontal scaling is more complex but can theoretically scale infinitely.

Vertical Scaling

Vertical scaling is the process of increasing the capacity of a single server by adding more resources such as CPU, memory, or storage. With vertical scaling, there is no limit to the amount of resources that can be added to a server. The main advantage of vertical scaling is that it's relatively simple and quick to do; you can simply add more resources to an existing server rather than having to provision and configure new servers.

The disadvantages of vertical scaling are that it can be expensive (especially if you need to keep buying larger servers as your traffic grows) and that there are physical limits on how much you can scale up. Eventually, you will reach a point where adding more resources to a single server is no longer feasible. At that point, you'll need to switch to horizontal scaling.

Horizontal Scaling

Horizontal scaling, also known as "scale-out," is the process of adding more servers to a system so that it can handle more traffic. With horizontal scaling, there is no limit to the number of servers that can be added; you can keep adding new servers as needed to accommodate increased traffic. The main advantage of horizontal scaling is that it's very scalable; you can keep adding new servers indefinitely. 

The disadvantages of horizontal scaling are that it can be complex and time-consuming to provision and configure new servers, and that there is increased overhead involved in managing multiple servers. In addition, horizontal scaling typically requires load balancing in order to distribute traffic evenly across all servers.

During the System Design Interview

During your System Design interview its important to explain the trade-offs between the two. If you are building a system that is meant to support billions of users, your end solution will probably result in some combination of the two. Your interviewer is looking to see that you understand the two techniques. They are not usually looking for a breakdown on exactly how many machines and how large those machines should be.

Related Problems