Today customers can deploy and manage their stateful and stateless applications on Azure using Availability Sets and/or Virtual Machine Scale Sets. Availability sets provide fault isolation guarantees and the ability to manage VMs individually, whereas Virtual Machine Scale Sets simplifies large-scale deployments and provide rich application runtime features.
In various situations, large scale customers must choose between scale or high availability. However, availability sets only offer up to 200 VMs making it hard for customers to scale and meet customer demands, whereas VM scale sets can scale up to 1000 VMs but offer individual access to VMs or their resources for customization (if required). VMs created within a VM scale set also have a slightly different resource model compared to individual VMs provisioned individually outside of a scale set, additionally VMs cannot be attached or detached to the VM Scale Sets.
As more workloads move to the cloud - like open-source databases, large-scale web services, stateful or stateless workloads, batch processing etc. - customers require high scale, autoscaling, agility, high availability, elasticity, in addition to greater ease of management and configuration, rich app management tools to successfully meet an ever-changing environment.
Virtual Machine Scale Sets flexible orchestration mode
We are thrilled to announce the evolution of Azure Virtual Machine Scale Sets with a new orchestration mode, now in public preview, that delivers a richer and more powerful platform for customers to easily run a variety of workloads at high scale and with high availability.
The new Virtual Machine Scale Sets flexible orchestration mode or VMSS-flex offer new capabilities and can provide best in class experience for
- Quorum-based workloads
- Open-Source databases
- Stateful applications
- Services which require high availability and large scale
- Services which want to mix virtual machine types, or leverage Spot and on-demand VMs together.
- Existing Availability Set applications
We recognize that a lot of customers have been using Virtual Machine Scale Sets to successfully run their applications. Customers will still be able to access/create/manage their existing scale sets using the existing APIs with the current orchestration mode now called “uniform orchestration mode” which is Generally Available and remains the default. Both uniform and flexible orchestration modes will move forward and will be supported. By selecting the Uniform Orchestration mode, customers can continue using VMSS without disruption.
The preview announced today for Virtual Machine Scale Sets flexible orchestration mode (VMSS-flex) provides high availability guarantees and large scale up to 1000 VMs per AZ. You can chose to deploy your VMs across fault domains in a region or within an Availability Zone. This enables you to scale seamlessly along with fault isolation constraints to achieve High Availability, which are essential to run quorum-based or stateful workloads. In addition, scale sets also offer ‘sticky’ Fault Domains i.e. Fault Domains that do not change during a VM’s lifecycle until the VM is deleted. You can also specify a Fault Domain as part of a VM deployment, which makes it simpler to replace VMs without impacting workload configurations. This is specifically relevant for open-source databases like Cassandra or other quorum-based applications.
E.g. az vm create –vmss “myVMSS” –-platform_fault_domain 1
We are also unifying the VM experience across our offerings. VMs which are created with VMSS-flex are Azure Resource Manager (ARM) based VMs. The VM and its resources are individually addressable like any other VM unlike the existing uniform orchestration mode. This enables far more flexibility for you to manage your infrastructure either as a set with VMSS-flex or individually.
Here are more details about today’s preview:
- Supported VM series:
- General purpose: B, Dsv3, Dv3, Dasv4, Dav4, DSv2, Dv2, Av2, DC, DCv2, Dv4, Dsv4, Ddv4, Ddsv4
- Compute Optimized: F, Fs, Fsv2
- Memory Optimized: Esv3, Ev3, Easv4, Eav4, Ev4, Esv4, Edv4, Edsv4, DSv2, Dv2
- Remaining series like memory optimized Mv2, M, storage optimized (Lsv2), GPU (NC, NCv2, NCv3, NCasT4_v3 (Preview), ND, NDv2 (Preview), NV, NVv3, NVv4) and high-performance compute (HB, HBv2, HC, H) are not supported and will be added to VMSS-flex in the future.
- Fault Domain availability: same as region provides. 1 when deployed in an Availability Zone
Since VMSS-flex is unlocking significant value for you and providing high availability at large scale. To provide a more complete picture and transparency regarding future product enhancements, I’m happy to pre-announce some of the upcoming features that will be added to Virtual Machine Scale Sets flexible orchestration mode. In the near future VMSS-flex will also offer:
- Elasticity profile – ability to provide VM configuration and set instance count
- Ability to mix Spot and On-demand VMs in the same scale set
- Metrics based autoscaling – ability to automatically scale out or scale in based on aggregate CPU usage, disk IO performance, etc.
- Instance repair – automatically remove and replace instances with unhealthy application state
- Terminate notification – receive instance termination notifications and set a pre-defined delay timeout to the terminate operation
Resources to get you started
Virtual Machine Scale Sets
Learn how to deploy and manage VMSS Flex