rwagg-white small

Rob Waggoner


I’ve been spending a lot of time with Windows Azure, and as always, I’m focusing on how we can get the best value for our spend.  As I look that the Windows Azure cost model; running VMs will likely be the most expensive item on your Windows Azure bill, so I wanted to see how we could get the most value for our spend.

I’ve been digging into Availability Sets and I like what I see.  Availability Sets for VMs are required if you want to take advantage of the Windows Azure SLA.  Let me help you understand what Availability Sets will do for you and your infrastructure.

  1. They give you the ability to manage the availability of your Virtual Machines.  This means if Windows Azure has a hardware failure, your workloads are not impacted.
  2. They give you the ability to have the right level of compute power without having more resources running than you actually need.  Availability Sets let you scale up and down your compute resources as the demand grows and shrinks.  This means you are not paying for running VMs when there is no demand for them.  Think about after hours if you are managing a traditional 8-5 type infrastructure.
  3. Availability Sets work together with load balancing to ensure one VM is not overwhelmed with all of the workload.

Once you create an Availability Set, you can define a schedule to ensure the VMs are available when you need them and shut down after hours. 


I like this setup because I can define an availably set around day and night demands as well as weekend demands.
For my demo accounts I use Availability Sets to ensure most of my VMs get shut down at night when I’m not using them.

Once you define your scale schedule, you can then define the minimum capacity for each of your schedules.

image We asked for three schedules above, now we can define the instance count per schedule.  During the day I can ensure all my VMs are processing the load, but for nights and weekends I only keep one VM up and running. 

The other setting I really appreciate here is the SCALE BY METRIC.  This lets you define what demand looks like and how much demand is required to spin up another VM.  Defining a scale action based upon CPU means that if the CPU utilization for all running VMs grows beyond the threshold you define, Windows Azure will spin up another VM to assist with the load.  Once the average CPU load across all VMs in your Availability Set drop below your lower threshold, Windows Azure will start shutting down your VMs to reduce costs. 

There is a lot more to Availability Sets that I can cover here, but if you are concerned about idle VMs running all the time, or how to manage scale as demand increases, Availability Sets are they first place to look to get a better feel for how they can help manage your resources.


Until next time,