As an IT professional, you have familiarized yourself with auto-scaling or cloud bursting, but you still have some questions … namely, why and how to go about migrating selected applications. Before you proceed, you want to know: Is it really worth it? Are there any risks?
One of the most popular benefits of auto-scaling is to control infrastructure costs by shrinking/expanding your application infrastructure to meet actual demand. The cost savings are realized by taking advantage of the cloud utility-based pricing model where you only pay for the resources you use. This is in contrast to the traditional approach of deploying infrastructure to meet peak demand, which leads to resource under-utilization and a lower return on investment.
Another major benefit of auto-scaling is to ensure your application availability requirements are met. In other words, to achieve application resiliency. With this approach, you develop a solution that can identify failing server instances and automatically replace them with healthy instances in a way that is seamless to the application.
Methods for achieving auto-scaling
There are two main methods for implementing an auto-scaling solution. The option you choose will depend on a number of factors, including the tools available to you as well as your development teams’ ability to effectively use those tools. The first method is called bootstrapping. With this method, the server instance is dynamically configured as it is booting up. For example, if your application needs another web server, the server would download the necessary software, install, and configure itself as a web server during the boot process. This method could create quite a bit of complexity, as it requires a set of third-party tools to provide the automation functions.
The second method of implementing auto-scaling is to have pre-configured virtual machines that can be powered on and added into your environment when needed. So, if you had a three-tiered application architecture that included web, app, and database tiers, you would have additional web, app, and database servers in a powered off state ready to be powered on when needed.
Beware of vendor lock-in
Many cloud providers have developed their own capabilities for auto-scaling or cloud bursting on their cloud platform.
This can include the use of custom APIs that are relevant only to that cloud provider. If you spend all of your time developing a scaling solution that works only against a specific cloud provider’s APIs, it makes it very difficult to migrate your application to another cloud platform without having to fully redesign your auto-scaling solution. There are a number of industry-standard scaling tools available that are cloud vendor agnostic. Consider using these tools to keep your scaling solution portable and avoid vendor lock-in.
Cost benefit analysis
Finally, before you make auto-scaling a requirement for your application, it is important that you compare the cost of implementing such a solution against the savings you expect to gain. Some costs to consider when implementing an auto-scaling solution include the development labor, software licenses, and software maintenance, as well as the ongoing maintenance of the solution to stay current with changes in the application. Furthermore, you have to consider the amount of effort required to integrate an auto-scaling solution with your application. Some modern applications are designed to be loosely coupled to facilitate auto-scaling. This can help reduce the development time and therefore the costs required to get the solution implemented. More traditional applications that were not designed to be dynamically re-configured will require more development effort and, in many cases, may not be worth the investment to get the solution implemented.
Once you understand the total cost of implementing an auto-scaling solution, you then need to compare that cost to the savings you expect to gain and determine if it makes financial sense.
Rising to the challenge
You face many challenges when selecting the best application to meet your current and future business needs. Couple that decision with having to select the best cloud IaaS provider to host your application and the decision becomes daunting. Understanding the benefits of auto-scaling, its key considerations, and how to perform a cost/benefit analysis will prepare you to select the best IaaS provider to meet your needs.
Related Business Solution: Cloud Services