Search Wiki:
Dynamically Scaling Windows Azure Solutions

A key benefit of cloud computing is the ability to add and remove capacity as and when it is required. This is often referred to as elastic scale. Being able to add and remove this capacity can dramatically reduce the total cost of ownership for certain types of applications; indeed, for some applications cloud computing is the only economically feasible solution to the problem.

Windows Azure platform supports the concept of elastic scale through a pricing model that is based on hourly compute increments. By changing the service configuration, either through editing it on the portal or through the use of the Management API, customers are able to adjust on the fly the amount of capacity they are running.

A question that is commonly asked is how to automate the scaling of a Windows Azure application. That is, how developers can build systems that are able to adjust scale based on factors such as the time of day or the load that the application is receiving. The goal for the “Windows Azure Dynamic Scaling” sample is to show one possible way to implement an automated solution to handle elastic scaling in Azure. Scaling can be as simple as running X number of servers during weekdays and Y number during weekends, or very complex based on several different rules. By automating the process, less time needs to be spent on checking logs and performance data manually, and there is no need for an administrator to manually intervene in order to add and remove capacity. An automated approach also has the benefit of always keeping the instance count at a minimum, while still being able to cope with the current load. It allows the application to be run with a smaller amount of ‘headroom’ capacity and therefore at a lower cost. The current implementation of the sample scales based on 3 different variables, but the framework has been designed to be flexible in terms of future requirements.

This documentation included in this project discusses and demonstrates the concept of dealing with variable load through rule based scaling and explains in detail the architecture, implementation and use of the provided sample code. It also mentions extensions to the framework to support other scenarios.

NOTE: If you are looking for Windows Azure dynamic scaling, you should now have a look at:
Microsoft Enterprise Library 5.0 Integration Pack for Windows Azure

For a current Windows Azure Multi-tenant sample implementing these concepts have a look at:
THE Cloud Ninja

This Windows Azure Automated Scaling project was designed and developed by Grzegorz Gogolowicz - Senior Solutions Architect at Microsoft and Trent Swanson - now member of Full Scale 180
Last edited Dec 12 2011 at 6:45 AM  by Grzegorz, version 9
Comments
papirov wrote  Nov 5 2010 at 8:28 PM  
There is a new service that has been announced that will do the dynamic scaling for Azure without any programming involvement... Hoping someone will find this useful: http://www.paraleap.com

Updating...
Page view tracker