VM Scale sets

Overview

Azure virtual machine scale sets let you create and manage a group of identical, load balanced VMs. The number of VM instances can automatically increase or decrease in response to demand or a defined schedule. Scale sets provide high availability to your applications, and allow you to centrally manage, configure, and update a large number of VMs.


Why use scale sets?

To provide redundancy and improved performance, applications are typically distributed across multiple instances. Customers may access your application through a load balancer that distributes requests to one of the application instances. If you need to perform maintenance or update an application instance, your customers must be distributed to another available application instance. To keep up with additional customer demand, you may need to increase the number of application instances that run your application.

Azure virtual machine scale sets provide the management capabilities for applications that run across many VMs, automatic scaling of resources, and load balancing of traffic.


Benefits

Easy to create and manage multiple VMs

  • When you have many VMs that run your application, it's important to maintain a consistent configuration across your environment. For reliable performance of your application, the VM size, disk configuration, and application installs should match across all VMs.
  • With scale sets, all VM instances are created from the same base OS image and configuration. This approach lets you easily manage hundreds of VMs without additional configuration tasks or network management.
  • Scale sets support the use of the Azure load balancer for basic layer-4 traffic distribution, and Azure Application Gateway for more advanced layer-7 traffic distribution and SSL termination.

 

Provides high availability and application resiliency

  • Scale sets are used to run multiple instances of your application. If one of these VM instances has a problem, customers continue to access your application through one of the other VM instances with minimal interruption.
  • For additional availability, you can use Availability Zones to automatically distribute VM instances in a scale set within a single datacenter or across multiple datacenters.

 

Allows your application to automatically scale as resource demand changes

  • Customer demand for your application may change throughout the day or week. To match customer demand, scale sets can automatically increase the number of VM instances as application demand increases, then reduce the number of VM instances as demand decreases.
  • Autoscale also minimizes the number of unnecessary VM instances that run your application when demand is low, while customers continue to receive an acceptable level of performance as demand grows and additional VM instances are automatically added. This ability helps reduce costs and efficiently create Azure resources as required.

Works at large-scale

 

  • Scale sets support up to 1,000 VM instances. If you create and upload your own custom VM images, the limit is 300 VM instances.
  • For the best performance with production workloads, use Azure Managed Disks and Premium Storage.use Azure Managed Disks and Premium Storage.

 


Differences between virtual machines and scale sets

Scale sets are built from virtual machines. With scale sets, the management and automation layers are provided to run and scale your applications. You could instead manually create and manage individual VMs, or integrate existing tools to build a similar level of automation. The following table outlines the benefits of scale sets compared to manually managing multiple VM instances.

Scenario

Add additional VM instances                                                              

Traffic balancing and distribution                                                    

High availability and redundancy                                                                 

 Scaling of VMs

Manual group of VMs

Manual process to create, configure, and ensure compliance

Manual process to create and configure Azure load balancer or Application Gateway

Manually create Availability Set or distribute and track VMs across Availability Zones

Manual monitoring and Azure Automation

Virtual machine scale set

Automatically create from central configuration

Can automatically create and integrate with Azure load balancer or Application Gateway

Automatic distribution of VM instances across Availability Zones or Availability Sets

Autoscale based on host metrics, in-guest metrics, Application Insights, or schedule

Compute