Azure DevOps Pipelines supports YAML-based pipelines that is as simple as a ten-line build script or as complex as a multi-stage deployment system with approval gates, environment protection rules, and deployment strategies.

Template inheritance

YAML pipeline templates allow teams to define reusable pipeline stages, jobs, and steps. An enterprise with 50 services can define a single .NET build template and reference it from each service's pipeline. When build standards change (add a code quality gate, upgrade the SDK version), the change goes in the template and propagates to all pipelines. Template enforcement via required templates ensures that all pipelines go through the standard steps regardless of what the service pipeline says.

Environment and deployment gates

Azure DevOps Environments provide deployment targets with protection rules: require approval from specific people before deploying to production, require that tests pass in a pre-production environment before the deployment can proceed, and check external services (monitoring thresholds, ticket status) before allowing a deployment. The gate pattern replaces manual deployment approval processes with automated checks.

Variable groups and Azure Key Vault integration

Variable groups centralise pipeline variables, including secrets, that are shared across multiple pipelines. Linking a variable group to Azure Key Vault means secrets are retrieved from Key Vault at runtime rather than stored in Azure DevOps. This is the correct pattern for production credentials: they are managed in Key Vault with proper access control and audit logging.

Parallel and matrix jobs

Matrix strategies run the same job with different parameter combinations simultaneously: build and test on Ubuntu and Windows, or run integration tests against multiple database versions in parallel. Parallel jobs reduce end-to-end pipeline duration proportionally to the number of agents available. For test suites that is parallelised, splitting tests across multiple jobs can reduce a 30-minute sequential test run to 10 minutes with three agents.