In your IT position, you have been asked to replace an aging, but critical,
application that is no longer able to meet the needs of the business. You have
spent months working through the requirements for the new application, including application functionality,
security and compliance, resiliency, and scalability. You have already chosen an application provider that
has demonstrated that they can meet all of the application requirements.
Your next step is to determine where to host the new application.Like many other companies today,
your organization wants to move away from traditional physical hardware solutions that are capital intensive,
and instead move to a cloud-based Infrastructure as a Service (IaaS) solution to free up capital for more
So, now you are shopping for a cloud provider who can meet your infrastructure-level requirements,
including security, resiliency, and scalability.
You find that most cloud IaaS providers are prepared to meet your security requirements using a set of common
tools and processes. But when it comes to achieving scalability for your new application, you discover that cloud
providers differ widely from one another and this requires you to roll up your sleeves and learn about cloud
capabilities you’ve never heard of.
Forinstance, you are suddenly introduced to the new cloud term called auto-scaling.
As a solution architect focused on providing cloud-based solutions, I have had the opportunity to work with many
directors of IT who weren’t familiar with the ins and outs of auto-scaling.
It’s important to understand this new functionality as you begin searching for your preferred cloud service provider,
to ensure that you choose the vendor who is best suited for your needs.
What is Auto-Scaling?
Auto-scaling is a means for dynamically allocating resources to your application in order to meet current demand or to
ensure your application infrastructure remains healthy.
It is important to know that there are a number of different ways to scale your application in the cloud so that you can
decide which one will meet your needs.
The three most common approaches are
a) horizontal scaling,
b) vertical scaling, and
c) cloud bursting.
With horizontal scaling, you add/remove server instances into your environment, thereby
expanding/shrinking the application infrastructure as a whole. This technique can be rather complex, and therefore
more costly, because you have to ensure that your application can handle dynamically adding/removing entire
For example, if you want to add a new web server, your scaling solution must be able to add the server
as a member of the load balancing pool and connect back to the application tier.
If you need to keep your auto-scaling solution a bit less complex and keep
your costs down, you could opt for vertically scaling your application.
This refers to increasing/reducing the size of your existing server instances, such as adding/removing processors or
memory. Vertical scaling can be much easier to implement as many cloud providers have APIs that can be utilized
to add/remove processors and memory.
Additionally, some of the most recent operating systems can recognize the added resources without requiring
Another form of auto-scaling is commonly referred to as cloud bursting.With cloud bursting, your application
is hosted in one location, such as a private cloud or on physical hardware,and can dynamically provision additional
servers in a third party cloud to meet temporary spikes in demand. This approach can be quite complex, as
you will have application infrastructure located in separate geographic locations and your application must be able
to support that type of configuration.
When choosing the auto-scaling solution that is right for your business, consider the cost and complexity
of each and weigh that against the benefits you expect to gain.