Any application doesn’t have the same number of users all the time. A number of users can grow up and in result server load increases. So at some stage, too many requests slow down the response time of the server.
If there is an issue then there is a solution. Scaling is an answer to this- Scaling is: adapting automatically the number of scalers and their size to fit a load of your application, without any action from you.
Many companies are moving to cloud nowadays because of Scalability. I distinctly remember those days when I use to experience “Error 404” or page at all not opening. And that was that time when many servers crashed just because of extreme load on the server. Right from college websites where the student uses to download brochure and that too in college admission time. Bank website or etc suffered a lot. But this is the answer .. Scalability.
Scalability provides a capability to the server to expand whenever it requires. The scaling strategies are divided into two major categories and these are Horizontal Scaling (a.k.a. scaling out) and Vertical Scaling (a.k.a. scaling up). Vertical scaling is all about adding power to your existing machine whereas horizontal scaling is adding additional resources into the network and sharing the processing and memory workload across multiple devices.
Let’s understand how one is different from another with easy examples!
Traffic is always proportionate to the growth of a business. So when a business grows means traffic grows your server need more resources to support increased traffic. To suffice the need of resource we can add one more server with the same capacity along with the existing server. Now, these two servers can handle the traffic effectively. This is known as horizontal scaling. Here we have not changed the capacity of an individual server added another server to match the need of resource by traffic. Basically, horizontal scaling means enhancing the performance of a server by adding more
In the same way, due to high traffic generation server performance starts degrading. To deal with this you have to scale the assets by including CPUs/ Processors, RAM and so on. Enhancing the capabilities of the same server is Vertical Scaling or Scale-up
To summarize, vertical scaling is installing a more capable hardware whereas horizontal scaling refers to linking together other machines to collectively do the work of a much more advanced one.
As per many opinions from IT managers, Horizontal scaling is almost more desirable than vertical scaling, after all, you don’t get caught in a resource deficit.