Overview
Azure DevOps is a comprehensive suite of developer services provided by Microsoft, designed to support the entire software development lifecycle (SDLC). Launched in 2018, it consolidates a range of tools previously known as Visual Studio Team Services (VSTS) into a unified platform. The platform is engineered to facilitate collaboration among development teams, automate build and deployment processes, and provide end-to-end traceability for software projects.
The core of Azure DevOps consists of five main components: Azure Pipelines for continuous integration and continuous delivery (CI/CD), Azure Boards for agile planning and work item tracking, Azure Repos for source code management using Git or Team Foundation Version Control (TFVC), Azure Artifacts for package management, and Azure Test Plans for manual and exploratory testing. This integrated approach aims to reduce toolchain fragmentation and standardize development practices across an organization.
Azure DevOps is particularly well-suited for large enterprise teams and organizations already invested in the Microsoft ecosystem, offering deep integration with other Azure services such as Azure Virtual Machines, Azure Kubernetes Service, and Azure App Service. Its ability to manage hybrid cloud deployments allows teams to build and deploy applications to both Azure cloud infrastructure and on-premises environments. The platform supports a wide array of programming languages, including C#, Python, Java, and Node.js, and offers flexible YAML-based pipeline definitions for automating complex workflows. Compliance with standards such as SOC 1 Type II and ISO 27001 for Azure DevOps ensures it meets regulatory requirements for many industries.
Key features
- Azure Pipelines: Provides cloud-hosted agents for Windows, Linux, and macOS, supporting continuous integration and continuous delivery (CI/CD) with YAML or classic editor definitions. It integrates with various source control systems and deployment targets.
- Azure Boards: Offers agile planning tools, including backlogs, Kanban boards, Scrum boards, and custom dashboards for tracking work items, epics, features, user stories, and bugs.
- Azure Repos: Delivers unlimited, free, cloud-hosted private Git repositories for source code management, along with support for Team Foundation Version Control (TFVC) for centralized version control.
- Azure Artifacts: A universal package management service that supports Maven, npm, NuGet, Python, and Universal Packages feeds, integrating directly into CI/CD pipelines.
- Azure Test Plans: Provides tools for manual and exploratory testing, including test case management, execution, and reporting, integrated with work item tracking.
- Extensibility: Features a marketplace with extensions to expand functionality, supporting integrations with third-party tools and services.
- Security and Compliance: Implements robust security features and adheres to compliance standards like HIPAA and GDPR requirements for Azure services.
Pricing
Azure DevOps offers a tiered pricing model that includes a free tier for small teams and per-user pricing for additional capabilities. The services are modular, allowing organizations to pay for specific components as needed.
| Service Tier | Description | Price (as of May 2026) | Reference |
|---|---|---|---|
| Free Tier | Up to 5 users, 1 free Microsoft-hosted CI/CD parallel job (30 hours/month), 1 free self-hosted CI/CD parallel job. | $0 | Azure DevOps Services pricing details |
| Basic Plan | For 6+ users, includes Azure Boards, Azure Repos, and Azure Pipelines (basic features). | $6 per user/month | Azure DevOps Services pricing details |
| Basic + Test Plans | Includes Basic Plan features plus Azure Test Plans. | $52 per user/month | Azure DevOps Services pricing details |
| Microsoft-hosted CI/CD Parallel Job | Additional parallel jobs for CI/CD pipelines beyond the free tier. | $40 per job/month | Azure DevOps Services pricing details |
| Self-hosted CI/CD Parallel Job | Additional self-hosted parallel jobs for CI/CD pipelines. | $15 per job/month | Azure DevOps Services pricing details |
| Azure Artifacts Storage | Additional storage for package feeds beyond the free 2GB. | $2 per GB/month | Azure DevOps Services pricing details |
Common integrations
- Azure Services: Deep integration with various Azure services, including Azure Kubernetes Service, Azure App Service, Azure Functions, and Azure SQL Database for seamless deployment and monitoring. Learn about Azure Pipelines and Azure integration.
- GitHub: Direct connectivity to GitHub repositories for source code management and integration with GitHub Enterprise for on-premises solutions.
- Microsoft Teams: Notifications and work item updates can be integrated into Microsoft Teams channels for improved team communication.
- Slack: Similar to Teams, Slack integration allows for notifications and collaboration around DevOps events.
- Jira Software: Connect Azure Boards with Jira for teams that use Jira for issue tracking but prefer Azure Pipelines for CI/CD.
- SonarQube: Static code analysis and quality gate checks can be integrated into Azure Pipelines to ensure code quality.
- ServiceNow: Incident management and change control workflows can be linked between Azure DevOps and ServiceNow.
Alternatives
- GitHub Actions: A CI/CD platform that automates build, test, and deployment workflows directly from GitHub, offering a vibrant marketplace of actions.
- GitLab CI/CD: Integrated CI/CD that is part of the complete GitLab DevOps platform, providing a single application for the entire software development lifecycle.
- Jenkins: An open-source automation server that supports building, deploying, and automating any project, highly extensible through a vast plugin ecosystem.
Getting started
To begin using Azure Pipelines for a basic CI/CD workflow, you can define a YAML pipeline in your repository. This example demonstrates a simple pipeline that builds a .NET Core application, runs tests, and publishes the build artifact. Assuming you have a .NET Core project in an Azure Repos Git repository, this YAML file can be added as azure-pipelines.yml.
trigger:
- main
pool:
vmImage: 'ubuntu-latest'
variables:
buildConfiguration: 'Release'
steps:
- task: DotNetCoreCLI@2
displayName: 'Restore project dependencies'
inputs:
command: 'restore'
projects: '**/*.csproj'
- task: DotNetCoreCLI@2
displayName: 'Build .NET Core project'
inputs:
command: 'build'
projects: '**/*.csproj'
arguments: '--configuration $(buildConfiguration)'
- task: DotNetCoreCLI@2
displayName: 'Run tests'
inputs:
command: 'test'
projects: '**/*Tests.csproj'
arguments: '--configuration $(buildConfiguration)'
- task: DotNetCoreCLI@2
displayName: 'Publish build artifact'
inputs:
command: 'publish'
publishWebProjects: false
arguments: '--configuration $(buildConfiguration) -o $(Build.ArtifactStagingDirectory)'
zipAfterPublish: true
- task: PublishBuildArtifacts@1
displayName: 'Upload build artifacts'
inputs:
pathToPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: 'drop'
publishLocation: 'Container'
This YAML configuration instructs Azure Pipelines to:
- Trigger on changes to the
mainbranch. - Use an Ubuntu-latest virtual machine agent for the build process.
- Define a
buildConfigurationvariable set toRelease. - Restore NuGet package dependencies for all
.csprojfiles. - Build the .NET Core project using the defined build configuration.
- Run tests found in projects ending with
Tests.csproj. - Publish the build output to a staging directory, zipping the published content.
- Upload the staged artifacts to an Azure Pipelines artifact container, making them available for subsequent deployment stages or for download.
After committing this azure-pipelines.yml file to your repository in Azure Repos, Azure Pipelines will automatically detect it and create a new pipeline. Each subsequent push to the main branch will trigger this pipeline, executing the defined steps to build, test, and publish your application. For more advanced scenarios, such as deploying to Azure App Service or Kubernetes, additional tasks and service connections can be configured within the pipeline definition. You can explore further options in the Azure Pipelines documentation.