Skip to content

Commit 2c6e002

Browse files
Merge pull request #53235 from MicrosoftDocs/NEW-manage-containers-azure-container-apps
New manage containers azure container apps module from release branch
2 parents 39c3059 + 01432ce commit 2c6e002

19 files changed

Lines changed: 605 additions & 0 deletions
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.manage-containers-azure-container-apps.introduction
3+
title: Introduction
4+
metadata:
5+
title: Introduction
6+
description: Introduction
7+
ms.date: 01/26/2026
8+
author: jeffkoms
9+
ms.author: jeffko
10+
ms.topic: unit
11+
durationInMinutes: 3
12+
content: |
13+
[!include[](includes/1-introduction.md)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.manage-containers-azure-container-apps.update-images-manage-revisions
3+
title: Update images and manage revisions safely
4+
metadata:
5+
title: Update Images and Manage Revisions Safely
6+
description: Update images and manage revisions safely
7+
ms.date: 01/26/2026
8+
author: jeffkoms
9+
ms.author: jeffko
10+
ms.topic: unit
11+
durationInMinutes: 8
12+
content: |
13+
[!include[](includes/2-update-images-manage-revisions.md)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.manage-containers-azure-container-apps.app-lifecycle-management
3+
title: Manage the container app lifecycle
4+
metadata:
5+
title: Manage the Container App Lifecycle
6+
description: Manage the container app lifecycle
7+
ms.date: 01/26/2026
8+
author: jeffkoms
9+
ms.author: jeffko
10+
ms.topic: unit
11+
durationInMinutes: 6
12+
content: |
13+
[!include[](includes/3-app-lifecycle-management.md)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.manage-containers-azure-container-apps.monitor-logs-troubleshoot
3+
title: Monitor logs and troubleshoot issues
4+
metadata:
5+
title: Monitor Logs and Troubleshoot Issues
6+
description: Monitor logs and troubleshoot issues
7+
ms.date: 01/26/2026
8+
author: jeffkoms
9+
ms.author: jeffko
10+
ms.topic: unit
11+
durationInMinutes: 4
12+
content: |
13+
[!include[](includes/4-monitor-logs-troubleshoot.md)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.manage-containers-azure-container-apps.health-probes
3+
title: Configure health probes and troubleshoot failures
4+
metadata:
5+
title: Configure Health Probes and Troubleshoot Failures
6+
description: Configure health probes and troubleshoot failures
7+
ms.date: 01/26/2026
8+
author: jeffkoms
9+
ms.author: jeffko
10+
ms.topic: unit
11+
durationInMinutes: 6
12+
content: |
13+
[!include[](includes/5-health-probes.md)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.manage-containers-azure-container-apps.optimize-container-settings
3+
title: Optimize container resources and scaling
4+
metadata:
5+
title: Optimize Container Resources and Scaling
6+
description: Optimize container resources and scaling
7+
ms.date: 01/26/2026
8+
author: jeffkoms
9+
ms.author: jeffko
10+
ms.topic: unit
11+
durationInMinutes: 4
12+
content: |
13+
[!include[](includes/6-optimize-container-settings.md)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.manage-containers-azure-container-apps.exercise-diagnose-fix-failing-deployment
3+
title: Exercise - Diagnose and fix a failing deployment
4+
metadata:
5+
title: Exercise - Diagnose and Fix a Failing Deployment
6+
description: Exercise - Diagnose and fix a failing deployment
7+
ms.date: 01/26/2026
8+
author: jeffkoms
9+
ms.author: jeffko
10+
ms.topic: unit
11+
durationInMinutes: 30
12+
content: |
13+
[!include[](includes/7-exercise-diagnose-fix-failing-deployment.md)]
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.manage-containers-azure-container-apps.module-assessment
3+
title: Module assessment
4+
metadata:
5+
title: Module Assessment
6+
description: Module assessment
7+
ms.date: 01/26/2026
8+
author: jeffkoms
9+
ms.author: jeffko
10+
ms.topic: unit
11+
azureSandbox: false
12+
durationInMinutes: 5
13+
content: |
14+
quiz:
15+
questions:
16+
- content: "You deploy a new image to a production container app. Which approach provides the best traceability and reduces the risk of deploying the wrong artifact?"
17+
choices:
18+
- content: "Reference the image by digest (for example, `myregistry.azurecr.io/app@sha256:<digest>`) when you update the container app."
19+
isCorrect: true
20+
explanation: "Digests identify an immutable image, so the deployment always uses the exact artifact you validated and approved."
21+
- content: "Reference the image by the `latest` tag to ensure the platform always pulls the most recent build."
22+
isCorrect: false
23+
explanation: "Tags like `latest` can move to a different image over time, which reduces traceability and can lead to deploying an unintended artifact."
24+
- content: "Rebuild the image locally on each environment to ensure the image matches the environment."
25+
isCorrect: false
26+
explanation: "Rebuilding in each environment can produce different artifacts and doesn't improve traceability. A single, immutable artifact is easier to audit and promote."
27+
- content: "A new revision starts but shouldn't receive traffic while you investigate. Which action removes the revision from traffic without deleting it?"
28+
choices:
29+
- content: "Run `az containerapp revision deactivate` for the revision."
30+
isCorrect: true
31+
explanation: "Deactivating a revision stops it from receiving traffic while keeping it available for inspection and later cleanup."
32+
- content: "Run `az containerapp revision delete` for the revision."
33+
isCorrect: false
34+
explanation: "Deleting removes the revision and makes investigation and comparison harder. Deactivation is the safer first step during troubleshooting."
35+
- content: "Run `az containerapp stop` for the container app."
36+
isCorrect: false
37+
explanation: "Stopping the app affects all revisions for the app and is typically too broad when the goal is to isolate one revision."
38+
- content: "A revision fails readiness checks immediately after deployment. Which issue is the most common root cause you should validate first?"
39+
choices:
40+
- content: "The readiness probe targets the wrong port or path for the container’s HTTP server."
41+
isCorrect: true
42+
explanation: "Probe misconfiguration is a frequent cause of immediate readiness failure, especially during image updates that change ports or routes."
43+
- content: "The container image is too small to include all required libraries."
44+
isCorrect: false
45+
explanation: "Image size doesn't directly determine library availability. Missing dependencies show up as application startup errors, not as a general image size issue."
46+
- content: "The container app environment can't route traffic to the public internet."
47+
isCorrect: false
48+
explanation: "Outbound routing issues can cause failures for dependency calls, but immediate readiness failures are more commonly due to probe settings or startup behavior."
49+
- content: "You suspect only one revision has a runtime exception after an update. What is the most effective first step to confirm the problem?"
50+
choices:
51+
- content: "Stream the container app logs and filter by revision while reproducing the request."
52+
isCorrect: true
53+
explanation: "Logs provide direct evidence of runtime exceptions and help you tie errors to a specific revision and time window."
54+
- content: "Delete older revisions to reduce noise in troubleshooting output."
55+
isCorrect: false
56+
explanation: "Deleting revisions removes rollback options and useful comparison points. Confirm the root cause first, then clean up later."
57+
- content: "Increase CPU and memory allocations before investigating."
58+
isCorrect: false
59+
explanation: "Resource increases can mask symptoms and increase cost. Confirm the failure mode with logs and health status first."
60+
- content: "Your AI API experiences high latency and log messages indicate CPU throttling during peak traffic. Which change most directly addresses the throttling?"
61+
choices:
62+
- content: "Increase the per-replica CPU allocation, and then reassess scaling rules based on throughput."
63+
isCorrect: true
64+
explanation: "CPU throttling indicates the replica doesn't have enough CPU for its workload. Increasing CPU per replica is a direct fix, and you can then tune scaling for cost and throughput."
65+
- content: "Deactivate the newest revision to reduce load on the system."
66+
isCorrect: false
67+
explanation: "Deactivation changes which revision receives traffic but doesn't directly resolve CPU limits if the active revision still runs underprovisioned."
68+
- content: "Switch the image reference from digest to tag."
69+
isCorrect: false
70+
explanation: "Image identity affects traceability, not runtime CPU availability."
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.manage-containers-azure-container-apps.summary
3+
title: Summary
4+
metadata:
5+
title: Summary
6+
description: Summary
7+
ms.date: 01/26/2026
8+
author: jeffkoms
9+
ms.author: jeffko
10+
ms.topic: unit
11+
durationInMinutes: 2
12+
content: |
13+
[!include[](includes/9-summary.md)]
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
AI applications require fast iteration without sacrificing reliability. When you ship new model versions, dependency updates, or prompt logic, you need deployment controls that let you roll forward confidently and roll back quickly when a change introduces errors or latency regressions. This module guides you through managing containerized workloads on Azure Container Apps across the day-two lifecycle.
2+
3+
Imagine you’re a developer building an AI document processing pipeline. The system exposes an HTTP API that accepts PDFs, and it runs a background worker that performs OCR and classification. Your team deploys both services to Azure Container Apps because you want managed scaling, integrated logging, and a simplified operational model.
4+
5+
You push new container images several times a day as you tune prompts, update model routing, and fix reliability issues. During one rollout, a new revision never becomes ready because it fails health probes. Users continue to hit the older revision, but the on-call engineer still needs to diagnose the failure quickly. At the same time, your platform team expects you to keep revision history clean, to avoid runaway resource cost, and to use logs instead of shell access.
6+
7+
This module focuses on the operational decisions and tools you use to keep Container Apps healthy while you ship frequently. You learn how image updates create revisions, how to manage traffic and rollback, and how to troubleshoot common failures using logs and probe signals.
8+
9+
After completing this module, you’ll be able to:
10+
11+
- Update container images and manage revisions safely during development and release cycles, including activation, deactivation, rollback, and clean up.
12+
- Perform app lifecycle operations, including start, stop, and restart, and diagnose failing revisions.
13+
- Monitor logs and troubleshoot common revision and runtime issues.
14+
- Configure liveness and readiness probes and troubleshoot probe failures.
15+
- Optimize container resources and scaling settings to balance cost and performance.
16+
17+
> [!NOTE]
18+
> All command examples in this module use Azure CLI patterns that you can adapt to your environment. Azure Container Apps features and Azure CLI flags change over time, so validate the exact syntax against the current documentation before you automate these commands.
19+
20+
## Additional resources
21+
22+
If you want more context before you start the hands-on units, review the core product concepts first. These links provide the baseline terminology for environments, revisions, and the CLI surface you use throughout the module.
23+
24+
- [Azure Container Apps overview](/azure/container-apps/overview)
25+
- [Azure Container Apps revisions](/azure/container-apps/revisions)
26+
- [Azure CLI: az containerapp](/cli/azure/containerapp)

0 commit comments

Comments
 (0)