Azure DevOps YAML Pipelines Slides & Code from VSLive San Diego 2025

September 10, 2025
Cover Image

Presented at VSLive San Diego 2025

Just got back from an amazing week at VSLive San Diego 2025 where I had the opportunity to share one of my favorite topics: building modern CI/CD pipelines using Azure DevOps YAML. For those who attended (and anyone else interested in modernizing their deployment processes), I wanted to share the materials and a comprehensive demo application that showcases real-world patterns you can use today.

Session Overview

The session focused on moving beyond classic Azure DevOps pipelines to embrace YAML-based pipelines that live alongside your code. We explored why "pipeline as code" isn't just a buzzword, but a fundamental shift in how we should think about CI/CD.

Key Topics Covered

  • YAML Pipeline Fundamentals: Understanding stages, jobs, and steps
  • Version Control Integration: Why storing pipelines in Git changes everything
  • Multi-Stage Deployments: Building once, deploying everywhere
  • Docker Integration: Using containers for consistent testing environments
  • Database Deployments: Automating EF Core migrations
  • Approval Gates: Adding human checkpoints between environments
  • Azure Integration: Deploying to App Service with deployment slots

The Demo Application

To illustrate these concepts, I built a complete .NET 9 web application with a sophisticated deployment pipeline. This isn't just a "Hello World" example – it's a production-ready pattern that includes:

Application Architecture

  • ASP.NET Core MVC web application
  • Entity Framework Core with SQL Azure
  • Multi-project solution structure with proper separation of concerns
  • Comprehensive unit and integration test coverage

Pipeline Features

The real magic happens in the azure-pipelines.yml file, which orchestrates a complete deployment workflow:

  1. Verify Stage: Validates environment connectivity before any deployments
  2. Build Stage: Compiles, tests (with Docker-based SQL Server), and packages artifacts
  3. Deploy to Test: Deploys to a test slot with database migrations
  4. Manual Approval Gate: Pauses for human validation
  5. Deploy to Production: Blue-green deployment using slot swapping

Infrastructure as Code

The solution includes Bicep templates that define all required Azure resources:

  • Azure SQL Server with Azure AD authentication
  • Separate test and production databases
  • App Service with deployment slots
  • Security configurations including managed identity

Why YAML Pipelines Matter

During the session, I emphasized a crucial point that often gets overlooked: pipeline scripts stored in version control fundamentally change how we work. Here's why:

Evolution in Tandem

Your code and your pipeline evolve together. When you need a new dependency, change your build process, or add a deployment step, those changes are versioned right alongside the code changes that require them.

Branching and Merging

Need to experiment with a new deployment strategy? Create a branch. Want to test pipeline changes before they hit production? Use a pull request. This simply isn't possible with classic pipelines stored in Azure DevOps.

Historical Context

Six months from now, when you need to understand why a deployment worked (or didn't), you have the complete picture in one place. The code, the tests, the infrastructure definition, and the deployment process – all versioned together.

Key Takeaways

  1. Start with YAML: If you're still using classic pipelines, make the switch. The initial learning curve pays dividends quickly.

  2. Use Service Connections Properly: Don't embed credentials. Use Azure service connections and managed identities.

  3. Test Everything Locally: The demo uses Docker to run SQL Server locally, matching what happens in the pipeline. This dramatically reduces debugging time.

  4. Embrace Multi-Stage: Don't just build and deploy. Add verification, testing, and approval stages to catch issues early.

  5. Version Your Infrastructure: The Bicep templates in the demo ensure your infrastructure is reproducible and versioned.

Resources

Download the Presentation: Download PowerPoint Slides

Get the Code: Sample Code

Tools Mentioned:

Running the Demo Yourself

The complete demo application is available on GitHub with detailed setup instructions. To get started:

  1. Extract the code zip file
  2. Deploy the infrastructure using the provided Bicep template
  3. Configure your Azure DevOps pipeline variables
  4. Run the pipeline and watch the magic happen

The README includes step-by-step instructions for both cloud deployment and local development.

Questions?

Feel free to reach out with questions or if you need help implementing these patterns in your organization:

  • Email: benday@benday.com
  • Twitter: @benday
  • Web: www.benday.com

Thanks to everyone who attended the session at VSLive San Diego 2025! It was great connecting with so many passionate developers and DevOps practitioners. Special thanks to the VSLive team for putting together another fantastic event.

-Ben


Benjamin Day is a consultant, trainer, author, and Microsoft MVP specializing in Azure DevOps, Scrum, and software architecture. He's the president of Benjamin Day Consulting and creator of SlideSpeaker.ai.

Categories: azure-devops