Home › Studies › AZ-305 › Infrastructure › Containers

Containers

ACI · Container Apps · AKS · App Service

Practice questions for this topic →

Decision table

ServiceModelScale to zeroPick when…
Container InstancesSingle pod of Hyper-V isolated containers, no orchestrationPer-second billing while runningSimple, short-lived or burst containers
Container AppsServerless platform built on Kubernetes with Dapr, KEDA and Envoy; no Kubernetes API accessMost apps (not those scaling on CPU or memory)Microservices, event-driven apps, jobs, HTTP APIs
AKSManaged Kubernetes: Automatic or Standard modeNo (system nodes run)Kubernetes API, Helm, CRDs, operators, deep control
App ServiceFully managed web app host (code or containers)NoWeb apps and APIs
Functions on Container AppsTriggers, bindings and automatic scaling beside other microservicesYesFunctions next to other containers

Container Apps details

Container Instances (ACI)

AKS details

ItemFact
ModesAKS Automatic (production-ready defaults, Standard tier, uptime SLA and pod-readiness SLA) vs AKS Standard (maximum control)
Free tierDev/test; best-effort uptime with no financially backed SLA; up to 1,000 nodes
Standard tierProduction; uptime SLA by default (API server 99.95% with availability zones, 99.9% without); up to 5,000 nodes
Premium tierStandard plus 24-month Long Term Support Kubernetes versions
Virtual nodesPods run in ACI; Linux only; need Azure CNI; no DaemonSets, init containers or managed identities on them. Virtual Nodes v2 is in preview
Azure Linux 2.0No security updates since Nov 30, 2025; node images are removed Oct 31, 2026 and node pools can't scale: move to a supported Azure Linux version (AzureLinux3)

Azure Container Registry

Exam Tips

Tick each tip once you can answer it without looking.

“Microservices + minimize management overhead + scale to zero” → Azure Container Apps. Trap: AKS adds cluster management overhead.

“Needs direct Kubernetes API access, Helm charts or custom CRDs” → AKS. Trap: Container Apps doesn't expose the Kubernetes API.

“Run a container nightly for a short batch job, cheapest option” → ACI. Trap: ACI has no autoscale or load balancing; 5 instances = 5 separate container groups.

“Scheduled or on-demand container jobs without a cluster” → Container Apps jobs.

“Scale containers on queue length or other event sources” → Container Apps (built-in KEDA).

“AKS needs burst capacity without adding nodes” → Virtual nodes (backed by ACI).

“Web app shipped as a container, needs deployment slots” → App Service (containers).

“Private registry replicated to multiple regions” → Azure Container Registry Premium (geo-replication). Trap: Pull images with a managed identity, not admin credentials.

“Service discovery, pub/sub and state abstractions between microservices” → Dapr in Container Apps.

“Container Apps apps that can scale to zero” → Apps scaling on HTTP or event triggers (most apps). Trap: Apps that scale on CPU or memory can't scale to zero.

“Container Apps app versus job” → Apps run continuously and restart on failure; jobs run to completion on manual, schedule or event triggers. Trap: Roles: Container Apps Jobs Contributor and Jobs Operator.

“Container Instances capabilities” → Starts in seconds, per-second billing, custom CPU and memory, container groups, hypervisor isolation, TLS 1.2 required. Trap: No built-in scaling or load balancing: more instances means more container groups.

“AKS pricing tiers” → Free: no financially backed SLA, up to 1,000 nodes. Standard: uptime SLA, up to 5,000 nodes. Premium: adds 24-month LTS. Trap: API server SLA 99.95% with availability zones, 99.9% without.

“AKS Automatic versus Standard mode” → Automatic: production defaults, Standard tier, uptime SLA and pod-readiness SLA. Standard mode: deeper control. Trap: Both modes share the same Kubernetes concepts.

“AKS virtual nodes limits” → Pods run in ACI; Linux only; need Azure CNI; no DaemonSets, init containers or managed identities. Trap: Virtual Nodes v2 is in preview.

“Container Registry geo-replication” → Premium SKU; one registry name; active-active; eventually consistent. Trap: A push then an immediate pull from another region can fail with manifest unknown.

“Azure Linux 2.0 node images on AKS” → No security updates since Nov 30, 2025; images removed Oct 31, 2026 and node pools can't scale; move to AzureLinux3. Trap: Upgrade the node pool to a supported version.

Sources

← App Service & FunctionsBatch Processing →