Skip to content

Latest commit

 

History

History
349 lines (283 loc) · 20.4 KB

File metadata and controls

349 lines (283 loc) · 20.4 KB

AZ-104 Azure Administrator Training

Comprehensive, hands-on training materials for Microsoft Azure Administrator (AZ-104) certification

This repository provides structured learning paths combining conceptual lessons with practical labs, covering all five core domains of Azure administration.

📋 Repository Overview

Structure: Each module contains conceptual lessons and hands-on labs organized by topic

  • Lessons: Theory, text-based architecture diagrams, and best practices
  • Labs: Two tracks per module: labs/cli-arm/ and labs/portal/
  • Parameterization: All labs use variables and .env files for portable, reusable configuration
  • Cleanup: Every lab includes explicit cleanup steps (e.g., az group delete, rm -f .env)
  • Portal Labs: All portal labs are written as detailed, step-by-step instructions (not just high-level)

Default Configuration:

  • Region: australiaeast
  • Environment: .env files for portable configuration

✅ How to Use This Repository

For the best learning flow, use the repository in this order:

  1. Read docs/prerequisites.md and docs/cost-safety.md.
  2. Review the module README.md to understand scope and outcomes.
  3. Study the lesson content before starting the matching lab.
  4. Choose one primary lab track per exercise:
    • labs/cli-arm/ for CLI-driven execution
    • labs/portal/ for click-by-click Azure Portal practice
  5. Complete the validation steps, then run cleanup immediately.

Operational note: Monitoring, backup, and some control-plane actions can take several minutes to appear. Always allow time for Azure to finish provisioning or ingesting data before assuming a step failed.


🎓 Training Modules

Module 01: Identity & Governance

Focus: Azure AD (Entra ID), RBAC, managed identities, and governance controls

📖 Lessons

🧪 Labs

Module 02: Virtual Networking

Focus: VNets, subnets, NSGs, peering, routing, DNS, and load balancing

📖 Lessons

🧪 Labs

Module 02 lab quality baseline:

  • CLI + ARM labs are fully parameterized with .env and include validation + cleanup.
  • Portal labs are detailed step-by-step and aligned with equivalent CLI outcomes.
  • Networking diagrams in labs are text-based (no Mermaid).

Module 03: Azure Storage

Focus: Storage account design, redundancy, blob lifecycle, Azure Files, and secure data access

📖 Lessons

🧪 Labs

Module 03 lab quality baseline:

  • CLI + ARM labs are fully parameterized with .env and include validation + cleanup.
  • Portal labs are detailed step-by-step and aligned with equivalent CLI outcomes.
  • Storage lab diagrams are text-based (no Mermaid).

Module 04: Compute Resources

Focus: VM operations, availability design, scaling strategy, App Service administration, and container runtimes

📖 Lessons

  • Virtual Machines - VM resource model, lifecycle states, dependency troubleshooting, and secure operations
  • Availability Sets & Zones - Availability set versus zonal architecture and resilience trade-offs
  • Scaling - Scale up/down versus out/in, VMSS autoscale policy design, and App Service plan scaling semantics
  • App Service - Plan tiers, app configuration, deployment slots, and networking behavior
  • Containers: ACR, ACI & ACA - Image registry workflows, runtime selection, and secure image pull patterns

🧪 Labs

Module 04 lab quality baseline:

  • CLI + ARM labs are fully parameterized with .env and include validation + cleanup.
  • Portal labs are detailed step-by-step and aligned with equivalent CLI outcomes.
  • Compute lab diagrams are text-based (no Mermaid).

Module 05: Monitoring & Backup

Focus: Azure Monitor observability, operational alerting, backup recoverability, and resilience planning

📖 Lessons

  • Azure Monitor Foundations - Signal taxonomy, data routing patterns, and troubleshooting workflow across metrics, activity logs, and resource logs
  • Log Analytics & KQL - Workspace/table model, query design, and collection-path precision for operational investigation
  • Alerts & Action Groups - Alert type selection, noise-control strategy, and action routing design for reliable response
  • Azure Backup - Vault/policy/recovery-point behavior, restore paths, and governance practices
  • Azure Site Recovery - Replication, failover/failback lifecycle, and DR validation expectations
  • Availability & Resilience - SLA, RTO/RPO design reasoning and HA/Backup/DR decision alignment

🧪 Labs

Module 05 lab quality baseline:

  • CLI + ARM labs are fully parameterized with .env and include explicit validation + cleanup.
  • Portal labs are detailed step-by-step and aligned with equivalent CLI outcomes.
  • Monitoring diagrams in lessons/labs are text-based (no Mermaid).

🚀 Getting Started

One-Time Setup

Run this script to install all required tools and authenticate with Azure:

./shared/scripts/az_login.sh

What it does:

  • ✅ Installs Azure CLI (if not present)
  • ✅ Installs Bicep CLI (for infrastructure as code)
  • ✅ Installs jq (for JSON parsing)
  • ✅ Logs you into Azure
  • ✅ Displays your active subscription

Note: You only need to run this once per environment. If already logged in, just skip this step.


Best Practices

  • Run setup first: Use ./shared/scripts/az_login.sh before starting a lab.
  • Read the guide before execution: Understand the objective, prerequisites, validation, and cleanup steps.
  • Choose the correct lab track: Use either the CLI + ARM or Portal workflow for the same learning outcome.
  • Use .env files consistently: Keep variables portable and do not commit local lab state.
  • Expect Azure timing delays: Monitoring ingestion, backup jobs, and some control-plane actions can take time.
  • Watch spend and clean up immediately: Delete the lab resource group and remove the local .env file when finished.

Tip: To list remaining AZ-104 lab resource groups, run:

az group list --query "[?starts_with(name,'az104-')].{Name:name,Location:location}" -o table

📁 Repository Structure

.
├── README.md
├── docs/
│   ├── cost-safety.md
│   ├── naming-standards.md
│   ├── prerequisites.md
│   └── toc.md
├── modules/
│   ├── 01-identity/
│   │   ├── README.md
│   │   ├── labs/
│   │   │   ├── cli-arm/
│   │   │   │   ├── 01-rbac-role-assignment.md
│   │   │   │   ├── 02-managed-identity-storage-access.md
│   │   │   │   ├── 03-tags-lock-policy.md
│   │   │   │   └── 04-entra-users-groups-rbac.md
│   │   │   └── portal/
│   │   │       ├── 01-rbac-role-assignment.md
│   │   │       ├── 02-managed-identity-storage-access.md
│   │   │       ├── 03-tags-lock-policy.md
│   │   │       └── 04-entra-users-groups-rbac.md
│   │   └── lessons/
│   │       ├── 01-entra-id-basics.md
│   │       ├── 02-rbac.md
│   │       ├── 03-managed-identities.md
│   │       ├── 04-azure-policy.md
│   │       └── 05-resource-management-locks-tags.md
│   ├── 02-networking/
│   │   ├── README.md
│   │   ├── labs/
│   │   │   ├── cli-arm/
│   │   │   │   ├── 01-create-vnet-subnets-nsg.md
│   │   │   │   ├── 02-vnet-peering-connectivity.md
│   │   │   │   ├── 03-udr-routing-simulation.md
│   │   │   │   ├── 04-private-endpoint-storage-dns.md
│   │   │   │   └── 05-basic-load-balancer.md
│   │   │   └── portal/
│   │   │       ├── 01-create-vnet-subnets-nsg.md
│   │   │       ├── 02-vnet-peering-connectivity.md
│   │   │       ├── 03-udr-routing-simulation.md
│   │   │       ├── 04-private-endpoint-storage-dns.md
│   │   │       └── 05-basic-load-balancer.md
│   │   └── lessons/
│   │       ├── 01-vnet-subnets.md
│   │       ├── 02-vnet-peering.md
│   │       ├── 03-nsg-asg.md
│   │       ├── 04-routing-udr.md
│   │       ├── 05-azure-dns.md
│   │       ├── 06-private-endpoints.md
│   │       └── 07-load-balancing.md
│   ├── 03-storage/
│   │   ├── README.md
│   │   ├── labs/
│   │   │   ├── cli-arm/
│   │   │   │   ├── 01-storage-account-blob-container.md
│   │   │   │   ├── 02-lifecycle-policy.md
│   │   │   │   ├── 03-azure-files-share.md
│   │   │   │   └── 04-sas-vs-rbac.md
│   │   │   └── portal/
│   │   │       ├── 01-storage-account-blob-container.md
│   │   │       ├── 02-lifecycle-policy.md
│   │   │       ├── 03-azure-files-share.md
│   │   │       └── 04-sas-vs-rbac.md
│   │   └── lessons/
│   │       ├── 01-storage-accounts-redundancy.md
│   │       ├── 02-blob-lifecycle.md
│   │       ├── 03-azure-files.md
│   │       └── 04-storage-security-sas-rbac.md
│   ├── 04-compute/
│   │   ├── README.md
│   │   ├── labs/
│   │   │   ├── cli-arm/
│   │   │   │   ├── 01-deploy-vm.md
│   │   │   │   ├── 02-vm-availability.md
│   │   │   │   ├── 03-vmss-autoscale.md
│   │   │   │   ├── 04-app-service-deploy.md
│   │   │   │   └── 05-acr-aci-container.md
│   │   │   └── portal/
│   │   │       ├── 01-deploy-vm.md
│   │   │       ├── 02-vm-availability.md
│   │   │       ├── 03-vmss-autoscale.md
│   │   │       ├── 04-app-service-deploy.md
│   │   │       └── 05-acr-aci-container.md
│   │   └── lessons/
│   │       ├── 01-virtual-machines.md
│   │       ├── 02-availability-sets-zones.md
│   │       ├── 03-scaling.md
│   │       ├── 04-app-service.md
│   │       └── 05-containers-acr-aci-aca.md
│   └── 05-monitoring/
│       ├── README.md
│       ├── labs/
│       │   ├── cli-arm/
│       │   │   ├── 01-enable-vm-insights.md
│       │   │   ├── 02-create-alert-action-group.md
│       │   │   ├── 03-backup-and-restore-vm.md
│       │   │   └── 04-service-health-resource-health-alerts.md
│       │   └── portal/
│       │       ├── 01-enable-vm-insights.md
│       │       ├── 02-create-alert-action-group.md
│       │       ├── 03-backup-and-restore-vm.md
│       │       └── 04-service-health-resource-health-alerts.md
│       └── lessons/
│           ├── 01-azure-monitor.md
│           ├── 02-log-analytics-kql.md
│           ├── 03-alerts-action-groups.md
│           ├── 04-azure-backup.md
│           ├── 05-azure-site-recovery.md
│           └── 06-availability-resilience.md
└── shared/
    └── scripts/
        └── az_login.sh

📊 5 modules • 27 lessons • 44 labs (22 CLI+ARM + 22 Portal) • 82 total files

🛡️ Cost Safety

All labs are designed with cost optimization:

  • Small VM sizes (B1s tier)
  • Short-lived resources
  • Async deletion (--no-wait)
  • Default to australiaeast region
  • .env files excluded from version control

🎯 Exam Preparation

These materials align with the official AZ-104 exam domains:

  • Identity & Governance (15-20%)
  • Storage (15-20%)
  • Compute (20-25%)
  • Networking (25-30%)
  • Monitoring & Backup (10-15%)

Good luck with your certification! 🎓


👤 Author: Dr. Georges Bou Ghantous