A first look at revolutionizing your cloud deployments with Azure Managed DevOps Pools.

A first look at revolutionizing your cloud deployments with Azure Managed DevOps Pools.

Recently Azure Managed DevOps Pools (MDP) went into Public Preview.

I know for a fact that this new product, which I have been so lucky to be actively involved in and testing alongside PMs, Engineers, and fellow MVPs for several months now with great success, will revolutionize the deployment of infrastructure and applications in Azure, especially when it comes to private networking, secure environments and demand for high-performance agents at a lower cost.

Remember the “Old” and almost the only way of having Scalable Self-Hosted Agents that have a connection to your private network the “good” and the “bad” Azure Virtual Machine Scale Set agent pools (VMSS)!?

Introducing Azure Managed DevOps Pools.

Azure Managed DevOps Pool (MDP) is the next evolution of VMSS, it’s a fully managed service by Microsoft where the virtual machines or containers that power your agents live and breathe inside the prestigious Microsoft Azure subscription and not in your own Azure subscription like they do when you are using the “classic” VMSS or other Infrastructure to host your agents, Azure Managed DevOps Pool (MDP) brings a simplification on custom pool creation, improves scalability and reliability of those custom pools, and offers extensive features and enhancements.

Does that mean that Azure Virtual Machine Scale Set Agent Pools (VMSS) are going away? No they are still a viable option. However MDP are much easier to setup with few clicks and have enhanced features.

What I personally find the most interesting feature is the possibility to use it with your network, so to say you can inject the agents into your subnet and they can communicate safely and securely with your private Azure resources, eliminating the need to deploy self-hosted agents for deployment jobs, for me this has always been the largest barrier to cross when using Azure Pipeline hosted agents in Azure DevOps.

Other Interesting takeaways are:

  • The possibility of picking your Agent Images.
    • It allows you to use the same image as the Azure Pipeline Hosted Agents without having to create them yourself, ensuring you always have access to the latest and freshest images from Microsoft.
    • Standard Azure VM Images are also available.
    • Or any other image you create and keep in an Azure Image Gallery.
  • No more limitations to the fixed performance of the Azure Pipeline Hosted Agents as you can now pick the VM Size and performance.
  • It’s highly scalable.
    • You can choose how many agent VMs you want in the pool.
    • As well as the minimum number of standby agents to accept pipeline executions. (Psst! You can set the standby agent count to zero to save some bucks, as VMs will be created on-demand with about a 20-30 second setup delay, take this with a pinch of salt as it might be a bit shorter or longer.)
    • If you need to keep one or more standby agents running to quickly execute your pipelines, you can set the specific days and hours they should be available, as well as the number of agents at any specific time, giving you full flexibility of control and to further minimize the cost of having standby agents running 24/7
    • You only pay for cost of the running agent VMs and they are licensed under the Self-hosted agent parallel job license in Azure DevOps, hence if you have for example 2 licenses for Self-hosted Agent parallel jobs you can run two parallel jobs in the pool and so on.

What are the benefits of using Azure Managed DevOps Pools (MDP)?

Managed DevOps Pools offer several benefits for managing Azure DevOps agent pools.

  • They significantly reduce the time spent on managing CI/CD infrastructure, allowing teams to focus on other tasks.
  • The service enables the creation of team-specific pools, preventing noisy neighbor issues and tailoring pools to individual team needs.
  • It supports worry-free self-service, allowing development teams to create custom pools without compromising governance.
  • Additionally, Managed DevOps Pools optimize Azure costs, provide scalability up to thousands of agents simultaneously, ensure high reliability with minimal downtime, and enhance security with Microsoft’s best practices.

So what is the cost of Azure Managed DevOps Pools (MDP)?

Reducing cost and utilizing your cloud environment is always something that is on everyone’s mind and you might wonder if this new service is going to cost you an arm and a leg, but surprisingly it’s a “simple” cost model and follows mostly the same cost model as running a Virtual Machine, but I guess it will always come down to how you set up your agents, create schedules and utilize MDP, least my prediction is that it’s probably going to cost you a bit less than running your own VMSS and doing everything on your own when taking in consideration that you need to create and maintain your images, spending valuable time on those tasks where it could be spent on more important tasks.

To summarize

Azure Managed DevOps Pools (MDP) represent a significant advancement in managing agent pools for Azure DevOps. With MDP, you gain simplicity for your teams, scalability, and reliability. Additionally, the ability to use your network for secure communication is an absolute game-changer.

I am certain that Managed DevOps Pools (MDP) will be widely used for simplifying the management of Azure DevOps agent pools and streamlining CI/CD workflows. I’m really excited to see further development and the potential that it will bring going forward.

In the coming weeks, I will be posting more detailed posts about how to get started setting up the environment, as well as working on an Azure Verified Module for Terraform that will simplify the setup process.

In the meantime, I highly recommend you to have a look at the documentation to get started.

Other posts from the community on the same topic.

Fellow MVPs have also written great posts on the same topic, which I highly recommend you check out!

Björn Sundling MVP has written a quite detailed post on how to get started and set up your first Azure Managed DevOps Pool, you can find his post here:

Richard Fennell MVP has written two great posts with good details in addition to fixing issues when moving from Self-hosted on-premises to MDP

Gora Leye MVP has written a detailed tutorial on how to deploy resources in a private environment using Managed DevOps Pools, check it out!

Additional information

Until next time, thank you so much for the support and I appreciate you, dear reader.


Discover more from Azureviking | Haflidi's Technical Insights

Subscribe to get the latest posts sent to your email.

2 Comments

  1. Alexander Johansson

    Two thoughts regarding costs:

    1. For our VMSS agents, we incur costs during periods even when the agent is idle or in a boot/teardown state (i.e., the VM runtime when the Azure DevOps agent isn’t active or serving any pipelines). Will this be the same for MDP? Specifically, will we only be charged for compute power during the actual runtime of the agent when it’s executing a pipeline, or will we still pay for the entire VM lifecycle, including idle periods?

    2. In VMSS agents, VM instances scale out based on the Maximum number of virtual machines in the scale set setting, with increments of 25% for Flexible and 35% for Uniform configurations. As a result, we potentially pay for compute resources that we don’t utilize. Will MDP use a similar scaling approach? If so, will we continue to potentially pay for unused compute resources or, as questioned before, will we only be paying for VM runtime when agents are actually running pipelines?

    So, will MDP be billed based on the actual runtime of the agent when it’s executing a pipeline and nothing else?

    What I’m hoping for here, is that an MDP (as opposed to VMSS agents) is charged based on (pipeline) usage, rather than (VM) availability as to say.

    Also, you mention this in regards of containers:
    “Azure Managed DevOps Pool (MDP) is the next evolution of VMSS, it’s a fully managed service by Microsoft where the virtual machines or containers that power your agents …”

    I can’t seem to find where to set up containers for MDP, is this an upcoming feature or do I fail to understand how to do it?

    Thank you in advance!

    • Hi Alexander,
      Thank you very much for reading my blog, I really appreciate it.
      To answer your questions:
      1. My understanding regarding cost is that MDP is billed in two ways – one being that you need to have Self-Hosted parallel licenses in Azure DevOps, to run one or more in parallel, and the other being that you are billed by the consumption of the selected VM Size that you are provisioning, so to say it’s billed on the job run, while the VM is fetched from the pool, when initializing, running the pipeline (the job it’s self), finishing up and then being returned back to the pool, when it comes to standby agents you are billed while they are standby, e.g. let’s say you have at least 1 agent stand-by from 09:00-17:00 per day, then you are billed for that one agent as it was running idle from 09:00-17:00 per day, hence being standby, you can see more information here on how to estimate your running cost: Managed DevOps Pools Pricing – Estimating your cost | Microsoft Learn

      2. I apologize if there was any confusion but support for using container agents is a future feature that is on the road-map 🙂 so not yet available, but keep an eye out, you can see the Usage Scenarios here: Overview – Managed DevOps Pools – Usage Scenarios | Microsoft Learn as of today (16.10.2024) it says that Container agents are (Coming by March 2025)”

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.