Skip to content
Back to Cloud Services

Azure DevOps (Pipelines, Repos, Boards)

Microsoft's ALM platform: Git Repos, CI/CD Pipelines, Boards (work tracking), Test Plans, and Artifacts (package feeds), free for up to 5 users.

AzureIntermediate

Why

Azure DevOps gives you unlimited private Git repos, parallel CI pipelines (1 free hosted job, more with parallel jobs), and Boards for agile planning in one integrated platform. Pipelines use YAML for version control and support self-hosted agents for private networks. Azure holds 21% cloud market share (Synergy Research Q4 2024).

Azure is the default for enterprises with Microsoft 365 / Active Directory estates — 95% of Fortune 500 use Azure. AKS and Cosmos DB are first-class for .NET workloads.

When

Use Azure DevOps for Microsoft-centric shops needing integrated boards + CI/CD, or when you need self-hosted agents behind a firewall. Use GitHub Actions if your code is on GitHub and you want simpler YAML.

Use both — Repos on GitHub, Boards/Pipelines on Azure DevOps — via the GitHub integration.

How

1. Create an Azure DevOps organization and project. 2. Push code to Repos (or connect a GitHub repo). 3. Create a pipeline from a YAML file (azure-pipelines.yml) or the designer. 4. Define build and deploy stages with tasks (UsePythonVersion, AzureWebApp@1, etc.). 5. Set up service connections (ARM service connection) for Azure deploys. 6. Use Boards for work items, sprints, and pull-request linkage. ```yaml # azure-pipelines.yml trigger: [main] pool: { vmImage: ubuntu-latest } steps: - task: NodeTool@0 inputs: { versionSpec: '18.x' } - script: npm ci && npm run build - task: AzureWebApp@1 inputs: azureSubscription: 'my-arm-conn' appName: myapp package: $(Build.ArtifactStagingDirectory) ```

Example

Multi-stage pipeline: build → test → deploy to staging → approve → deploy to prod, with a manual approval gate: ```yaml trigger: [main] stages: - stage: Build jobs: - job: B steps: [script: npm ci && npm run build, task: PublishBuildArtifacts@1] - stage: DeployStaging dependsOn: Build jobs: - deployment: D environment: staging strategy: { runOnce: { deploy: { steps: [task: AzureWebApp@1] } } } - stage: DeployProd dependsOn: DeployStaging jobs: - deployment: D environment: prod # has an approval gate strategy: { runOnce: { deploy: { steps: [task: AzureWebApp@1] } } } ```

Common Problems

  • ⚠Pipeline fails with 'No hosted parallelism has been purchased' — the free tier grants 1 parallel job; wait for the running job or buy more parallelism in organization settings.
  • ⚠Self-hosted agent cannot reach Azure — the agent runs behind a firewall; ensure it can reach *.azure-devices.net and the ARM endpoint, or use a self-hosted agent in the same VNet as the target.
  • ⚠Service connection 'not authorized' — the ARM service connection's service principal secret expired; rotate it in Azure AD and update the connection.

Best Practices

  • ✓Define pipelines in YAML (azure-pipelines.yml) checked into the repo, not the designer — this makes changes reviewable and version-controlled.
  • ✓Use environment approval gates for production so a human must approve before deploy, and split build and deploy into separate stages.
  • ✓Use the AzureWebApp@1 task with 'deployment slot' for zero-downtime deploys, then swap after smoke tests pass.

FAQ

What is Azure DevOps (Pipelines, Repos, Boards) and what problem does it solve?

Microsoft's ALM platform: Git Repos, CI/CD Pipelines, Boards (work tracking), Test Plans, and Artifacts (package feeds), free for up to 5 users. It lets developers deploy, store, and scale without self-managing infrastructure — a core reference for cloud service selection.

How do I get started with Azure DevOps (Pipelines, Repos, Boards) in 5 minutes?

Two steps to run it: (1) Create an Azure DevOps organization and project.; (2) Push code to Repos (or connect a GitHub repo).. Validate on the free tier first, then wire into production.

What is the #1 pitfall with Azure DevOps (Pipelines, Repos, Boards)?

The most frequent issue is: Pipeline fails with 'No hosted parallelism has been purchased' — the free tier grants 1 parallel job; wait for the running job or buy more parallelism in organization settings.. Run a pre-launch checklist item by item, and add policy/config scanning in CI.

What are the best practices for Azure DevOps (Pipelines, Repos, Boards)?

Best practices for Azure DevOps (Pipelines, Repos, Boards) include: Define pipelines in YAML (azure-pipelines.yml) checked into the repo, not the designer — this makes changes reviewable and version-controlled.; Use environment approval gates for production so a human must approve before deploy, and split build and deploy into separate stages.; Use the AzureWebApp@1 task with 'deployment slot' for zero-downtime deploys, then swap after smoke tests pass.. The first one — "Define pipelines in YAML (azure-pipelines.yml) checked into the repo, not the designer — this makes changes reviewable and version-controlled." — should be a team default baked into your IaC templates.

How do I control cost and avoid bill surprises with Azure DevOps (Pipelines, Repos, Boards)?

Three ways to prevent overspend: (1) tag every resource with env/team and enable billing alarms; (2) set budget thresholds to trigger Slack/email alerts; (3) review idle resources in Cost Explorer regularly and clean them up. Most Azure DevOps (Pipelines, Repos, Boards) options offer a free tier — validate within free quota before scaling.