π― What is Scalability?
Let's make it simple for you. Suppose you're running your own e-commerce web app like Amazon or Flipkart. For handling customer data you use rented servers or your own purchased servers. You observed high sales growth and new customers during festival season.
Now, what you would do to handle new customers ?
Either you will increase the server capacity or you will add more servers to your list.
This ability of your infrastructure to increase or decrease IT resources as per usage and need is called Scalability.
π₯ Types of Scaling
There are two basic types of scaling: Vertical scaling and Horizontal scaling. Let's take a look of each one by one.
Vertical Scaling
Let's say you have a resource it can be anything a database, a VM or a container. How would you scale it?
You can scale it by increase it's size, wait what do you mean by size? Here size refers it's core features like CPU, memory and storage.
This method of scaling where increasing or decreasing the size of the resources happens is known as Vertical Scaling. Increasing the size is called scaling up and decreasing the size is called scaling down.
It is easy to scale vertically but sometimes you have to face major downtime which will affect your system performance π₯΅
Horizontal Scaling
In this method we increase or decrease the amount of resources in our system to spread the workload equally. Which will result us better performance and higher availability.
The risk of downtime with horizontal scaling is lower than vertically scaling. So that most of people suggest to use this type of scaling.
πEnd credits
Now, most of the cloud service providers have a feature of Auto-scaling, which allows you to automatically scale up or scale down your cloud services like EC2, AWS S3, etc. Check-out this for more about Auto-scaling.
So that's all about scaling and its types. I will be back again with new topic in cloud and DevOps. Do subscribe my blog π€
Top comments (1)
Hey thanks for sharing!, there are some great books and literature out there that can also help. "Scalability Rules: 50 Principles for Scaling Web Sites" by Martin L. Abbott and Michael T. Fisher is a super useful book that offers 50 practical tips for building scalable web applications. Another awesome book is "The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise" by Martin L. Abbott and Michael T. Fisher. This one covers everything from load balancing to database design to organizational structures that enable effective scaling and next one in my shelf is "Scalability Patterns: Best Practices for Designing High-Volume Websites" by Chander Dhall is another great resource. It's full of best practices and patterns for designing high-volume web sites, like caching and load balancing.