Microsoft Certified: DevOps Engineer ExpertDesign and implement pipelinesMedium

A DevOps team is developing a microservices-based application. Each microservice has its own Git repository and CI pipeline. The team wants to deploy updates to individual microservices independently without affecting other services or requiring a full application redeployment. They also need to ensure that the deployment infrastructure for each microservice is provisioned and managed as code. Which deployment strategy and infrastructure approach should they combine?

  1. AMonolithic deployment with Azure Resource Manager templates.
  2. BBlue/Green deployment with Azure App Service slots.
  3. CIsolated microservice deployments with Terraform and Kubernetes.
  4. DRolling updates with Azure DevOps deployment groups.
Show answer & explanation

Correct answer: C. Isolated microservice deployments with Terraform and Kubernetes.

Isolated microservice deployments, often facilitated by containers and Kubernetes, allow independent updates. Terraform is an Infrastructure as Code (IaC) tool that can provision and manage the underlying Kubernetes infrastructure and resources for each microservice, ensuring that the deployment infrastructure itself is version-controlled and managed as code.

Why the other options are wrong

  • A. Monolithic deployment contradicts the independent microservice update requirement. ARM templates are good for IaC but not specific to microservice deployment strategy.
  • B. Blue/Green deployment is a strategy, and App Service slots are specific to App Service, not the most common or flexible choice for a general microservices architecture that emphasizes independent infrastructure provisioning as code.
  • D. Rolling updates are a deployment technique, but deployment groups are for VM-based deployments, not ideal for containerized microservices. This option doesn't emphasize IaC for the infrastructure itself.

Microservices with IaC & Kubernetes

Microservices deployed to Kubernetes enable independent updates, while Infrastructure as Code (e.g., Terraform) manages the underlying Kubernetes cluster and resources, ensuring version-controlled and repeatable infrastructure provisioning.

  • Microservices allow independent development and deployment.
  • Kubernetes provides container orchestration for microservices.
  • IaC (Terraform) manages the infrastructure for microservices.
  • Ensures repeatable, version-controlled infrastructure provisioning.

Memory trick: Microservices in K8s, Infrastructure by Terraform.

More Design and implement pipelines questions