What is the difference between scaling horizontally vs scaling vertically? | SCALE UP VS SCALE OUT

Scaling vertically or scaling up is an old school of thought where we increase the processing power or memory of the hardware to scale up the performance. Here the issue is the cost for getting higher and higher configuration systems increases exponentially and there is always a limit to it.

Scale vertically means add more resources to the existing servers. This is done to increase RAM capacity or disk capacity. Hence the ability of the improved node to handle existing load is increased, but the load itself is unchanged.

In comparison with this, scaling out or horizontal scaling is, basically adding more and more nodes to handle the requests. This is basically distributing the load/requests to different resources to handle. There are different ways/levels of distribution that can be employed based on the scalability needs. 

To scale horizontally means add more servers. A decision to scale horizontally is made for example, to increase I/O concurrency or reduce the load on existing nodes.