In the world of more than 3 billion internet users, it is really important to have a scalable architecture. Having an unscalable software is an invitation to grave for the software.
In this article, you will learn about scalability and its types.
Scaling is the process of increasing or decreasing the containers, storage and network to meet the demand of availability to the new users.
The main purpose of scalability is to increase the resources when there is load outburst in less amount of time.
There are 2 types of scalability done in cloud:
- Horizontal Scaling
- Vertical Scaling
Horizontal Scaling is increasing/decreasing the number of machines to cope with new load.
Suppose, you are having your first day in a course lecture. You reach there and saw there is no empty bench for you. So what you will do? You will go and bring a table for you from another classroom.
This is an example of horizontal scaling(you horizontally scaled out).
Best Suited for: Single machine applications(like websites)
- Increases availability
- Less downtime
Vertical Scaling is increasing/decreasing the capability(storage, ram) of the machines to cope up with new load.
Suppose, you live on ground floor with 4 members. And you decide to marry and you need new room. You will start building a room at the 1st floor.
This is an example of vertical scaling(you vertically scaled up).
Best Suited for: Difficult to distribute applications(like databases)
- Less Maintenance
- Avoid Latency
Automatically scaling the resources according to the load and configuration is known as autoscaling in cloud. Many cloud service providers provide functionality of resource based pricing. AWS have auto scaling groups, GCP has instance groups. GCP has cloud spanner database which has the power of vertical scaling up the database.
You can connect with me at Twitter.