Compare Managed DevOps Pools with Azure Virtual Machine Scale Set agents
Note
Azure DevOps recommends the use of Managed DevOps Pools vs Azure Virtual Machine Scale Set agents for your custom agent pools scenario if possible.
Feature comparison
The following table compares features of Managed DevOps Pools and scale set agents.
Feature | Managed DevOps Pools | Azure virtual machine scale set agent pools |
---|---|---|
Pricing | Pricing is the same for Managed DevOps Pools and Scale set agents. See Pricing for more information. | Same as Managed DevOps Pools pricing |
Virtual machine hosting | Agents run on a Microsoft Azure subscription | Agents run on your Azure subscription |
Standby agent schedule | Provides flexible scheduling options to configure the number of standby agents available at different times as well as an automatic standby agent option | Supports a single standby agent count setting (equivalent to Managed DevOps Pools All Week Scheme) |
Scaling granularity | Scale out is done in increments of one | Scale out is done in increments of a percentage of the maximum pool size, potentially resulting in extra idle agents for which you are billed |
Pool size | Support for thousands of agents | Support for hundreds of agents |
Multiple images | Support for multiple images in your pool | Supports only a single image |
Quota | Quota is dedicated to the Managed DevOps Pools resource and not shared with other services in your subscription | Uses Compute quota shared with other services in your subscription |
Virtual network support | Support for running in a private network or joining your existing virtual network | Supported |
Image support | Azure pipelines images (same as Microsoft-hosted agent images for Windows and Linux), selected Azure marketplace images, Azure compute gallery images | Azure marketplace images and custom images |
VMSS extension scripts | Not supported, but you can configure your custom image with the required software | You can run a custom script on your agent before it starts running pipeline jobs |
Azure Key Vault integration | Download Azure Key Vault certificates to your agent automatically | Key vault certificates can be preinstalled on your custom images, or downloaded using tasks or VMSS extension scripts |
Multiple organizations | Support for using a pool in multiple Azure DevOps organizations, and optionally restrict the pool to certain projects | Supports a single Azure DevOps organization |
Stateless agents | Supported | Supported on Windows Server and selected Linux images |
Stateful agents | Supported | Supported |
Spot Virtual Machine support | On product roadmap | Not supported |
Containers | Coming soon | Not supported |
BCDR | On product roadmap: You will have the ability to configure backup pools for your primary pools to automatically send requests to the backup pools when your primary pool's health degrades | Supports availability sets and zones |
Map scale set agent settings to Managed DevOps Pools
You can configure a Managed DevOps Pool with the same behavior as your Azure virtual machine scale set agent pool by mapping the scale set agent pool settings to their Managed DevOps Pools equivalent. The following table lists scale set agent pool properties and the corresponding Managed DevOps Pools property that configures the equivalent behavior.
Scale set agents setting | Managed DevOps Pools setting |
---|---|
Automatically tear down virtual machines after every use | Choose stateless pools for a fresh agent for every job (Automatically tear down virtual machines after every use), or stateful pools for persistent agents |
Save an unhealthy agent for investigation | Not available in Managed DevOps Pools |
Maximum number of virtual machines in the scale set | Maximum agents |
Number of agents to keep on standby | Choose All week scheme for the same behavior as scale set agents, configure a flexible schedule, or choose Automatic standby agent scheduling |
Delay in minutes before deleting excess idle agents | Grace period for stateful pools |
Configure VMs to run interactive tests | Enable Interactive Mode |
Pricing
Managed DevOps Pools and Azure virtual machine scale set agents pricing is calculated in the same way and has two components:
Azure DevOps self-hosted parallel job pricing - Azure DevOps refers to the capability to run pipeline jobs concurrently as parallel jobs. Both Managed DevOps Pools and Azure virtual machine scale set agents use self-hosted parallel jobs. Each parallel job allows you to run a pipeline job. To run two pipeline jobs concurrently, you need two parallel jobs. For more information on parallel jobs, see Managed DevOps Pools pricing - parallel job pricing and Configure and pay for parallel jobs.
Azure services pricing - Azure services pricing for Managed DevOps Pools and Azure virtual machine scale set agents is determined by the cost of the Azure services your pool uses, like compute, storage, and data egress.
Some Managed DevOps Pools features, like flexible standby agent scheduling, and more granular scaling, can reduce the number of idle agents waiting for jobs. Support for multiple images and SKUs lets you choose the right sized Azure resources to support your workload, instead of being limited to a single image or SKU.