Scalability in Cloud Computing
Scalability in Cloud Computing
Table of contents:
1. Introduction
2. Scaling in cloud computing
3. Advantages of Scaling
4. Types of Scaling
5. Conclusion
Introduction:
Among the many reasons to make the move to the cloud, scalability is one of the most
compelling. What is scalability in cloud computing? Scalability is the ability to easily add or subtract
compute or storage resources. Horizontal and vertical scaling in cloud computing makes it easier for
enterprises to provision the right number and size of resources without the overhead of running a
data centre.
The true definition of scalability has to do with meeting demand. Demand can change
seasonally, weekly, and hourly. In a real-world IT environment, demand isn’t steady, and scalability is
the best option to manage this volatility.
Cloud scalability refers to the ability to increase or decrease IT resources (virtual machines,
databases, networks) as needed to meet changing needs. Scalability is one of the main advantages
of the cloud and the main driving force for its popularity in businesses
Third-party cloud providers also have all the vast hardware and software resources already
in place to allow for rapid scaling that an individual business could not achieve cost-effectively on its
own.
Systems have four general areas that scalability can apply to:
CPU
Disk I/O
Memory
Network I/O
The below picture depicts the Cloud Technology Moving Trends in the Industry
Advantages of Scaling:
1. Convenience
Saves precious time for IT staff by cutting down the hours and days of time to set up
physical hardware
Often with just a click, IT Admin can easily setup most of infrastructure needs like
VM’s, servers
2. Flexibility and Speed
Handles unexpected spikes in demand easily and makes your system respond very
quickly using load balancers
Storage management is simple and more reliable
3. Cost Saving
Business can avoid the upfront costs of purchasing expensive equipment
Business pays for only what they use and minimize waste
Maintaining secondary data centres are not required
4. Disaster Recovery
scalable cloud computing can reduce disaster recovery costs by eliminating the need
for building
Cloud providers can offer both elastic and scalable solutions. While these two terms sound
identical, cloud scalability and elasticity are not the same.
A system’s scalability, as described above, refers to its ability to increase workload with
existing hardware resources. A scalable solution enables stable, longer-term growth in a pre-planned
manner, while an elastic solution addresses more immediate, variable shifts in demand. Elasticity
and scalability in cloud computing are both important features for a system, but the priority of one
over the other depends in part on whether your business has predictable or highly variable
workloads.
Types of Scaling:
Scaling can be categorized into three major types in cloud computing based on the
approach that was followed while upgrading or downgrading service. Below are the types of
scaling techniques that were commonly used in industry
Horizontal Scaling
Vertical Scaling
Auto Scaling
1. Horizontal Scaling
To scale horizontally (scaling in or out), you add more resources like virtual machines to
your system to spread out the workload across them. Horizontal scaling is especially
important for companies that need high availability services with a requirement for minimal
downtime.
Benefits of horizontal scaling
Horizontal scaling increases high availability because as long as you are spreading your
infrastructure across multiple areas, if one machine fails, you can just use one of the other
ones.
Because you’re adding a machine, you need fewer periods of downtime and don’t have
to switch the old machine off while scaling. There may never be a need for downtime if you
scale effectively.
2. Vertical Scaling:
Through vertical scaling (scaling up or down), you can increase or decrease the capacity
of existing services/instances by upgrading the memory (RAM), storage, or processing
power (CPU). Usually, this means that the expansion has an upper limit based on the
capacity of the server or machine being expanded.
Advantages of Vertical Scaling:
No changes have to be made to the application code and no additional servers need
to be added; you just make the server you have more powerful or downsize again.
Less complex network – when a single instance handles all the layers of your
services, it will not have to synchronize and communicate with other machines to
work. This may result in faster responses.
Less complicated maintenance – the maintenance is easier and less complex
because of the number of instances you will need to manage.
3. Auto Scaling:
Auto scaling and load balancing are related because an application typically scales
based on load balancing serving capacity. In other words, the serving capacity of the load
balancer is one of several metrics (including cloud monitoring metrics and CPU utilization)
that shapes the auto scaling policy.
Better fault tolerance: Auto-scaling helps in determining and detecting which of the
instances present on the server is unhealthy. Once established, the unhealthy
instance is quickly terminated, and another healthy instance is sent as a replacement
for the unhealthy one.
Better availability: Auto-scaling helps in ensuring that the application has the right
amount of capacity for handling the current traffic demand
Better cost management: Auto-scaling can dynamically increase and decrease the
capacity as required. With auto-scaling, one can launch instances when needed and
also terminate these when they are not required.
Conclusion:
Creating a fully scalable system and infrastructure can be a large task that requires
planning, testing, and more testing. If you already have an application in place, splitting up
that system can be a problematic process that may require code changes, software updates,
and more monitoring. Several organizations are moving towards innovative auto scaling
approach, and it became most happening thing
Auto Scaling monitors your applications and automatically adjusts capacity to
maintain steady, predictable performance at the lowest possible cost. Auto Scaling helps
end users/customers to provide better user experience while using the application
References:
https://www.vmware.com/topics/glossary/content/cloud-scalability.html/
https://www.stormit.cloud/blog/scalability-in-cloud-computing-horizontal-vs-vertical-scaling/
https://www.javatpoint.com/scaling-in-cloud-computing/