Microsoft Certified: DevOps Engineer ExpertDesign and implement pipelinesEasy

A company uses Azure DevOps for its CI/CD pipelines and wants to implement a robust disaster recovery plan for their YAML-based release pipelines. They need to ensure that pipeline definitions, including stages, jobs, and tasks, are backed up and can be restored in case of accidental deletion, corruption, or an Azure DevOps service outage. What is the most effective approach to achieve this goal?

  1. ARely on Azure DevOps' internal backup and restore capabilities for pipelines.
  2. BExport pipeline definitions as JSON files regularly and store them in Azure Storage.
  3. CManually recreate pipelines from documentation if a disaster occurs.
  4. DStore all YAML pipeline definitions in a Git repository and manage them as code.
Show answer & explanation

Correct answer: D. Store all YAML pipeline definitions in a Git repository and manage them as code.

Storing YAML pipeline definitions in a Git repository is the most effective and native way to manage, version control, and back up Azure DevOps pipelines. This approach treats pipelines as code, allowing for easy restoration, auditing, and collaboration, and is resilient to Azure DevOps service outages.

Why the other options are wrong

  • A. While Azure DevOps has internal resilience, it's not designed for user-initiated granular backup/restore of individual pipeline definitions in the same way Git provides.
  • B. Exporting JSON files is a manual or semi-manual process, lacks version control, and is less integrated than Git for YAML pipelines.
  • C. Manually recreating pipelines is highly inefficient, error-prone, and unsustainable for a robust disaster recovery plan.

YAML Pipeline Versioning & Backup (Git)

Storing Azure Pipelines YAML definitions in a Git repository enables version control, collaboration, auditing, and serves as a fundamental backup and disaster recovery strategy.

  • Treats pipelines as code (Pipeline as Code).
  • Provides full version history and diffs.
  • Facilitates collaboration and code reviews.
  • Acts as a robust backup for pipeline definitions.

Memory trick: Git for Pipelines: Code, Control, Comeback.

More Design and implement pipelines questions