DEV Community

Shivlal Sharma
Shivlal Sharma

Posted on

A Beginner's Guide to Understanding Scalability in Cloud Computing

🎯 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.

Image description

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.

Image description

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)

Collapse
 
krlz profile image
krlz

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.