Azure DevOps Tutorial: Complete Guide from Beginner to Practice [2025]
Azure DevOps Tutorial: Complete Guide from Beginner to Practice [2025]
If your company uses the Microsoft technology stack, Azure DevOps is almost certainly the first choice.
It integrates version control, CI/CD, project management, test management, and package management all together. No need to piece together different tools—one platform handles everything.
But more features also means a steeper learning curve. Many people are overwhelmed the first time they open Azure DevOps.
This tutorial will guide you step by step to create your first Azure DevOps project and CI/CD Pipeline from scratch.

What is Azure DevOps?
Azure DevOps is Microsoft's all-in-one DevOps platform.
Its predecessor was Visual Studio Team Services (VSTS), renamed to Azure DevOps in 2018 with significantly enhanced features.
Core Positioning:
- Provides complete software development lifecycle management
- Supports any language, any platform (not just .NET)
- Seamlessly integrates with Azure cloud services
- Available in both cloud and on-premise (Server) versions
To understand the complete DevOps concept, you can first read What is DevOps? 2025 Complete Guide.
Advantages of Azure DevOps
Why choose Azure DevOps?
| Advantage | Description |
|---|---|
| High Integration | Five services tightly integrated, no need to connect multiple tools |
| Microsoft Ecosystem | Perfect fit with Visual Studio, VS Code, Azure |
| Enterprise Features | Permission management, audit logs, compliance support |
| Flexible Licensing | Free for small teams, pay-as-you-go |
| Multi-platform Support | Not just Windows, also supports Linux, macOS |
Suitable Use Cases:
- Teams already using Microsoft technology stack
- Need to integrate project management and development workflows
- Projects deploying to Azure cloud
- Organizations requiring enterprise-grade security and compliance
Five Core Azure DevOps Services
Azure DevOps includes five core services, each can be used independently or together.
Azure Boards (Project Management)
Purpose: Work item tracking, agile project management
Main Features:
- Work Items: Track tasks, bugs, user stories
- Boards: Kanban-style visual management
- Backlogs: Product backlog management
- Sprints: Sprint planning and burndown charts
- Queries: Custom queries and reports
Supported Process Templates:
- Agile
- Scrum
- CMMI
- Basic
Best For: Product managers, Scrum Masters, development teams
Azure Repos (Version Control)
Purpose: Code version control and collaboration
Main Features:
- Git Repositories: Unlimited private Git repos
- Pull Requests: Code review workflow
- Branch Policies: Branch protection rules
- Code Search: Cross-repository code search
Highlights:
- Supports Git and TFVC (Team Foundation Version Control)
- Deep integration with Visual Studio
- Built-in code review tools
Best For: Developers, Tech Leads
Azure Pipelines (CI/CD)
Purpose: Continuous Integration and Continuous Deployment
Main Features:
- Build Pipelines: Automated code builds
- Release Pipelines: Automated deployment to environments
- YAML Pipelines: Pipeline as Code
- Environments: Environment management and approvals
- Deployment Gates: Deployment gate controls
Supported Platforms:
- Windows, Linux, macOS
- Any language (.NET, Java, Node.js, Python...)
- Containers, Kubernetes, Serverless
Best For: DevOps engineers, developers
Azure Test Plans (Test Management)
Purpose: Test case management and execution
Main Features:
- Test Plans: Test plan management
- Test Suites: Test suite organization
- Manual Testing: Manual test execution
- Exploratory Testing: Exploratory testing
- Test Analytics: Test result analysis
Best For: QA engineers, test teams
Azure Artifacts (Package Management)
Purpose: Package storage and management
Main Features:
- Package Feeds: Private package repositories
- Multi-format Support: NuGet, npm, Maven, Python, Universal
Best For: Developers, architects
Azure DevOps Pricing Plans
Free Plan
Azure DevOps is very friendly to small teams:
| Item | Free Allowance |
|---|---|
| Users | First 5 free (Basic) |
| Stakeholders | Unlimited free |
| Private Projects | Unlimited |
| Git Repos | Unlimited |
| CI/CD Minutes | 1,800 min/month (Microsoft-hosted) |
| Artifacts Storage | 2 GB |
Stakeholder vs Basic:
- Stakeholder: Can view work items, dashboards, but cannot use Repos, Pipelines
- Basic: Full feature access
Paid Plans
Billing beyond free allowance:
| Item | Price (USD) |
|---|---|
| Additional Basic Users | $6/user/month |
| Basic + Test Plans | $52/user/month |
| Additional CI/CD Parallel Jobs | $40/job/month |
| Additional Artifacts Storage | $2/GB/month |
Plan Selection Recommendations
| Team Size | Recommended Plan |
|---|---|
| 1-5 people | Free plan is sufficient |
| 6-20 people | Basic plan |
| 20+ people | Basic + consider Test Plans |
| Enterprise | Azure DevOps Server (on-premise) |
Not sure which plan to choose?
Azure DevOps billing model is somewhat complex, especially the calculation of CI/CD parallel jobs. Choosing the wrong plan could waste money.
Schedule an architecture consultation and let us help you evaluate requirements and costs.
Azure DevOps Getting Started Setup
Step 1: Create an Organization
What is an Organization?
An Organization is the highest level in Azure DevOps, typically corresponding to a company or department.
Creation Steps:
- Go to Azure DevOps
- Sign in with your Microsoft account (or create a new one)
- Click "Create new organization"
- Enter organization name (e.g.,
your-company) - Select data storage region (recommend choosing closest to you)
- Complete creation
Organization Naming Suggestions:
- Use company name or abbreviation
- All lowercase, use hyphens to separate
- Examples:
cloudinsight,my-company
Step 2: Create a Project
What is a Project?
A Project is a workspace under an Organization, typically corresponding to a product or system.
Creation Steps:
- Click "New Project" on the organization homepage
- Enter project name
- Select visibility:
- Private: Only team members can access
- Public: Anyone can view (suitable for open source projects)
- Select version control: Git (recommended) or TFVC
- Select work item process: Agile, Scrum, CMMI, Basic
- Click "Create"
Project Naming Suggestions:
- Use product or system name
- Examples:
web-frontend,api-service,mobile-app
Step 3: Set Up Repository
Initialize Repository:
- Enter the project, click "Repos" in the left menu
- Select "Initialize" to initialize an empty Repository
- Optionally add README and .gitignore
Clone to Local:
# HTTPS method
git clone https://dev.azure.com/your-org/your-project/_git/your-repo
# SSH method (need to set up SSH Key first)
git clone [email protected]:v3/your-org/your-project/your-repo
Set Up Git Authentication:
- Go to "User Settings" → "Personal Access Tokens"
- Create a new PAT (Personal Access Token)
- Set appropriate permission scope
- Use PAT as password for Git operations
Step 4: Invite Team Members
Add Members:
- Go to "Project Settings" → "Teams"
- Select the default team or create a new team
- Click "Add" to add members
- Enter member's Email or Microsoft account
- Set access level (Basic or Stakeholder)
Permission Setting Suggestions:
- Developers: Basic access level
- Product Managers/Clients: Stakeholder access level
- Administrators: Project Administrator role

Azure Pipelines Build Tutorial
Pipeline Type Selection
Azure Pipelines supports two definition methods:
| Type | Description | Suitable Scenarios |
|---|---|---|
| YAML Pipeline | Define Pipeline with code | New projects, need version control |
| Classic Pipeline | Configure Pipeline with GUI | Quick testing, unfamiliar with YAML |
2025 Recommendation: Prioritize YAML Pipeline.
Why?
- Pipeline configuration can be version controlled
- Can be Code Reviewed
- Can be reused across different projects
- Easier to maintain and debug
Create Your First YAML Pipeline
Step 1: Create Pipeline File
Create azure-pipelines.yml in the Repository root:
# azure-pipelines.yml
trigger:
- main
pool:
vmImage: 'ubuntu-latest'
stages:
- stage: Build
displayName: 'Build Stage'
jobs:
- job: BuildJob
displayName: 'Build'
steps:
- script: echo 'Hello, Azure Pipelines!'
displayName: 'Run a one-line script'
- script: |
echo 'Building the project...'
echo 'Build completed!'
displayName: 'Run a multi-line script'
Step 2: Create Pipeline in Azure DevOps
- Enter the project, click "Pipelines" → "Create Pipeline"
- Select code source: Azure Repos Git
- Select Repository
- Select "Existing Azure Pipelines YAML file"
- Select
/azure-pipelines.yml - Click "Run" to execute
YAML Pipeline Basic Structure
# Trigger conditions
trigger:
branches:
include:
- main
- develop
paths:
exclude:
- docs/*
# Scheduled execution (optional)
schedules:
- cron: '0 0 * * *'
displayName: 'Daily midnight build'
branches:
include:
- main
# Execution environment
pool:
vmImage: 'ubuntu-latest'
# Variables
variables:
buildConfiguration: 'Release'
nodeVersion: '18.x'
# Stages
stages:
- stage: Build
jobs:
- job: BuildJob
steps:
- task: NodeTool@0
inputs:
versionSpec: '$(nodeVersion)'
- script: npm install
- script: npm run build
- stage: Test
dependsOn: Build
jobs:
- job: TestJob
steps:
- script: npm test
- stage: Deploy
dependsOn: Test
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
jobs:
- deployment: DeployJob
environment: 'production'
strategy:
runOnce:
deploy:
steps:
- script: echo 'Deploying to production...'
Common Tasks
Node.js Project:
steps:
- task: NodeTool@0
inputs:
versionSpec: '18.x'
displayName: 'Install Node.js'
- script: npm ci
displayName: 'Install dependencies'
- script: npm run build
displayName: 'Build'
- script: npm test
displayName: 'Run tests'
Docker Build:
steps:
- task: Docker@2
inputs:
containerRegistry: 'your-registry'
repository: 'your-repo'
command: 'buildAndPush'
Dockerfile: '**/Dockerfile'
tags: |
$(Build.BuildId)
latest
.NET Project:
steps:
- task: DotNetCoreCLI@2
inputs:
command: 'restore'
projects: '**/*.csproj'
- task: DotNetCoreCLI@2
inputs:
command: 'build'
projects: '**/*.csproj'
arguments: '--configuration $(buildConfiguration)'
- task: DotNetCoreCLI@2
inputs:
command: 'test'
projects: '**/*Tests.csproj'
For a deeper understanding of CI/CD concepts, see CI/CD Beginner Tutorial.
Azure Pipelines Advanced Configuration
Multi-Environment Deployment
stages:
- stage: DeployDev
displayName: 'Deploy to Dev'
jobs:
- deployment: DeployDev
environment: 'dev'
strategy:
runOnce:
deploy:
steps:
- script: echo 'Deploying to Dev...'
- stage: DeployStaging
displayName: 'Deploy to Staging'
dependsOn: DeployDev
jobs:
- deployment: DeployStaging
environment: 'staging'
strategy:
runOnce:
deploy:
steps:
- script: echo 'Deploying to Staging...'
- stage: DeployProd
displayName: 'Deploy to Production'
dependsOn: DeployStaging
jobs:
- deployment: DeployProd
environment: 'production'
strategy:
runOnce:
deploy:
steps:
- script: echo 'Deploying to Production...'
Environment Approval Setup
Setting Up Approval Gates:
- Go to "Pipelines" → "Environments"
- Select environment (e.g., production)
- Click "Approvals and checks"
- Add "Approvals"
- Specify approvers
This way, deployment to that environment requires approval from designated personnel.
Variables and Secrets Management
Pipeline Variables:
variables:
- name: environment
value: 'production'
- name: region
value: 'eastasia'
Variable Groups:
- Go to "Pipelines" → "Library"
- Create Variable Group
- Add variables (can mark as Secret)
- Reference in Pipeline:
variables:
- group: 'my-variable-group'
Azure Key Vault Integration:
variables:
- group: 'my-keyvault-group'
steps:
- task: AzureKeyVault@2
inputs:
azureSubscription: 'your-subscription'
KeyVaultName: 'your-keyvault'
SecretsFilter: '*'
Parallel Jobs and Matrix Builds
Matrix Build (Multi-Version Testing):
strategy:
matrix:
Node16:
nodeVersion: '16.x'
Node18:
nodeVersion: '18.x'
Node20:
nodeVersion: '20.x'
steps:
- task: NodeTool@0
inputs:
versionSpec: '$(nodeVersion)'
- script: npm test
Pipeline configuration too complex?
Azure Pipelines is powerful, but has many configuration options. Especially multi-environment deployment, permission control, and integration with Azure services—first-time setup can easily hit pitfalls.
Schedule an architecture consultation and let experienced engineers help you design the optimal CI/CD workflow.
Integration with Azure Services
Deploy to Azure App Service
- task: AzureWebApp@1
inputs:
azureSubscription: 'your-subscription'
appType: 'webAppLinux'
appName: 'your-app-name'
package: '$(Pipeline.Workspace)/drop/*.zip'
Deploy to Azure Kubernetes Service (AKS)
- task: KubernetesManifest@0
inputs:
action: 'deploy'
kubernetesServiceConnection: 'your-aks-connection'
namespace: 'default'
manifests: |
manifests/deployment.yaml
manifests/service.yaml
containers: |
your-registry.azurecr.io/your-image:$(Build.BuildId)
Deploy to Azure Functions
- task: AzureFunctionApp@1
inputs:
azureSubscription: 'your-subscription'
appType: 'functionAppLinux'
appName: 'your-function-app'
package: '$(Pipeline.Workspace)/drop/*.zip'

Azure DevOps vs GitHub Actions
Both are Microsoft's CI/CD tools—how do you choose?
Feature Comparison
| Feature | Azure DevOps | GitHub Actions |
|---|---|---|
| Version Control | Azure Repos | GitHub |
| CI/CD | Azure Pipelines | GitHub Actions |
| Project Management | Azure Boards | GitHub Issues/Projects |
| Package Management | Azure Artifacts | GitHub Packages |
| Test Management | Azure Test Plans | Third-party integration |
| Free CI/CD Minutes | 1,800/month | 2,000/month (public), 500/month (private) |
| Self-hosted Runner | Supported | Supported |
Selection Recommendations
Choose Azure DevOps if:
- Using Microsoft technology stack (.NET, Azure)
- Need complete project management features
- Need Test Plans for test management
- Enterprise-grade security and compliance requirements
- Team is already familiar with Azure DevOps
Choose GitHub Actions if:
- Code is already on GitHub
- Open source projects
- Want simpler setup
- Rich community Actions ecosystem
- Small team or personal projects
Using Both Together:
You can also use both:
- Code on GitHub
- Use Azure Pipelines for CI/CD
- Use Azure Boards for project management
# Azure Pipeline can connect to GitHub Repository
resources:
repositories:
- repository: MyGitHubRepo
type: github
endpoint: MyGitHubConnection
name: your-org/your-repo
For more tool comparisons, see DevOps Tools Complete Guide.
Azure DevOps Server vs Cloud
Comparison
| Item | Azure DevOps Services (Cloud) | Azure DevOps Server (On-premise) |
|---|---|---|
| Deployment | Microsoft hosted | Self-install and maintain |
| Update Frequency | Auto-updates every 3 weeks | Manual upgrades |
| Scalability | Auto-scales | Self-planning required |
| Data Storage | Microsoft data centers | Own data center |
| Cost | Pay-as-you-go | License fee + hardware cost |
| Compliance | ISO, SOC, GDPR, etc. | Full control |
Selection Recommendations
Choose Cloud (Services) if:
- Don't want to maintain infrastructure
- Need latest features
- Team is geographically distributed
- Limited budget
Choose On-premise (Server) if:
- Data must stay within enterprise
- Special compliance requirements
- Network environment is restricted
- Already invested in data center
FAQ
Is Azure DevOps Free Allowance Enough?
For small teams of 5 or fewer, usually enough.
Main limitations are:
- CI/CD minutes: 1,800 min/month
- Parallel jobs: 1
If Pipeline runs frequently or takes long, you may need to purchase additional minutes or self-host Agents.
Can I Use Only Azure Pipelines?
Yes.
Azure DevOps's five services can be used independently. You can:
- Put code on GitHub
- Only use Azure Pipelines for CI/CD
- Use Jira for project management
What Languages Does Azure DevOps Support?
Almost all languages:
- .NET / C#
- Java
- Node.js / JavaScript
- Python
- Go
- PHP
- Ruby
- And more...
How to Migrate from Other Platforms?
Azure DevOps provides migration tools:
- From Jenkins: Can export Pipeline configuration for reference
- From GitLab: Can import Repository
- From Jira: Can import work items
How to Learn Azure DevOps?
Recommended learning resources:
- Microsoft Learn official courses (free)
- Azure DevOps Labs (hands-on practice)
- AZ-400 certification courses
For a complete learning plan, see DevOps Learning Roadmap 2025.

Conclusion
Azure DevOps is a fully-featured DevOps platform.
Its Advantages:
- Five services highly integrated
- Seamlessly paired with Azure cloud
- Complete enterprise features
- Free for small teams
Its Disadvantages:
- Steeper learning curve
- High interface complexity
- Some settings not intuitive
If your team uses Microsoft technology stack, or needs an all-in-one DevOps solution, Azure DevOps is an excellent choice.
Recommended learning order:
- First get familiar with Azure Repos (version control)
- Learn Azure Pipelines (CI/CD)
- Learn Boards, Artifacts, Test Plans as needed
Need Professional Help?
According to Microsoft statistics, teams adopting Azure DevOps can increase deployment frequency by more than 3x on average.
How CloudInsight Can Help
- Azure DevOps Adoption Planning: Design adoption strategy from scratch
- Pipeline Architecture Design: Design CI/CD workflows that fit your team
- Azure Integration Consulting: Best integration methods with Azure cloud services
- Team Training: Azure DevOps hands-on training courses
Schedule a Free Consultation Now
Want to adopt Azure DevOps in your team but not sure how to start?
👉 Schedule an architecture consultation—we provide complete adoption planning and training services
Further Reading:
- What is DevOps? 2025 Complete Guide
- DevOps Learning Roadmap 2025: Complete Roadmap from Zero
- What is CI/CD? Continuous Integration and Deployment Beginner Tutorial
- What DevOps Tools Are There? 2025 Popular Tools by Category
- DevOps Monitoring Guide: Observability and Monitoring Tools Practice
References
- Microsoft, "Azure DevOps Official Documentation"
- Microsoft Learn, "AZ-400: Designing and Implementing Microsoft DevOps Solutions"
- Azure DevOps Labs, Official hands-on exercises
- Microsoft, "Azure Pipelines YAML Schema"
- Microsoft, "Azure DevOps Pricing Documentation"
Need Professional Cloud Advice?
Whether you're evaluating cloud platforms, optimizing existing architecture, or looking for cost-saving solutions, we can help
Book Free ConsultationRelated Articles
Azure DevOps Tutorial: Complete Guide to Building CI/CD Pipelines from Scratch
How to use Azure DevOps? This tutorial starts from zero, fully explaining Azure DevOps's five major services: Azure Repos, Boards, Pipelines, Test Plans, and Artifacts. Includes CI/CD Pipeline setup steps and YAML examples to help you build automated development workflows.
DevOpsWhat is DevOps? 2025 Complete Guide: Concepts, Tools, Processes & Career Development
What is DevOps? A complete analysis of DevOps definition, core principles, and implementation methods. Covers CI/CD processes, popular tools (Azure DevOps, GitLab, Kubernetes), engineer career development, and learning roadmap to help you master DevOps and successfully implement it in your team.
DevOpsWhat DevOps Tools Are There? 2025 Popular Tools Categorized with Selection Recommendations
2025 complete DevOps tools guide! From version control, CI/CD, containerization to monitoring, systematically introducing pros, cons, and applicable scenarios of various tool categories. Help you build the DevOps toolchain that best fits your team.