Het beheren van DevOps agents kost vaak veel tijd en moeite. Managed DevOps Pools (MDP) nemen dit werk grotendeels uit handen, waardoor teams sneller en efficiënter kunnen werken. Tegelijkertijd bieden ze meer grip op de inrichting van pipelines, schaalbare en betrouwbare agents en de flexibiliteit om te werken met zowel standaard- als eigen images. In deze blog lees je hoe je Managed DevOps Pools implementeert met Bicep-sjablonen, hoe je vNet-integratie toepast en welke instellingen je kunt gebruiken om agents optimaal af te stemmen op jouw scenario.
In Azure DevOps zijn momenteel verschillende soorten agents beschikbaar, namelijk:
- Microsoft-Hosted Agents (Azure Pipelines)
- Self-Hosted Agents (Private Agents)
- Azure VM Scale Set (VMSS) agents
Een vierde optie is Managed DevOps Pools. Managed DevOps Pools (MDP) is een volledig beheerde service waarbij de agents niet meer in je eigen Azure-abonnement draaien, maar in dat van Microsoft.
Voordelen van Managed DevOps Pools
Laten we eens kijken naar de voordelen van het maken, configureren en beheren van Azure DevOps-agentpools in de cloud:
- Managed Service: minder operationeel onderhoud.
- Ondersteuning voor afbeeldingen: aangepaste afbeeldingen en standaardafbeeldingen van Microsoft.
- vNet-integratie: connectiviteit vanuit je interne netwerk.
- Agentstatus: keuze tussen stateless en stateful, plus standby agent-modus.
- Langlopende workflows: ondersteunt workflows tot twee dagen.
- Kostenoptimalisatie: optimaliseert kosten op basis van gebruikspatronen en vereisten.
- Schaalbaarheid: kan worden opgeschaald naar duizenden agents die tegelijkertijd actief zijn.
Meer informatie vind je hier in de Microsoft-documentatie, maar laten we eerst even naar de implementatiedetails kijken.
Voorwaarden voor implementatie
Voordat je een Managed DevOps Pool kunt inrichten, moet je voldoen aan een aantal voorwaarden:
- Azure Subscription, waarbij de resourceprovider voor Managed DevOps Pools is geregistreerd (bij de implementatie kan de pool dit ook registreren, als het account dat voor de implementatie wordt gebruikt voldoende machtigingen heeft).
- Azure DevOps-organisatie verbonden met de Microsoft-tenant.
- Machtigingen om beheerde DevOps Pools te maken/beheren in de Azure DevOps-organisatie.
- Controle quota voor SKU's.
Als je vNet-integratie gaat gebruiken, dan moet je ook het vNet configureren:
- Vereiste machtigingen voor de standaardidentiteit 'DevOpsInfrastructure' van de tenant.
- Een leeg subnet met geconfigureerde delegatie van “Microsoft.DevOpsInfrastructure/pools”.
Zodra aan de vereisten is voldaan, kunnen we beginnen met de eerste implementatiebron: het Dev Center.
Dev Center implementeren
Meerdere Managed DevOps Pools kunnen hetzelfde Dev Center gebruiken. Je hebt een Dev Center en een Dev Center Project nodig (we maken het project aan met de MDP). Hieronder zie je een voorbeeld van een bicep-sjabloon voor een Dev Center:
// Example for DevCenter
param devCenterName string
param location string = resourceGroup().location
resource devCenter 'Microsoft.DevCenter/devcenters@2024-02-01' = {
name: devCenterName
location: location
}
Netwerken met vNet-integratie
Kies je voor vNet-integratie, dan heb je een bestaand vNet nodig. Hieronder ziet u een voorbeeld van een bicep-sjabloon voor een virtueel netwerk:
// Example for Networking
param virtualNetworkName string
param subnetName string
param location string = resourceGroup().location
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2024-05-01' = {
name: virtualNetworkName
location: location
properties: {
addressSpace: {
addressPrefixes: [
'10.0.0.0/24'
]
}
subnets: [
{
name: subnetName
properties: {
addressPrefix: '10.0.0.0/28'
delegations: [
{
name: 'devOpsPoolDelegation'
properties: {
serviceName: 'Microsoft.DevOpsInfrastructure/pools'
}
}
]
}
}
]
}
}
Implementatie van een Managed DevOps-pool
Zoals eerder vermeld, maken we het Dev Center-project aan met onze MDP, maar dit kan op beide manieren. Hieronder zie je een voorbeeld van een Bicep-sjabloon om een Managed DevOps Pool te implementeren:
// Example for Managed DevOps Pool
param devCenterProjectName string
param devCenterId string
param location string = resourceGroup().location
param managedDevOpsPoolName string
param azureDevOpsOrgName string
param subnetId string
resource devCenterProject 'Microsoft.DevCenter/projects@2025-02-01' = {
name: devCenterProjectName
location: location
properties: {
devCenterId: devCenterId
}
}
resource managedDevOpsPool 'Microsoft.DevOpsInfrastructure/pools@2025-01-21' = {
name: managedDevOpsPoolName
location: location
properties: {
organizationProfile: {
organizations: [
{
url: 'https://dev.azure.com/${azureDevOpsOrgName}'
parallelism: 1
openAccess: true
}
]
permissionProfile: {
kind: 'CreatorOnly'
}
kind: 'AzureDevOps'
}
devCenterProjectResourceId: devCenterProject.id
maximumConcurrency: 1
agentProfile: {
kind: 'Stateless'
resourcePredictionsProfile: {
kind: 'Automatic'
predictionPreference: 'Balanced'
}
}
fabricProfile: {
sku: {
name: 'Standard_D2ads_v5'
}
images: [
{
wellKnownImageName: 'ubuntu-24.04'
}
]
osProfile: {
logonType: 'Service'
}
storageProfile: {
osDiskStorageAccountType: 'StandardSSD'
}
networkProfile: {
subnetId: subnetId
}
kind: 'Vmss'
}
}
}
Je beschikt nu over een Managed DevOps Pool om te bouwen en te implementeren. Je kunt de pool bekijken via Azure DevOps:
Conclusie
Het gebruik van een Managed DevOps Pool biedt talloze voordelen, het is een aantrekkelijke keuze voor organisaties die hun softwareontwikkelingscyclus willen stroomlijnen. Het biedt kant-en-klare, vooraf geconfigureerde omgevingen die tijd besparen en de complexiteit van installatie en onderhoud verminderen. Dit stelt teams in staat zich meer te richten op codering en innovatie in plaats van op het beheer van infrastructuur.
Bovendien bieden Managed Pools schaalbaarheid, betrouwbaarheid en beveiligingsfuncties die worden beheerd door experts, wat zorgt voor consistente prestaties en naleving van best practices. Door gebruik te maken van een MDP kunnen bedrijven de levering versnellen, de samenwerking tussen teams verbeteren en uiteindelijk de kwaliteit van hun softwareproducten verbeteren, terwijl ze tegelijkertijd resources en kosten optimaliseren.
Ik hoop dat de tips in deze blog nuttig zijn voor iedereen die Managed DevOps Pool wil gebruiken. Wil je meer weten over deze service? Neem gerust contact met ons op.
Heb je plezier in het oplossen van complexe Azure-vraagstukken en wil je verschillende organisaties helpen om hun DevOps-omgeving slimmer in te richten? Kom dan werken in ons Azure-team en deel je expertise met collega’s en klanten.

Heb je vragen over dit onderwerp of zou je Pravin willen inhuren voor een vergelijkbare opdracht?