You are viewing a free preview of this lesson.
Subscribe to unlock all 10 lessons in this course and every other course on LearningBro.
Azure provides three container compute services — Azure Container Instances (ACI), Azure Kubernetes Service (AKS), and Azure Container Apps. Choosing the right one depends on your workload characteristics, team expertise, and operational requirements. This lesson provides a structured decision framework, compares the services across multiple dimensions, and walks through real-world scenarios.
Think of the three services as a spectrum from simple to complex:
Simple Complex
| |
ACI Container Apps AKS
| | |
Single containers Microservices Full K8s
Batch jobs APIs / web apps Custom operators
Dev/test Event-driven Multi-team platform
Short-lived Scale to zero Stateful workloads
| Dimension | ACI | Container Apps | AKS |
|---|---|---|---|
| Abstraction level | Run a container | Run an app (serverless) | Run a cluster (platform) |
| Kubernetes knowledge | None required | None required | Required |
| Scaling | Manual | Automatic (0 to N) | Automatic (HPA, KEDA, cluster autoscaler) |
| Scale to zero | Stop container group | Yes (built-in) | Yes (with KEDA + cluster autoscaler) |
| Ingress | Public IP / DNS label | Built-in Envoy + custom domains | You manage (NGINX, App Gateway) |
| TLS | Manual | Managed or custom | You manage (cert-manager) |
| Service mesh | No | No (Dapr instead) | Yes (Istio, Linkerd) |
| Persistent storage | Azure Files, emptyDir | Azure Files | Azure Disk, Azure Files, Blob |
| Stateful workloads | Limited | Limited | Full support (StatefulSets) |
| CI/CD integration | Basic | GitHub Actions, Azure DevOps | Full (GitOps, Flux, Argo CD) |
| Networking | VNet injection | Managed VNet, custom VNet | Full VNet, CNI, network policies |
| Multi-container | Container groups | Sidecar containers | Pods (any number of containers) |
| GPU support | Yes | Yes (dedicated plan) | Yes |
| SLA | 99.9% | 99.95% | 99.95% (Standard), 99.99% (Premium) |
| Cost model | Per-second (CPU + memory) | Per-second (consumption) or dedicated | Node VM costs |
Use this step-by-step guide to choose the right service:
| If your workload is... | Consider... |
|---|---|
| A one-off script or batch job | ACI or Container Apps Job |
| A long-running API or web service | Container Apps or AKS |
| A scheduled task (cron) | Container Apps Job or AKS CronJob |
| An event-driven processor (queues, events) | Container Apps or AKS with KEDA |
| A complex multi-service application | AKS |
| A machine learning training pipeline | AKS (GPU node pools) |
| A CI/CD build agent | ACI |
| If your team... | Choose... |
|---|---|
| Has no Kubernetes experience | ACI or Container Apps |
| Has some Kubernetes knowledge | Container Apps |
| Has deep Kubernetes expertise | AKS |
| Wants to learn Kubernetes | Start with Container Apps, graduate to AKS |
| If you want... | Choose... |
|---|---|
| Zero infrastructure management | ACI or Container Apps |
| Managed infrastructure with some control | Container Apps |
| Full control over the platform | AKS |
| To run custom Kubernetes operators | AKS |
| GitOps-based continuous deployment | AKS |
Requirements: REST API serving a web frontend, auto-scaling based on traffic, custom domain with TLS, connection to Azure SQL Database.
Best choice: Container Apps
Why:
Subscribe to continue reading
Get full access to this lesson and all 10 lessons in this course.