Azure Low Priority VMs on Virtual Machine Scale Sets

What are VM Scale Sets

VM scale sets are a group of identical virtual machines deployed as a scaled set.  Scale sets, along with other benefits, support load balancing, auto scaling, and OS Image updates.  A typical deployment would be a front end web tier where the web application code receives updates but the configuration of the server doesn’t, and the servers are uniform in every way.  Historically their largest benefit is the ability to auto scale based on demand during peak workloads – think retailer at Christmas.

What are Low Priority VMs on Scale Sets

The Azure service is an elastic service by design.  This generates spare capacity within the data centers.  Microsoft are previewing a service that allows customers to use this spare capacity via Low Priority VMs within scale sets.  These VMs have exactly the same capability as any other VM scale set.

What’s the Catch!

The key difference is that Microsoft can evict the low priority VMs if they need the capacity again.  This is done without warning – other than the terms and conditions you sign up to when you create a low priority VM.  There are no guarantees regarding how long your Low Priority VM will remain in use, or restrictions on how frequently it will be evicted.  The SLA level is reduced to zero.  Low Priority scale sets are deployed in a single fault zone.

The eviction policy means that your VMs will be de-allocated at eviction time.  They will still count towards your scale set instance quota, and you’ll still be charged for the associated disks during eviction.  There is also no guarantee they will successfully start when the eviction finishes.

Why Would I Consider Low Priority VMs

Savings!

There are potential discounts of up to 80%, yes, you are reading that right, 80% off your compute costs.

Innovation Through Automation

You can’t mix and match Low Priority and High Priority VMs in a single scale set, but with some clever automation you could switch between Low Priority and High Priority scale sets dynamically.

Azure Batch

Low Priority nodes can be used within Batch pools for Azure Batch processing.  You can mix and match low and high priority nodes within a pool.  This would mean that all pools can be serviced, but, during eviction, the capacity reduces until the eviction period is over.

Service Fabric

Azure Service Fabric is a platform for building micro-services such as Docker containers that are language agnostic.  Service Fabric can take advantage of Low Priority VM Scale Sets.

Are they Available

They are available in all regions, so no restriction there, however the service is in public preview at the moment.

Leave a Reply

Your email address will not be published. Required fields are marked *