This project was created as a hands-on practice resource for preparing for the AZ-204 exam. It demonstrates how to build, package, and deploy containerized applications using various Azure Compute services while following real-world DevOps practices. This project contains three iterations of containerized solutions with Azure Compute.
I have also added a COMMANDS.md file with relevant Azure CLI commands for Azure Containerized solutions, and a QA.md file with some exam relevant questions for containerized solutions.
- A terraform configuration for provisioning resources on Azure.
- A small python application with necessary code / functionality for testing / verifying the provisioned resources.
- A
Dockerfilefor building and pushing an application image to cloud. - A set of scripts for automatization.
- A
README.mdfile with extra information.
- How to set up the necessary resources and in which order to create and publish a container image to Azure Container Registry.
- Everything from First iteration.
- Instantiate an Azure Container Group (Azure Container Instance) for running the containerized application uploaded to an ACR.
- Use of environment variables through Terraform -> Application.
- How to enable basic Health and Liveness probing with Azure and in-code endpoints.
- Everything from Second Iteration.
- How to provision and deploy an application to Azure Container Apps.
- How to configure external ingress for public access.
- How to implement HTTP-based auto-scaling rules.
- How to test and verify scaling under simulated load.
- How to Create and manage Revisions.
- How to configure traffic splitting between revisions through the Azure CLI.
| Feature | Basic | Standard | Premium |
|---|---|---|---|
| Storage | 10 GB | 100 GB | 500 GB |
| Webhooks | ❌ | ✅ | ✅ |
| Geo-replication | ❌ | ❌ | ✅ |
| Content trust | ❌ | ❌ | ✅ |
| Private endpoints | ❌ | ❌ | ✅ |
| Customer-managed keys | ❌ | ❌ | ✅ |
Exam Tip: Premium is the only SKU supporting geo-replication and content trust
-
Admin Account (not recommended for production)
az acr update --admin-enabled true- Simple username/password
-
Service Principal (CI/CD scenarios)
az ad sp create-for-rbac --name myapp --role acrpush- Granular RBAC permissions
-
Managed Identity (recommended for Azure services)
- System-assigned or user-assigned
- No credential management needed
-
Repository-scoped Tokens (fine-grained access)
- Scope to specific repositories
- Time-limited access
Exam Tip: Know when to use each method
- The combination of CPU and memory are allways 1:2, so:
[cpu: 0.25, memory: 0.5Gi]
[cpu: 0.5, memory: 1.0Gi]
[cpu: 0.75, memory: 1.5Gi]
# And so on ...