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 Container Apps is a serverless container platform that lets you run microservices and containerised applications without managing Kubernetes infrastructure. Built on top of Kubernetes, KEDA (event-driven autoscaling), Dapr (distributed application runtime), and Envoy (traffic management), Container Apps provides the benefits of Kubernetes without the operational complexity.
| Aspect | AKS | Container Apps |
|---|---|---|
| Kubernetes API | Full access | Not exposed |
| Control plane | You configure it | Fully managed |
| Scaling | HPA, KEDA, cluster autoscaler | Built-in, automatic, scale to zero |
| Networking | You manage ingress, CNI, policies | Built-in HTTP ingress, managed VNet |
| Complexity | High — full K8s knowledge required | Low — deploy containers, set rules |
| Best for | Complex architectures, full control | APIs, microservices, event-driven apps |
Container Apps is not a simplified AKS — it is a different abstraction layer. You never see nodes, pods, or deployments. You work with container apps, revisions, and scaling rules.
An environment is the secure boundary around a group of container apps. Apps in the same environment share:
Think of it as the equivalent of a Kubernetes namespace + cluster infrastructure.
az containerapp env create \
--resource-group rg-containers \
--name my-environment \
--location uksouth
A container app is your application — one or more containers running from a specified image.
az containerapp create \
--resource-group rg-containers \
--environment my-environment \
--name my-api \
--image mycompanyacr.azurecr.io/myapi:1.0 \
--registry-server mycompanyacr.azurecr.io \
--registry-identity system \
--target-port 8080 \
--ingress external \
--min-replicas 1 \
--max-replicas 10 \
--cpu 0.5 \
--memory 1Gi
Every change to a container app creates a new revision — an immutable snapshot of the app's configuration and container image. Revisions enable:
# Split traffic: 80% to v1, 20% to v2
az containerapp ingress traffic set \
--resource-group rg-containers \
--name my-api \
--revision-weight my-api--v1=80 my-api--v2=20
Container Apps supports multiple scaling triggers through built-in KEDA integration:
Scale based on the number of concurrent HTTP requests:
az containerapp create \
--scale-rule-name http-rule \
--scale-rule-type http \
--scale-rule-http-concurrency 100 \
--min-replicas 0 \
--max-replicas 20
When there are zero requests, the app scales to zero replicas (and you pay nothing).
Scale based on external event sources:
# Container App YAML
properties:
template:
scale:
minReplicas: 0
maxReplicas: 30
rules:
- name: queue-rule
azureQueue:
queueName: orders
queueLength: 10
auth:
- secretRef: storage-connection
triggerParameter: connection
Subscribe to continue reading
Get full access to this lesson and all 10 lessons in this course.