One of the great advantages of running your applications in Windows Azure is the ability to scale. It does not matter if you workload is steady with unexpected peaks, constantly growing or used only occasionally. You can tailor your cloud capacity to the just what you need so that you can save both resources and money. If fact, this kind of scaling can be accomplished programmatically by using the Windows Azure Service Management REST API making it possible for your applications to auto-scale. By adding logic tied to performance parameters instances, storage space or computing power, resources can be increased or reduced such as adding instances as CPU usage reaches 100% or when message queues grow faster than worker roles can keep up with. But one must keep in mind that there are some limitations:
- Installs roles cannot be scaled down to zero.
- Because usage rates are by the hour there is no benefit in scaling in less than one hour increments.
There are several examples applications that demonstrate how to implement scaling:
Azurescale project by Grzegorz Gogolowicz and Trent Swanson
Windows Azure Dynamic Scaling Sample
How Windows Azure AutoScaling Works from Common Sense on Vimeo.