{"id":1112,"date":"2024-08-02T18:39:35","date_gmt":"2024-08-02T18:39:35","guid":{"rendered":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/2024\/08\/02\/announcing-public-preview-of-managed-devops-pools-mdp-for-azure-devops\/"},"modified":"2024-08-02T18:39:35","modified_gmt":"2024-08-02T18:39:35","slug":"announcing-public-preview-of-managed-devops-pools-mdp-for-azure-devops","status":"publish","type":"post","link":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/2024\/08\/02\/announcing-public-preview-of-managed-devops-pools-mdp-for-azure-devops\/","title":{"rendered":"Announcing Public Preview of Managed DevOps Pools (MDP) for Azure DevOps"},"content":{"rendered":"<p>Engineering teams ideally want to spend all their time writing code to create applications and services for their users! In reality, many end up spending a significant portion of their time on other tasks, such as maintaining DevOps infrastructure.<\/p>\n<p>In Azure DevOps, <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/devops\/pipelines\/agents\/hosted?view=azure-devops&amp;tabs=yaml\" target=\"_blank\" rel=\"noopener\">Microsoft-hosted agents<\/a> (aka Azure Pipelines agents) provide a fully managed, low overhead way to get started with Azure Pipelines. Many customers find that these agents are not flexible enough to meet their needs \u2013 not enough power, not enough memory, an inability to connect to private networks, etc. In these cases, teams can use self-hosted agents for maximum flexibility, but at the cost of a significant increase in overhead and maintenance costs.<\/p>\n<p><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/devops\/pipelines\/agents\/scale-set-agents?view=azure-devops\" target=\"_blank\" rel=\"noopener\">Azure Virtual Machine Scale Set agents<\/a> addressed the overheads problem by enabling teams to create agent pools based on Azure VM Scale Sets with any SKU, image, storage or network that teams wanted. While the maintenance overheads were less than what teams were spending on maintaining self-hosted agents, they were still spending significant amount of time maintaining and troubleshooting their pools. Since the VMs were being created in the team\u2019s subscription, it was also difficult for the user and support teams to troubleshoot when things went wrong. We saw an opportunity to further improve the experience of creating and managing custom Azure DevOps pools.<\/p>\n<p>Today, we\u2019re excited to announce the public preview of <a href=\"https:\/\/aka.ms\/mdp-docs\" target=\"_blank\" rel=\"noopener\">Managed DevOps Pools<\/a> (MDP), a feature of Azure DevOps that enables dev teams or platform engineering teams to quickly spin up custom DevOps pools that suit your team\u2019s unique needs. It combines the flexibility of Scale Set agents and the ease of maintenance of Microsoft Hosted agents. It enables engineering teams to establish consistency and best practices while maximizing performance, security, compliance, and cost-efficiency for their custom DevOps Pools. Managed DevOps Pools was inspired by a Microsoft internal service called \u201c1ES(One Engineering Systems) Hosted Pools\u201d. You can read more about the problems Microsoft solved with \u201c1ES Hosted Pools\u201d in <a href=\"https:\/\/aka.ms\/mdp-origin-story\" target=\"_blank\" rel=\"noopener\"> Managed DevOps Pools \u2013 An Origin Story<\/a>.<\/p>\n<h1>Managed DevOps Pools for Azure DevOps<\/h1>\n<h2>The Benefits<\/h2>\n<p>By using Managed DevOps Pools, teams can expect to see the following key benefits.<\/p>\n<h4>Hosted on your behalf<\/h4>\n<p>Managed DevOps Pools is a fully managed service where VMs powering the agents are created\/managed by Microsoft services in Microsoft owned Azure subscriptions. VM agents are not created in team\u2019s own Azure subscription like it is in Azure DevOps Elastic\/VM Scale Set Pools. The host on behalf model reduces the time spent in managing agents, improves reliability and won\u2019t have other services in the same subscription competing for compute cores with your CI\/CD agents.<\/p>\n\n<h4>Time spent in Management<\/h4>\n<p>Managed DevOps pools will drastically reduce time spent in management of agents that are based on on-premises infrastructure or manually maintained. Teams that are using Azure Virtual Machine Scale Set agents can further reduce the time spent in creating, managing and troubleshooting Scale Sets, by switching to Managed DevOps Pools. Teams that used the service in private preview were able to create new pools in under a minute and spent little time actively managing the pool.<\/p>\n<h4>Specific Pools<\/h4>\n<p>Due to the ease with which new pools can be created, organizations can very easily create multiple team-specific or workload-specific pools. Creation of specific pools helps teams tailor pools to accelerate the workloads that run on it and eliminates the noisy neighbor problem. A team in private preview created a pool with a memory-optimized SKU, for a build workload that was memory intensive. They then switched only the pipelines that would benefit from a more expensive SKU to the new pool to significantly reduce the duration of their build pipelines.<\/p>\n<h4>DevOps Billing<\/h4>\n<p>Managed DevOps Pools helps optimize a team\u2019s DevOps bill through many features. It makes it easy for teams to find an optimal balance between a pool\u2019s QoS\/performance and cost. Managed DevOps Pools offers advanced features to manage Standby agents and therefore helps teams to better manage cost than Scale Set agent pools. We observed private preview customers that were able to reduce their Azure billing by as much as 50%.<\/p>\n<h4>Scalable<\/h4>\n<p>Teams that use on-premises infrastructure are limited to the hosts they own. Teams that create agents manually are limited in scale to the maximum agents they create. Scale Set pools perform less optimally when its scale approaches 100 parallel agents. Managed DevOps Pools solves the scaling problem by automatically orchestrating multiple virtual machine scale sets under the hood and enables Managed DevOps Pools to scale to 1000s of agents in a single pool. This also helps Azure DevOps pools better respond to bursty traffic and reduce queuing of pipelines.<\/p>\n<h2>Notable Features<\/h2>\n<h4>Microsoft-hosted Quick-starter Images<\/h4>\n<p>Teams can create pools with <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/devops\/managed-devops-pools\/configure-images?view=azure-devops&amp;tabs=azure-portal#azure-pipelines-images\">quick-starter images<\/a> that contain the same software present in Microsoft hosted agents. This provides an easy transition for teams currently using Microsoft hosted agents that want to use a more powerful agent, require the agents to be stateful, or need to connect securely to their private network.<\/p>\n<h4>Standby Agents<\/h4>\n<p>Teams can choose to make their pipelines <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/devops\/managed-devops-pools\/configure-scaling?view=azure-devops&amp;tabs=azure-portal#standby-agent-mode\">start more quickly<\/a> by deciding how many agents they want pre-warmed during specific hours of the week or choose the \u201cautomatic\u201d option that uses historical data to create standby agents.<\/p>\n<h4>Private Networking<\/h4>\n<p>Teams can create pools that <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/devops\/managed-devops-pools\/configure-networking?view=azure-devops&amp;tabs=azure-portal\">connect to resources on their private network<\/a>, such as package registries, secret managers, and other on-premises services.<\/p>\n<h4>Bring your own Image<\/h4>\n<p>Teams can create pools with images that the <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/devops\/managed-devops-pools\/configure-images?view=azure-devops&amp;tabs=azure-portal#choose-your-pools-image\">team has created<\/a> with pre-requisites that are unique to their scenario.<\/p>\n<h4>Stateful Agents<\/h4>\n<p>By default, MDP pools are stateless and a new agent is created for every pipeline job. However, teams can choose to <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/devops\/managed-devops-pools\/configure-scaling?view=azure-devops&amp;tabs=azure-portal#stateful-pools\">reuse the same agent in multiple jobs<\/a> to improve performance of their pipelines because of not needing to re-download files or not needing to re-compute operations due to local cache hits. Managed DevOps Pools implements best practices for stateful agents by auto-recycling agents based on time or the agent running out of disk space.<\/p>\n<h4>Pick any SKU<\/h4>\n<p>Azure offers a variety of compute families that are tailored for various workload requirements. Teams can <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/devops\/managed-devops-pools\/configure-pool-settings?view=azure-devops&amp;tabs=azure-portal#agent-size\">pick an Azure SKU family and a size<\/a> that matches their workload\u2019s unique core\/memory\/disk usage profile to make them more performant or cost effective.<\/p>\n<h4>Additional Storage<\/h4>\n<p>If teams need extra disk space but are content with the number of cores and memory on their SKU size, they can just <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/devops\/managed-devops-pools\/configure-storage?view=azure-devops&amp;tabs=azure-portal%2Cwindows\">add an additional disk<\/a> without needing to go up a SKU size.<\/p>\n<h4>Geographic co-location<\/h4>\n<p>Teams can create pools in a geographic location that is closest to the rest of their resources for improved performance due to low network latency or to meet compliance requirements.<\/p>\n<h2>Get started now<\/h2>\n<p>Managed DevOps Pools for Azure DevOps is now available public preview, and you can access the service directly in the Azure Portal. During the public preview period, you can get started with no extra service-related billing apart from the cost of Azure resources created as part of the environment. To learn more about pricing for compute, storage, networking, and other Azure resources, check out the\u202f<a href=\"https:\/\/azure.microsoft.com\/en-us\/pricing\/calculator\/\" target=\"_blank\" rel=\"noopener\">Azure pricing calculator<\/a>.\u202f<\/p>\n<p>To learn more about Managed DevOps Pools and getting started with the service, visit the\u202f<a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/devops\/managed-devops-pools\/?view=azure-devops\" target=\"_blank\" rel=\"noopener\">Managed DevOps Pools page<\/a>. You can request features or report bugs in the Azure DevOps <a href=\"https:\/\/developercommunity.visualstudio.com\/AzureDevOps\" target=\"_blank\" rel=\"noopener\">Developer Community portal<\/a>.<\/p>\n<p>The post <a href=\"https:\/\/devblogs.microsoft.com\/devops\/managed-devops-pools\/\">Announcing Public Preview of Managed DevOps Pools (MDP) for Azure DevOps<\/a> appeared first on <a href=\"https:\/\/devblogs.microsoft.com\/devops\">Azure DevOps Blog<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Engineering teams ideally want to spend all their time writing code to create applications and services for their users! In [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":1113,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1112","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure"],"_links":{"self":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts\/1112","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/comments?post=1112"}],"version-history":[{"count":0,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts\/1112\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/media\/1113"}],"wp:attachment":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/media?parent=1112"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/categories?post=1112"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/tags?post=1112"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}