Breaking Change for VMSS PowerShell/CLI Customers
Published Jun 07 2023 01:12 PM 7,076 Views
Microsoft

We are announcing an upcoming breaking change to the default orchestration mode for Virtual Machine Scale Sets created on Portal, PowerShell, and Azure CLI. This change will take effect over the next few months, starting with Portal in May 2023 and PowerShell, CLI clients in November 2023. Once the change is complete, any VM Scale Sets created on Portal, PowerShell, or CLI will automatically default to Flexible orchestration mode instead of Uniform.

 

You will still be able to create Uniform scale sets by specifying the desired orchestration mode when deploying your VMs. To learn more about VM Scale Set orchestration modes, please see Orchestration modes for Virtual Machine Scale Sets in Azure - Azure Virtual Machine Scale Sets | Microsoft Learn.

 

About the Breaking Change

 

Portal

Starting May 2023, the Orchestration Mode for new scale sets created on portal will default to “Flexible”. You will still be able to create Uniform scale sets by selecting the “Uniform” option.

 

HilaryWang_0-1683752871553.png

 
PowerShell

Starting November 2023, the -OrchestrationMode parameter for New-AzVmss in Az PowerShell will have a new default value of “Flexible”, replacing the current default of “Uniform”. VM Scale Sets created using New-AzVmss after this change will default to “Flexible” orchestration mode if no –OrchestrationMode is specified. 

 
CLI

Starting November 2023, the –orchestration-mode parameter for az vmss create in Azure CLI will have a new default value of “flexible”, replacing the current default of “uniform”. VM Scale Sets created using az vmss create after this change will default to “flexible” orchestration mode if no --orchestration-mode is specified. Flexible scale sets will be configured with a Standard Load Balancer and Standard Public IP.

 

Deprecated Behavior

 

Before November 2023, the following command will create a scale set in Uniform orchestration mode.

 
PowerShell

 

$vmssName = 'VMSSNAME'
# Create credentials, I am using one way to create credentials, there are others as well.
# Pick one that makes the most sense according to your use case.
$vmPassword = ConvertTo-SecureString "PASSWORD" -AsPlainText -Force
$vmCred = New-Object System.Management.Automation.PSCredential('USERNAME', $vmPassword)

#Create a VMSS using the default settings
New-AzVmss -Credential $vmCred -VMScaleSetName $vmssName

 

CLI

 

az vmss create -n simplescaleset -g demorg --image UbuntuLTS --generate-ssh-keys

To create a scale set in Flexible orchestration mode prior to this change, you had to specify the desired orchestration mode (Flexible) in your command.

 

PowerShell

 

$vmssName = 'VMSSNAME-Flex'
# Create credentials, I am using one way to create credentials, there are others as well.
# Pick one that makes the most sense according to your use case.
$vmPassword = ConvertTo-SecureString "PASSWORD" -AsPlainText -Force
$vmCred = New-Object System.Management.Automation.PSCredential('USERNAME', $vmPassword)

#Create a VMSS using the default settings
New-AzVmss -Credential $vmCred -VMScaleSetName $vmssName -OrchestrationMode 'Flexible'

 

CLI

 

az vmss create -n simplescaleset -g demorg --image Ubuntu2204 --generate-ssh-keys –orchestration-mode flexible

New Behavior

 

Starting November 2023, the following command will create a scale set in Flexible orchestration mode.

 

PowerShell

 

$vmssName = 'VMSSNAME'
# Create credentials, I am using one way to create credentials, there are others as well.
# Pick one that makes the most sense according to your use case.
$vmPassword = ConvertTo-SecureString "PASSWORD" -AsPlainText -Force
$vmCred = New-Object System.Management.Automation.PSCredential('USERNAME', $vmPassword)

#Create a VMSS using the default settings
New-AzVmss -Credential $vmCred -VMScaleSetName $vmssName

 

CLI

 

az vmss create -n simplescaleset -g demorg --image Ubuntu2204 --generate-ssh-keys

To continue creating scale sets in Uniform orchestration mode after November 2023, you will need to specify the desired orchestration mode (Uniform) in your command.

 
PowerShell

 

$vmssName = 'VMSSNAME-Uniform'
# Create credentials, I am using one way to create credentials, there are others as well.
# Pick one that makes the most sense according to your use case.
$vmPassword = ConvertTo-SecureString "PASSWORD" -AsPlainText -Force
$vmCred = New-Object System.Management.Automation.PSCredential('USERNAME', $vmPassword)

#Create a VMSS using the default settings
New-AzVmss -Credential $vmCred -VMScaleSetName $vmssName -OrchestrationMode 'Uniform'
​

 

CLI

 

az vmss create -n simplescaleset -g demorg --image UbuntuLTS --generate-ssh-keys –orchestration-mode uniform

This change is made to ensure that our customers have access to the best possible performance and experience with VMSS Flex.

 

What do I need to do?

 

I am currently using Virtual Machine scale sets in Uniform orchestration mode and would like to continue using Uniform orchestration after November 2023

Please update your PowerShell or CLI deployment scripts to specify Uniform orchestration mode to maintain the existing behaviour of your scale sets. This update is recommended to be done as soon as possible to avoid any unintended behaviour after the change.

 

I am currently using Virtual Machine scale sets in Uniform orchestration mode and would like to start using Flexible orchestration mode

Unfortunately, existing Virtual Machine Scale Sets in Uniform orchestration mode cannot be migrated to Flexible orchestration mode at this time. If you would like to experience the performance benefits and new features coming to Flex, consider updating your deployment scripts to create a Flex-oriented workload.

 

I am already using Virtual Machine scale sets in Flexible orchestration mode

No action is required, your scale sets will continue to perform as expected following this change.

 

Why VMSS Flex?

 

VMSS Flexible Orchestration mode was developed to meet customer demands for reliable and fast deployments, support flexible and scalable workloads that can adjust to demand changes, and simplify the creation of highly available application infrastructure on a large scale.

 

We recommend using VMSS Flexible orchestration mode over Uniform orchestration mode for any new workloads or deployments. While both modes allow you to define a virtual machine profile, conduct manual or automatic scaling, and perform instance management at scale, some specific advantages that VMSS Flex has over VMSS Uniform are:

 

  • Improved deployment reliability and latency performance. VMSS Flexible Orchestration mode is the fastest way to deploy virtual machines at scale on Azure 
  • Scaling with standard Azure virtual machines allows you to have full access to VM, NIC, and Disk APIs instead of the limited operations in the VMSS VM API 
  • Scaling with standard Azure virtual machines allows you to have full control of all VM lifecycle operations. 
  • Simplified API interface for deploying instances with high availability at scale by deprecating update domain and single placement group parameters 
  • Ability to manually add standalone virtual machines to the scale set 
  • Ability to add both Spot & on-demand VMs in the same scale set with a defined ratio 
  • Though we strive to maintain parity between Flex and Uniform, Flex enables some forward-looking features that will not be available on Uniform

If you have any questions or concerns about this change, please do not hesitate to reach out to our support team for assistance.

 

Co-Authors
Version history
Last update:
‎Nov 15 2023 11:55 AM
Updated by: