I was working on a production deployment for a client, and found something that (almost) made me forget what I was doing. If you have logged into the Windows Azure portal lately (like, today), you might notice the green PREVIEW badge next to the Scale menu option:
Yes, autoscaling is now an option configurable from the Azure management portal. You no longer need external tools like the Enterprise Library autoscaling application block, which I had been meaning to look into…
Obviously, you can leave autoscaling off, or configure it by CPU or queue, and configure options for each.
Scale by CPU
To scale by CPU, you primarily focus on the target CPU load (indicated in this image by 60-80%). At that range, the autoscaling process would scale the instance up by the specified number until load % is reduced, and continue to do so if needed after the specified wait time.
A real-world scenario where this is useful is a web role handling peak traffic.
Scale by Queue
To scale by queue, the autoscaling process monitors the number of messages in an indicated queue, and can scale up and down based on that number.
The real-world scenario here is a worker role that is responsible for handling messages in a queue. Think ecommerce order fulfillment or a content indexer.
The bottom line? This is awesome, and Microsoft continues to give developers and companies reasons to build on Windows Azure.