A development team wants to deploy a microservices-based application using containers. They want to orchestrate the containers with automatic scaling and rolling updates, but they want to avoid managing the underlying infrastructure such as virtual machines. Which Azure compute service meets these requirements?
Trap 1: Azure Virtual Machines
Azure Virtual Machines offer raw infrastructure with no built-in container orchestration, requiring manual installation and maintenance of the container runtime, networking, service discovery, and scaling logic. This burdens teams with tasks that a managed orchestrator would handle automatically, leading to configuration drift, increased operational complexity, and a higher risk of deployment failures. While VMs provide maximum control, they are not designed for distributed microservices workloads.
Trap 2: Azure Container Instances
Azure Container Instances launches single containers or small container groups on demand, but it lacks fundamental orchestration capabilities such as cluster-wide scheduling, automatic horizontal scaling, rolling updates, service discovery, and self-healing across a fleet of containers. It cannot coordinate the lifecycle of multiple microservices in a resilient manner, making it appropriate only for burstable, batch, or isolated workloads rather than a persistent microservices platform.
Trap 3: Azure App Service
Azure App Service is a platform-as-a-service for hosting web applications, and although it can run a single container or a Docker Compose configuration, it does not expose native Kubernetes primitives such as pods, services, ingress controllers, or cluster-wide autoscaling. It is optimized for straightforward web apps and APIs, not for coordinating independent microservices that require dynamic discovery, rolling updates, and inter-service load balancing, making it unsuitable as a microservices orchestrator.
- A
Azure Virtual Machines
Why wrong: Azure Virtual Machines offer raw infrastructure with no built-in container orchestration, requiring manual installation and maintenance of the container runtime, networking, service discovery, and scaling logic. This burdens teams with tasks that a managed orchestrator would handle automatically, leading to configuration drift, increased operational complexity, and a higher risk of deployment failures. While VMs provide maximum control, they are not designed for distributed microservices workloads.
- B
Azure Container Instances
Why wrong: Azure Container Instances launches single containers or small container groups on demand, but it lacks fundamental orchestration capabilities such as cluster-wide scheduling, automatic horizontal scaling, rolling updates, service discovery, and self-healing across a fleet of containers. It cannot coordinate the lifecycle of multiple microservices in a resilient manner, making it appropriate only for burstable, batch, or isolated workloads rather than a persistent microservices platform.
- C
Azure Kubernetes Service (AKS)
Azure Kubernetes Service (AKS) is a managed container orchestration platform that abstracts the Kubernetes control plane and worker nodes, eliminating the need to manage VMs or cluster infrastructure. It provides essential microservices features such as horizontal pod autoscaling, cluster autoscaler, rolling updates with zero downtime, and self-healing resource recovery, enabling teams to focus on application logic rather than operational overhead.
- D
Azure App Service
Why wrong: Azure App Service is a platform-as-a-service for hosting web applications, and although it can run a single container or a Docker Compose configuration, it does not expose native Kubernetes primitives such as pods, services, ingress controllers, or cluster-wide autoscaling. It is optimized for straightforward web apps and APIs, not for coordinating independent microservices that require dynamic discovery, rolling updates, and inter-service load balancing, making it unsuitable as a microservices orchestrator.