Last updated: May 2026
Azure ContainersIntermediateAZ-204⏱ 11 min read

Azure Container Apps

Azure Container Apps is a fully managed serverless container platform built on top of Kubernetes — but you never interact with Kubernetes directly. It handles scaling, networking, and orchestration automatically. It sits between ACI (simple, no orchestration) and AKS (full Kubernetes control) — the right choice for microservices, APIs, and event-driven apps that need container flexibility without Kubernetes complexity.

What you'll learn Container Apps vs AKS vs ACI · Environments and apps · Scaling — HTTP, CPU, event-driven (KEDA built-in) · Traffic splitting and revisions · Ingress configuration · Dapr integration · Creating via CLI · Pricing model

What is Container Apps?

Container Apps runs containers without requiring you to manage any Kubernetes infrastructure. It's built on AKS under the hood but abstracts it completely. You just provide a container image and configuration.

FeatureACIContainer AppsAKS
Kubernetes managementNoneNone (abstracted)Full control
Scale to zeroManual stop✅ Automatic✅ With KEDA
Traffic splitting✅ Built-in revisions✅ With Ingress
Dapr support✅ Built-in✅ Self-install
Best forOne-off tasks, simple workloadsMicroservices, APIs, event processingComplex enterprise workloads

Environments and Apps

Container Apps has two levels:

  • Container Apps Environment — A shared boundary for a group of container apps. Apps in the same environment share a VNet, logging, and can communicate internally.
  • Container App — An individual application within an environment. Each app runs one container image and can have multiple revisions.

Scaling

Container Apps scales automatically based on:

Scale TriggerExample
HTTP requestsScale out when concurrent requests exceed threshold
CPU / MemoryScale out when CPU exceeds 70%
Azure Service BusScale based on queue message count
Azure Event HubsScale based on consumer lag
Custom (KEDA)Any KEDA-supported scaler

Container Apps can scale to zero — no replicas, no cost — when there are no requests or events. This makes it very cost-efficient for sporadic workloads.

Revisions and Traffic Splitting

Every time you update a container app, a new revision is created — an immutable snapshot of the app configuration. You can split traffic between revisions for blue-green deployments or A/B testing:

Azure CLITraffic splitting between revisions
# Deploy new revision (v2) with 20% of traffic
az containerapp ingress traffic set \
  --name myapp \
  --resource-group myRG \
  --revision-weight \
    myapp--v1=80 \
    myapp--v2=20

# When confident, send 100% to v2
az containerapp ingress traffic set \
  --name myapp \
  --resource-group myRG \
  --revision-weight myapp--v2=100

Ingress

Container Apps supports two ingress modes:

  • External — Accessible from the internet via a public FQDN (myapp.happyplant-abc123.centralindia.azurecontainerapps.io)
  • Internal — Only accessible from within the Container Apps Environment — for internal microservices

Dapr Integration

Dapr (Distributed Application Runtime) is a set of building blocks for microservices — service-to-service invocation, state management, pub/sub, bindings. Container Apps has Dapr built in — enable it with one flag and your apps get all Dapr capabilities without running a sidecar yourself:

Azure CLIEnable Dapr on a Container App
az containerapp update \
  --name myapp \
  --resource-group myRG \
  --enable-dapr \
  --dapr-app-id myapp \
  --dapr-app-port 3000

Creating via CLI

Azure CLICreate environment and container app
# Create Container Apps environment
az containerapp env create \
  --name myEnvironment \
  --resource-group myRG \
  --location centralindia

# Create container app
az containerapp create \
  --name myapp \
  --resource-group myRG \
  --environment myEnvironment \
  --image myregistry.azurecr.io/myapp:v1 \
  --registry-server myregistry.azurecr.io \
  --registry-identity system \
  --target-port 3000 \
  --ingress external \
  --min-replicas 0 \
  --max-replicas 10 \
  --cpu 0.5 \
  --memory 1.0Gi \
  --env-vars NODE_ENV=production
💡
AZ-204 Exam Tip Know Container Apps sits between ACI and AKS — managed Kubernetes without the complexity. Know revisions enable traffic splitting for A/B testing and blue-green deployments. Know Container Apps can scale to zero. Know Dapr is built-in. Know the difference between external and internal ingress.
📝 Practice Questions
Click an option to check your answer.
Q1. What is a revision in Azure Container Apps?
A — A node in the underlying Kubernetes cluster
B — An immutable snapshot of the app configuration — enables traffic splitting between versions
C — A backup of the container image
D — A Kubernetes namespace within the environment
Q2. Can Azure Container Apps scale to zero replicas?
A — Yes — it scales to zero automatically when idle, then scales up on demand
B — No — a minimum of 1 replica is always required
C — Only on Premium plan
D — Only when manually stopped by an administrator
Q3. What is Dapr in the context of Azure Container Apps?
A — A monitoring and observability service
B — A distributed application runtime providing microservices building blocks — built into Container Apps
C — A container image registry for storing app images
D — A networking plugin for VNet integration
Q4. What is the difference between external and internal ingress in Container Apps?
A — External ingress is accessible from the internet; internal ingress is only accessible within the environment
B — External uses HTTP; internal uses HTTPS
C — External ingress enables auto-scaling; internal does not
D — External ingress is free; internal ingress has an additional charge
Q5. When should you choose Azure Container Apps over AKS?
A — For complex enterprise workloads requiring multi-cluster federation
B — For microservices and APIs that need container flexibility without managing Kubernetes complexity
C — When you need to deploy custom Kubernetes operators and CRDs
D — When you want the simplest possible container hosting with no auto-scaling
Comments
Disclaimer: RedKite Cloud is an independent educational resource and is not affiliated with Microsoft Corporation.