One of the main reason cloud is emerging so fast is the ability to scale. So, let's see what does scalability exactly mean and how it acts as a game-changer.😉 Let's begin!
Cloud scalability simply refers to the ability to increase(scale-up) or decrease(scale down) the resources as per the need or changing demand.
In old ways, scaling up meant buying a new server, storage, etc. But, this would take months to come into action. But with cloud, scaling resources when in need of high demand would be much easier.
Cloud Scaling Techniques
- Vertical Scaling(Scaling up) : This refers to adding more power to the existing machines.
- Horizontal Scaling(Scaling out) : This refers to adding more resources to your pool of resources.
Let's consider an example to understand this in detail. You have an old Honda bike which has less horsepower as compared to the latest Honda bike. So you ended up using your old bike and bought the new one. Now, you have upgraded to a vehicle that has greater horsepower. This is vertical scaling. Let's consider we attach our old bike to the new one (just assume😛), you will have both bikes in your collection. At the end of the day, you have your old bike as well as the one which has greater horsepower too. This is horizontal scaling.
The things you need to understand here is, horizontal scaling is adding more resources to your existing resource pool and vertical scaling is limited to the capacity of a single machine.
Types of Scaling
- Manual Scaling: Scaling is done manually. On-premises, it generally needs a person to scale up or down. In the cloud, scaling is just a button away. But most of them are not a fan of this method as it has high chances of human error.
- Scheduled Scaling: We can generally use some tools and analyze demand graphs of our application. Through this, we can know peak hours and off-hours. Suppose if the peak hours of our application is between 7 pm-10 pm. We can allot some extra 4 instances at that time and remove extra instances after 10 pm. So, this overcomes the cons of manual scaling as this doesn't require human involvement.
- Automatic Scaling: This is when our resources scale automatically based on some predefined settings. For instance, we can define that if the utilization rates go beyond or below a certain value it should automatically scale up or down.
Which is Best?
Vertical scaling is just resizing your server without any other changes. We are just resizing the existing hardware or software by adding resources. We have to keep in mind that vertical scaling is limited to the size of the server, not more than that.
But horizontal scaling has the ability to connect multiple software and hardware systems which can act as a single unit. Keep in mind that this doesn't happen in a single snap.😉
That's all for today! Thank you for reading till the end.😊
Do let me know in the comments how this article helped you and do let me know if you want me to write on a particular topic.
Drop a like and do share your valuable feedback in comments!