Microsoft Certified: DevOps Engineer ExpertDesign and implement pipelinesMedium

A DevOps team is developing a new microservices-based application using Azure Kubernetes Service (AKS). They need to implement a robust disaster recovery strategy for their Azure Pipelines YAML definitions. The primary goal is to ensure that all pipeline definitions are versioned, easily recoverable to a previous state, and can be restored quickly in case of accidental deletion or corruption, without relying solely on Azure DevOps' internal retention policies. Which approach should the team take?

  1. AStore all YAML pipeline definitions in a Git repository and leverage Git's version control capabilities.
  2. BRely on Azure DevOps' built-in pipeline retention policies and audit logs.
  3. CExport pipeline definitions as JSON files and store them in Azure Blob Storage.
  4. DManually copy and paste YAML definitions into a text editor and save them locally.
Show answer & explanation

Correct answer: A. Store all YAML pipeline definitions in a Git repository and leverage Git's version control capabilities.

Storing YAML pipeline definitions in a Git repository leverages Git's version control for tracking changes, enabling easy rollback to previous versions, and providing a readily available source for recovery, which is crucial for a robust disaster recovery strategy.

Why the other options are wrong

  • B. While Azure DevOps has retention policies and audit logs, relying solely on them does not provide the same level of granular version control, easy rollback, or external backup that Git offers for the YAML definitions themselves.
  • C. Exporting JSON provides a backup, but it loses the version history and ease of rollback that Git offers, and manual export is not scalable.
  • D. Manually copying files is prone to errors, lacks versioning, and is not a scalable or reliable disaster recovery strategy.

YAML Pipeline Versioning & Backup (Git)

The practice of storing Azure Pipelines YAML definitions in a Git repository to leverage its version control features for tracking changes, enabling easy rollback, and providing a robust backup and recovery mechanism.

  • Git provides full version history of pipeline definitions.
  • Allows easy rollback to any previous working version.
  • Enables collaboration and code reviews for pipeline changes.
  • Serves as an external backup for pipeline definitions.

Memory trick: Git is the time machine for your pipelines, always ready to go back.

More Design and implement pipelines questions