Containers package an application and its dependencies into a portable, consistent unit that runs the same anywhere. Azure provides several container services at different levels of abstraction.
Azure Kubernetes Service (AKS)
AKS is Azure's managed Kubernetes service. Microsoft manages the control plane (API server, etcd, scheduler) at no extra cost. You pay only for the worker nodes (VM instances).
Key features:
- Automated node provisioning, upgrades, and patching
- Integration with Azure Monitor, Azure Policy, and Azure Active Directory
- Cluster Autoscaler — automatically adds or removes nodes based on pod demand
- Node pools — different VM sizes for different workloads (e.g., CPU for APIs, GPU for ML)
- Azure CNI and kubenet networking options
- Private cluster support — API server accessible only from within your VNet
Best for: Complex, multi-service containerised applications that need the full power of Kubernetes — service meshes, stateful workloads, custom scheduling.
Azure Container Instances (ACI)
ACI is the simplest way to run a container in Azure. You specify a container image, CPU/memory, and ACI launches it in seconds — no cluster, no VM, no orchestrator.
- Billed per second of CPU and memory consumed
- Scales to zero when stopped
- Supports Linux and Windows containers
- Can be integrated with AKS as a burst target (Virtual Nodes)
Best for: Simple, isolated containers — task runners, batch jobs, dev/test environments, CI build agents.
Azure Container Apps
Container Apps is a serverless, fully managed container service built on Kubernetes and KEDA (Kubernetes Event-Driven Autoscaling). It abstracts Kubernetes complexity while providing powerful event-driven scaling.
- Scale to zero (Consumption plan) or keep minimum replicas (Dedicated plan)
- Trigger scaling from HTTP requests, queue depth, event hubs, Dapr bindings, and more
- Built-in Dapr integration for microservice patterns (service discovery, pub/sub, state)
- Supports HTTP ingress and per-revision traffic splitting (blue/green deploys)
Best for: Microservices, APIs, event-driven workloads — when you want container flexibility without managing Kubernetes.
Service Comparison
| Service | Abstraction | Best For |
|---|---|---|
| AKS | Managed K8s cluster | Complex multi-service apps, full K8s control |
| ACI | Serverless single container | Simple containers, batch, dev/test |
| Container Apps | Serverless K8s (no cluster to manage) | Microservices, APIs, event-driven |
| App Service (containers) | PaaS web hosting | Web apps via Docker image |
Azure Container Registry (ACR)
ACR is Azure's private Docker container registry. It's geo-replicated, integrates with Azure DevOps and GitHub Actions, and supports geo-replication for distributing images globally.
Key features:
- Private image storage — no public Docker Hub exposure
- ACR Tasks — cloud-based image build and automation
- Image vulnerability scanning (Microsoft Defender integration)
- Works natively with AKS, ACI, and Container Apps