Azure DevOps is Microsoft's end-to-end DevOps platform, providing everything a development team needs to plan, build, test, and deploy software. It is a suite of five integrated services that work independently or together: Boards, Repos, Pipelines, Test Plans, and Artifacts. This guide focuses on the three most impactful services for most teams: Boards for work tracking, Repos for source control, and Pipelines for CI/CD.
Getting Started: Create an Organization and Project
Azure DevOps is accessed at dev.azure.com. Sign in with your Microsoft account (or Azure AD account), create an Organization (your company or team name), then create a Project inside it. A project is the container for all your Boards, Repos, Pipelines, and Artifacts.
Choose between Agile, Scrum, or CMMI process templates when creating your project — this affects the work item types available in Boards. Agile is the most flexible starting point for most teams.
Azure Boards: Plan and Track Work
Azure Boards provides Kanban boards, backlogs, sprint planning, and reporting. The core work items are:
- Epics: Large, multi-sprint initiatives (e.g., "Launch mobile app").
- Features: Chunks of deliverable functionality within an Epic.
- User Stories (Agile) / Product Backlog Items (Scrum): Individual user-facing requirements.
- Tasks: Technical subtasks assigned to individual developers.
- Bugs: Defects tracked with the same lifecycle as user stories.
Use the Kanban Board (Boards > Boards) for a visual workflow view with columns like To Do, In Progress, In Review, and Done. Link work items to commits and pull requests so every code change traces back to a requirement.
Azure Repos: Git Source Control
Azure Repos provides unlimited free private Git repositories. Teams familiar with GitHub will find Azure Repos very similar — it supports branch policies, pull requests, and code review workflows.
# Clone your Azure Repo
git clone https://dev.azure.com/yourorg/yourproject/_git/yourrepo
# Work on a feature branch
git checkout -b feature/add-login-page
# Push and create a PR
git add .
git commit -m "Add login page UI"
git push origin feature/add-login-page
Configure Branch Policies on the main branch to enforce:
- Minimum number of reviewers (e.g., 2 approvals required).
- Linked work items — every PR must reference a Boards item.
- Build validation — the CI pipeline must pass before merging is allowed.
- Comment resolution — all PR comments must be resolved.
Azure Pipelines: CI/CD Automation
Azure Pipelines automates building, testing, and deploying your application. Pipelines are defined in a YAML file (azure-pipelines.yml) checked into your repo.
Here is a complete pipeline for a Node.js application that builds, tests, and deploys to Azure App Service:
trigger:
branches:
include:
- main
pool:
vmImage: ubuntu-latest
variables:
AZURE_WEBAPP_NAME: myapp-demo-2026
AZURE_RESOURCE_GROUP: rg-webapp-demo
stages:
- stage: Build
jobs:
- job: BuildAndTest
steps:
- task: NodeTool@0
inputs:
versionSpec: "20.x"
- script: |
npm install
npm test
displayName: Install and Test
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: "$(System.DefaultWorkingDirectory)"
includeRootFolder: false
archiveFile: "$(Build.ArtifactStagingDirectory)/app.zip"
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: "$(Build.ArtifactStagingDirectory)"
artifactName: drop
- stage: Deploy
dependsOn: Build
condition: succeeded()
jobs:
- deployment: DeployToAppService
environment: production
strategy:
runOnce:
deploy:
steps:
- task: AzureWebApp@1
inputs:
azureSubscription: "MyAzureServiceConnection"
appName: "$(AZURE_WEBAPP_NAME)"
package: "$(Pipeline.Workspace)/drop/app.zip"
Create the pipeline at Pipelines > Create Pipeline, point it at your repo, and Azure DevOps detects the YAML file automatically.
Service Connections
For pipelines to deploy to Azure, you need a Service Connection — an authenticated link between Azure DevOps and your Azure subscription. Create one at Project Settings > Service Connections > New service connection > Azure Resource Manager. Use Workload Identity Federation (the recommended option) instead of service principal secrets — it requires no credential rotation.
Environments and Approvals
Azure Pipelines Environments let you define deployment targets (development, staging, production) with approval gates. Add a pre-deployment approval to the production environment so a senior engineer must manually approve every production release. This single control prevents accidental deployments and provides an audit trail.
Azure Artifacts: Package Management
Azure Artifacts provides hosted npm, NuGet, Maven, and Python package feeds. Teams use it to share internal libraries across projects without publishing to public registries. Connect your project to an Artifacts feed from the CLI:
# Authenticate npm to Azure Artifacts
npm install -g vsts-npm-auth
vsts-npm-auth -config .npmrc
Key Takeaways
Azure DevOps gives your team a single platform to plan (Boards), version control (Repos), and automate delivery (Pipelines). Start by enabling branch policies on main, creating a YAML pipeline with a build and deploy stage, and adding a production approval gate. These three steps alone dramatically improve code quality and deployment reliability.