One of the promises of cloud computing and hence the Windows Azure Platform is elasticity – the ability to to match resource capacity against demand as demand increases and decreases. For Windows Azure we have two primary resources to consider when thinking about elasticity – Windows Azure Compute and Windows Azure Storage.

  • Windows Azure Storage – the storage capacity automatically scales as you store more and more data. In most cases you don’t need to worry about this although for Tables you should be aware of the impact of choosing the right partition key.
  • Windows Azure Compute – the compute capacity does not automatically scale as more demand arrives or as demand lessens.  Which means it is your responsibility to change capacity.

Manually changing Windows Azure Compute capacity:

Windows Azure Compute capacity is scaled by modifying the instance count of a role (or roles) in the service configuration file. This can be done manually on the Windows Azure Portal which supports either the in-place editing or the uploading of a new service configuration file. The Windows Azure Service Management REST API also exposes operations allowing the service configuration to be replaced with a new version containing different instance counts for the roles.

This is easy :-)

Automatically changing Windows Azure Compute capacity:

This is trickier. It typically needs you to write clever code. It needs thought. It needs care. It is actually much tougher than you think to get right. No, seriously, it is.

But the good news is help is at hand with AzureWatch from Paraleap Technologies.  AzureWatch promises  elasticity-as-a-service for Windows Azure. It delivers elasticity of Windows Azure Compute instances through configuration with no code change required – as long as Windows Azure Diagnostics has been setup for the hosted service.

I haven’t yet had a chance to try it but the good news is Neil Mackenzie has – and has done a superb job of reviewing it on his blog. Check it out.

High Level Architecture Diagram

image

Related Links