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 revenue-generating opportunities. 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. For instance, 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 horizontal scaling, vertical scaling, and 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 workloads. 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 a reboot.
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.
The second part of this blog can be found here … Why You Should Consider Auto-Scaling Or Cloud Bursting
Related Business Solution: Cloud Services