AZ-104: Azure Administrator — Study Guide
Complete study guide for the AZ-104 Azure Administrator Associate exam. Covers identities & governance, storage, compute, networking, and monitoring — with hands-on lab guidance.
Domains
11
Key concepts
12
Study time
6-8 weeks
Exam Overview
| Detail | Info |
|---|---|
| Exam code | AZ-104 |
| Duration | 100 minutes |
| Questions | 40–60 (multiple choice, case studies, labs) |
| Passing score | 700 / 1000 |
| Cost | ~$165 USD |
| Validity | Renew annually (free online assessment) |
| Prerequisite | AZ-900 recommended but not required |
Domain Weightings
| Domain | Weight |
|---|---|
| Manage Azure Identities and Governance | 20–25% |
| Implement and Manage Storage | 15–20% |
| Deploy and Manage Azure Compute Resources | 20–25% |
| Implement and Manage Virtual Networking | 15–20% |
| Monitor and Maintain Azure Resources | 10–15% |
AZ-104 Index
- Domain 1: Identities and Governance (20–25%)
- Microsoft Entra ID (formerly Azure AD)
- Key RBAC roles
- Governance
- Managed Identities
- Manage Azure Identities and Governance deep dives
- Azure Administration
- Understanding Azure Resource Manager deep dive
- Using the Azure Portal and Cloud Shell deep dive
- Using Azure CLI and Azure PowerShell deep dive
- Discovering Azure Resource Manager deep dive
- Using Azure Resource Manager deep dive
- Discovering Azure Bicep deep dive
- Migrating to Azure Bicep deep dive
- Azure Administration Exam Tips deep dive
- Governance and Compliance
- Azure Administration
- Domain 2: Storage (15–20%)
- Storage account types
- Blob storage tiers
- Key storage features to know
- Implement and Manage Storage deep dives
- Azure Storage
- Understanding Azure Storage Accounts deep dive
- Conceptualizing Azure Blob Storage deep dive
- Configuring Object Replication deep dive
- Configuring Blob Lifecycle Management deep dive
- Securing Storage Accounts deep dive
- Configuring Azure Files deep dive
- Managing Azure Files deep dive
- Providing Access to Azure Files deep dive
- Storage Utilities deep dive
- Azure Storage Exam Tips deep dive
- Azure Storage
- Domain 3: Compute (20–25%)
- Domain 4: Virtual Networking (15–20%)
- Core networking concepts
- Connectivity options
- Load balancing
- Azure DNS
- Implement and Manage Virtual Networking deep dives
- Introduction to Virtual Networking
- Conceptualizing Virtual Networks deep dive
- Creating Virtual Networks deep dive
- Managing Public and Private Connectivity deep dive
- Routing Inside Virtual Networks deep dive
- Configuring Azure VNet Peering deep dive
- Network Security Groups deep dive
- Application Security Groups deep dive
- Troubleshooting Connectivity in Azure deep dive
- Introduction to Virtual Networking Exam Tips deep dive
- Load Balancing and DNS
- Network Integration
- Introduction to Virtual Networking
- Domain 5: Monitor and Maintain (10–15%)
- Hands-on Lab Focus Areas
- Study Plan (6–8 Weeks)
- Key Resources
- Common Exam Traps
Domain 1: Identities and Governance (20–25%)
Microsoft Entra ID (formerly Azure AD)
- Users — create, invite guests (B2B), bulk import, dynamic groups.
- Groups — Security groups (access) and Microsoft 365 groups. Dynamic membership via attribute rules.
- RBAC — assign built-in or custom roles at Management Group / Subscription / Resource Group / Resource scope.
- Administrative Units — delegate admin to a subset of users (e.g., regional IT teams).
Key RBAC roles
| Role | Permissions |
|---|---|
| Owner | Full access + manage access |
| Contributor | Full resource access, cannot grant access |
| Reader | Read only |
| User Access Administrator | Manage access, not resources |
Custom roles — JSON definition with specific Actions, NotActions, DataActions. Assigned at subscription or resource group scope.
Governance
- Management Groups — hierarchy above subscriptions; apply RBAC and Policy to many subscriptions at once.
- Azure Policy — enforce rules (Deny, Audit, DeployIfNotExists, Modify). Initiatives group multiple policies.
- Resource Locks —
CanNotDeleteorReadOnly. Overrides all RBAC — even Owners cannot delete a locked resource. - Tags — key-value metadata for organisation and cost attribution. Max 50 tags per resource.
Managed Identities
- System-assigned — tied to one resource; deleted with it.
- User-assigned — standalone; can be assigned to multiple resources.
- Use managed identities to authenticate to Azure services (Key Vault, Storage) without storing credentials.
Manage Azure Identities and Governance deep dives
These lessons follow the source AZ-104 certification-theory hierarchy and expand the domain summary into practical administrator-level notes.
Azure Administration
Understanding Azure Resource Manager deep dive
Structured Summary + Deep-Dive for Exam & Architecture Clarity
Primary service
- Azure Resource Manager
Official documentation
1. Azure Cloud Fundamentals – The Hierarchy
Azure is built in logical layers. Understanding this hierarchy is foundational for every Azure exam and real-world architecture.
Level 1: Resources (Smallest Unit)
Resources are the building blocks of Azure.
Examples
- Virtual Machines
- Storage Accounts
- Virtual Networks
- Databases
- App Services
Each resource
- Belongs to one resource group
- Exists in one region
- Has a resource provider type
- Is managed through ARM
Think of resources as individual cloud components providing
- Compute
- Storage
- Networking
- Security
- Identity
- Application hosting
Level 2: Resource Groups (Logical Containers)
A Resource Group (RG) is a logical container for resources.
Characteristics
- Resources can only belong to one resource group
Resource groups help organize by
- Lifecycle
- Environment (Dev/Test/Prod)
- Department
- Application
- Security boundary
Important behaviors
- Deleting a resource group deletes ALL contained resources
- RBAC can be applied at RG level
- Tags can be applied at RG level
Docs
Level 3: Subscriptions (Billing + Governance Boundary)
A subscription is
- A billing boundary
- A management boundary
- A security boundary (RBAC scope)
- A quota boundary
Key facts
- Resource groups live inside subscriptions
- Resources are billed per subscription
Organizations often use multiple subscriptions for
- Departments
- Cost separation
- Compliance
- Environments
Docs
2. What is Azure Resource Manager (ARM)?
Azure Resource Manager is
- The deployment and management service for Azure
- The control plane of Azure
- The orchestration layer
ARM does NOT directly manipulate resources.
Instead
- Client (Portal/CLI/PowerShell)
- → ARM
- → Resource Provider
- → Resource
3. How ARM Works Internally
When you create or modify a resource
You send a request via
- Azure Portal
- Azure CLI
- Azure PowerShell
- REST API
The request goes to ARM.
ARM routes the request to the appropriate Resource Provider.
The Resource Provider performs the operation.
4. Resource Providers (Critical Exam Concept)
Resource Providers (RPs) are services that manage specific resource types.
Examples
- Microsoft.Compute -> Virtual Machines
- Microsoft.Storage -> Storage Accounts
- Microsoft.Network -> VNets
- Microsoft.Web -> App Services
Each resource type belongs to a provider namespace
Example
- Microsoft.Storage/storageAccounts
Docs
5. Control Plane vs Data Plane
This distinction is essential.
Control Plane (ARM)
Operations like
- Create VM
- Delete Storage Account
- Modify Networking
- Assign RBAC
Managed via ARM.
Data Plane
Operations like
- Upload Blob
- Read File
- Insert Table Entity
Handled directly by the service endpoint.
ARM governs control plane only.
6. Azure Identity & Trust Model
Azure uses identity-centric security.
Identity service
- Microsoft Entra ID
Docs
Tenant
A tenant is
- An identity boundary
- A directory of users, groups, service principals
Important
- A subscription can trust only ONE tenant
- A tenant can manage multiple subscriptions
This is the trust relationship.
How Access Is Controlled
- User logs in -> Authenticated via Entra ID
- Entra issues token -> Token sent to ARM
- ARM validates RBAC -> Routes request
If no RBAC role assignment
Access denied.
7. ARM Deployment Model
ARM enables
- Declarative deployments
- Infrastructure as Code (IaC)
- Repeatable deployments
Supported via
- ARM Templates (JSON)
- Bicep
- Terraform (via ARM APIs)
Example ARM template defines
- Resource
- Properties
- Dependencies
- Parameters
Docs
8. Benefits of ARM Model
Before ARM, Azure used "classic" deployment model.
ARM improvements
- Role-based access control
- Resource tagging
- Resource grouping
- Template-based deployment
- Consistent API layer
- Dependency management
- Idempotent deployments
Classic model is deprecated.
9. Management Scope Hierarchy
Azure management hierarchy
- Tenant
- → Management Groups
- → Subscriptions
- → Resource Groups
- → Resources
RBAC can be applied at any level.
Docs
- azure / governance / management groups / overview
- 🔟 Governance Capabilities via ARM
ARM integrates with
- Azure RBAC
- Azure Policy
- Azure Blueprints
- Tags
- Locks
These operate through ARM control plane.
1️⃣1️⃣ Security Model Summary
Security flow
- User
- → Auth via Entra
- → Token issued
- → ARM validates
- → Resource provider executes
No direct subscription access without tenant trust.
1️⃣2️⃣ Common Exam Pitfalls
- Resource groups are billing boundaries → False
- Subscriptions can trust multiple tenants → False
- ARM directly manages data plane → False
- Resource providers must be registered → True
- Tenant = subscription → False
- Deleting resource group deletes contained resources → True
1️⃣3️⃣ Real-World Architecture Example
Scenario
Company has
- Tenant A
- → 5 Subscriptions
- → Dev, Test, Prod resource groups
Each subscription
- Linked to same tenant
- RBAC enforced
- Separate billing
ARM ensures
- Policy enforcement
- Deployment standardization
- Controlled access
- 1️⃣4️⃣ Mental Model for Mastery
Think in layers
- Identity (Tenant)
- → Governance (Management Groups)
- → Billing (Subscriptions)
- → Organization (Resource Groups)
- → Services (Resources)
- → Orchestration (ARM)
- → Execution (Resource Providers)
- 1️⃣5️⃣ Final Key Takeaways
- Resources are smallest unit
- Resource Groups organize resources
- Subscriptions handle billing and governance
- ARM is the orchestration/control plane
- Resource Providers execute operations
- Tenant controls identity trust
- Subscription trusts only one tenant
Understanding ARM is foundational for
- AZ-104
- AZ-204
- AZ-305
- Enterprise architecture
- Governance design
Using the Azure Portal and Cloud Shell deep dive
Structured Summary + Deep Technical Understanding
Primary services covered
- Azure Portal
- Azure Cloud Shell
Official documentation
- Azure Portal: https://learn.microsoft.com/azure/azure-portal/azure-portal-overview
- Cloud Shell: https://learn.microsoft.com/azure/cloud-shell/overview
1. What is the Azure Portal?
The Azure Portal is
- A web-based graphical user interface (GUI)
- Accessible at: https://portal.azure.com
- Used to create, manage, monitor Azure resources
- Built on top of Azure Resource Manager (ARM)
It is a control-plane interface for Azure.
Anything you do in the portal
- Create VM
- Delete Storage Account
- Assign RBAC
- Configure networking
- → Sends REST API calls to Azure Resource Manager
- → ARM forwards request to the correct Resource Provider
(From previous lesson: Portal → ARM → Resource Provider → Resource)
2. Key Portal Components
Home Dashboard
Displays
- Recently used resources
- Favorites
- Quick-create templates
- Marketplace suggestions
You can customize dashboards for
- CPU usage
- Memory metrics
- Alerts
- Resource tiles
This provides a “single pane of glass” view of your environment.
Navigation Menu (Hamburger Menu)
Core options
- Create a resource
- Dashboard
- All services
- Favorites
- Resource groups
- Subscriptions
Search Bar (Highly Used Feature)
Search allows
- Find services
- Find specific resources
- Find documentation
- Access marketplace
- View search history
Important for speed in production environments.
3. Creating a Resource via Portal (Example: Virtual Machine)
Example resource
- Azure Virtual Machines
When creating a VM
You configure
- Resource Group (mandatory)
- Region
- Availability options
- OS image
- VM size
- Authentication
- Networking
- Disks
- Tags
Important concept
Deploying a VM automatically deploys dependent resources, such as
- Network Interface (Microsoft.Network)
- Public IP
- Virtual Network
- Disk
- NSG (optional)
These dependencies are deployed via ARM and respective Resource Providers.
Example providers
- Microsoft.Compute
- Microsoft.Network
- Microsoft.Storage
This demonstrates ARM orchestration in action.
4. Resource Type Namespaces (Exam-Relevant)
Every Azure resource has a type format
- Microsoft.ProviderName/resourceType
Examples
- Microsoft.Compute/virtualMachines
- Microsoft.Network/networkInterfaces
- Microsoft.Storage/storageAccounts
Understanding this helps in
- ARM templates
- RBAC
- Azure Policy
- Troubleshooting
5. Azure Cloud Shell Overview
Cloud Shell is
- A browser-based shell
- Pre-authenticated to your Azure account
- Runs inside Azure
- No local installation required
Supports
- Bash (Azure CLI)
- PowerShell (Az module)
6. Bash vs PowerShell in Cloud Shell
Bash
Uses
- Azure CLI (az commands)
Example
- az vm list
Best for
- Cross-platform scripting
- DevOps pipelines
- Linux-style automation
PowerShell
Uses
- Azure PowerShell (Az module)
Example
- Get-AzVM
Best for
- Windows admins
- PowerShell-native automation
- Advanced scripting logic
Switching shells restarts session.
7. Cloud Shell Storage Options
Two options
Persistent Storage (Recommended for real work)
Mounts a storage account
- Saves scripts
- Persists files
- Keeps configurations
Backed by
- Azure Files
No Storage Account
Ephemeral session
- No file persistence
- Temporary environment
- Good for quick tests
8. Cloud Shell Capabilities
- Upload / Download files
- Multiple sessions
- Built-in code editor
- Web preview (for apps running in shell)
- Settings customization
- Documentation help
Cloud Shell environment includes
- Azure CLI
- PowerShell Az module
- Git
- Terraform
- kubectl
- Helm
- Docker tools
- Python
- Node.js
It is essentially a preconfigured DevOps environment.
9. Portal vs Cloud Shell
| Feature | Azure Portal | Cloud Shell |
| --- | --- | --- |
| Interface | GUI | CLI |
| Ease of use | Very easy | Moderate |
| Automation | Limited | Powerful |
| Scriptable | No | Yes |
| Good for beginners | Yes | Intermediate+ |
| DevOps use | Minimal | High |
🔟 Control Plane Integration
Both Portal and Cloud Shell
- Use REST APIs
- Talk to Azure Resource Manager
- Operate in control plane
They do NOT directly manipulate data plane operations (e.g., blob uploads via service endpoint).
1️⃣1️⃣ Security Model
When using Portal or Cloud Shell
Authentication handled by
- Microsoft Entra ID
Process
User login → Token issued → Token sent to ARM → RBAC evaluated → Operation allowed or denied.
Cloud Shell inherits your Entra authentication session.
1️⃣2️⃣ Real-World Usage Scenarios
Portal is ideal for
- Learning Azure
- One-off deployments
- Monitoring
- Troubleshooting
- Visual configuration
Cloud Shell is ideal for
- Automation
- Bulk operations
- CI/CD tasks
- Infrastructure scripting
- Advanced management
- 1️⃣3️⃣ Common Exam Pitfalls
- Cloud Shell runs locally → False
- Cloud Shell requires installation → False
- Portal interacts directly with resources → False (via ARM)
- VM deployment only creates 1 resource → False
- Cloud Shell automatically persists files → Only if storage mounted
- 1️⃣4️⃣ Architecture Insight
When you click “Create VM” in portal
- Portal UI
- → REST API call
- → Azure Resource Manager
- → Microsoft.Compute
- → Microsoft.Network
- → Microsoft.Storage
- → Deployment orchestration
- → Resource provisioning
This demonstrates
ARM dependency management.
1️⃣5️⃣ Key Takeaways
- Azure Portal = GUI management interface
- Cloud Shell = CLI inside browser
- Both use ARM
- VM deployments create multiple dependent resources
- Resource types follow Microsoft.Provider/resourceType pattern
- Cloud Shell supports Bash and PowerShell
- Persistent storage optional but recommended
Understanding these tools is foundational for
- AZ-104
- AZ-204
- AZ-900
- DevOps engineering
- Azure governance
Using Azure CLI and Azure PowerShell deep dive
Structured Summary + Deep Understanding
Primary tools
- Azure CLI
- Azure PowerShell
Official documentation
- Azure CLI: https://learn.microsoft.com/cli/azure/
- Azure PowerShell: https://learn.microsoft.com/powershell/azure/
1. What is Azure CLI?
Azure CLI is
- A cross-platform command-line tool
- Used to manage Azure resources
- Bash-style syntax
- Script-friendly
✔ Available in
- Cloud Shell
- Windows
- macOS
- Linux
Core command structure
- az <service> <resource> <action>
Example
- az vm create
Azure CLI interacts with
- → Azure Resource Manager (control plane)
2. What is Azure PowerShell?
Azure PowerShell is
- A collection of PowerShell cmdlets (Az module)
- Object-oriented
- Built on .NET
- Used to manage Azure resources
Cmdlet naming pattern
- Verb-AzNoun
Example
- New-AzVM
Like CLI, it interacts with
- → Azure Resource Manager (control plane)
3. CLI vs PowerShell – Core Differences
| Feature | Azure CLI | Azure PowerShell |
| --- | --- | --- |
| Syntax | Bash-style | PowerShell cmdlets |
| Output | JSON (default) | Objects |
| Scripting | Shell scripts | PowerShell scripts |
| Best For | DevOps/Linux users | Windows admins |
| Learning Curve | Simpler | More powerful (object model) |
Both are equally capable.
Choice = Preference + Team ecosystem.
4. Demonstration Breakdown
Example scenario
Create a Virtual Network.
Resource example
- Azure Virtual Network
5. Azure CLI Workflow Explained
Step 1: List Resource Groups
az group list
Default output: JSON array.
Step 2: Filter Output Using --query
Azure CLI supports JMESPath queries.
Example
- az group list --query "[].name"
This extracts only the name field.
Step 3: Change Output Format
Default = JSON
Better for scripting = TSV (tab-separated value)
az group list --query "[].name" --output tsv
Why?
Removes brackets and quotes.
Step 4: Save to Variable
rgcli=$(az group list --query "[].name" --output tsv)
Use variable later
- echo $rgcli
Step 5: Create Virtual Network
az network vnet create \
- -name VNetCLI \
- -resource-group $rgcli \
- -address-prefix 10.0.0.0/16
Command pattern
- az network vnet create
- ProvisioningState: Succeeded
6. Azure PowerShell Workflow Explained
Step 1: Get Resource Group
Get-AzResourceGroup
Returns PowerShell objects (not JSON).
Step 2: Save to Variable
$rgps = Get-AzResourceGroup
PowerShell stores full object.
Step 3: Access Object Properties
$rgps.ResourceGroupName
$rgps.Location
Object model advantage
You can drill into properties directly.
Step 4: Create Virtual Network
New-AzVirtualNetwork `
- Name VNetPS `
- ResourceGroupName $rgps.ResourceGroupName `
- Location $rgps.Location `
- AddressPrefix 10.1.0.0/16
ProvisioningState: Succeeded
7. Key Architectural Concept
Both CLI and PowerShell
- User Command
- → REST API call
- → Azure Resource Manager
- → Resource Provider (Microsoft.Network)
- → Resource Created
They are simply different interfaces to ARM.
8. Object-Oriented Advantage (PowerShell)
PowerShell returns structured objects.
Example
- $vm = Get-AzVM
- $vm.HardwareProfile.VmSize
You can chain and pipe objects
- Get-AzVM | Where-Object {$_.Location -eq "eastus"}
This makes PowerShell powerful for complex logic.
9. JSON Advantage (CLI)
CLI returns JSON by default.
Best for
- DevOps pipelines
- Automation systems
Integration with tools like
- jq
- Terraform
- Ansible
Example
- az vm list --output table
Supports formats
- json
- jsonc
- table
- tsv
- yaml
- 🔟 When to Use Each
Use Azure CLI When:
- Working in Linux
- Writing CI/CD pipelines
- Using Bash
- Automating DevOps workflows
Use Azure PowerShell When:
- Using Windows ecosystem
- Need object manipulation
- Writing complex automation
- Managing enterprise scripts
1️⃣1️⃣ Cloud Shell Integration
In
- Azure Cloud Shell
You can
- Run Azure CLI (Bash)
- Run Azure PowerShell (PowerShell)
Switching shells restarts session.
Cloud Shell is pre-authenticated.
1️⃣2️⃣ Authentication Model
Both tools authenticate via
- Microsoft Entra ID
Process
- Login
- → Token issued
- → Token passed to ARM
- → RBAC enforced
- → Action executed
- 1️⃣3️⃣ Common Exam Pitfalls
- CLI and PowerShell manage data plane directly → False
- PowerShell returns JSON → False
- CLI cannot be scripted → False
- Both use ARM → True
- PowerShell is better than CLI → False (preference-based)
- 1️⃣4️⃣ Advanced Automation Insight
For production automation
- Use variables
- Use output formatting
- Validate provisioning state
- Handle errors
- Use idempotent scripts
Example
Check before creating
CLI
- az network vnet show --name VNetCLI
PowerShell
- Get-AzVirtualNetwork -Name VNetPS
- 1️⃣5️⃣ Mental Model
- Portal = GUI
- CLI = Scriptable Bash interface
- PowerShell = Scriptable object-oriented interface
All communicate with ARM.
1️⃣6️⃣ Final Takeaways
- Azure CLI = Bash-style, JSON-based
- Azure PowerShell = Object-oriented cmdlets
- Both automate Azure
- Both integrate with Cloud Shell
- Both use ARM
- Preference depends on ecosystem
These tools are foundational for
- AZ-104
- AZ-204
- DevOps roles
- Automation engineering
- Enterprise scripting
Discovering Azure Resource Manager deep dive
Structured Summary + Deep Technical Understanding
Primary service
- Azure Resource Manager
Official documentation
1. What Are ARM Templates?
ARM Templates are
- JSON files
- Used for Infrastructure as Code (IaC)
- Declarative deployment model
- Processed by Azure Resource Manager
They define what your infrastructure should look like — not how to build it step-by-step.
High-Level Flow
ARM Template (JSON)
→ Submitted to Azure Resource Manager
→ ARM validates against schema
→ ARM identifies required Resource Providers
→ Resources deployed
Example resource types
- Microsoft.Compute/virtualMachines
- Microsoft.Network/virtualNetworks
- Microsoft.Storage/storageAccounts
2. Why Use ARM Templates?
Core Benefits
- Repeatable deployments
- Consistent environments
- Automation-ready
- Faster recovery
- Reduced manual errors
- Version-controlled infrastructure
Real-World Use Case
Hub-and-Spoke Network Topology
Instead of manually building
- VNets
- Subnets
- NSGs
- Route tables
- Peering
- You codify it once -> deploy everywhere.
Dev/Test/Prod can use same template.
3. Deployment Scopes
ARM Templates can deploy at
- Resource Group scope (most common)
- Subscription scope
- Management Group scope
- Tenant scope
Most basic examples use Resource Group scope.
Docs
4. ARM Template Structure (Critical for Exams)
An ARM template contains structured sections.
1. $schema (Mandatory)
Defines
- Template schema version
- Validation rules
- IntelliSense behavior
Example
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#"
Important
- Date = schema version
- deploymentTemplate = resource group scope
2. contentVersion (Mandatory)
Example
- "contentVersion": "1.0.0.0"
Purpose
- Manual template versioning
- Rarely used heavily in real-world
- Git usually handles versioning
3. parameters (Optional but Powerful)
Used to
- Pass values at deployment time
- Make templates reusable
- Customize per environment
Example
- "parameters": {
- "environmentName": {
- "type": "string"
- }
- }
Use cases
- Dev -> dev-webapp
- Test -> test-webapp
- Prod -> prod-webapp
Same template, different inputs.
Parameter File Example
Separate file
- {
- "parameters": {
- "environmentName": {
- "value": "dev"
- }
- }
- }
Used in CI/CD pipelines.
5. Built-in vs User-Defined Functions
ARM supports
Built-in Functions
Examples
- resourceGroup()
- subscription()
- concat()
- parameters()
- variables()
- uniqueString()
Docs
User-Defined Functions (Optional Section)
Used when
- Complex logic needed
- Combining multiple built-in functions
Defined under
- "functions": []
Less common in basic deployments.
6. Variables Section
Variables
- Reusable values
- Reduce repetition
- Improve readability
Example
- "variables": {
- "location": "eastus"
- }
Or dynamic
- "variables": {
- "storageAccountName": "[concat('stor', uniqueString(resourceGroup().id))]"
- }
Variables improve
- Maintainability
- Template clarity
7. Resources Section (Core of Template)
This is the most important section.
Defines
- Resource type
- API version
- Name
- Location
- Properties
- Dependencies
Example
- "resources": [
- {
- "type": "Microsoft.Storage/storageAccounts",
- "apiVersion": "2022-09-01",
- "name": "[parameters('storageName')]",
- "location": "[resourceGroup().location]",
- "properties": {}
- }
- ]
Multiple resources can be deployed in one template.
Dependency Management
ARM automatically
- Detects dependencies
- Orders deployment
Or you can explicitly define
- "dependsOn": []
8. Outputs Section (Optional but Useful)
Used to
- Return values after deployment
- Feed values into pipelines
- Chain deployments
Example
- "outputs": {
- "storageAccountName": {
- "type": "string",
- "value": "[variables('storageAccountName')]"
- }
- }
Common in
- CI/CD
- Automation
- DevOps workflows
9. Deployment Modes
Two deployment modes
Incremental (Default)
Adds/updates resources defined in template
Does NOT delete unspecified resources
Complete
Deletes resources not defined in template
⚠ Complete mode can remove resources.
Docs
- azure / azure resource manager / templates / deployment modes
- 🔟 Declarative vs Imperative Model
ARM Templates are Declarative.
You define
Desired state.
ARM figures out
Execution order.
Unlike
- Azure CLI scripts -> Imperative (step-by-step).
- 1️⃣1️⃣ ARM vs Bicep
- ARM = JSON (verbose)
- Bicep = Simplified DSL that compiles to ARM
Modern best practice
Use Bicep instead of raw ARM.
Docs
- azure / azure resource manager / bicep / overview
- 1️⃣2️⃣ Common Exam Pitfalls
- ARM Templates are imperative → False
- Schema section is optional → False
- Parameters are mandatory → False
- Resources section optional → False
- Outputs required → False
- ARM Templates manage data plane → False
- 1️⃣3️⃣ Real-World Deployment Example
Scenario
Deploy
- VNet
- Subnets
- VM
- NSG
- Storage account
All defined in
Single ARM template.
Benefits
- One-click deployment
- Dev/Test/Prod reuse
- Disaster recovery ready
- Git-controlled infrastructure
- 1️⃣4️⃣ Infrastructure as Code (IaC) Philosophy
Advantages
- Version control
- Auditable changes
- CI/CD integration
- Reduced configuration drift
- Faster environment recreation
- 1️⃣5️⃣ Mental Model
Think of ARM template as
Blueprint of infrastructure.
You define
- Inputs (parameters)
- Internal logic (variables/functions)
- Resources
- Outputs
ARM enforces structure via schema.
1️⃣6️⃣ Final Key Takeaways
- ARM Templates = JSON Infrastructure as Code
- Declarative model
- Repeatable deployments
- Schema validates template
- Parameters enable reuse
- Resources define infrastructure
- Outputs enable automation
- Deployable at multiple scopes
ARM templates are foundational for
- AZ-104
- AZ-204
- AZ-305
- DevOps
- Cloud architecture
Using Azure Resource Manager deep dive
Structured Summary + Deep Technical Understanding
Primary service
- Azure Resource Manager
Official documentation
ARM templates overview: https://learn.microsoft.com/azure/azure-resource-manager/templates/overview
Deploy templates in portal: https://learn.microsoft.com/azure/azure-resource-manager/templates/deploy-portal
Quickstart templates: https://learn.microsoft.com/azure/azure-resource-manager/templates/template-samples
1. Core Concept: Everything in Azure Uses ARM Templates
Even when you deploy resources using
- Azure Portal
- Azure CLI
- Azure PowerShell
Behind the scenes
- An ARM template is generated
- Azure Resource Manager processes it
- Resource Providers deploy the resources
The portal is simply a GUI for generating ARM templates.
2. Exporting a Deployment as an ARM Template
During Deployment (Before Create)
When creating a resource (e.g., Web App)
- Go to Create Resource
- Fill configuration
- Go to Review + Create
- Select Download a template for automation
This shows
- The exact ARM template Azure will use
- Parameters and resource definitions
- Dependencies
This is extremely useful for
- Learning ARM structure
- Converting manual deployments to Infrastructure as Code
- Creating reusable templates
After Deployment (Existing Resources)
You can export ARM templates from completed deployments.
Steps
- Go to Resource Group
- Select Deployments
- Open a deployment
- Select Template
This shows the full template used for that deployment.
Important use case
- Reverse engineer existing infrastructure
- Standardize legacy environments
- Create reusable templates from production
3. Deploying a Custom ARM Template in Portal
You can manually deploy ARM templates from the portal.
Search for
- "Deploy a custom template"
This opens
- Template editor
- Quickstart templates
- Upload template option
4. Using Quickstart Templates
Azure provides public templates via
- Azure Quickstart Templates
Repository
Benefits
- Prebuilt production-ready templates
- Complex deployments (e.g., hub-spoke, AKS, multi-tier apps)
- Learning resource
5. Building an ARM Template Using Portal Editor
In the demonstration
- Start with blank template
- Add resource -> Virtual Network
- Add resource -> Virtual Machine
- Add resource -> Storage Account
- Link VM to existing VNet in template
The editor
- Automatically generates resource blocks
- Adds required variables
- Creates dependent resources (NIC, disk, etc.)
- Handles dependencies
This demonstrates
ARM handles dependency resolution automatically.
6. Example Resources Generated
When adding a VM, the template automatically included
- Virtual Network
- Network Interface
- Storage Account
- VM resource
- Variables for naming
- OS configuration parameters
This illustrates
Deploying one “simple” resource often creates multiple dependent resources.
7. Template Deployment Flow
After clicking Create
- Portal
- → ARM Template generated
- → Azure Resource Manager
- → Resource Providers
- → Deployment orchestrated
- ProvisioningState = Succeeded
8. Template Components Observed in Demo
The generated template contained
- $schema
- contentVersion
- parameters
- variables
- resources
Demonstrating real-world template structure.
9. Key Capabilities Demonstrated
- Export template before deployment
- Export template after deployment
- Use template editor
- Add multiple resources
- Link resources within template
- Deploy template via portal
🔟 Why This Is Important
ARM templates allow
- Standardized infrastructure
- Dev/Test/Prod parity
- Disaster recovery redeployment
- CI/CD automation
- Governance consistency
- 1️⃣1️⃣ Deployment Modes Reminder
ARM supports
- Incremental (default)
- Adds/updates defined resources
- Does not delete others
- Complete
- Removes resources not in template
- Use carefully
Docs
- azure / azure resource manager / templates / deployment modes
- 1️⃣2️⃣ ARM Templates in CI/CD
Common pipeline pattern
- Git repository
- → ARM template
- → Azure DevOps / GitHub Actions
- → ARM deployment task
- → Infrastructure provisioned
Outputs from template can feed into
- Subsequent pipeline steps
- Application deployments
- 1️⃣3️⃣ Real-World Example
Instead of manually creating
- VNet
- VM
- Storage account
- NIC
- NSG
You define them once in a template.
Then
- Deploy to Dev
- Deploy to Test
- Deploy to Prod
Same template, different parameter files.
1️⃣4️⃣ Common Exam Pitfalls
- ARM templates are only used in CLI → False
- Portal doesn’t use ARM → False
- Templates can’t be exported → False
- Templates only deploy one resource → False
- Dependencies must always be manually defined → Not always (ARM resolves automatically)
1️⃣5️⃣ Mental Model
Think of ARM templates as
Blueprints.
Portal = Blueprint generator
CLI = Blueprint executor
PowerShell = Blueprint executor
ARM = Construction manager
Resource Providers = Construction teams
1️⃣6️⃣ Final Key Takeaways
- Everything in Azure is ARM-driven
- Portal generates ARM templates behind the scenes
- You can export templates before and after deployment
- Templates allow repeatable infrastructure
- Multiple resources can be deployed together
- ARM resolves dependencies automatically
- Custom templates can be deployed directly from portal
ARM templates are foundational for
- AZ-104
- AZ-204
- AZ-305
- DevOps engineering
- Enterprise cloud architecture
Discovering Azure Bicep deep dive
Structured Summary + Deep Technical Understanding
Primary services involved
- Azure Bicep
- Azure Resource Manager
- Azure Cloud Shell
Official Documentation
Bicep syntax reference: https://learn.microsoft.com/azure/azure-resource-manager/bicep/file
Deploy Bicep with PowerShell: https://learn.microsoft.com/azure/azure-resource-manager/bicep/deploy-powershell
Deploy Bicep with CLI: https://learn.microsoft.com/azure/azure-resource-manager/bicep/deploy-cli
1. What Is Azure Bicep?
Azure Bicep is
- A domain-specific language (DSL) for deploying Azure resources
- A cleaner alternative to ARM JSON templates
- An abstraction layer over ARM templates
- Infrastructure as Code (IaC)
It simplifies writing Azure deployments.
2. Why Bicep Was Created
Problem with ARM templates
- JSON is verbose
- Difficult to read
- Hard to maintain at scale
- Nested brackets and quotes become messy
Example reality
- ARM JSON = machine-friendly
- Bicep = human-friendly
Bicep dramatically reduces
- Boilerplate
- Syntax clutter
- Complexity
3. Bicep vs ARM – Architecture Flow
ARM Workflow
Write ARM template (JSON)
Deploy template
ARM processes request
Resource Providers deploy resources
Bicep Workflow
Write Bicep file
Bicep compiles to ARM template
ARM processes template
Resource Providers deploy resources
Important
- 🚨 Bicep does NOT replace ARM
- 🚨 Bicep compiles into ARM JSON
- 🚨 ARM is still the engine
4. Bicep File Structure (From Demo)
The sample Bicep file included
- param location string = resourceGroup().location
- param webAppName string
- resource appServicePlan 'Microsoft.Web/serverfarms@2022-03-01' = {
...
}
resource webApp 'Microsoft.Web/sites@2022-03-01' = {
...
}
Key components observed
- Parameters
- Variables
- Resources
- Symbolic names
- Built-in functions
5. Understanding Key Bicep Concepts
Parameters
Used to pass values at deployment time.
Example
- param location string = resourceGroup().location
Meaning
- Type = string
- Default = resource group location
- Uses built-in ARM function
If no default is provided
Deployment will prompt user.
Built-in Functions
Example used
- resourceGroup().location
This retrieves
- The location of the resource group
- Makes template portable across regions
Docs
Symbolic Names (Very Important)
Example
resource appServicePlan ...
appServicePlan is NOT the deployed name.
It is
- A symbolic reference inside the template
- Used for linking resources
Example reference
- serverFarmId: appServicePlan.id
This means
Take the ID of that resource after deployment and assign it here.
This is how dependencies are managed cleanly in Bicep.
6. Quotation Rules Explained
In the demo
- name: webAppName
- location: location
No quotes because
- They reference parameters/variables
But
- name: 'HardCodedName'
Uses quotes because it's a literal string.
7. Handling Global Uniqueness (Web App Name Error)
Web App names must be globally unique.
Initial issue
Hardcoded
- name: 'AwesomeApp'
Error occurred
Website with given name already exists.
Solution
Create parameter
- param webAppName string
Now deployment prompts for unique name.
This makes template
- Reusable
- Environment-independent
- Production-ready
8. Deploying Bicep with PowerShell
Used in demo
- New-AzResourceGroupDeployment `
- ResourceGroupName $rg.ResourceGroupName `
- TemplateFile deploy.bicep
Deployment flow
- Bicep file
- → Compiled to ARM JSON
- → Sent to Azure Resource Manager
- → Resources deployed
9. Verifying Compilation
After deployment
- Resource Group
- → Deployments
- → Select deployment
- → Template
You see
- ARM JSON template
This confirms
- Bicep compiled into ARM
- ARM executed the deployment
- 🔟 Advantages of Azure Bicep
- | Feature | Benefit |
- | --- | --- |
- | Cleaner syntax | Easier to read |
- | Native Azure support | No external engine |
- | Symbolic names | Automatic dependency handling |
- | Modular design | Reusable components |
- | Built-in functions | Dynamic values |
| Full ARM parity | Can do everything ARM can |
1️⃣1️⃣ Advanced Capabilities (Beyond Demo)
Bicep also supports
- Modules (reusable template blocks)
- Loops (for deploying multiple resources)
- Conditions (deploy only if true)
- Existing resource references
- Secure parameters
Example loop
resource storageAccounts 'Microsoft.Storage/storageAccounts@2022-09-01' = [for i in range(0,3): {
name: 'storage${i}'
...
}]
1️⃣2️⃣ Where Bicep Fits in DevOps
Typical workflow
- Git Repository
- → Bicep files
- → CI/CD pipeline
- → Bicep compiled
- → ARM deployment
- → Azure infrastructure
Common tools
- Azure DevOps
- GitHub Actions
- Azure CLI
- PowerShell
- 1️⃣3️⃣ Exam-Relevant Points
- Bicep is GA (Generally Available)
- Bicep compiles to ARM JSON
- ARM remains underlying engine
- Symbolic names manage dependencies
- Parameters improve reusability
- Bicep supports same scopes as ARM (resource group, subscription, etc.)
- 1️⃣4️⃣ Bicep vs ARM Quick Comparison
- | ARM JSON | Bicep |
- | --- | --- |
- | Verbose | Concise |
- | Complex nesting | Clean structure |
- | Harder to maintain | Easier to refactor |
- | JSON syntax | Declarative DSL |
- | Native engine | Compiles to ARM |
- 1️⃣5️⃣ Mental Model
Think of Bicep as
- High-level language (like C#)
- ARM JSON as compiled IL
- Azure Resource Manager as runtime engine
- You write Bicep -> Azure runs ARM.
- 1️⃣6️⃣ Final Key Takeaways
- Azure Bicep simplifies ARM template authoring
- It is NOT a replacement engine
- It compiles into ARM templates
- Symbolic names enable clean resource linking
- Parameters enable reusable deployments
- Default values improve portability
- All Azure deployments ultimately use ARM
Migrating to Azure Bicep deep dive
Structured Summary + Deep Technical Understanding
Primary technologies involved
- Azure Bicep
- Azure Resource Manager
- Azure Cloud Shell
Official Documentation
Bicep CLI reference: https://learn.microsoft.com/azure/azure-resource-manager/bicep/bicep-cli
Decompile ARM to Bicep: https://learn.microsoft.com/azure/azure-resource-manager/bicep/decompile
Deploy Bicep with Azure CLI: https://learn.microsoft.com/azure/azure-resource-manager/bicep/deploy-cli
Deploy Bicep with PowerShell: https://learn.microsoft.com/azure/azure-resource-manager/bicep/deploy-powershell
1. Big Picture: Why Migrate from ARM to Bicep?
We already know
- ARM JSON
- → Talks to Azure Resource Manager
- → Talks to Resource Providers
- → Deploys resources
Bicep is
- A higher-level language
- Easier to read and write
- Fully compatible with ARM
- Automatically compiled into ARM JSON
So migration = converting existing ARM templates into cleaner Bicep files.
2. Key Tool: Azure Bicep CLI
Inside Cloud Shell (Bash)
- az bicep help
Important commands
- | Command | Purpose |
- | --- | --- |
- | build | Convert Bicep -> ARM JSON |
- | decompile | Convert ARM JSON -> Bicep |
These two commands enable full round-trip conversion.
3. Bicep → ARM (Build Command)
Command used
- az bicep build --file deploy.bicep --outfile test.json
What happens
- deploy.bicep
- → Compiled
- → test.json (ARM template generated)
This JSON file is exactly what Azure uses during deployment.
Important
- This happens automatically during normal Bicep deployment
- You can run it manually for inspection/debugging
4. Inspecting the Generated ARM Template
The generated JSON includes
- $schema
- contentVersion
- parameters
- variables
- resources
Example components seen
- Location parameter with default
- WebAppName parameter
- SKU variable
- LinuxFxVersion variable
- Microsoft.Web/serverfarms resource
- Microsoft.Web/sites resource
This confirms
Bicep preserves full ARM template structure.
5. ARM → Bicep (Decompile Command)
Command used
- az bicep decompile --file test.json
Output
- test.bicep
Important warning displayed
- ⚠ "Best effort decompilation"
Meaning
- Complex templates may not convert perfectly
- Manual cleanup/refactoring may be needed
- Especially true for advanced nested templates
Docs explicitly state decompilation is not guaranteed to be 100% clean.
6. Why Decompilation Might Need Refactoring
Possible issues in complex templates
- Nested deployments
- Linked templates
- Copy loops
- Advanced conditions
- Expressions rewritten awkwardly
- Redundant variables
After decompile
- Always review file
- Simplify expressions
- Replace hardcoded values with parameters
- Improve readability
7. Full Migration Workflow (From Demo)
Step 1 — Start with Bicep
- Step 2 — Build -> JSON
- Step 3 — Decompile JSON -> Bicep
Step 4 — Deploy new Bicep file
Deployment command used
- az deployment group create \
- -name DemoDeployment \
- -resource-group $rgName \
- -template-file test.bicep
This proves
- Decompilation result is fully deployable
- Round-trip conversion works
8. Verifying Deployment
Command used
- az resource list --resource-group $rgName --output table
Result showed
- App Service Plan
- Web App
- Cloud Shell storage account
Deployment state
- ProvisioningState = Succeeded
9. What This Demonstrates Architecturally
Bicep is NOT a separate deployment engine.
It always becomes
- Bicep
- → ARM JSON
- → Azure Resource Manager
- → Resource Providers
- → Resources
Even decompiled Bicep will go through ARM when deployed.
🔟 When Should You Migrate?
You should migrate ARM to Bicep if
- Templates are large and hard to maintain
- Teams struggle with JSON readability
- You want modular architecture
- You want easier parameter management
- You want better developer experience
- 1️⃣1️⃣ Enterprise Migration Strategy
Real-world approach
- Export existing ARM templates
- Decompile to Bicep
Refactor Bicep
- Extract modules
- Simplify parameters
- Improve naming
- Store in Git
- Integrate into CI/CD
- Retire legacy ARM JSON
- 1️⃣2️⃣ Advanced Migration Tips
- Use Modules
Break large templates into reusable modules
- module webApp './webapp.bicep' = {
- name: 'webAppDeployment'
- params: {
...
}
}
- Replace Hardcoded Values
Convert
- name: 'mywebapp'
Into
- param webAppName string
- name: webAppName
- Use Secure Parameters
- @secure()
- param adminPassword string
- 1️⃣3️⃣ Migration Caveats
- | Scenario | Risk |
- | --- | --- |
- | Linked templates | May require manual restructuring |
- | Copy loops | Might not convert cleanly |
- | Nested deployments | Often need cleanup |
- | Old API versions | Should be upgraded |
Always test in dev before production rollout.
1️⃣4️⃣ Bicep CLI Build vs Deploy
Important distinction
- Build
- Only compiles Bicep -> JSON
- No resources deployed
- Deploy
- Compiles AND deploys
Example deploy via CLI
- az deployment group create \
- -resource-group myRG \
- -template-file main.bicep
No need to manually build first.
1️⃣5️⃣ Mental Model
Think of migration like this
- ARM JSON = Assembly language
- Bicep = C#
- Decompile = reverse-engineering assembly back into C#
It works, but it may need cleanup.
1️⃣6️⃣ Key Exam Points
- Bicep build converts to ARM JSON
- Bicep decompile converts JSON to Bicep
- Decompile is best-effort only
- Bicep fully supports all ARM features
- Deployment scopes include resource group, subscription, management group
- Underlying engine is always Azure Resource Manager
1️⃣7️⃣ Final Takeaways
- Migrating to Bicep improves maintainability
- Bicep is production-ready (GA)
- ARM knowledge is still required
- Decompile helps accelerate migration
- Always review converted templates
- Round-trip conversion works
- Azure still deploys using ARM internally
Azure Administration Exam Tips deep dive
Exam Tips: Azure Administration
Structured Summary + Deep Understanding for Exam Readiness
Primary services covered
- Azure Resource Manager
- Azure Portal
- Azure Cloud Shell
- Azure CLI
- Azure PowerShell
- Azure Bicep
- Microsoft Entra ID
Official documentation
Azure Portal overview: https://learn.microsoft.com/azure/azure-portal/azure-portal-overview
Azure CLI: https://learn.microsoft.com/cli/azure/
Azure PowerShell: https://learn.microsoft.com/powershell/azure/
ARM templates: https://learn.microsoft.com/azure/azure-resource-manager/templates/overview
Bicep overview: https://learn.microsoft.com/azure/azure-resource-manager/bicep/overview
1. Azure Core Hierarchy (Critical for Exams)
Understand this structure clearly
- Resources -> Resource Groups → Subscriptions
Resources
Examples
- Virtual Machines
- Storage Accounts
- Virtual Networks
They are
- Azure-managed services
- The smallest deployable unit
- Always deployed into a resource group
Resource Groups
Logical container for resources
Used for lifecycle management
Used for access control (RBAC scope)
Used for grouping by environment (Dev/Test/Prod)
Important
Resources cannot exist outside a resource group.
Subscriptions
Contain resource groups
Act as billing boundary
Used for cost management
Provide quota limits
Exam trap
A subscription can have many resource groups.
A resource group cannot span subscriptions.
2. Azure Resource Manager (ARM) Architecture
All management operations flow through
- Azure Resource Manager
How it works
- User sends request (Portal / CLI / PowerShell)
- Request hits ARM REST API
- ARM forwards to Resource Provider
- Resource Provider performs action
Example
- Creating a VM -> ARM → Microsoft.Compute → VM deployed
Key Exam Concept
- ARM is the control plane
- Resource Providers handle resource-specific logic
3. Authentication & Identity
Authentication uses
- Microsoft Entra ID
When you log into
- Azure Portal
- Cloud Shell
- CLI
- PowerShell
You authenticate with Entra ID.
Important
- Subscription trusts ONE tenant
- Tenant can manage multiple subscriptions
- Access control enforced via RBAC
4. Azure Portal vs Cloud Shell
Azure Portal
Azure Portal
Web-based GUI
Uses ARM under the hood
Automatically generates ARM templates
Good for manual deployments
Azure Cloud Shell
Azure Cloud Shell
Built-in terminal in portal
Supports
- Bash (Azure CLI)
- PowerShell (Az module)
- Pre-authenticated using Entra ID
- No local installation needed
Exam tip
Cloud Shell already has Azure CLI and PowerShell installed.
5. Azure CLI vs Azure PowerShell
Azure CLI
Azure CLI
Bash-style syntax
Cross-platform
Uses az commands
Outputs JSON by default
Great for automation
Example
- az vm create
Azure PowerShell
Azure PowerShell
Uses Az module
Object-oriented
Strong integration with PowerShell scripting
Better for Windows admins
Example
- New-AzVM
Exam tip
Both use ARM under the hood.
Difference = syntax + scripting model.
6. ARM Templates – Exam Essentials
Mandatory properties
- | Property | Purpose |
- | --- | --- |
- | $schema | Defines template rules |
- | contentVersion | Template version |
- | resources | What gets deployed |
Optional properties
- | Property | Purpose |
- | --- | --- |
- | parameters | Input values |
- | variables | Store reusable values |
- | outputs | Return deployment values |
- | functions | Create custom logic |
Important exam point
ARM templates are JSON-based Infrastructure as Code.
7. QuickStart Templates
Azure provides ready-made templates via
- Azure QuickStart Templates (GitHub repository)
Used for
- Learning
- Complex deployments
- Production reference designs
8. Azure Bicep – Simplified IaC
Azure Bicep
Key facts
- Declarative DSL
- Easier than ARM JSON
- Compiles to ARM
- Fully supported (GA)
- Same capabilities as ARM
Workflow
- Bicep
- → Compiled to ARM JSON
- → ARM executes deployment
Exam trap
Bicep does NOT replace ARM.
ARM remains the deployment engine.
9. Migrating ARM to Bicep
Conversion methods
- az bicep build (Bicep → JSON)
- az bicep decompile (JSON → Bicep)
Important
Decompile is best-effort.
Manual refactoring may be required.
🔟 Automation & Scripting
Azure administration can be done without Portal
- Azure CLI locally
- Azure PowerShell locally
- CI/CD pipelines
- ARM templates
- Bicep templates
Portal is optional. ARM is mandatory.
1️⃣1️⃣ Exam-Focused Mental Models
Think in Layers
User
→ REST API
→ Azure Resource Manager
→ Resource Provider
→ Resource
Think in Scopes
Management Group
→ Subscription
→ Resource Group
→ Resource
Think in Deployment Models
Manual (Portal)
Scripted (CLI / PowerShell)
Declarative (ARM / Bicep)
1️⃣2️⃣ High-Probability Exam Questions
Expect scenarios like
- Where does billing occur? (Subscription)
- What manages resources? (Azure Resource Manager)
- What authenticates users? (Microsoft Entra ID)
- What converts Bicep to JSON? (Bicep compiler)
- Can Bicep deploy without ARM? (No)
- Can resources exist outside a resource group? (No)
- What tool supports scripting automation? (CLI & PowerShell)
- 1️⃣3️⃣ Final Takeaways
- Resources live inside Resource Groups
- Resource Groups live inside Subscriptions
- ARM manages all Azure deployments
- Authentication uses Entra ID
- Portal, CLI, PowerShell all call ARM
- ARM templates are JSON-based IaC
- Bicep simplifies ARM authoring
- Bicep compiles to ARM
- Decompile helps migrate ARM → Bicep
- Automation is key for real-world Azure administration
Governance and Compliance
Managing Subscriptions deep dive
Structured Summary + Deep Understanding for Exam & Real-World Azure Administration
Primary services involved
- Azure Subscription
- Azure Portal
- Azure Resource Manager
- Microsoft Entra ID
Official documentation
Subscriptions overview: https://learn.microsoft.com/azure/cost-management-billing/manage/subscriptions
Azure subscription limits & quotas: https://learn.microsoft.com/azure/azure-resource-manager/management/azure-subscription-service-limits
Cost Management overview: https://learn.microsoft.com/azure/cost-management-billing/cost-management-billing-overview
Enterprise Agreement: https://learn.microsoft.com/azure/cost-management-billing/manage/ea-overview
1. What Is an Azure Subscription?
An Azure subscription is
- A billing boundary
- A governance boundary
- A quota boundary
- A deployment scope boundary
It contains
- Resource Groups
- Resources (VMs, VNets, Storage, etc.)
Important
Resource Groups cost nothing.
Resources may incur costs.
Costs accumulate at the subscription level.
2. Subscription Hierarchy (Exam Critical)
Azure hierarchy
- Tenant (Entra ID)
- → Subscription
- → Resource Group
- → Resource
Tenant
Managed by
- Microsoft Entra ID
- Holds identities (users, groups, service principals)
- A subscription trusts ONE tenant
- A tenant can manage multiple subscriptions
3. Why Use Multiple Subscriptions?
Subscriptions help with
- Billing Segmentation
Example
- Marketing subscription
- Engineering subscription
Each team sees its own cost breakdown.
- Environment Isolation
Common pattern
- Prod subscription
- Dev subscription
- Staging subscription
Benefits
- Billing isolation
- RBAC isolation
- Policy isolation
- Risk containment
- Compliance & Governance
Subscriptions allow
- Separate Azure Policy enforcement
- Separate RBAC assignments
- Separate regulatory zones
- Regional Segmentation
Example
- US subscription
- Europe subscription
Used for
- Regulatory compliance
- Business segmentation
- Cost allocation
4. Subscription Offers (Billing Models)
Common subscription types
Pay-As-You-Go
Pay monthly based on usage
Most common model
Enterprise Agreement (EA)
Large organizations
Commit annual spend upfront
Discounted pricing
Free Trial
Limited credits
Time-limited
For learning/testing
Azure for Students
Free credits
No credit card required
Cloud Solution Provider (CSP)
Partner-managed subscription
- Partner designs & manages solution
- Billing through partner
Docs
5. Subscription as Governance Scope
Subscriptions define scope for
- RBAC role assignments
- Azure Policy
- ARM/Bicep deployments
- Resource limits
- Budgets & alerts
Deployment scope example
- az deployment sub create
This deploys at subscription level.
6. Managing Subscriptions in Azure Portal
In
- Azure Portal
Navigate to
- Subscriptions -> Select subscription
You can manage
- Billing summary
- Cost analysis
- Budgets
- Alerts
- Resource usage
- Partner information
7. Cost Management Capabilities
Under subscription
- Cost Analysis
- Historical spending
- Resource breakdown
- Filtering by resource group
- Budgets
Set threshold alerts
- Email notifications
- Automation triggers
- Cost Alerts
- Prevent unexpected overspend
8. Quotas & Limits (Very Important for Exams)
Cloud is NOT unlimited.
Each subscription has
- Compute limits
- Networking limits
- Storage limits
- Regional quotas
Example
- vCPU quota per region
- Public IP limit
- NSG rule limit
Docs
Many quotas are adjustable.
You can request increases.
Exam trap
Subscription limits ≠ Azure global limits.
9. Subscription Naming Strategies
Common enterprise naming patterns
- Environment-Based
- Contoso-Prod
- Contoso-Dev
- Contoso-Test
- Department-Based
- Contoso-Marketing
- Contoso-Engineering
- Region-Based
- Contoso-US
- Contoso-EU
- Hybrid Naming
- Contoso-Prod-US
- Contoso-Dev-EU
Purpose
- Governance clarity
- Billing clarity
- Compliance separation
- 🔟 Subscription vs Resource Group (Common Confusion)
- | Feature | Subscription | Resource Group |
- | --- | --- | --- |
- | Billing boundary | Yes | No |
- | Governance boundary | Yes | Yes |
- | Can contain resource groups | Yes | No |
- | Can span subscriptions | No | No |
| Can move resources across? | No (must move RG) | Yes (within subscription) |
Important
Resources cannot exist outside a subscription.
1️⃣1️⃣ Security & Roles at Subscription Level
Roles can be assigned at
- Subscription scope
- Resource group scope
- Resource scope
Example
Billing admin for Marketing subscription only.
Identity relationship
- Tenant
- → Grants roles
- → On subscription
- 1️⃣2️⃣ Real-World Enterprise Design Pattern
Large enterprise might use
- Management Group
- → Corp
- → Prod Subscriptions
- → Dev Subscriptions
- → Department Subscriptions
This allows
- Policy inheritance
- Cost roll-up
- Central governance
- 1️⃣3️⃣ High-Probability Exam Topics
Expect questions on
- What defines billing boundary? (Subscription)
- Where are quotas enforced? (Subscription)
- Can one tenant manage multiple subscriptions? (Yes)
- Can one subscription trust multiple tenants? (No)
- Do resource groups incur cost? (No)
- Where do you set budgets? (Subscription level)
- Can quotas be increased? (Yes, request increase)
- 1️⃣4️⃣ Mental Model for Exams
Think of subscription as
- 💰 Billing wallet
- 🛡 Governance boundary
- 📦 Container of resource groups
- ⚖ Quota enforcer
- 1️⃣5️⃣ Final Key Takeaways
- Subscription = billing + governance + quota boundary
- Subscriptions belong to ONE Entra ID tenant
- Tenant can manage multiple subscriptions
- Multiple subscription offers exist (EA, Pay-As-You-Go, CSP, etc.)
- Subscriptions support budgets and cost tracking
- Quotas limit resource creation
- Subscription segmentation improves governance
- Subscription is deployment scope for ARM & Bicep
Domain 2: Storage (15–20%)
Storage account types
| Type | Use case |
|---|---|
| Standard general-purpose v2 | Most scenarios; all storage services |
| Premium block blobs | High-throughput, low-latency blob workloads |
| Premium file shares | High-performance Azure Files |
| Premium page blobs | VHD storage for VMs |
Blob storage tiers
| Tier | Access frequency | Minimum duration |
|---|---|---|
| Hot | Frequent | None |
| Cool | Infrequent | 30 days |
| Cold | Rare | 90 days |
| Archive | Very rare | 180 days |
Key storage features to know
- Lifecycle management — auto-tier blobs from Hot → Cool → Archive → delete.
- Blob versioning — preserve previous versions; recover overwritten data.
- Soft delete — retain deleted blobs for a configurable period.
- Replication — LRS, ZRS, GRS, GZRS, RA-GRS, RA-GZRS.
- Shared Access Signatures (SAS) — delegate limited, time-bound access to storage without sharing the account key.
- Azure Files — SMB/NFS file shares; mount on Windows, Linux, macOS.
- Azure File Sync — cache Azure Files on Windows Server on-premises.
Implement and Manage Storage deep dives
These lessons follow the source AZ-104 certification-theory hierarchy and expand the domain summary into practical administrator-level notes.
Azure Storage
Understanding Azure Storage Accounts deep dive
Understanding Azure Storage Accounts – Structured Summary + Deep Dive
Primary service
- Azure Storage Account
A Storage Account is the top-level storage container resource in Azure.
All Azure storage services live inside a storage account.
Think of it as
The control plane container for multiple storage services.
1. Storage Account = Multi-Service Platform
A single storage account can host multiple subservices
- | Subservice | Purpose | Typical Use Case |
- | --- | --- | --- |
| Blob | Object storage | Media files, backups, logs |
| Files | Managed SMB/NFS file shares | Lift-and-shift apps |
| Queues | Message storage | Microservices messaging |
| Tables | NoSQL key-value store | Lightweight structured data |
📦 Azure Blob Storage
Azure Blob Storage
Object storage service.
Used for
- Images
- Videos (MP4)
- Audio (MP3)
- Logs
- Backups
- Data lake storage
- VHD files
Types
- Block blobs
- Page blobs
- Append blobs
Docs
- azure / storage / blobs / storage blobs introduction
- 📁 Azure Files
- Azure Files
Managed file shares in the cloud.
Protocols
- SMB
- NFS
Benefits
- Fully managed
- Highly available
- No on-prem file server management
Docs
- azure / storage / files / storage files introduction
- 📨 Azure Queue Storage
- Azure Queue Storage
Message-based storage system.
Common in
- Microservices architectures
- Decoupled systems
- Event-driven apps
Pattern
- Publisher -> Queue → Consumer
Docs
- azure / storage / queues / storage queues introduction
- 🗄 Azure Table Storage
- Azure Table Storage
NoSQL key-value store.
Used for
- Semi-structured data
- Lightweight structured storage
- Fast lookup workloads
Docs
2. Storage Account Endpoint Structure
Each subservice has its own endpoint
- <storageaccount>.blob.core.windows.net
- <storageaccount>.file.core.windows.net
- <storageaccount>.queue.core.windows.net
- <storageaccount>.table.core.windows.net
Pattern
- <account-name>.<service>.core.windows.net
Storage account name
- Globally unique
- 3–24 characters
- Lowercase letters and numbers only
3. Storage Account Configuration Components
When creating a storage account, you choose
1. Account Type
Most common
- General Purpose v2 (GPv2)
Other types
- BlobStorage (legacy)
- Premium (low latency)
Docs
2. Performance Tier
| Tier | Description |
| --- | --- |
| Standard | HDD-backed (most workloads) |
| Premium | SSD-backed (high IOPS, low latency) |
Premium options
- Premium Blob
- Premium Files
- Premium Page blobs
3. Replication (Redundancy)
This is a CRITICAL exam concept.
Azure global structure
- Geography -> Region → Availability Zones → Datacenters
Storage redundancy determines
Where your copies live.
🟢 LRS – Locally Redundant Storage
3 copies in
- Single availability zone
- Single region
- If zone fails -> data lost
Lowest cost option.
🟡 ZRS – Zone-Redundant Storage
3 copies across
- Multiple availability zones
- Same region
Protects against zone failure.
🔵 GRS – Geo-Redundant Storage
3 copies in
- Primary region
3 copies in
- Secondary region
Asynchronous replication.
Protects against regional failure.
🟣 GZRS – Geo-Zone-Redundant Storage
3 copies across zones in
- Primary region
3 copies in
- Secondary region
Highest durability without read access.
🔴 RA-GZRS – Read Access Geo-Zone Redundant Storage
Same as GZRS
Read access to secondary region.
Used for
- Global read scaling
- Disaster recovery readiness
Docs
4. Access Tier (Blob Storage Only)
Applies to
Blob storage only.
Options
- | Tier | Use Case | Cost |
- | --- | --- | --- |
| Hot | Frequent access | Higher storage, lower access |
| Cool | Infrequent access | Lower storage, higher access |
| Archive | Rare access | Lowest storage, highest retrieval |
Important
Archive tier
- Requires rehydration
- Can take hours to restore
Docs
5. Storage Account Security Features
Access Keys
Each storage account provides
- 2 access keys
- Root-level access
Best practice
Use Azure AD authentication instead of keys when possible.
🔒 Encryption
Data encrypted at rest by default
Uses Microsoft-managed keys
Can use customer-managed keys (CMK)
Docs
Options
- Public endpoint
- Private endpoint
- Firewall rules
- VNet service endpoints
6. Data Protection Options
Optional features
- Soft delete (blobs, containers)
- Versioning
- Point-in-time restore
- Immutable storage (WORM)
Docs
7. Storage Account Architecture View
Inside portal after deployment
- Essentials
- Performance
- Replication
- Account kind
- Data storage
- Containers (Blob)
- File shares
- Queues
- Tables
- Security + networking
- Access keys
- Networking
- Encryption
- Settings
- Endpoints
- Configuration
- Tags
8. High-Level Design Considerations
When designing storage
- Required durability level
- Cost sensitivity
- Read scalability needs
- Disaster recovery requirements
- Access frequency
- Performance needs
- Security model
9. Durability Comparison (Important for Exams)
| Option | Region Protection | Zone Protection | Secondary Read |
| --- | --- | --- | --- |
| LRS | ❌ | ❌ | ❌ |
| ZRS | ❌ | ✅ | ❌ |
| GRS | ✅ | ❌ | ❌ |
| GZRS | ✅ | ✅ | ❌ |
| RA-GZRS | ✅ | ✅ | ✅ |
🔟 Common Exam Pitfalls
- Storage account name not globally unique → deployment fails
- Archive tier supports instant access → False
- ZRS protects against region failure → False
- LRS stores only 1 copy → False (stores 3)
- GRS provides automatic failover → False (manual failover unless configured)
- Access tier applies to all storage types → False (Blob only)
11. Real-World Architecture Patterns
Web App + Blob Storage
Static content stored in blob.
Microservices + Queue
Decoupled messaging.
Lift-and-Shift File Server
Azure Files replaces on-prem server.
Big Data
Blob Storage + Data Lake.
12. Conceptual Model
Think of storage account as
- Control layer
- ↓
- Replication engine
- ↓
- Performance tier
- ↓
- Subservices
- ↓
- Access endpoints
13. Storage Creation Flow (Portal Summary)
Choose resource group
Enter globally unique name
Select region
Choose performance (Standard/Premium)
Select replication (LRS/ZRS/GRS/GZRS/RA-GZRS)
Choose default access tier (Hot/Cool)
Configure networking
Configure data protection
Review and deploy
14. Summary in One Sentence
A storage account is a globally unique, highly durable, configurable storage platform that hosts multiple storage services and allows you to choose performance, redundancy, and cost characteristics at deployment time.
Conceptualizing Azure Blob Storage deep dive
Conceptualizing Azure Blob Storage – Structured Summary + Deep Dive
Primary service
- Azure Blob Storage
Azure Blob Storage is an object-based storage service that lives inside an Azure Storage Account.
1. What Is Azure Blob Storage?
Blob Storage is
- A subservice of a Storage Account
- Object-based storage (not traditional file system)
Accessible over
- HTTP / HTTPS
- REST APIs
- SDKs
Think of it as
A massively scalable object store for unstructured data.
Official docs
2. Blob Storage Architecture
Blob Storage has 3 main components
- Storage Account
- └── Blob Service
- └── Containers
- └── Blobs
Storage Account
Top-level resource.
Controls
- Performance tier
- Replication
- Networking
- Security
- Default access tier
Blob Service
The object storage engine inside the storage account.
Containers
Logical grouping of blobs.
Equivalent to
- “Bucket” (AWS S3 conceptually)
Access control can be applied at container level.
Blobs
The actual stored data objects.
Examples
- Images
- Videos
- Text files
- Logs
- Backups
- VHD files
3. Flat Namespace (Important Concept)
Blob Storage is
- ❌ NOT a true hierarchical file system
- A flat object store
Folders are
- Virtual
- Just prefixes in the blob name
Example
- images/2026/photo1.jpg
Internally
This is just a blob name with prefix.
4. Types of Blobs
Azure supports 3 blob types
- 🟦 Block Blobs
Most common.
Used for
- Images
- Videos
- Documents
- Backups
- Data lake workloads
Optimized for
- Streaming
- Upload/download
- 🟨 Append Blobs
Optimized for
- Logging
- Append-only operations
Used in
- Diagnostics logs
- Audit trails
- 🟪 Page Blobs
Used for
- Random read/write workloads
- Virtual machine disks (VHD files)
Docs
5. Access Tiers (Cost Optimization)
Blob storage supports multiple access tiers.
Critical for exam + cost optimization.
| Tier | Storage Cost | Access Cost | Minimum Retention |
| --- | --- | --- | --- |
| Hot | High | Low | None |
| Cool | Lower | Higher | 30 days |
| Cold | Even Lower | Higher | 90 days |
| Archive | Lowest | Highest | 180 days |
Hot Tier
Frequently accessed data
Default for most accounts
❄ Cool Tier
Infrequent access
Minimum 30-day retention
🧊 Cold Tier
Rarely accessed
Minimum 90-day retention
📦 Archive Tier
Rarely accessed long-term storage
Requires rehydration
Retrieval can take hours
Important
Archive tier is offline storage.
Docs
6. Storage Tier Cost Logic
Cost trade-off
Storage cost
- Hot -> High
- Archive -> Lowest
Access cost
- Hot -> Low
- Archive -> Highest
You optimize based on
Frequency of access.
7. Blob Versioning
Blob Versioning protects against
- Accidental overwrite
- Accidental deletion
- Regulatory compliance requirements
When enabled
- Every write operation creates a new version
- Each version gets a unique Version ID
- Only one current version exists
- Old versions remain stored
Important behavior
Promoting an old version
- Creates a new copy
- Does NOT revert in place
This increases storage usage.
Docs
8. Lifecycle Management
Because versioning increases cost
You can configure lifecycle policies to
- Delete older versions after X days
- Move blobs between tiers automatically
- Archive old data
Docs
9. Upload Configuration Options (Portal)
When uploading blobs, you can configure
- Blob type (Block / Page / Append)
- Access tier
- Encryption
- Metadata
- Tags
- Retention policies
Important
Default tier comes from storage account settings.
🔟 Security & Access
Blob Storage supports
- Azure AD authentication
- Access keys
- Shared Access Signatures (SAS)
- Private endpoints
- Firewall rules
Best practice
Avoid using account keys for production apps.
Docs
11. Public Endpoint Structure
Blob endpoint format
Example
12. High Availability & Durability
Blob durability depends on storage account redundancy
- LRS
- ZRS
- GRS
- GZRS
- RA-GZRS
Durability
- Up to 16 nines (99.99999999999999%)
13. Real-World Use Cases
Web Applications
Store static content.
Media Streaming
Store video files as block blobs.
VM Image Library
Store VHD files as page blobs.
Logging Platform
Store logs as append blobs.
Backup & Archiving
Archive tier for long-term retention.
14. Exam-Focused Pitfalls
- Blob storage is hierarchical → False
- Archive tier allows instant access → False
- Versioning replaces old version → False (creates new copy)
- Cool tier cheaper retrieval than hot → False
- Only one current version allowed → True
15. Mental Model Summary
Blob Storage =
Object store
Flat namespace
Tiered pricing
Versioning
Lifecycle policies
HTTP-based access
16. Deployment Workflow Summary
Create Storage Account
Open Blob service
Create Container
Upload blobs
Configure access tier
Enable versioning
Configure lifecycle rules
Final Conceptual Summary
Azure Blob Storage is a highly scalable, object-based storage system optimized for unstructured data with tiered cost management, versioning, and lifecycle automation.
Configuring Object Replication deep dive
Configuring Object Replication in Azure Blob Storage – Structured Summary + Deep Dive
Primary services involved
- Azure Blob Storage
- Azure Storage Account
1. What Is Object Replication?
Object replication is a feature that
- Asynchronously copies block blobs
- From a source storage account
- To a destination storage account
- Based on a replication policy
It is used for
- Reducing read latency
- Regional data distribution
- Data processing in multiple regions
- Cost optimization strategies
Official documentation
2. Core Requirements (Very Important)
For object replication to work
✔ On Source Storage Account
- Blob versioning must be enabled
- Blob change feed must be enabled
✔ On Destination Storage Account
- Blob versioning must be enabled
- Change feed NOT required
- Why?
- Blob change feed tracks create/update/delete events
- Versioning ensures consistent replication of blob states
Docs
- Versioning: https://learn.microsoft.com/azure/storage/blobs/versioning-overview
- Change feed: https://learn.microsoft.com/azure/storage/blobs/storage-blob-change-feed
3. Architecture Concept
Source Storage Account (Region A)
└── Source Container
└── Block Blobs
↓ (Asynchronous replication policy)
Destination Storage Account (Region B)
└── Destination Container
└── Replicated Block Blobs
Important
- Replication is asynchronous
- Only block blobs are supported
- Page blobs and append blobs are NOT supported
4. Where Replication Can Occur
Object replication supports
- Same region
- Cross-region
- Cross-subscription
- Cross–Microsoft Entra ID tenants
Cross-tenant requires explicit configuration.
5. Why Use Object Replication?
1. Minimize Latency
If users are far from Region A
Replicate to Region B closer to them.
Reduces
- Read latency
- Cross-region bandwidth usage
2. Data Distribution
You can
- Process data in one region
- Replicate to another region
- Run analytics there
3. Regional Processing
Support
- Multi-region applications
- Regional compliance needs
4. Cost Optimization
You can
- Replicate data
- Move replicated copy to archive tier
- Reduce storage costs for secondary workloads
6. Replication Policy Details
When creating a replication rule, you must define
- Source container
- Destination container
- Prefix filter (optional)
- Copy scope
Prefix Filtering (Important Concept)
Blob storage uses flat namespace.
Folders are just prefixes.
Example
- awesomefolder/file3.txt
Internally
- Blob name = awesomefolder/file3.txt
If you configure prefix filter
- awesomefolder/
Only blobs with that prefix are replicated.
This enables
Selective replication.
Copy Scope Options
You can choose
- Everything
- Only new objects
- Custom time-based configuration
7. Important Behavior Notes
- Replication is asynchronous
- Replication delay depends on workload
- Only block blobs supported
- Replication respects versions
- Destination blobs are read-only copies
8. Versioning Interaction
Since versioning is enabled
- Each blob version is replicated
- Updates generate new versions
- Delete operations are tracked
This ensures
Consistency between source and destination.
9. Replication vs Redundancy (Common Confusion)
Do NOT confuse
- Storage account redundancy (LRS/ZRS/GRS)
- with
Object replication.
Difference
- | Feature | Redundancy | Object Replication |
- | --- | --- | --- |
- | Automatic | Yes | No (policy-based) |
- | Whole account | Yes | Per container |
- | Region control | Limited | Full control |
- | Filtering | No | Yes (prefix) |
Object replication gives
Granular control.
🔟 Demonstration Summary
Steps performed
- Enabled versioning (source + destination)
- Enabled change feed (source only)
- Created source container
- Created destination container
- Uploaded blobs to source
- Created replication policy
- Added prefix filter
- Verified replicated blob in destination
Only blobs matching prefix were replicated.
11. Replication Monitoring
You can view
- Objects copied from this account
- Objects copied into this account
- Replication policy status
Each storage account shows
Inbound and outbound replication rules.
12. Real-World Scenarios
🌍 Multi-Region SaaS App
Users in US and Europe
Replicate to both regions.
Analytics Pipeline
Raw data in Region A
Replicate to Region B for ML processing.
🏛 Compliance
Primary region + regulated secondary region.
💰 Cost Optimization
Primary hot tier
Replicate + archive secondary.
13. Limitations & Considerations
Only block blobs supported
Requires versioning
Requires change feed (source)
Replication policy per container
Destination must exist
Cross-tenant requires permissions
Asynchronous (not instant)
14. Security Considerations
Use RBAC instead of access keys
Configure private endpoints if needed
Control cross-tenant replication carefully
Replicated blobs inherit access controls
15. Exam-Relevant Concepts
- Change feed required on destination → False
- Versioning required on both accounts → True
- Object replication is synchronous → False
- Supports append blobs → False
- Supports cross-region replication → True
- Can filter by prefix → True
16. Conceptual Summary
Object replication =
Controlled, policy-driven, asynchronous copying of block blobs between storage accounts with version awareness and optional prefix filtering.
17. Mental Model
Think of it as
Event-driven blob mirroring powered by change feed.
Configuring Blob Lifecycle Management deep dive
Configuring Blob Lifecycle Management – Structured Summary + Deep Dive
Primary service
- Azure Blob Storage
Lifecycle management is an automation feature in Azure Blob Storage that:
Automatically moves blobs between access tiers
Or deletes them
Based on age or conditions
It is primarily used for
- Cost optimization
- Operational efficiency
- Automated data governance
Official documentation
1. Why Lifecycle Management Exists
By default
- Blobs inherit the storage account’s default access tier (often Hot)
- Over time, large volumes of data accumulate
- Storage costs increase
Not all data needs to remain in the Hot tier.
Lifecycle management solves this by
- Automatically tiering data
- Reducing manual intervention
- Lowering long-term storage costs
2. Access Tier Recap
Blob tiers
| Tier | Storage Cost | Access Cost | Best For |
| --- | --- | --- | --- |
| Hot | High | Low | Frequent access |
| Cool | Lower | Higher | 30+ days infrequent |
| Cold | Even lower | Higher | 90+ days rare |
| Archive | Lowest | Highest | 180+ days very rare |
Lifecycle policies move blobs between these tiers automatically.
Docs
3. What Lifecycle Management Can Do
Lifecycle rules can
- Move blobs from Hot -> Cool
- Move blobs from Cool -> Cold
- Move blobs from Cold -> Archive
- Delete blobs after certain time
- Delete previous versions
- Delete snapshots
It uses
IF–THEN logic.
Example
- If last modified > 30 days
- Then move to Cool tier
4. Lifecycle Rule Structure
Lifecycle rules consist of
- Scope
- Conditions
- Actions
- Filters (optional)
1. Scope
You can apply rule to
- All blobs in storage account
- Specific containers
- Specific prefixes (folders)
2. Conditions (IF)
Conditions can be based on
- Days since last modified
- Days since creation
- Blob type
- Blob version
- Snapshot age
Example
- Last modified > 30 days
3. Actions (THEN)
Actions include
- Move to Cool
- Move to Cold
- Move to Archive
- Delete blob
- Delete version
4. Filters
Because Blob Storage uses a flat namespace
Folders are prefixes.
Example
- awesomecontainer01/awesomefolder01/
This matches blobs with that prefix.
This allows
Granular lifecycle control.
5. Demonstration Summary
Steps performed
- Open storage account
- Navigate to Lifecycle Management
- Add new rule
- Limit blobs using filter
- Apply to specific container + folder prefix
Set condition
- Last modified > 30 days
Action
- Move to Cool tier
- Save rule
After 30 days
- Blobs matching prefix automatically move from Hot -> Cool.
6. Real-World Lifecycle Example
A common enterprise policy
- Day 0–30 -> Hot
- Day 30–90 -> Cool
- Day 90–180 -> Cold
- Day 180+ -> Archive
- Day 365+ -> Delete
This balances
Performance + Cost.
7. Cost Optimization Impact
Without lifecycle management
All blobs stay in Hot tier.
Hot tier = highest storage cost.
Lifecycle management
- Gradually reduces storage costs
- Minimizes admin overhead
- Enforces retention automatically
8. Versioning + Lifecycle
If versioning is enabled
Lifecycle rules can
- Delete old versions after X days
- Move older versions to Archive
Important
Old versions accumulate storage cost.
Docs
9. Blob Types Supported
Lifecycle policies apply to
- Block blobs
- Append blobs
- Base blobs
- Snapshots
- Versions
You can choose which types the rule applies to.
🔟 Important Behavior Notes
Rules run once per day
Changes are not instant
Archive tier requires rehydration
Early deletion fees apply
- Cool -> 30 days minimum
- Cold -> 90 days minimum
- Archive -> 180 days minimum
If moved too early, you still pay minimum duration fee.
11. JSON-Based Policy (Advanced Concept)
Lifecycle policies are stored as JSON policies internally.
Example structure
- {
- "rules": [
- {
- "enabled": true,
- "name": "move-to-cool",
- "type": "Lifecycle",
- "definition": {
- "filters": {...},
- "actions": {...}
- }
- }
- ]
- }
This enables
Infrastructure-as-code automation.
Docs
12. Lifecycle vs Manual Tiering
| Manual | Lifecycle |
| --- | --- |
| Labor-intensive | Automated |
| Error-prone | Policy-driven |
| Hard to scale | Scales automatically |
Lifecycle management is preferred for production.
13. Governance & Compliance Use Cases
Lifecycle helps
- Enforce retention periods
- Meet regulatory compliance
- Automate deletion of expired data
- Reduce legal risk
Often combined with
- Blob versioning
- Soft delete
- Immutable storage
14. Common Exam Pitfalls
- Lifecycle works instantly → False
- Applies to all storage services → False (Blob only)
- Archive tier instantly accessible → False
- Folders are real directories → False (prefix only)
- Can delete versions automatically → True
15. Design Best Practices
- Keep default tier = Hot
- Use lifecycle for aging
- Define clear retention strategy
- Combine with version cleanup
- Test policy in non-production first
16. Conceptual Model
Blob Lifecycle Management =
Automated tiering engine
Age-based policies
Cost optimization mechanism
Governance enforcement tool
Final Summary
Blob lifecycle management is an automation framework in Azure Blob Storage that moves or deletes data based on defined rules to optimize cost and enforce retention policies over time.
Securing Storage Accounts deep dive
Securing Storage Accounts – Structured Summary + Deep Dive
Primary service
- Azure Storage
This lesson explains how to secure Azure Storage Accounts at multiple layers:
Encryption (data at rest & in transit)
Authentication (who can access)
Authorization (what they can do)
Key management & SAS governance
Official documentation
1. Security Goals for Storage Accounts
Regardless of the service used (Blobs, Files, Queues, Tables), the objectives are:
- Protect data at rest
- Protect data in transit
- Control access (least privilege)
- Enable key rotation
- Support compliance & governance
2. Encryption in Azure Storage
A. Encryption at Rest (Default)
Azure Storage automatically uses
- Storage Service Encryption (SSE)
- 256-bit AES encryption
- Enabled by default
- No extra configuration required
Docs
B. Microsoft-Managed Keys (MMK)
Default option.
Azure
- Generates
- Rotates
- Manages
- Protects keys
Best for
- Simplicity
- Most production workloads
C. Customer-Managed Keys (CMK)
You can bring your own encryption keys.
Requires
- Key stored in
- Azure Key Vault
- User-assigned managed identity
Key permissions
- Get
- WrapKey
- UnwrapKey
Benefits
- Regulatory compliance
- Full control over key lifecycle
- Ability to revoke access instantly
Docs
D. Infrastructure Encryption
Optional second layer of encryption.
Adds
- Double encryption at infrastructure level
- Extra compliance assurance
Important
- ⚠ Must be enabled at storage account creation
- ⚠ Cannot be changed later
3. Encryption in Transit
Setting: Secure transfer required
When enabled
- Only HTTPS allowed
- ❌ HTTP blocked
This prevents
- Man-in-the-middle attacks
- Plain-text data transmission
Recommended: Always enabled (default).
Docs
4. Authentication Layers Explained
There are two distinct layers
1. Management Plane
Controls
- Storage account settings
- Configuration
- Networking
- Key settings
Managed via
- Azure RBAC
2. Data Plane
Controls
- Blob access
- File access
- Queue messages
- Table entities
Can use
- Access Keys
- SAS
- Microsoft Entra ID
Understanding this distinction is critical for exams.
5. Access Keys
Every storage account includes
- Key1
- Key2
Characteristics
- Full root-level access
- Covers management + data plane
- Unlimited permissions
Use case
- Legacy apps
- Simplified connection strings
Risk
- ❗ Too much privilege
- ❗ Hard to audit
Key Rotation Strategy
Use dual-key model
- App uses Key1
- Switch app to Key2
- Regenerate Key1
- Repeat cycle
If you regenerate without switching
Application breaks immediately.
Docs
6. Shared Access Signatures (SAS)
SAS provides
- Limited access
- Time-bound access
- Permission-scoped access
Instead of giving full access key, you generate a token.
SAS Levels
- Account-level SAS
Grants access to
- Multiple services
- Entire storage account
- Service-level SAS
Grants access to
- Specific container
- Specific service (Blob, File, etc.)
- Object-level SAS
Grants access to
- Single blob
SAS Controls
You can restrict
- Start time
- Expiry time
- Permissions (Read, Write, Delete, List, etc.)
- IP address range
- Allowed protocols (HTTPS only recommended)
Docs
7. User Delegation SAS (More Secure)
Instead of signing with account key
Use
- Microsoft Entra identity
This is called
- User Delegation SAS
Benefits
- No storage account keys required
- Azure RBAC enforced
- Better security model
Recommended for modern architectures.
8. Stored Access Policies
Stored Access Policies allow
- Centralized management of SAS tokens
- Modify or revoke multiple SAS tokens at once
How it works
- Create policy on container
- Attach SAS tokens to that policy
- Modify policy -> affects all attached SAS tokens
This solves
Problem of "unrevokable" SAS tokens.
Docs
9. Disabling Key-Based Access
You can disable
- Storage account key access
Then only allow
- Microsoft Entra ID authentication
This enforces stronger identity-based access control.
Recommended for enterprise security.
🔟 Security Architecture Summary
Azure Storage Security Stack
- Layer 1: Encryption at Rest (SSE)
- Layer 2: Encryption in Transit (HTTPS)
- Layer 3: Authentication (Keys / SAS / Entra ID)
- Layer 4: Authorization (RBAC / Policies)
- Layer 5: Key Rotation & Governance
11. Best Practice Recommendations
- Keep Secure transfer enabled
- Use Microsoft Entra ID over access keys
- Prefer User Delegation SAS
- Rotate access keys regularly
- Use Stored Access Policies
- Use CMK if compliance requires
- Disable key access in enterprise environments
12. Common Exam Pitfalls
- Access keys provide limited access → False
- SAS can be time-restricted → True
- Infrastructure encryption can be changed later → False
- Encryption at rest must be manually enabled → False
- You can revoke SAS by deleting policy → True
13. Real-World Security Model Example
Enterprise secure design
- CMK with Azure Key Vault
- Infrastructure encryption enabled
- Secure transfer required
- Key access disabled
- RBAC enforced
- User Delegation SAS for temporary sharing
- Lifecycle management for old data
- Access logs enabled
14. Deep Concept: Why Keys Are Risky
Access keys
- Bypass RBAC
- Grant full control
- Hard to audit
- Often embedded in code
Modern recommendation
Move toward
- Identity-based authentication (Entra ID + RBAC)
15. Complete Security Flow Example
User authenticates via Entra ID
RBAC determines permissions
Blob request over HTTPS
Data encrypted at rest
Optional CMK used
Optional infrastructure encryption applied
This provides end-to-end protection.
Final Summary
Securing Azure Storage involves
- Automatic encryption at rest
- Enforced HTTPS in transit
- Strong identity-based authentication
- Limited-scope SAS tokens
- Key rotation strategies
- Optional customer-managed encryption keys
- Stored access policies for centralized governance
It is a layered security model combining encryption, identity, and access control.
Configuring Azure Files deep dive
Configuring Azure Files – Structured Summary + Deep Dive
Primary service
- Azure Files
Azure Files is a fully managed cloud file share service built on top of:
Azure Storage
It provides
- SMB (Server Message Block)
- NFS (Network File System)
access to file shares hosted in Azure.
Official documentation
1. What is Azure Files?
Azure Files is
- A managed file-sharing service
- Hosted in a storage account
- Accessible over SMB or NFS
- Cross-platform (Windows, Linux, macOS)
Unlike Azure Blob Storage
- Blob = object storage (flat namespace)
- Azure Files = real hierarchical file system
Azure Files supports
- True folders
- File permissions
- NTFS/SMB metadata
- POSIX-style structure (for Linux NFS)
2. Architecture Overview
Azure Files hierarchy
- Storage Account
- → File Service
- → File Shares
- → Folders
- → Files
You can have
- Multiple file shares per storage account
- Each share has its own structure
- Each share has its own endpoint
Endpoint example
- \storageaccountname.file.core.windows.net\sharename
3. SMB vs NFS
Azure Files supports
- SMB (Common)
- Windows native
- NTFS permissions
- Azure AD / AD DS integration
- Most enterprise scenarios
- NFS
- Linux workloads
- POSIX permissions
- Requires Premium file shares
Docs
4. Storage Account Requirements
Azure Files can be hosted in
- General Purpose v2 (Standard)
- Premium FileStorage accounts (for high performance)
Premium required for
- NFS
- Low-latency workloads
- High IOPS
5. Performance Tiers (Standard Accounts)
Standard file shares offer multiple tiers
- | Tier | Best For |
- | --- | --- |
- | Transaction Optimized | Transaction-heavy workloads |
- | Hot | General purpose file sharing |
- | Cool | Archival-like, lower performance |
Important
⚠ These tiers are NOT the same as Blob storage access tiers
⚠ Lifecycle management is NOT supported for file shares
Docs
6. Quota Configuration
Each file share allows
- Configurable size limit (e.g., 100 GB)
- Helps prevent runaway growth
- Enforces cost control
Quota can be modified after creation.
7. Demonstration Summary
Steps performed
- Navigate to Storage Account
- Go to File Shares
- Create new file share
- Select tier (Transaction Optimized)
- Configure quota
- Upload files
- Create directory
- Connect via Windows
- Mount share as drive (Z:)
Connection script
- Uses Storage Account Key
- Mounts persistent SMB drive
- Maps network location
After mounting
- Files visible in Windows Explorer
- Changes sync bidirectionally
8. Authentication Options
Azure Files supports
1. Storage Account Key
Simple
Full access
Less secure
2. Active Directory (AD DS)
Domain-based authentication
NTFS ACLs supported
3. Microsoft Entra ID
Identity-based access
Modern cloud authentication
Recommended
Use AD DS or Entra ID in enterprise environments.
Docs
9. How Mounting Works (Windows Example)
PowerShell script performs
- Connectivity test to port 445
- Mounts SMB share
- Creates persistent drive mapping
Drive appears under
- "This PC" -> Network Locations
This behaves exactly like
Traditional on-prem file share.
🔟 Key Differences: Azure Files vs Blob Storage
| Feature | Azure Files | Blob Storage |
| --- | --- | --- |
| Structure | Hierarchical | Flat namespace |
| Protocol | SMB/NFS | HTTP/HTTPS |
| Mountable | Yes | No |
| NTFS Permissions | Yes | No |
| Lifecycle Management | No | Yes |
| Best For | Lift-and-shift file servers | Object storage |
11. Common Use Cases
- Lift-and-shift file servers
- Shared application storage
- User home directories
- Azure Virtual Desktop profiles
- Hybrid file server via Azure File Sync
12. Azure File Sync (Important Concept)
Azure File Sync allows
- On-prem Windows Server
- Sync to Azure file share
- Cache hot data locally
- Tier cold data to cloud
This enables
Hybrid file architecture.
Docs
13. Security Considerations
Best practices
- Enable Secure Transfer
- Use identity-based authentication
- Restrict network access via Private Endpoint
- Disable public access if not required
- Use RBAC
Azure Files supports
- NTFS ACLs (SMB)
- POSIX permissions (NFS)
- Encryption at rest (default)
- Encryption in transit (SMB 3.x)
14. Cost Considerations
Costs based on
- Provisioned size (quota)
- Transactions
- Data stored
- Tier selected
- Outbound data transfer
Premium file shares
- Provisioned capacity model
- Higher cost
- Higher performance
15. Enterprise Design Pattern
Typical enterprise architecture
- Users -> SMB mount → Azure Files
- VMs -> Shared config storage
- App Servers -> Shared file repository
- On-Prem -> Azure File Sync → Azure Files
16. Limitations to Know
⚠ Lifecycle management not supported
⚠ NFS requires Premium
⚠ Port 445 must be open (SMB)
⚠ Some ISPs block port 445
⚠ Not ideal for ultra-high IOPS workloads unless Premium
17. Common Exam Pitfalls
- Azure Files = object storage → False
- Supports true folders → True
- Lifecycle supported → False
- SMB supported → True
- NFS supported on Standard → False
18. When to Choose Azure Files
Choose Azure Files if
- You need traditional file system semantics
- You want lift-and-shift file server
- Applications expect SMB
- You need NTFS permissions
Choose Blob if
- You need object storage
- HTTP-based access
- Massive unstructured storage
- Lifecycle automation
- Final Summary
Azure Files is a managed cloud file-sharing service that
- Runs inside a storage account
- Provides SMB/NFS connectivity
- Offers real hierarchical file systems
- Supports identity-based authentication
- Enables hybrid and cloud-native file sharing
- Integrates seamlessly with Windows and Linux
It is the cloud equivalent of a traditional file server, but fully managed and scalable.
Managing Azure Files deep dive
Managing Azure Files – Snapshots & Soft Delete (Structured Summary + Deep Dive)
Primary service
- Azure Files
Azure Files provides built-in data protection features
1. File Share Snapshots
2. Soft Delete
These protect against
- Accidental deletion
- Unwanted modifications
- Operational mistakes
- Certain disaster scenarios
Official documentation
1. What Is a Snapshot?
A snapshot is
A read-only, point-in-time copy of data.
Snapshots are common across
- Virtual machines
- Databases
- Storage systems
In Azure Files
- Snapshot captures the entire file share
- It is read-only
- It is incremental
- It can be mounted or restored
Docs
2. Azure File Share Snapshots
When you create a snapshot
- Azure stores only changes since the previous snapshot
- This reduces storage costs
- Snapshots remain within the same storage account
- Key Characteristics
- | Feature | Behavior |
- | --- | --- |
- | Scope | Entire file share |
- | Access | Read-only |
- | Storage | Incremental |
- | Restore | Entire share or individual files |
- | Billing | Charged for changed blocks only |
3. Why Snapshots Are Useful
- Version Control
Recover earlier file versions.
- Disaster Recovery
Restore after corruption or ransomware.
- Backup Support
Can be used for retention policies.
- Safe Change Rollback
Take snapshot before major updates.
4. Snapshot Restore Options
When restoring
- Overwrite original file
- Restore as new file
- Browse and copy specific data
Important
Snapshots protect at share level — not granular file retention policy.
5. Demonstration Summary – Snapshots
Steps performed
- Open file share
- Navigate to Snapshots
- Click Add Snapshot
- Snapshot created (incremental)
- Modify file on Windows server
- Restore file from snapshot
- Original content restored
Key takeaway
Snapshots allow precise point-in-time recovery.
6. What Is Soft Delete?
Soft Delete protects
Entire file shares from accidental deletion.
When enabled
- Deleted file shares are retained
- Data recoverable for configured period
- Retention period: 1–365 days
Docs
7. Important Soft Delete Behavior
| Feature | Behavior |
| --- | --- |
| Scope | Entire file share |
| Protects | Share deletion |
| Does NOT protect | Individual file deletions |
| Default | Enabled |
| Retention | Configurable (1–365 days) |
Very important
- ⚠ Soft delete does NOT protect individual files
- ⚠ Only protects deleted shares
8. Demonstration Summary – Soft Delete
Steps performed
- Confirm soft delete enabled
- Attempt delete
- Removed resource lock (Azure Backup lock)
- Deleted file share
- Toggled "Show deleted shares"
- Restored share via Undelete
- Share status returned to Active
Key takeaway
Soft delete provides full share recovery.
9. Soft Delete vs Snapshot
| Feature | Snapshots | Soft Delete |
| --- | --- | --- |
| Protects modified files | Yes | No |
| Protects deleted shares | No | Yes |
| Scope | Share state | Share existence |
| Retention control | Manual | Configurable |
| Incremental | Yes | N/A |
Best practice
Use BOTH together.
🔟 Resource Lock Behavior (Important Detail)
When soft delete enabled
- Azure Backup integration may create locks
- You must remove lock before deleting share
Locks protect against accidental deletion.
This is part of
Defense-in-depth.
11. Cost Considerations
Snapshots
Charged for changed data only
Incremental billing
Frequent changes increase cost
Soft Delete
Deleted share data still stored during retention
Storage billed until permanently deleted
12. Enterprise Protection Strategy
Enterprise-grade Azure Files protection
- Soft delete enabled
- Daily snapshots
- Azure Backup configured
- Immutable storage where required
- RBAC access control
Docs
13. Advanced Concept: Snapshot Internals
Snapshots are
- Metadata pointers
- Block-level differential storage
- Stored in same storage account
- Not separate full copy
This makes them
- Fast
- Storage efficient
14. Ransomware Protection Strategy
If ransomware modifies files
- Snapshot taken prior to infection
- Restore entire share or affected files
- Recover to safe state
Snapshots act as rollback mechanism.
15. Limitations to Understand
⚠ Snapshots are not cross-region
⚠ Soft delete does not protect files
⚠ Snapshots must be manually managed
⚠ Premium shares also support snapshots
⚠ No lifecycle automation like Blob tiering
16. Real-World Use Cases
- Pre-deployment safe point
- Patch rollback
- File corruption recovery
- Accidental overwrite recovery
- Accidental share deletion recovery
17. Common Exam Pitfalls
- Soft delete protects files → False
- Snapshots are full copies → False
- Snapshots are read-only → True
- Soft delete is enabled by default → True
- Snapshots are incremental → True
18. Recommended Best Practice Design
Minimum production configuration
- Soft delete enabled (30+ days)
- Automated snapshot schedule
- Azure Backup vault integration
- Private endpoint access
- RBAC enforcement
- Monitoring enabled
- Final Summary
Azure Files data protection includes
Snapshots
→ Point-in-time, incremental, read-only copies of file shares
→ Restore files or full share
Soft Delete
→ Protects against accidental share deletion
→ Retains deleted shares for configurable period
Together, they provide layered protection for file share workloads.
Providing Access to Azure Files deep dive
Providing Access to Azure Files – Identity-Based Authentication (Structured Summary + Deep Dive)
Primary service
- Azure Files
Identity-based authentication allows Azure Files to integrate with directory services such as:
Microsoft Entra ID
Active Directory Domain Services (AD DS)
Microsoft Entra Domain Services
Instead of using
- Storage account keys
- SAS tokens
This provides enterprise-grade access control.
Official documentation
1. Why Use Identity-Based Authentication?
Traditional methods (Access Keys / SAS)
- ❌ Full account-level access
- ❌ Hard to audit
- ❌ Not user-specific
- ❌ Poor least-privilege enforcement
Identity-based authentication provides
- Per-user authentication
- Kerberos support
- RBAC enforcement
- Familiar Windows admin model
- Integration with LDAP/Kerberos apps
- Auditability
2. What Identity-Based Authentication Controls
Important distinction
Identity-based authentication controls
- Share-level access
It does NOT replace
- ❗ File-level NTFS ACLs
- ❗ Directory-level permissions
You still must configure
- Windows Access Control Lists (ACLs)
Think of it as
- Layer 1: Share access (Azure RBAC)
- Layer 2: File/folder permissions (NTFS ACL)
3. Identity Options for Azure Files
Azure Files supports three identity models
1. Active Directory Domain Services (AD DS)
Traditional on-premises domain.
Best for
- Hybrid environments
- Lift-and-shift scenarios
- Existing Windows infrastructure
Requires
- Domain-joined storage account
- Service principal setup
- SPN configuration
Docs
2. Microsoft Entra Domain Services
Managed domain service.
Best for
- Cloud-first deployments
- No on-prem domain controllers
- Simplified domain management
Prerequisite
Entra Domain Services must already be deployed.
Docs
3. Microsoft Entra Kerberos
Modern cloud-native approach.
Best for
- Hybrid Azure AD-joined devices
- Cloud-first identity strategy
Requires
- Entra ID application registration
- Kerberos ticket issuance
- Explicit permission grants
Docs
4. Share-Level RBAC Roles
When identity-based authentication is enabled, you manage access via
Azure RBAC roles.
Key built-in roles
- | Role | Permission |
- | --- | --- |
- | Storage File Data SMB Share Reader | Read-only |
- | Storage File Data SMB Share Contributor | Read/write |
| Storage File Data SMB Share Elevated Contributor | Full control |
| Storage File Data SMB Share Owner | Full management |
These apply at
- File share scope
- Storage account scope
- Resource group scope
Docs
5. How Authentication Flow Changes
Without Identity-Based Auth
Mount script uses
- Storage account name
- Access key (as password)
Example concept
- net use Z: \storageaccount.file.core.windows.net\share
This uses root-level credentials.
With Identity-Based Auth
Mount script
- Uses domain credentials
- Uses Kerberos ticket
- No access key required
Security benefit
- No shared secrets
- Identity-bound access
- Better auditing
6. Access Control Layers Explained
Layer 1: Share-Level Authorization
Controlled via
- Azure RBAC
Determines
- Can user connect to share?
Layer 2: File-Level Permissions
Controlled via
- NTFS ACLs
Determines
- Can user read/write specific files?
Example
- User may connect to share
- But denied access to specific folder
7. ACL (Access Control List) Concept
An ACL defines
- Users
- Groups
- Computer accounts
- Security principals
And their permissions
- Read
- Write
- Modify
- Full Control
ACLs can be
- Backed up
- Restored
- Managed via File Explorer
8. Demonstration Summary
Steps shown
- Open file share
- Click "Identity-based access"
Choose identity source
- AD DS
- Entra Domain Services
- Entra Kerberos
- Enable configuration
- Assign RBAC roles
- Mount using identity instead of key
Key observation
Mount script no longer requires storage account key.
9. Security Architecture Comparison
| Feature | Access Keys | Identity-Based |
| --- | --- | --- |
| User-specific | ❌ | ✔ |
| Auditable | ❌ | ✔ |
| Kerberos | ❌ | ✔ |
| Least privilege | ❌ | ✔ |
| Recommended | ❌ | ✔ |
Enterprise best practice
- Disable storage key access
- Use Entra ID + RBAC
- 🔟 Hybrid Architecture Scenario
Common enterprise pattern
- On-Prem AD
- ↓
- Azure AD Connect
- ↓
- Microsoft Entra ID
- ↓
- Azure Files (Kerberos auth)
This allows
- Seamless authentication
- Same credentials
- Hybrid identity
11. Important Limitations
⚠ Identity-based auth applies only to SMB (not NFS)
⚠ NFS uses network-based controls
⚠ Must configure NTFS permissions separately
⚠ Requires proper DNS resolution
⚠ Port 445 must be open
12. Common Exam Pitfalls
- Identity-based auth replaces NTFS → False
- Access keys are more secure → False
- RBAC controls file-level ACL → False
- Identity-based works for SMB → True
- Custom roles allowed → True
13. Enterprise Best Practice Design
Secure Azure Files design
- Identity-based authentication enabled
- Azure RBAC assigned at share level
- NTFS ACLs configured properly
- Storage account key access disabled
- Private endpoints enabled
- Monitoring + logging enabled
14. Deep Concept: Why This Matters
Traditional file servers
- Rely on Kerberos
- Use NTFS permissions
- Use domain groups
Azure Files identity-based auth allows
Lift-and-shift without redesigning access model.
It bridges
Cloud storage + legacy enterprise authentication.
15. When to Use Each Identity Type
| Scenario | Best Option |
| --- | --- |
| Hybrid enterprise | AD DS |
| Cloud-only domain | Entra Domain Services |
| Modern cloud-native | Entra Kerberos |
Final Summary
Identity-based authentication for Azure Files
- Replaces shared secrets with user-based auth
- Integrates with AD / Entra ID
- Enables RBAC share-level control
- Still requires NTFS ACL configuration
- Improves security, auditability, and governance
It is the recommended enterprise-grade method for securing Azure file shares.
Storage Utilities deep dive
Storage Utilities – Azure Storage Explorer & AzCopy (Structured Summary + Deep Dive)
Azure provides powerful utilities to manage
- Azure Storage
including
- Blob Storage
- Azure Files
- Queues
- Tables
The two primary tools are
1. Azure Storage Explorer (GUI)
2. AzCopy (CLI)
There is also a lightweight portal tool called Storage Browser.
1. Storage Browser (Portal-Based Tool)
Built into Azure Portal.
Features
- View containers
- View file shares
- Basic upload/download
- Simple management
Limitations
- ❌ Limited performance
- ❌ Not ideal for bulk operations
- ❌ Limited automation
Best for
- Quick inspection
- Small operations
- Troubleshooting
2. Azure Storage Explorer (GUI Tool)
Official tool
- Azure Storage Explorer
Documentation
Supported OS
- Windows
- macOS
- Linux
What Storage Explorer Does
- Connect to subscriptions
- Connect to individual storage accounts
- Upload/download blobs
- Manage file shares
- Generate SAS tokens
- Create snapshots
- Manage access policies
- Copy/clone containers
- View queues & tables
It uses
- AzCopy internally for data transfer
So it is
GUI wrapper over AzCopy.
Connection Methods
You can connect via
- Azure subscription (Entra login)
- Connection string
- SAS URL
- Storage account name + key
Best practice
Use Microsoft Entra ID authentication when possible.
Key Capabilities Demonstrated
In the lesson
- Connected via account name + key
- Viewed blob containers
- Uploaded/downloaded blobs
- Managed file shares
- Created snapshots
- Generated SAS
- Managed stored access policies
It mirrors portal functionality — but more powerful.
3. AzCopy (Command Line Tool)
Official tool
- AzCopy
Documentation
AzCopy is
- High-performance CLI tool
- Optimized for bulk transfers
- Scriptable
- Automation-friendly
- Cross-platform
Why Use AzCopy?
Best for
- Large data migrations
- Backup operations
- Automation scripts
- CI/CD pipelines
- DevOps workflows
- Scheduled jobs
4. AzCopy Authentication Methods
You can authenticate using
1. Microsoft Entra ID (Recommended)
Command
- azcopy login
Prompts
- Browser authentication
- Device code login
Best practice: use identity-based authentication.
2. SAS Token
Used for temporary scoped access.
Example
- azcopy copy "source" "destination?SAS"
3. Account Key
Provides full access.
Less secure.
5. AzCopy Common Commands
Create Container
azcopy make "https://account.blob.core.windows.net/container"
Upload File
azcopy copy "localfile.txt" "https://account.blob.core.windows.net/container"
Download File
azcopy copy "https://account.blob.core.windows.net/container/file" "localpath"
Sync (Very Powerful)
azcopy sync "source" "destination"
Sync supports
- Incremental updates
- Efficient delta transfers
6. AzCopy Performance Features
AzCopy includes
- Parallel transfers
- Resume support
- Chunked uploads
- Large file support (TB-scale)
- High-throughput optimization
It is designed for
Enterprise-scale data movement.
7. Storage Explorer vs AzCopy
| Feature | Storage Explorer | AzCopy |
| --- | --- | --- |
| Interface | GUI | CLI |
| Best For | Interactive use | Automation |
| Bulk Transfer | Yes | Excellent |
| Scriptable | No | Yes |
| Uses AzCopy internally | Yes | Native |
| DevOps Friendly | Limited | Excellent |
8. Security Considerations
When using these tools
- Prefer Entra ID login
- Avoid hardcoding access keys
- Use SAS for limited sharing
- Rotate keys regularly
- Restrict network access
9. Where These Tools Fit in Architecture
Developer Workflow
- Local machine -> AzCopy → Blob container
Migration Scenario
- On-prem server -> AzCopy → Azure Storage
Admin Management
- Storage Explorer -> Manage blobs/files visually
CI/CD Pipeline
- Pipeline script -> AzCopy → Upload artifacts
🔟 Enterprise Data Migration Pattern
Large migration example
- On-prem file server
- ↓
- AzCopy recursive upload
- ↓
- Azure Blob or Azure Files
- ↓
- Validate integrity
AzCopy supports
- Recursive copy
- Filtering
- Pattern matching
- Log output
11. Advanced AzCopy Capabilities
- Cross-account copy
- Cross-region copy
- Cross-tenant copy
- Resume failed transfers
- Generate transfer logs
You can copy directly
- Azure -> Azure
Without downloading locally.
12. Common Exam Pitfalls
- Storage Explorer is required → False
- AzCopy supports Entra login → True
- AzCopy only works on Windows → False
- Storage Explorer uses AzCopy internally → True
- Portal is best for bulk data migration → False
13. When to Use Each Tool
Use Storage Explorer when
- You need a visual interface
- You are browsing data
- You need quick management
Use AzCopy when
- You are migrating TBs of data
- You need automation
- You need CI/CD integration
- You want performance
14. Best Practice Recommendations
- Use Entra ID authentication
- Add AzCopy to system PATH
- Store credentials securely
- Use SAS for temporary access
- Log and monitor transfers
- Test transfers before production migration
15. Real-World Enterprise Example
Scenario
Company migrating 50 TB to Azure.
Solution
- Install AzCopy
- Authenticate with Entra ID
- Run recursive copy
- Monitor logs
- Validate checksums
This is far superior to manual upload.
Final Summary
Azure Storage Utilities include
Storage Browser (basic portal tool)
Azure Storage Explorer (GUI client)
AzCopy (high-performance CLI tool)
Storage Explorer uses AzCopy under the hood.
AzCopy is preferred for
- Automation
- Large transfers
- Enterprise workloads
Together, they provide both user-friendly and scriptable methods for managing Azure Storage.
Azure Storage Exam Tips deep dive
Exam Tips: Azure Storage – Structured Review + Deep Understanding
Primary service
- Azure Storage
This summary consolidates the most exam-relevant Azure Storage concepts, design principles, and architecture insights.
Official documentation hub
1. Storage Account Fundamentals
A storage account is a top-level Azure resource that hosts multiple storage services:
Blob Storage
Azure Files
Queues
Tables
It defines
- Performance tier
- Redundancy model
- Security settings
- Networking rules
- Lifecycle configuration
2. Performance Tiers
Standard (General Purpose v2 – Default)
Most common
Cost-effective
Supports all services
Required for lifecycle management
Recommended for most workloads
Premium
Low latency
High IOPS
SSD-backed
Used for
- Premium Blob
- Premium Files
- High-performance scenarios
Docs
3. Redundancy Options (Critical Exam Topic)
Redundancy determines durability and availability.
LRS (Locally Redundant Storage)
3 copies
Same availability zone
Cheapest option
No zone or region protection
ZRS (Zone-Redundant Storage)
Copies across availability zones
Survives zone failure
GRS (Geo-Redundant Storage)
Replicates to secondary region
3 copies in primary + 3 in secondary
GZRS (Geo-Zone-Redundant Storage)
ZRS in primary region
LRS in secondary region
Highest durability
RA-GZRS (Read-Access GZRS)
Same as GZRS
Secondary region readable
Docs
4. Azure Blob Storage (Object Storage)
Primary service
- Azure Blob Storage
Structure
- Storage Account
- → Blob Service
- → Container
- → Blob
Important
- Flat namespace
- “Folders” = prefixes
- Object-based storage
- HTTP/HTTPS access
5. Object Replication (Blob Replication)
Requirements
- Versioning enabled on source & destination
- Change feed enabled on source
- Replication policy configured
Facts
- Asynchronous
- Source can replicate to up to 2 destinations
- Can filter via prefix
- Cross-region, cross-subscription, cross-tenant supported
Docs
6. Blob Lifecycle Management
Requires
- General Purpose v2 account
Supported blob types
- Block blobs
- Append blobs
- Base blobs
- Snapshots
- Versions
Uses
- IF–THEN logic
Supports
- Move to Cool
- Move to Cold
- Move to Archive
- Delete
Filters
- Prefix
- Blob index tags
- Last modified time
- Creation time
- Last access time
Docs
7. Storage Security Model
Security layers
Encryption at Rest
Default
- Storage Service Encryption (AES-256)
Management Plane vs Data Plane
Management Plane
Storage account configuration
Controlled by Azure RBAC
Data Plane
Blobs
Files
Queues
Tables
Controlled by
- Access Keys
- SAS
- Entra ID
Access Keys
Full control
Two keys (rotation model)
Not least privilege
Shared Access Signature (SAS)
Scoped access
Time-limited
IP restricted
Protocol restricted
Microsoft Entra Authentication
Role-based access control
More secure
Recommended over keys
Docs
8. Azure Files Overview
Primary service
- Azure Files
Key characteristics
- Managed SMB/NFS file share
- True hierarchical file system
- Supports Windows, Linux, macOS
- Can mount as network drive
Unlike Blob
- Real file system
- NTFS permissions
- POSIX (NFS) support
Docs
9. Azure Files Protection
Snapshots
Entire share
Read-only
Incremental
Restore individual files or full share
Soft Delete
Protects deleted shares
Retention: 1–365 days
Does NOT protect individual file deletions
Docs
- azure / storage / files / storage files data protection overview
- 🔟 Identity-Based Authentication (Azure Files)
Options
- AD DS
- Entra Domain Services
- Entra Kerberos
Important
- Controls share-level access
- ❗ Does NOT replace NTFS ACL
Two layers
- Share-level RBAC
- File-level NTFS permissions
Docs
- azure / storage / files / storage files active directory overview
- 1️⃣1️⃣ Storage Utilities
Azure Storage Explorer (GUI)
Azure Storage Explorer
Visual interface
Uses AzCopy under the hood
Manage containers, shares, snapshots
AzCopy (CLI)
AzCopy
High-performance data transfer
Scriptable
Entra authentication supported
Used for automation and migration
Difference
- Storage Explorer = GUI
- AzCopy = Automation & scripting
Docs
- azure / storage / common / storage use azcopy v10
- 1️⃣2️⃣ Common Exam Pitfalls
- Soft delete protects individual files → False
- Snapshots are full copies → False
- Blob folders are real directories → False
- Lifecycle works on all storage types → False (Blob only)
- Identity-based auth replaces NTFS → False
- Access keys provide least privilege → False
- 1️⃣3️⃣ High-Yield Design Patterns for Exam
- Cost Optimization Pattern
- GPv2 account
- Lifecycle policies
- Cool -> Archive movement
- High Availability Pattern
- RA-GZRS
- Cross-region read access
- Secure Enterprise Pattern
- Entra ID authentication
- RBAC
- Disable key access
- Private endpoints
- Hybrid File Server Pattern
- Azure Files + AD DS
- NTFS ACLs
- Snapshots + Soft Delete
- 1️⃣4️⃣ Mental Model for Exam
Think in layers
- Storage Account
- → Performance
- → Redundancy
- → Security
- → Lifecycle
- → Data Protection
- → Identity
- → Utilities
Each exam question typically touches 2–3 of these layers simultaneously.
Final Takeaway
For exam success, master
- Storage account architecture
- Redundancy models
- Blob lifecycle + replication
- Management vs data plane security
- Azure Files authentication & protection
- Storage Explorer vs AzCopy differences
Azure Storage questions often test
Design decisions, not just definitions.
Domain 3: Compute (20–25%)
Virtual Machines
- VM sizes — General purpose (D-series), Compute optimised (F-series), Memory optimised (E-series), GPU (N-series).
- Availability options — Availability Zones (99.99% SLA), Availability Sets (99.95% SLA), no HA option (99.9% SLA).
- Scale Sets (VMSS) — auto-scale a group of identical VMs; up to 1000 instances.
- Azure Spot VMs — discounted unused capacity; can be evicted; not for critical workloads.
VM management tasks (exam focus)
- Add a data disk → attach in portal or CLI → partition + format in OS.
- Resize a VM → stop (deallocate) first for most size changes.
- Capture a custom image → generalise (sysprep/waagent) → create image.
- VM extensions — configure via portal or ARM; e.g.,
CustomScriptExtensionruns scripts post-deploy.
App Service
- App Service Plan — defines the compute tier (Free, Shared, Basic, Standard, Premium, Isolated).
- Scale up = bigger plan. Scale out = more instances.
- Deployment slots — swap staging ↔ production with zero downtime.
- Custom domains + TLS certificate management.
Containers
- Azure Container Instances (ACI) — quickest way to run a container; no cluster needed.
- Azure Kubernetes Service (AKS) — managed Kubernetes; Azure manages the control plane.
- Azure Container Registry (ACR) — private Docker image registry.
ARM Templates / Bicep
- ARM templates — JSON-based IaC; declare resources, parameters, variables, outputs.
- Bicep — DSL that compiles to ARM; cleaner syntax; first-class Azure support.
- Deploy via portal, CLI (
az deployment group create), or pipelines.
Deploy and Manage Azure Compute Resources deep dives
These lessons follow the source AZ-104 certification-theory hierarchy and expand the domain summary into practical administrator-level notes.
Introduction to Azure App Service
Creating an App Service Plan deep dive
Azure App Service Plan — simplified, structured summary
What is an App Service Plan?
An Azure App Service Plan is the underlying compute + networking layer that runs your applications (like web apps, APIs, mobile backends).
Think of it like
- VMs + networking + scaling rules = App Service Plan
- Your App Services (apps) run on top of this plan
- Key concepts (easy mental model)
- Plan = infrastructure
- App = code running on that infrastructure
- Multiple apps can run on one App Service Plan (share resources).
- Pricing tiers (very important for exams)
The pricing tier determines
- VM size (CPU, RAM)
- Number of instances
- Features (autoscale, backups, networking, etc.)
Common tiers
- Free / Shared
- Multi-tenant, limited resources
- No SLA
- Basic
- Dedicated compute (but limited features)
- Standard
- Autoscaling, staging slots, backups
- Premium (v2/v3)
- Better performance, scaling, networking
- Isolated (App Service Environment)
- Fully isolated network + compute (single tenant)
- Types of hosting environments
- Shared (Multi-tenant)
Apps share compute + network with other customers
Cheapest option
Lower performance/isolation
- Dedicated
Dedicated VM compute for your apps
Network still shared
Most common production setup
- Isolated (Single-tenant)
Dedicated compute and networking
Runs inside your VNet
Used for
- compliance
- security-sensitive apps
- enterprise workloads
- Region scope
- App Service Plan is tied to a single Azure region
Apps must be deployed in the same region as the plan
Scaling concepts (very important 🔥)
- Scale UP (Vertical scaling)
Change pricing tier / VM size
Example
- S1 -> P1V3
Adds
- more CPU
- more RAM
- more storage
- more features
👉 Used when
- app needs more power per instance
- Scale OUT (Horizontal scaling)
Increase number of instances
Example
- 1 instance -> 5 instances
Options
- Manual scaling
- Rule-based (CPU %, schedule, etc.)
- Automatic (Premium tiers)
👉 Used when
- traffic increases
- need high availability
- Important features by tier (exam focus)
- | Feature | Standard | Premium | Isolated |
- | --- | --- | --- | --- |
- | Autoscale | ✅ | ✅ | ✅ |
- | Staging slots | ✅ | ✅ | ✅ |
- | VNet integration | Limited | Advanced | Full |
- | Zone redundancy | ❌/Limited | ✅ | ✅ |
- | Private networking | ❌ | Partial | ✅ |
- Demo flow (what actually happened)
- Created App Service Plan
- Name: asp-prod-01
- OS: Linux
- Tier: Standard (S1)
- Explored pricing tiers
- Compared CPU, memory, features
- Reviewed scaling
- Scale UP -> change tier (more power)
- Scale OUT -> increase instances
- Observed limits
- Max instances (e.g., 10 for Standard)
- Policies can restrict scaling options
- Real-world decision factors
When choosing a plan, consider
- Compute
- CPU/memory needs
- workload type (light vs heavy)
- Traffic
- expected users
- need for autoscaling
- Networking
- public vs private access
- VNet integration required?
- Compliance/Security
- need isolation -> use Isolated tier
- Key exam takeaways 🚀
- App Service Plan = compute + scaling + networking
- Apps don’t define infrastructure, plans do
- Scale UP = bigger machine
- Scale OUT = more machines
- Multiple apps can share one plan
- Pricing tier controls features + performance
- Isolated tier = full network + compute isolation
- Reference documentation (for deeper study)
- Azure App Service overview and plans
- en us / azure / app service / overview hosting plans
- App Service scaling (up vs out)
- en us / azure / app service / manage scale up
- Autoscale rules and configuration
- en us / azure / azure monitor / autoscale / autoscale get started
- App Service Environment (Isolated tier)
- en us / azure / app service / environment / intro
- Quick revision cheat sheet (30 sec)
- Plan = infrastructure
- App = runs on plan
Tiers = Free → Basic → Standard → Premium → Isolated
Scale UP = change tier
Scale OUT = increase instances
Region-bound
Multiple apps can share plan
Isolated = single tenant + VNet
Understanding Azure App Service deep dive
Azure App Service — simplified, structured summary
What is Azure App Service?
Azure App Service is a fully managed PaaS (Platform-as-a-Service) offering used to host:
Web apps (HTTP-based)
APIs
Mobile backends
Function apps
Containerized applications
👉 You focus on code, Azure manages
- infrastructure
- scaling
- patching
- load balancing
- Core architecture (easy mental model)
- App Service Plan -> infrastructure (VMs + scaling)
- App Service -> your app running on that infrastructure
- Multiple App Services can run on the same plan
- High availability design (very common pattern)
- Deploy multiple App Service instances
Azure automatically
- load balances traffic
- distributes across instances
👉 This ensures
- high availability
- fault tolerance
- scalability
- Under the hood (important for deep understanding)
- Azure Resource Manager (ARM)
Receives deployment requests
Sends them to internal Azure services
- Geo-controller
Global orchestrator
Decides
- where apps are deployed
- which region/scale unit to use
- Scale unit (key concept 🔥)
A cluster of worker nodes (VMs)
Can host many App Services
Includes
- compute resources
- front-end proxy/load balancer
👉 Think of it as
- “a pool of servers running your apps”
- Scale unit components
- Worker nodes -> run your app code
- Front-end proxy -> routes traffic to workers
- Shared infrastructure -> depending on plan type
- Hosting models (very important for exam)
- Multi-tenant (Shared / Dedicated plans)
Shared
Apps share compute + network with other customers
Cheapest, lowest isolation
Dedicated
Dedicated compute (your VM instances)
Still shares network layer
- Most common production setup
- Single-tenant (Isolated / App Service Environment)
Dedicated compute + networking
Runs inside your VNet
No sharing with other customers
👉 Used for
- financial institutions
- strict compliance
- high-security workloads
- Networking capabilities
- VNet Integration
App connects outbound to resources in a VNet
Example
- connect to database in private subnet
- Private Endpoint
Enables inbound private access
App becomes accessible via private IP
- Public endpoint (default)
App is internet-accessible
Can restrict using firewall rules
Security (important 🔐)
App Service has a public endpoint by default
You can
- restrict access via IP rules
- use Private Endpoint for private access only
- combine with VNet + firewall
- Multi-app & multi-subscription flexibility
- Multiple apps -> same plan
- Multiple plans -> same subscription
- Multiple subscriptions -> same tenant
- Even cross-tenant scenarios possible
- Very flexible architecture
- Load balancing (built-in)
- Automatic load balancing across instances
- No need to configure manually
- Containers support
App Service can
- pull images from registries (like ACR)
- run containerized apps
- Key exam takeaways 🚀
- App Service = PaaS hosting for web apps
- Runs on App Service Plan
Uses
- geo-controller
- scale units
- worker nodes
Supports
- multi-tenant (shared/dedicated)
- single-tenant (isolated)
Built-in
- load balancing
- scaling
Networking
- VNet integration (outbound)
- Private Endpoint (inbound)
- Default = public internet access
- Reference documentation (official)
- Azure App Service overview
- en us / azure / app service / overview
- App Service architecture & scaling
- en us / azure / app service / overview hosting plans
- Networking features (VNet, private endpoints)
- en us / azure / app service / networking features
- App Service Environment (isolated hosting)
- en us / azure / app service / environment / intro
- Quick revision cheat sheet (30 sec)
- App Service = PaaS for apps
- Plan = infrastructure
- Scale unit = cluster of servers
- Geo-controller = global orchestrator
- Multi-tenant = shared infra
- Isolated = dedicated infra + VNet
- Built-in load balancing
- Public by default -> secure with private endpoints
Creating an Azure App Service deep dive
Here’s a clean, structured summary + deeper explanation of your transcript so you can quickly review and also build strong conceptual understanding.
📘 Azure App Service – Summary + Deep Dive
(Based on your transcript: )
🚀 1. What is Azure App Service?
Azure App Service is a Platform as a Service (PaaS) offering used to host web applications, APIs, and backend services.
Key idea
You deploy code, Azure manages
- Infrastructure
- OS patching
- Scaling
- Load balancing
- You focus on application, not servers.
- 🧱 2. Core Components
App Service
The actual web app instance
Runs your code (Python, .NET, Node.js, Java, PHP)
App Service Plan
Defines compute + networking resources
Includes
- CPU
- Memory
- Scaling limits
- Pricing tier
👉 Think
- App Service = Application
- App Service Plan = Infrastructure
- 🌐 3. Default Behavior
Every app gets a public URL
- <app name>.azurewebsites.net
- Must be globally unique
- 🧰 4. Supported Deployment Types
When creating an app, you can choose
- Code (most common) -> deploy source code
- Docker container -> run containerized apps
- Static web app -> frontend hosting
- ⚙️ 5. Key Features (Important for Exams + Real Use)
- 🧩 Managed Infrastructure
- No server management
- Fully abstracted (PaaS)
- 📈 Auto Scaling
Scale
- Up -> bigger VM (more CPU/RAM)
- Out -> more instances
- 🟢 High Availability
- Multiple instances -> load balanced automatically
- Built-in redundancy
- 🔄 Deployment Slots (VERY IMPORTANT)
Example
- production
- staging
Use cases
- Test new version safely
- Swap without downtime
- Rollback instantly
- 🔗 Integration Capabilities
- Microsoft Entra ID (authentication)
- Virtual Network (access backend services)
- On-prem systems (hybrid connectivity)
- 🔌 6. Networking Explained (Important Concept)
Default
- Public internet access
Integration (not hosting inside VNet)
- App Service can access resources inside VNet
Example
- App -> VM → Database
Advanced
- App Service Environment (ASE)
- Fully isolated inside VNet (not covered in basic exam)
- 🛠️ 7. Deployment Options
From portal or CI/CD
- GitHub Actions
- Azure DevOps
- Local Git
- Bitbucket
- External repositories
- 🧪 8. Demo Flow (What Happens Practically)
- Create Web App
Choose
- Runtime (Python, etc.)
- OS (Linux/Windows)
- Region
- App Service Plan auto-created
- Deploy app
- Access via URL
Manage via
- Deployment Center
- Scaling
- Networking
- Certificates
9. Key Concepts for Deep Understanding
Why App Service?
Problem it solves
No need to manage
- VMs
- OS updates
- Load balancers
App Service vs VM
| Feature | App Service | Virtual Machine |
| --- | --- | --- |
| Management | Fully managed | You manage OS |
| Scaling | Built-in | Manual |
| Use case | Web apps | Full control workloads |
App Service vs Containers
| Feature | App Service | Containers |
| --- | --- | --- |
| Simplicity | High | Medium |
| Flexibility | Limited | High |
| Best for | Standard apps | Microservices |
📚 10. Reference Documentation
For deeper study
Microsoft Docs
Deployment
Scaling
Networking
- en us / azure / app service / networking features
- 🧾 11. Quick Revision Cheat Sheet
- App Service = PaaS for web apps
- App Service Plan = compute + pricing
- Default -> public endpoint
- Supports multiple runtimes
Key features
- Scaling
- High availability
- Deployment slots
- CI/CD integration
Can integrate with
- VNet
- Entra ID
- No server management required
Introduction to Azure Containers
Describing Containers in Azure deep dive
Describing Containers in Azure (and the ACR demo) — clean review summary
Core container concepts (non-Azure specific)
Dockerfile: the “recipe” that defines
- your app code
- dependencies/libraries
- runtime/config instructions needed to run it
Container image: the built artifact produced from the Dockerfile (a portable “package”). It’s not running yet—it’s like a VM image/template.
Container registry: a repository for storing and versioning images (e.g., Docker Hub, or Azure Container Registry).
Container host/runtime: where images are pulled and started as running containers (e.g., Docker host, Kubernetes, Azure services).
Why containers exist (the “works on my machine” problem)
Before containers: apps often failed elsewhere due to missing dependencies or config drift.
With containers: the image carries the dependencies + runtime expectations, so it runs consistently across environments.
What the Azure demo did (step-by-step, conceptually)
- Create an Azure Container Registry (ACR)
ACR is Azure’s managed private registry: <registryname>.azurecr.io
Picked a pricing tier (Standard in the demo).
Chose networking defaults (public endpoint in the demo, but private is possible).
Important security note from the demo
Enabled Admin user (access keys) to simplify authentication for the lab. In real environments, you typically avoid admin user and prefer Entra ID/RBAC (more below). (Microsoft Learn)
- Pull sample app code (Git clone)
Cloned a repo containing
- Python app (Flask)
- requirements.txt
- Dockerfile
- Review the Dockerfile (what it’s doing)
Typical pattern shown
- Base image: python:3.8-slim
- WORKDIR /app
- COPY app + requirements into the container filesystem
- pip install -r requirements.txt
- EXPOSE 80
- CMD runs the Flask app
- Build + push the image using ACR Tasks (no local Docker build needed)
Used az acr build to
- send the source context to ACR
- build remotely (ACR Tasks)
- push the resulting image into the registry
This is a common “cloud build” workflow and is part of ACR Tasks capabilities. (Microsoft Learn)
- Verify the image exists in ACR repositories
After the build, the ACR Repositories blade shows something like
- sample/hostnameapp
- tag v1
- Run a quick test execution from ACR
Used az acr run to run a container “on demand” (good for quick validation)
In the portal, this appears under Tasks → Runs (build run + run command history)
Deeper understanding & “exam-worthy” details
ACR authentication options (what to use when)
Common methods (best practice order in many orgs)
- Microsoft Entra ID + Azure RBAC (recommended for users/automation)
- Managed Identity (best for Azure resources pulling/pushing without secrets)
- Service principal (CI/CD scenarios where MI isn’t possible)
- Admin user (username/password) (easy for labs; generally avoid in production)
The “push/pull using Docker CLI” walkthrough shows ACR sign-in patterns and discusses authentication approaches. (Microsoft Learn)
RBAC roles you’ll see a lot
AcrPull: pull images
AcrPush: push + pull
Owner/Contributor: broader management (use sparingly)
These built-in roles are central to securing ACR access.
ACR Tasks vs local Docker build
Why ACR Tasks (az acr build) is useful
Build happens in Azure (repeatable environment)
No need for Docker installed on your machine/agent
Logs are captured, and runs are tracked
Fits CI/CD patterns well (Microsoft Learn)
Networking hardening (big in real projects)
Two common patterns
- Public endpoint (simple; restrict with firewall rules where possible)
Private Link / private endpoint (preferred in enterprise): access ACR privately from VNets, block public network access (Microsoft Learn)
Where you run the image after it’s in ACR
Once images are in ACR, you typically run them on
- AKS (Kubernetes)
- Azure Container Instances (ACI)
- App Service (Web App for Containers)
- other container platforms
Example: ACI can pull images from ACR as part of its workflow. (Microsoft Learn)
Quick mental model to remember
- Dockerfile -> Image → Registry → Host → Running container
In Azure demo terms
Dockerfile/code → built by ACR Tasks → stored in ACR → validated via az acr run → then typically deployed to AKS/ACI/App Service
Introduction to Azure Virtual Machines
Creating and Managing Virtual Machines Part 1 deep dive
Structured Summary + Deep Technical Understanding
Primary service
- Azure Virtual Machines
Related services
- Azure Virtual Network
- Azure Managed Disks
- Azure Network Security Group
- Azure Migrate
Official documentation
- VM overview: https://learn.microsoft.com/azure/virtual-machines/overview
- VM sizes: https://learn.microsoft.com/azure/virtual-machines/sizes
- Managed disks: https://learn.microsoft.com/azure/virtual-machines/managed-disks-overview
- Availability options: https://learn.microsoft.com/azure/virtual-machines/availability
1. What Is an Azure Virtual Machine?
An Azure VM is
- Infrastructure as a Service (IaaS) compute
- A cloud-hosted virtualized server
- Built on Azure’s hypervisor platform (based on Hyper-V)
- Deployed into an Azure Virtual Network
It replaces on-prem hypervisor solutions like
- VMware
- Hyper-V
- Physical servers
Key difference from on-prem
You manage
- OS
- Applications
- Configuration
Azure manages
- Physical hardware
- Hypervisor layer
- Datacenter infrastructure
2. VM Core Architecture Components
A VM consists of several associated resources
Compute Resource
The VM itself (CPU + Memory)
Operating System Image
Examples
- Ubuntu
- Red Hat
- Windows Server
- CentOS
Marketplace provides ready-made images.
Storage (Disks)
Modern Azure uses
- Azure Managed Disks
Types
- OS Disk
- Data Disks
- Premium SSD
- Standard SSD
- Standard HDD
Important
Managed disks replaced unmanaged disks (which used storage accounts + page blobs).
Networking
VM networking includes
- Network Interface (NIC)
- Private IP
- Optional Public IP
- Subnet
- Virtual Network
Security controlled by
- Azure Network Security Group
3. Common VM Use Cases
- Domain Controllers (Active Directory)
Run AD DS in VMs.
- Web Servers
Apache
Nginx
IIS
- Database Servers
MySQL
MariaDB
SQL Server
- Network Appliances
Firewalls
VPN appliances
Load balancers
- N-tier Architecture
Deploy
- Frontend in one subnet
- Application tier in another
- Database tier in another
4. VM Deployment Properties (Exam Important)
When deploying a VM, you configure
- | Property | Purpose |
- | --- | --- |
- | Name | Logical resource name |
- | Region | Azure datacenter location |
- | Availability | Zone / Set / None |
- | Size | CPU, Memory, Network |
- | Image | OS selection |
- | Disks | OS + Data disks |
- | Networking | VNet + Subnet + IP |
- | Authentication | SSH / Password / RDP |
5. VM Families Explained
Choosing the correct VM family is critical.
General Purpose
Balanced CPU-to-memory
Use cases
- Dev/Test
- Small web apps
- Light workloads
Compute Optimized
High CPU-to-memory
Use cases
- Web servers
- Batch processing
- Network appliances
Memory Optimized
High memory-to-CPU
Use cases
- Relational databases
- Caching
- In-memory analytics
Storage Optimized
High disk throughput
Use cases
- OLTP databases
- Big data
- Data warehousing
GPU
Graphics acceleration
Use cases
- Video rendering
- AI training
- Deep learning
- Game servers
HPC (High Performance Compute)
Maximum performance
Use cases
- Scientific computing
- Geophysics
- Advanced simulations
Docs
6. Availability Options (Important for High Availability)
During deployment you can choose
- No infrastructure redundancy
- Availability Set
- Availability Zone
- VM Scale Set
Note
Not all regions support Availability Zones.
Docs
7. Deployment Walkthrough Summary (Demo Recap)
Steps performed
- Create Virtual Machine
- Choose Ubuntu 20.04 LTS
- Select VM size (2 vCPU, 8GB RAM)
- Configure authentication (password)
- Select disk type (Premium SSD)
Auto-create
- Virtual Network
- Subnet
- Public IP
- NIC
- Review + Create
- Deploy
After deployment
- VM is running
- Public and Private IP assigned
- SSH connectivity available
- Disk and networking configurable
8. Post-Deployment Management Options
After creation, you can
- Start / Stop VM
- Restart VM
- Resize VM
- Change disk size
- Modify networking
- Add data disks
- Configure NSG rules
- Connect via SSH or RDP
Important
Stopping VM without deallocating still incurs compute charges.
9. VM Networking Concepts
If VM has
- Public IP -> Accessible over internet
- Private IP only -> Internal access only
NSG rules control inbound traffic
- SSH (22)
- HTTP (80)
- HTTPS (443)
- RDP (3389)
- 🔟 Migration to Azure
Existing workloads can be migrated using
- Azure Migrate
Supports
- VMware
- Hyper-V
- Physical servers
Docs
- azure / migrate / migrate services overview
- 1️⃣1️⃣ Cost Considerations
VM pricing depends on
- VM size
- Disk type
- Region
- Running vs stopped
- Public IP
- Network egress
Exam Tip
Compute cost stops only when VM is deallocated.
1️⃣2️⃣ Key Exam Concepts to Remember
- Azure VMs are IaaS
- Managed disks are default
- VM deployed inside a VNet
- VM requires NIC
- VM size determines CPU & memory
- VM families optimized for workloads
- Availability Zones increase resiliency
- Public IP enables internet access
- NSGs control traffic
- Azure manages hypervisor
1️⃣3️⃣ Mental Model
Think of Azure VM as
- Cloud-based server rack
- → Hypervisor managed by Azure
- → You manage OS and applications
It’s your datacenter server — just hosted in Azure.
1️⃣4️⃣ Final Takeaways
- Azure VMs provide flexible IaaS compute
- Multiple VM families for workload optimization
- Networking and storage are separate Azure resources
- Managed disks simplify storage
- Public IP enables remote connectivity
- Availability options improve uptime
- Azure Migrate helps lift-and-shift
- VM management continues after deployment
Creating and Managing Virtual Machines Part 2 deep dive
Structured Summary + Deep Technical Understanding
Primary service
- Azure Virtual Machines
Related services
- Azure Virtual Network
- Azure Network Security Group
- Azure Managed Disks
- Nginx
Official documentation
- VM management overview: https://learn.microsoft.com/azure/virtual-machines/manage-vm
- Resize VM: https://learn.microsoft.com/azure/virtual-machines/sizes/resize-vm
NSG rules: https://learn.microsoft.com/azure/virtual-network/network-security-groups-overview
Move resources: https://learn.microsoft.com/azure/azure-resource-manager/management/move-resource-group-and-subscription
1. VM Management Overview
Once a VM is deployed, administrators must manage it just like on-premise servers.
Common VM management operations include
- Authentication and remote access
- Resizing compute resources
- Managing networking
- Managing storage disks
- Installing applications/services
- Diagnostics and monitoring
- Moving resources between environments
These operations are similar to on-prem virtualization platforms like VMware or Hyper-V but are performed through Azure management tools.
2. Authentication and Remote Access
To manage a VM you must connect to it.
Linux VM
Connection method
- ssh username@public-ip
Uses
- SSH keys (recommended)
- Password authentication
- Windows VM
Connection method
- RDP (Remote Desktop Protocol)
Port
- 3389
Important concept
Remote access requires the correct inbound network rules.
3. VM Networking Management
Each VM is connected to
- Virtual Network
- Subnet
- Network Interface (NIC)
- Optional Public IP
Traffic filtering is controlled using
- Azure Network Security Group
Example NSG rules
- | Service | Port |
- | --- | --- |
- | SSH | 22 |
- | HTTP | 80 |
- | HTTPS | 443 |
- | RDP | 3389 |
Example
Allow SSH rule to connect to Linux VM.
4. VM Storage Components
Azure VMs use
- Azure Managed Disks
Disk types attached to VM
- OS Disk
Contains the operating system.
Temporary Disk
Ephemeral disk used for temporary storage.
Data Disk
Used for application data or databases.
Important exam concept
Temporary disk data is lost during host migration or restart.
Docs
5. Resizing a Virtual Machine
One common management task is resizing the VM.
Reasons to resize
- Increase CPU
- Increase RAM
- Reduce cost
- Handle increased workload
Resize options depend on
- Region capacity
- VM size family
- Current VM state
- Important Behavior
Resizing may require
- VM restart
- Temporary downtime
- Stopping the VM to access more size options
Example impact
Running services may become unavailable temporarily.
Docs
6. VM Deployment Using Azure CLI (Demo)
VM was created using
- az vm create
Key parameters used
- VM name
- Resource group
- OS image
- Security configuration
- SSH key authentication
Example concept
If an incorrect image name is used, Azure CLI returns a list of supported images.
7. SSH Authentication Using Key-Based Access
After VM creation
SSH keys are generated automatically.
Connection command
- ssh <public-ip>
Authentication happens using the stored private key in Cloud Shell.
Key advantage
More secure than passwords.
8. Installing Applications on the VM
After connecting via SSH
Example commands used
- sudo apt update
- sudo apt install nginx -y
This installs
- Nginx
To verify service status
- sudo systemctl status nginx
9. Allowing Web Traffic to the VM
To access the web server
An inbound NSG rule must allow HTTP.
Rule created
- Port: 80
- Protocol: TCP
- Source: Any (for demo purposes)
Once rule applied
Access via browser
The Nginx default page confirms the web server is running.
🔟 VM Connectivity Troubleshooting
If SSH fails
Check
1. NSG rule allows port 22
2. VM is running
3. Public IP exists
4. VM not currently resizing
5. Correct username and key
Example issue shown in demo
SSH failed temporarily because VM was resizing.
1️⃣1️⃣ Moving a Virtual Machine
Azure supports moving resources between
- Resource Groups
- Subscriptions
- Regions (with restrictions)
Important limitation shown
VM with Trusted Launch enabled cannot be moved across regions.
Trusted Launch provides
- Secure Boot
- vTPM protection
- Integrity validation
Docs
- azure / virtual machines / trusted launch
- Moving Between Resource Groups
Supported operation.
Steps
1. Select VM and related resources
2. Choose Move → Move to another resource group
3. Validate dependencies
4. Complete move operation
1️⃣2️⃣ VM Architecture Overview
Typical architecture
- VM
- │
- ├─ Managed OS Disk
- ├─ Data Disk(s)
- ├─ NIC
- │ ├─ Private IP
- │ └─ Optional Public IP
- │
- └─ Network Security Group
VM runs inside
- Azure Virtual Network
- 1️⃣3️⃣ Diagnostics and Monitoring
VM diagnostic features include
- Boot diagnostics
- Performance metrics
- Activity logs
- Guest-level diagnostics
These help administrators troubleshoot
- Boot failures
- Network connectivity
- Resource usage
- Application issues
Docs
- azure / virtual machines / boot diagnostics
- 1️⃣4️⃣ Key Exam Concepts
Important concepts to remember
- VM resizing may require restart
- SSH/RDP requires NSG rule
- Managed disks store VM data
- Temp disk data is not persistent
- NSG controls inbound traffic
- VM can be resized for performance or cost optimization
- Resource moves may have restrictions
- Trusted Launch prevents some migration operations
- 1️⃣5️⃣ Mental Model
Think of Azure VM management as
Cloud version of managing a physical server
- Connect remotely
- Install software
- Adjust hardware resources
- Configure networking
- Secure access
But Azure handles the underlying infrastructure.
1️⃣6️⃣ Final Takeaways
- Azure VMs require ongoing management after deployment
- SSH or RDP enables remote administration
- NSGs control traffic access
- VM resizing helps scale workloads
- Applications can be installed directly on the VM
- Storage consists of OS, temp, and data disks
- Moving VMs has platform limitations
- Trusted Launch improves security but limits mobility
Managing Virtual Machine Disks deep dive
Managing Azure VM disks — summary (easy to review)
- What an Azure “disk” is
An Azure VM uses virtual hard disks (VHDs) presented to the guest OS as block devices.
The common disk categories you manage on a VM:
OS disk: holds the operating system.
Temporary disk: ephemeral storage (not durable; used for swap/temp depending on OS and config).
Data disks: durable disks you attach for app/data (databases, file shares, logs, etc.).
- Managed vs. unmanaged disks (important exam + real-world difference)
Managed disks (modern/default): Azure manages the underlying storage accounts and durability/availability aspects for you. You manage a first-class resource called Disk (RBAC, snapshots, backup integration, etc.).
Unmanaged disks (legacy/classic): VHDs live in a storage account you manage, increasing operational overhead and making scaling/availability management more DIY. (Most environments should avoid new unmanaged designs today.)
Managed disk types and the ability to change disk performance tiers are documented under Azure Disk Storage. (Microsoft Learn)
- Disk performance tiers (what to choose and why)
Azure Disk Storage offers tiers optimized for different workloads:
Ultra Disk: highest performance/lowest latency (heavy OLTP, extremely IO-sensitive workloads). (Microsoft Learn)
Premium SSD / Premium SSD v2: production performance workloads. (Microsoft Learn)
Standard SSD: dev/test, web servers, lighter enterprise workloads. (Microsoft Learn)
Standard HDD: lowest cost; backup/non-critical workloads. (Microsoft Learn)
Key constraint: disk throughput/IOPS can be limited by VM size, so “fast disk + small VM” may still bottleneck (common gotcha for databases).
What the demo actually did (step-by-step, conceptually)
A) Create a managed disk resource
In the portal:
Create Managed Disk
Pick region, size (GB), and tier (Premium/Standard/etc.)
Choose redundancy (commonly LRS for many single-region patterns; higher redundancy depends on scenario)
Review encryption settings (platform-managed by default; CMK optional)
Disk tiers and management are covered in Azure Disk Storage docs. (Microsoft Learn)
B) Attach the disk to an existing VM
Portal path (typical):
VM → Disks → Attach existing disk (or create+attach)
Attaching makes the disk visible to the guest OS, but the disk is empty/unformatted, so the OS won’t “use” it until you partition + format + mount it.
C) Initialize the disk inside Linux (partition, format, mount)
Typical Linux workflow:
Identify the new device (often /dev/sdc, /dev/sdd, etc.)
Partition it
Create a filesystem
Mount it to a directory (optionally persist via /etc/fstab)
Microsoft’s Linux VM guidance shows the exact idea (use lsblk, partition, mkfs, mount). (Microsoft Learn)
Example commands (your transcript used parted + mkfs.xfs, which is very common):
lsblk
Partition (example with parted; replace /dev/sdd with your new disk)
sudo parted /dev/sdd --script mklabel gpt mkpart primary 0% 100%
Format (XFS example)
sudo mkfs.xfs -f /dev/sdd1
Create mount point + mount
sudo mkdir -p /datadrive
sudo mount /dev/sdd1 /datadrive
Verify
lsblk
The architecture-center guide demonstrates the same lifecycle: discover disk → partition → create filesystem → mount. (Microsoft Learn)
Important troubleshooting insight from the demo
“Permission denied (publickey)” when SSH’ing
That happened because the VM was created with SSH key auth, but the user tried to connect without the right private key (or from an environment that didn’t have it available).
Common fixes:
Use the correct private key (best).
Or reset credentials / re-inject SSH keys using supported Azure mechanisms (commonly via VM agent/extension tooling). A Microsoft sample shows using the VMAccess extension to add/modify users/keys on Ubuntu. (Microsoft Learn)
If reset operations fail, a frequent root cause is VM agent / extension health (walinuxagent, extension failures, etc.). (Microsoft Learn)
Deeper understanding + best practices (exam-friendly)
- Plan disks around the workload
Databases: isolate data/log/temp onto separate disks when needed; pick Premium/Ultra when latency matters.
Apps/logs: standard SSD often fine for many internal apps.
“Cheap storage” for non-critical: standard HDD.
- Mount persistence
Mounting is temporary across reboot unless you add an /etc/fstab entry (Linux). In production, always validate:
correct UUID/label usage
boot doesn’t hang if disk missing (use nofail where appropriate)
- Security & encryption posture
Storage encryption at rest is typically on by default for Azure-managed storage; for stricter compliance, consider customer-managed keys (CMK) (often with Key Vault) for disks depending on requirements. (Microsoft Learn)
- “Shared disk” is a special case
You saw a “shared disk” toggle in the UI. Shared disks are for cluster-style scenarios (multiple VMs attaching to the same disk) and come with design constraints—don’t enable it unless you’re implementing a supported clustering pattern.
Reference documentation (official / primary)
Azure Disk Storage overview and disk types/performance tiers (Microsoft Learn)
Linux VM guidance showing data-disk partition/format/mount workflow (Microsoft Learn)
VMAccess extension sample (adds/modifies users/SSH keys on Ubuntu) (Microsoft Learn)
Troubleshooting reset/password/agent/extension issues (Microsoft Q&A) (Microsoft Learn)
Domain 4: Virtual Networking (15–20%)
Core networking concepts
- VNet — isolated network (CIDR range, e.g., 10.0.0.0/16). Resources in same VNet communicate freely.
- Subnet — divide VNet into segments (e.g., web: 10.0.1.0/24, db: 10.0.2.0/24). Azure reserves 5 IPs per subnet.
- NSG — Layer 4 stateful firewall rules. Apply at subnet or NIC level.
- Route tables — custom routes to override default Azure routing (e.g., force traffic through NVA).
- VNet Peering — low-latency connection between VNets (same or different regions). Not transitive.
- Service endpoints — route traffic to Azure services (Storage, SQL) over Azure backbone.
- Private endpoints — inject an Azure service into your VNet with a private IP.
Connectivity options
| Option | Use case |
|---|---|
| VPN Gateway | Site-to-site IPsec VPN to on-premises; point-to-site for remote users |
| ExpressRoute | Dedicated private connection to Azure; no internet |
| Azure Bastion | Secure RDP/SSH to VMs via browser; no public IP on VMs |
| Azure NAT Gateway | Outbound internet for private subnet VMs |
Load balancing
| Service | Layer | Use case |
|---|---|---|
| Azure Load Balancer | Layer 4 | TCP/UDP; high throughput; internal or external |
| Application Gateway | Layer 7 | HTTP/HTTPS; WAF; URL-based routing |
| Azure Front Door | Global Layer 7 | CDN + WAF + global load balancing |
| Traffic Manager | DNS-based | Route to closest region; failover |
Azure DNS
- Host public DNS zones in Azure.
- Private DNS zones — name resolution within VNets; link to VNet for auto-registration.
Implement and Manage Virtual Networking deep dives
These lessons follow the source AZ-104 certification-theory hierarchy and expand the domain summary into practical administrator-level notes.
Introduction to Virtual Networking
Conceptualizing Virtual Networks deep dive
Conceptualizing Virtual Networks – Structured Summary + Deep Dive
This lesson explains the foundational networking concept in Azure
- Azure Virtual Network
An Azure Virtual Network (VNet) is the core networking boundary in Azure — comparable to your on-premises private network.
1. What Is an Azure Virtual Network?
A Virtual Network (VNet)
- Isolated private network in Azure
- Uses private IP address space (RFC 1918)
- Hosts IaaS and integrates PaaS services
- Supports hybrid connectivity
Think of it as
- Your private data center network
- → but inside Azure
2. What Can a VNet Connect?
VNets enable integration with
- IaaS Services
- Azure Virtual Machines
- Virtual Machine Scale Sets
- Network Virtual Appliances
- PaaS Services
- Via Service Endpoints
- Via Private Endpoints
- Hybrid Environments
- Site-to-Site VPN
- ExpressRoute
- VNet Peering
3. Core Components of a Virtual Network
1. Address Space
Every VNet must define
- RFC 1918 private IP range
Example
- 10.0.0.0/16
- 172.16.0.0/16
- 192.168.0.0/16
This defines the total IP pool available.
Important
You cannot overlap address spaces when connecting VNets or hybrid networks.
2. Subnets
Subnets are
- Segments of VNet address space
- Used to group workloads
- Security and routing boundaries
Example
- 10.0.0.0/16
- ├── 10.0.1.0/24 (Web)
- ├── 10.0.2.0/24 (App)
- └── 10.0.3.0/24 (DB)
Each subnet
- Assigns IPs to resources
- Can have NSGs
- Can have route tables
- Can enable service endpoints
3. Connected Devices
Connected devices include
- Virtual Machines
- NICs
- Load Balancers
- Bastion
- Private Endpoints
Each connected device receives
- Private IP (via Azure DHCP)
- Optional Public IP
4. Private IP Addressing (DHCP)
Azure provides
- Managed DHCP
- Automatic IP assignment
- DNS configuration distribution
Important
You cannot deploy your own DHCP server to replace Azure DHCP for VM IP assignment.
5. Public IP Association
A resource may have
- Private IP (inside VNet)
- Public IP (internet accessible)
Public IP is attached to
- Network Interface
- Load Balancer
- NAT Gateway
Security Best Practice
Avoid unnecessary public IPs.
6. Routing in VNets
Azure provides
- System Routes (Default)
These are
- Automatically created
- Immutable
- Control traffic within VNet and internet
Examples
- VNet local route
- Default internet route (0.0.0.0/0)
- Custom Routes (User Defined Routes – UDRs)
You can
- Override system routes
- Send traffic to NVA (firewall)
- Control hybrid routing
Route types
- Virtual Appliance
- Internet
- VNet Peering
- Service Endpoint
- BGP propagated routes
7. DNS Settings
By default
- Azure provides internal DNS (168.63.129.16)
Options
- Azure-provided DNS
- Custom DNS servers
- Domain controllers in subnet
If using AD DS
You must configure custom DNS settings.
4. Hybrid Connectivity Options
VNets support
- Azure VPN Gateway
- Azure ExpressRoute
This allows
- On-prem ↔ Azure network extension
Important
Address space must not overlap.
5. VNet as Security Boundary
VNets provide
- Isolation from other Azure customers
- Segmentation via subnets
- Network Security Group enforcement
- Routing control
- Private connectivity
Think of VNet as
Layer 3 boundary in Azure.
6. Common Exam Concepts (AZ-104 / AZ-700)
VNet must have non-overlapping IP space
Subnets cannot overlap
Azure DHCP is managed
System routes cannot be removed
Custom DNS overrides Azure DNS
Public IP is optional
7. Architectural Pattern Example
Typical 3-tier architecture
- Internet
- → Public Load Balancer
- → Web Subnet
- → App Subnet
- → DB Subnet
Optional
Hybrid connectivity via VPN Gateway.
8. Design Best Practices
- Plan address space carefully
- Avoid overlapping IP ranges
- Use subnet segmentation
- Minimize public IP usage
- Use NSGs per subnet
- Use UDRs for traffic inspection
- Use private endpoints for PaaS
9. Troubleshooting Scenarios
If VM cannot communicate
- Check subnet placement
- Check NSGs
- Check route tables
- Verify DNS configuration
- Confirm IP address assignment
- 🔟 Reference Documentation
- Virtual Network Overview
- azure / virtual network / virtual networks overview
- IP Address Planning
- azure / virtual network / virtual network ip addresses overview
- Routing Overview
- azure / virtual network / virtual networks udr overview
- DNS in Azure
- azure / virtual network / virtual networks name resolution for vms and role instances
- Hybrid Connectivity
- azure / architecture / reference architectures / hybrid networking
- Final Conceptual Summary
Azure Virtual Network is
- Your isolated private cloud network
- Built on RFC 1918 address space
- Segmented into subnets
- Controlled by routing & NSGs
- Integrated with IaaS, PaaS, and hybrid
Everything networking-related in Azure starts with VNet.
Creating Virtual Networks deep dive
Creating Virtual Networks – Structured Summary + Deep Dive
This lesson builds on VNet concepts and walks through
- How to design a virtual network properly
- How to create it in Azure
- How to deploy a VM into it
Core service
- Azure Virtual Network
1. Step 1: Designing Before Creating (Critical for Real-World & Exams)
Networking must be planned before implementation.
A. Choose IP Address Space (CIDR)
VNets use RFC 1918 private IP ranges
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
Example
- 172.16.0.0/16
Key Planning Rule
✔ Must NOT overlap with
- Other VNets
- On-prem networks
- Other clouds
- Future peered networks
- Why?
Overlapping IP space causes
- Complex NAT requirements
- Routing failures
- Hybrid connectivity issues
- B. Subnet Design
After choosing address space, segment into subnets.
Example
- 172.16.0.0/16
- ├── 172.16.1.0/24 (Frontend)
- ├── 172.16.2.0/24 (Backend)
- └── 172.16.3.0/24 (Identity)
Subnet design depends on
- Application tiers
- Security boundaries
- Scaling needs
- Routing control
Each subnet
- Allocates IPs to workloads
- Can have NSGs
- Can have route tables
- Can enable service endpoints
- C. Determine Connectivity Requirements
Questions to ask
- Does frontend need public access?
- Do backend systems require private-only access?
- Do we need load balancers?
- Do we need VNet peering?
- Do we need hybrid connectivity?
Connectivity options include
- Azure Load Balancer
- Azure VPN Gateway
- Azure ExpressRoute
- VNet Peering
Good design considers future expansion.
2. Creating the Virtual Network (Portal Walkthrough)
Step 1: Define Basics
Name: vnet-prod-01
Region: East US
Subscription + Resource Group
Naming convention example
- vnet-[environment]-[number]
- Step 2: Advanced Features (Optional)
Options include
- Virtual Network Encryption
- Azure Bastion integration
- Azure Firewall
- DDoS Protection Plan
Most deployments leave these off initially unless required.
Step 3: Address Space
Example configured
- 172.16.0.0/16
Possible adjustment
- 172.16.0.0/24
Planning Tip
Always leave space for growth.
Step 4: Create Subnet
Example
- fe-subnet
- 172.16.0.0/29
/29 provides
8 IP addresses (5 usable after Azure reservation).
Important
Azure reserves 5 IPs per subnet.
So
- /29 -> 8 total → 3 usable
- /24 -> 256 total → 251 usable
Plan subnet sizes carefully.
Step 5: Private Subnet Option
“Private subnet” disables default outbound internet access.
Useful for
- Backend databases
- High-security environments
3. Deploying a VM into the VNet
Created
- Ubuntu VM
- No public IP
- No inbound public ports
- Placed in fe-subnet
Key Settings
- Public IP: None
- NIC NSG: None (for simplicity)
- Accelerated networking: Enabled
4. What Happens Internally
After deployment
- NIC created
- Private IP assigned via Azure DHCP
- VM attached to subnet
- System routes applied
5. System Default Routes
Every subnet automatically gets
- Local VNet route
- Internet route (0.0.0.0/0)
- Service routes
- VNet peering routes (if configured)
System routes
- Automatically created
- Cannot be deleted
- Can be overridden with UDRs
6. DNS Behavior
By default
- Uses Azure-provided DNS (168.63.129.16)
Can configure
- Custom DNS
- Domain controllers
- Hybrid DNS forwarding
If using Active Directory
Must configure custom DNS.
7. Connected Devices View
Inside VNet
You can view
- NICs
- Private Endpoints
- Bastion
- Other resources
Effective routes are visible on NIC level.
8. Real-World Architecture Example
Typical Production Layout
- Internet
- → Public Load Balancer
- → Frontend Subnet
- → Internal Load Balancer
- → Backend Subnet
- → Identity Subnet
Hybrid
- → VPN Gateway subnet
9. Best Practices
- Avoid overlapping IP ranges
- Use structured subnet naming
- Plan for hybrid early
- Reserve IP space for future growth
- Use private subnets for backend
- Minimize public IP exposure
- Use NSGs and UDRs appropriately
🔟 Common Exam Traps (AZ-104 / AZ-700)
- Subnets can overlap → False
- Azure reserves 2 IPs → False (reserves 5)
- You can remove system routes → False
- You must use 10.x.x.x range → False (any RFC 1918 allowed)
- VM requires public IP → False
11. Reference Documentation
Virtual Network Overview
IP Address Planning
Subnet Design
User Defined Routes
DNS for VMs
Hybrid Networking
Final Conceptual Summary
Creating a VNet involves
1. Designing address space
2. Segmenting subnets
3. Planning connectivity
4. Deploying resources
5. Understanding routing & DNS
Networking design mistakes are costly to fix later — planning is critical.
Managing Public and Private Connectivity deep dive
Managing Public and Private Connectivity – Structured Summary + Deep Dive
This lesson explains how Azure Virtual Networks handle public and private connectivity, focusing on:
IP addressing
Network Interface (NIC) components
Public IP configuration
Network Security Groups (NSGs)
Core services involved
- Azure Virtual Network
- Azure Virtual Machines
- Azure Public IP Address
- Azure Network Security Group
1. Understanding Public vs Private Zones
Azure networking operates in two logical spaces
- 🔒 Private Zone
- Virtual Networks (VNets)
- Subnets
- Private IP addresses
- VM-to-VM communication
- Hybrid connectivity (VPN/ExpressRoute)
- 🌐 Public Zone
- Internet
- Public IP addresses
- Public endpoints of PaaS services
2. How Public Connectivity Works
To expose a VM publicly
- Assign a Public IP resource
- Associate it with VM’s NIC
- Configure NSG to allow inbound traffic
Traffic Flow
Internet → Public IP → NAT → Private IP → VM
Public connectivity always involves Network Address Translation (NAT).
3. How Private Connectivity Works
Private connectivity
- Uses private IP addresses
- Stays within VNet
- Works across peered VNets
- Works across hybrid (VPN/ExpressRoute)
Example
- VM1 (172.16.0.4) -> VM2 (172.16.0.5)
No public IP required.
4. Network Interface Card (NIC) Components
Each VM has a NIC with
- IP Configuration
- Private IP (dynamic or static)
- Optional Public IP association
- Subnet Association
- Determines IP allocation range
- DNS Settings
- Inherit from VNet
- Or use custom DNS
- NSG Association
- Controls inbound/outbound traffic
5. Private IP Configuration
Private IP
- Assigned via Azure-managed DHCP
- Can be dynamic (default)
- Can be set to static
Important
Azure reserves 5 IPs per subnet.
6. Public IP Configuration
Public IP resource options
- SKU Types
- | Feature | Basic | Standard |
- | --- | --- | --- |
| Security | Open by default | Secure by default |
| IP assignment | Dynamic or Static | Static only |
| Recommended | No | Yes |
Standard SKU
- Requires NSG rule to allow traffic
- More secure
7. Demonstration Summary
Steps performed
- Created Standard Public IP
- Associated it to VM NIC
- Attempted SSH -> Failed (secure by default)
- Created Network Security Group
- Added inbound SSH rule
- Successfully connected via public IP
- Used private IP to SSH into second VM
This demonstrated
- Public connectivity via Public IP + NSG
- Private connectivity via Private IP
8. Network Security Groups (NSGs)
NSGs are
- Stateful Layer 4 firewalls
Can attach to
- Subnet
- NIC
Rule example
- Allow SSH (Port 22)
- Source: Any
- Destination: Any
- Action: Allow
Without NSG rule
Standard Public IP will block traffic.
9. Public IP Security Behavior
Standard Public IP
- Closed by default
- Requires explicit NSG allow rule
Basic Public IP
- ⚠ More permissive
- ⚠ Not recommended for production
- 🔟 Jump Box Pattern (What Demo Showed)
Public connectivity used only for VM1.
Then
- VM1 (Public Access)
- → SSH
- → VM2 (Private IP)
This is traditional “jump host” model.
More secure alternative
Use Azure Bastion instead.
11. Key Exam Concepts (AZ-104 / AZ-700)
Standard Public IP requires NSG rule
Public IP is separate resource
Public IP performs NAT
Private connectivity requires no public IP
NSG can be applied to NIC or subnet
Private IP assigned from subnet range
12. Connectivity Models Compared
| Connectivity Type | Requires Public IP | Uses NAT | Secure by Default |
| --- | --- | --- | --- |
| Private (VNet) | No | No | Yes |
| Public IP (Standard) | Yes | Yes | Yes |
| Public IP (Basic) | Yes | Yes | Less secure |
| Bastion | No | Yes (managed) | Yes |
13. Design Best Practices
- Avoid assigning public IPs directly to VMs
- Use Standard SKU public IPs
- Use NSGs for granular control
- Prefer Bastion for admin access
- Segment workloads into subnets
- Use private connectivity whenever possible
14. Troubleshooting Checklist
If SSH fails
- Check Public IP associated?
- Confirm NSG rule exists?
- Confirm correct port?
- Verify VM running?
- Check effective security rules?
If private connectivity fails
- Confirm both VMs in same VNet?
- Check NSGs blocking traffic?
- Verify correct private IP?
15. Reference Documentation
Azure Virtual Network
Public IP Addresses
Network Security Groups
Azure VM Networking
Effective Security Rules
Final Conceptual Summary
Public Connectivity
- Uses Public IP
- Requires NSG allow rule
- Involves NAT
Private Connectivity
- Uses private IP
- Stays inside VNet
- Secure by default
Managing connectivity requires understanding
- NIC configuration
- Public IP association
- NSG rules
- Subnet design
Routing Inside Virtual Networks deep dive
Routing Inside Virtual Networks – Structured Summary + Deep Dive
This lesson explains how routing works inside
- Azure Virtual Network
Routing determines how traffic moves from one destination to another inside Azure and beyond.
1. What Is Routing?
Routing = The path traffic takes between networks.
Think of routes like
- Roadways between cities
- Without them, traffic has nowhere to go
In Azure, routing determines
- Private communication (VM ↔ VM)
- Internet access
- Hybrid connectivity (on-prem ↔ Azure)
- VNet peering traffic
2. Types of Routes in Azure
Azure has three main route types
- | Type | Description | Can Modify? |
- | --- | --- | --- |
| System Routes | Default routes created by Azure | ❌ No |
| User-Defined Routes (UDR) | Custom routes you create | ✅ Yes |
| BGP Routes | Learned from on-prem via gateway | Semi-managed |
3. System Routes (Default)
Created automatically when
- You create a VNet
- You create a subnet
- You deploy a VM
Examples
- VNet local route
- Internet route (0.0.0.0/0)
- Peering route
- Service endpoint route
Important
- Immutable
- Automatically applied
- Can be overridden
4. User-Defined Routes (UDRs)
Created via
- Azure Route Table
Steps
- Create Route Table
- Add Route
- Associate Route Table to Subnet
UDRs allow you to
- Override system routes
- Force traffic through firewall
- Drop traffic
- Send traffic to VPN gateway
- Send traffic to NVA (Network Virtual Appliance)
5. BGP Routes
Used when
- Hybrid connectivity exists
- Using VPN Gateway or ExpressRoute
- BGP enabled between Azure and on-prem
- Azure VPN Gateway
- Azure ExpressRoute
BGP automatically exchanges
- On-prem routes
- Azure routes
BGP routes override system routes but not UDRs.
6. Route Precedence Order (VERY IMPORTANT FOR EXAM)
Priority order
1. User-Defined Routes
2. BGP Routes
3. System Routes
If multiple routes match same prefix
Most specific prefix wins (Longest prefix match).
7. Demonstration Summary
Created
- Route table (rt-prod-01)
Route
- 0.0.0.0/0 -> Virtual Appliance → 172.16.0.6
- Associated route table to subnet
Result
System default internet route
- 0.0.0.0/0 -> Internet
Became
- ❌ Invalid
User-defined route
- 0.0.0.0/0 -> Virtual Appliance
Became
- Active
This demonstrates
UDR overrides system route.
8. Next Hop Types Explained
When creating a route, next hop options include
- | Next Hop Type | Purpose |
- | --- | --- |
- | Internet | Send traffic directly to internet |
- | Virtual Appliance | Send to firewall/NVA |
- | VNet Peering | Route to peered VNet |
- | VNet Gateway | Send to VPN/ExpressRoute |
- | None | Drop traffic |
Example Security Pattern
Force all outbound internet traffic through firewall
- 0.0.0.0/0 -> Virtual Appliance (Firewall IP)
9. Subnet-Level Association
Important
Route tables are associated at subnet level, not VNet level.
If you want routing applied to all subnets
- Associate route table to each subnet
- 🔟 Effective Routes
You can check
- NIC -> Effective Routes
This shows
- Active routes
- Invalid routes
- Overridden routes
- Next hop type
This is key for troubleshooting.
11. Security & Routing Relationship
Routing controls where traffic goes.
Security controls whether traffic is allowed.
Security is enforced by
- Azure Network Security Group
NSGs are
- Layer 4 firewalls
- Stateful
- Applied at subnet or NIC
Important
- Routing ≠ Security
NSG blocks traffic even if route exists.
12. Common Enterprise Routing Patterns
1. Forced Tunneling
Send all internet traffic to firewall
- 0.0.0.0/0 -> Firewall
2. Hub-Spoke Architecture
Spoke VNets
- Route -> Hub Firewall
3. Hybrid Routing
If BGP disabled
Create UDR
- OnPremSubnet -> Virtual Network Gateway
13. Common Exam Scenarios (AZ-104 / AZ-700)
- Route table affects whole VNet → False (subnet only)
- System routes can be deleted → False
- BGP overrides UDR → False
- UDR overrides system route → True
- Most specific prefix wins → True
14. Troubleshooting Checklist
If traffic fails
- Check effective routes
- Confirm route table associated
- Verify next hop reachable
- Check NSG rules
- Confirm no conflicting UDR
If internet stops working after UDR
- Check 0.0.0.0/0 override
- Confirm firewall reachable
15. Reference Documentation
Routing Overview
System Routes
Effective Routes
BGP Routing
Route Tables
Final Conceptual Summary
Azure Routing Model
- System routes = automatic
- UDRs = override control
- BGP = hybrid exchange
- UDR > BGP > System
- Subnet-level association
- Effective routes show final result
Routing defines the path.
NSGs define permission.
Both must work together.
Configuring Azure VNet Peering deep dive
Configuring Azure VNet Peering – Structured Summary + Deep Dive
This lesson explains how to connect isolated virtual networks using
- Azure Virtual Network
- VNet Peering
1. What Is VNet Peering?
By default
- VNets are isolated
- No communication between them
- Even within same subscription
VNet Peering enables
- Private IP communication
- High-speed backbone connectivity
- Cross-region connectivity
- Cross-subscription connectivity
- Cross-tenant connectivity
2. Requirements for VNet Peering
- Non-overlapping IP address space
- If CIDR overlaps -> Peering fails
Example
- VNet-A -> 172.16.0.0/24
- VNet-B -> 10.0.0.0/16
This works.
- VNet-A -> 172.16.0.0/24
- VNet-B -> 172.16.0.0/16
This fails (overlapping).
3. Key Characteristics
Private connectivity only
Traffic flows over Azure backbone.
Not encrypted by default
Unlike VPN (IPsec), peering is not encrypted unless VNet encryption is enabled.
Non-transitive
Very important concept
If
- VNet-A ↔ VNet-Hub
- VNet-B ↔ VNet-Hub
VNet-A ❌ cannot talk to VNet-B automatically.
Each pair requires its own peering.
4. Types of VNet Peering
- Regional Peering
Same Azure region
- Global Peering
Across regions
- Cross-Subscription Peering
Different subscriptions
- Cross-Tenant Peering
Different Azure AD tenants
5. Demonstration Summary
Environment
- VNet-Prod-01 -> 172.16.0.0/24
- VM: 172.16.0.4
- VNet-Prod-02 -> 10.0.0.0/16
- VM: 10.0.0.4
Before peering
- Ping 10.0.0.4 -> ❌ Failed
After peering
- Ping 10.0.0.4 -> ✅ Success
6. How Peering Is Created
Peering must be
- Configured on both VNets
- Azure portal creates both sides automatically
Each side has
- Peering name
- Remote VNet
- Allow forwarded traffic option
- Gateway usage options
7. Important Peering Options Explained
| Option | Purpose |
| --- | --- |
| Allow VNet access | Enables connectivity |
| Allow forwarded traffic | Required for NVA routing |
| Allow gateway transit | Share gateway to other VNet |
| Use remote gateway | Use remote VNet’s VPN/ExpressRoute |
8. Gateway Transit Scenario (Hub-Spoke)
Example
- Hub VNet -> Has VPN Gateway
- Spoke VNet -> Uses remote gateway
Configuration
Hub
- Allow gateway transit
Spoke
- Use remote gateway
This allows spokes to use hub’s gateway.
9. VNet Peering vs VPN
| Feature | VNet Peering | VPN |
| --- | --- | --- |
| Encryption | Not by default | Yes (IPsec) |
| Speed | High (Azure backbone) | Lower |
| Cost | Peering data transfer cost | VPN gateway cost |
| Setup complexity | Simple | Moderate |
🔟 Routing with Peering
When peering is created
Azure automatically
- Adds system routes
- Updates effective routes
- Enables private communication
No manual route table required.
11. Security Considerations
Peering enables connectivity, but
- NSGs still apply
- Route tables still apply
- Firewall rules still apply
Peering ≠ unrestricted access.
12. Common Exam Concepts (AZ-104 / AZ-700)
- Peering is transitive → False
- Peering requires same region → False
- Peering requires non-overlapping CIDR → True
- Peering traffic is encrypted by default → False
- Peering works across subscriptions → True
13. Hub-and-Spoke Architecture Example
Hub
/ \
Spoke1 Spoke2
Spoke1 ↔ Hub
Spoke2 ↔ Hub
Spoke1 ❌ Spoke2 (unless directly peered)
14. Troubleshooting Checklist
If peering not working
- Check IP ranges overlap?
- Confirm peering status = Connected
- Check NSGs blocking traffic
- Check UDRs overriding routes
- Verify gateway transit settings
15. Reference Documentation
VNet Peering Overview
Global VNet Peering
Hub-Spoke Architecture
Effective Routes
Final Conceptual Summary
VNet Peering
- Connects isolated VNets
- Uses Azure backbone
- Requires non-overlapping IPs
- Is non-transitive
- Not encrypted by default
- Supports cross-region & cross-subscription
It is the foundational building block of
- Hub-spoke designs
- Enterprise multi-VNet environments
- Partner connectivity
- Mergers & acquisitions scenarios
Network Security Groups deep dive
Network Security Groups (NSGs) – Structured Summary + Deep Dive
This lesson explains how Azure secures traffic inside and outside virtual networks using:
Azure Network Security Group
Azure Virtual Network
1. What Is a Network Security Group (NSG)?
An NSG is
- A Layer 4 (TCP/UDP) stateful firewall
- Used to control inbound and outbound traffic
Applied at
- Subnet level
- NIC level
It protects
- Traffic from internet
- Traffic from peered VNets
- Traffic from on-prem
- Even traffic within same subnet
2. Why NSGs Are Needed
Azure VNets can have
- Public IP connectivity
- VNet Peering
- Hybrid VPN
- Internal subnet communication
Without NSGs
All allowed traffic routes would be reachable.
NSGs enforce
- Allow / Deny
based on
- Source
- Destination
- Port
- Protocol
- Direction
- Priority
3. Where Can NSGs Be Applied?
Option 1️⃣ Subnet Level
Affects all NICs inside subnet
Good for centralized policy
Option 2️⃣ NIC Level
Affects only that VM
Good for granular control
You can combine both.
4. Default NSG Rules (System Rules)
Every NSG includes built-in rules (priority 65000+)
Default Inbound
- Allow VNet traffic
- Allow Azure Load Balancer
- Deny all other inbound
Default Outbound
- Allow VNet traffic
- Allow Internet
- Allow Azure services
User-defined rules
- Have priority 100–4096
- Lower number = higher priority
5. Demonstration Summary
Scenario
- Ubuntu VM
- Public IP assigned
- NGINX installed
- Want HTTP access (port 80)
Initially
- HTTP blocked
- Because no NSG rule allowed it
Action Taken
Added inbound rule
- Source: Any
- Destination: Any
- Protocol: TCP
- Port: 80
- Action: Allow
- Priority: 110
Result
- HTTP traffic allowed
- NGINX webpage accessible
6. Stateful Firewall Behavior (Very Important)
NSGs are stateful.
This means
If inbound rule allows HTTP
Return outbound traffic is automatically allowed.
You DO NOT need to create reverse outbound rule.
State tracking is automatic.
7. NSG Rule Components
Each rule defines
- | Component | Description |
- | --- | --- |
- | Direction | Inbound / Outbound |
| Source | IP / CIDR / Any / Service tag |
| Destination | IP / Any |
| Protocol | TCP / UDP / Any |
| Port | Single / Range |
| Action | Allow / Deny |
| Priority | Lower = Higher precedence |
8. Priority Rules
Rules are evaluated
1. Lowest priority number first
2. First match wins
3. Stops evaluation
Example
- Priority 100 -> Deny HTTP
- Priority 200 -> Allow HTTP
Result
- Traffic denied (100 wins)
9. Internal Traffic Impact
Important concept
Even VM-to-VM traffic in same subnet
- Leaves VM
- Hits virtual router
- Comes back
NSG rules apply to
- East-West traffic
- Not just internet traffic
- 🔟 Monitoring with NSG Flow Logs
NSG supports monitoring via
- Flow logs
- Traffic analytics
- Storage account integration
Useful for
- Security auditing
- Troubleshooting
- Compliance
Flow logs show
- Allowed traffic
- Denied traffic
- Source/destination
- Ports
11. Subnet vs NIC Scope Comparison
| Feature | Subnet NSG | NIC NSG |
| --- | --- | --- |
| Scope | All VMs in subnet | Single VM |
| Easier management | Yes | Less |
| Granular control | Less | More |
| Enterprise usage | Common | Selective |
Best Practice
Use subnet-level NSGs primarily.
12. Common Enterprise Pattern
Frontend Subnet
- Allow HTTP/HTTPS
- Deny everything else
Backend Subnet
- Allow only frontend subnet
- No internet access
Database Subnet
- Allow only backend subnet
13. Common Exam Concepts (AZ-104 / AZ-700)
- NSGs are stateless → False
- NSG applied at VNet level → False
- Return traffic requires explicit rule → False
- Lower priority number wins → True
- NSGs control Layer 7 → False (Layer 4 only)
14. Troubleshooting Checklist
If traffic blocked
- Check NSG inbound rules
- Check NSG outbound rules
- Verify priority order
- Check subnet + NIC both
- Review effective security rules
If rule not working
- Confirm rule priority
- Confirm correct direction
- Confirm protocol matches
15. Security Best Practices
- Use Standard public IPs
- Avoid “Allow Any Any” rules
- Space priorities (100, 200, 300)
- Use service tags where possible
- Log traffic using flow logs
- Apply least privilege principle
16. Reference Documentation
NSG Overview
Default Security Rules
NSG Flow Logs
Effective Security Rules
Final Conceptual Summary
NSGs
- Control traffic at subnet/NIC
- Stateful Layer 4 firewall
- Inbound + Outbound rules
- Priority-based evaluation
- Return traffic automatically allowed
They are the primary traffic control mechanism inside Azure VNets.
Application Security Groups deep dive
Application Security Groups (ASGs) – Structured Summary + Deep Dive
This lesson explains how to make Network Security Groups (NSGs) more scalable and logical using:
Application Security Group
Azure Network Security Group
Azure Virtual Network
1. What Is an Application Security Group (ASG)?
An ASG is
- A logical grouping of VM network interfaces
- Used inside NSG rules
- Acts like a dynamic tag for NICs
- Helps build application-tier-based security
Important
ASGs do NOT filter traffic themselves.
They are referenced inside NSG rules.
2. Why ASGs Exist
Without ASGs, NSG rules must specify
- IP addresses
- Subnets
- Individual NICs
Problem
If IPs change or VMs scale out
You must constantly update NSG rules.
ASGs solve this by
Grouping resources logically
- asg-web
- asg-db
- asg-app
Then NSG rules reference
- Source: asg-web
- Destination: asg-db
- Port: 1433
No IP management required.
3. How ASGs Work
ASGs are
- Associated at the NIC level
- Used as source/destination in NSG rules
- Layer 4 aware (not Layer 7)
They create
Application-tier-based security.
4. Demonstration Summary
Environment
- Two Ubuntu VMs
- Both running NGINX
- Same frontend subnet
- One NSG associated at subnet level
Steps performed
1. Created ASG: asg-web-prod-01
2. Associated both VM NICs with ASG
3. Moved NSG from NIC-level to subnet-level
4. Modified NSG rule:
- Destination -> Application Security Group
Result
HTTP traffic allowed only to resources tagged with ASG.
5. Why Move NSG to Subnet Level?
Original setup
NSG attached to NIC.
Improved setup
NSG attached to subnet.
Why?
Centralized management
Applies to all VMs in subnet
Scales better
6. ASG in NSG Rule Structure
NSG rule supports
- | Field | Can Use ASG? |
- | --- | --- |
- | Source | Yes |
- | Destination | Yes |
Example Rule
- Inbound
- Source: Any
- Destination: asg-web
- Port: 80
- Allow
This means
Allow HTTP traffic only to VMs tagged as web.
7. Application-Aware Pattern Example
3-tier architecture
- Frontend -> App → Database
ASGs
- asg-web
- asg-app
- asg-db
NSG Rules
- Allow asg-web -> asg-app (port 8080)
- Allow asg-app -> asg-db (port 1433)
- Deny everything else
No IP addresses needed.
8. Key Characteristics
- Logical grouping
- Dynamic membership
- NIC-level association
- Works with subnet-level NSG
- Scales with VMSS
Important
ASGs do NOT work across VNets.
9. ASG vs Service Tags vs IP-Based Rules
| Feature | ASG | Service Tag | IP-Based |
| --- | --- | --- | --- |
| Dynamic grouping | Yes | Azure-managed | No |
| App-tier grouping | Yes | No | No |
| Cross-subnet | Yes | Yes | Yes |
| Cross-VNet | No | Yes | Yes |
🔟 Stateful Behavior Still Applies
NSGs are stateful.
If inbound allowed
Return outbound traffic automatically allowed.
ASGs do not change statefulness.
11. Common Enterprise Pattern
Public Load Balancer
→ asg-web
→ asg-app
→ asg-db
NSGs enforce tier communication only.
12. Common Exam Concepts (AZ-104 / AZ-700)
- ASGs are Layer 7 firewalls → False
- ASGs attach to subnet → False (NIC only)
- ASGs replace NSGs → False
- ASGs simplify scaling → True
- ASGs work across VNets → False
13. When to Use ASGs
Use ASGs when
- You have multi-tier apps
- You scale frequently
- You want logical grouping
- You want clean NSG rules
- You want IP-agnostic policies
Avoid using only IP-based rules in scalable environments.
14. Troubleshooting Checklist
If rule not working
- Confirm VM NIC associated with ASG
- Confirm NSG associated to subnet or NIC
- Confirm rule priority
- Confirm protocol matches
- Check effective security rules
15. Design Best Practices
- Use subnet-level NSGs
- Use ASGs for tier grouping
- Avoid hardcoded IP rules
- Keep rule priorities spaced (100, 200, 300)
- Use descriptive naming (asg-web-prod)
16. Reference Documentation
Application Security Groups
NSG Overview
NSG Rules with ASG
Hub-Spoke Architecture
Final Conceptual Summary
ASGs
- Logical grouping for VM NICs
- Used inside NSG rules
- Enable scalable tier-based security
- Simplify large environments
- Improve readability of security rules
They make NSGs
- Application-tier aware
- IP-independent
- Scalable
Troubleshooting Connectivity in Azure deep dive
Troubleshooting Connectivity in Azure – Structured Summary + Deep Dive
This lesson focuses on diagnosing connectivity issues using
- Azure Network Watcher
- Azure Virtual Network
Network Watcher is Azure’s built-in networking troubleshooting toolkit.
1. What Is Azure Network Watcher?
Network Watcher is
- A regional Azure service
- Automatically enabled when a VNet is deployed
- Used to diagnose network and connectivity problems
Key concept:
One Network Watcher instance per region.
If you deploy VNets in
- East US -> 1 Network Watcher in East US
- West Europe -> 1 Network Watcher in West Europe
It is auto-created in a resource group like
- NetworkWatcherRG
2. Why Network Watcher Is Important
In Azure, connectivity can break due to
- NSG rules
- Route tables (UDRs)
- BGP propagation
- Peering issues
- VPN failures
- Closed ports
- Incorrect next hop
- DNS resolution failures
Network Watcher helps isolate the issue quickly.
Think of it as a networking Swiss Army knife.
3. Major Network Watcher Tools Explained
Below are the core tools and when to use them
- 🔎 1. IP Flow Verify
Tests whether traffic is allowed or denied based on
- Source IP
- Source Port
- Destination IP
- Destination Port
- Protocol (TCP/UDP)
It evaluates
- NSG rules
- Effective security rules
Use when
You suspect NSG blocking traffic.
Docs
- azure / network watcher / network watcher ip flow verify overview
- 🔎 2. NSG Diagnostics
Shows
- Which NSG rule allowed/denied traffic
- Evaluation order
- Final decision
Helpful when
You have multiple NSGs (NIC + subnet).
Docs
Equivalent to
Traceroute in Azure.
Shows
- Next hop type
- Route source (System / UDR / BGP)
Whether traffic goes
- Internet
- VNet peering
- Virtual appliance
- VPN gateway
Useful for
Route debugging.
Docs
- azure / network watcher / network watcher next hop overview
- 🔎 4. Connection Troubleshoot (Most Powerful Tool)
Combines multiple tests
- Connectivity
- NSG diagnostics
- Next hop
- Port scan
Source options
- VM
- Application Gateway
- Bastion
Destination options
- VM
- IP
- FQDN
- URI
Protocol
- TCP
- ICMP
When run
Deploys Network Watcher VM extension automatically.
Docs
- azure / network watcher / network watcher connectivity overview
- 🔎 5. VPN Troubleshoot
Used for
- Site-to-site VPN issues
- Gateway connection debugging
Docs
- azure / network watcher / network watcher troubleshoot overview
- 🔎 6. Packet Capture
Captures traffic as
- PCAP file
Requires
- Storage account
- VM extension
Similar to
Wireshark in cloud.
Docs
- azure / network watcher / network watcher packet capture overview
- 🔎 7. Topology View
Provides
- Visual network map
- Subnets
- NSGs
- Peerings
- NICs
- Public IPs
Great for quick architecture review.
Docs
4. Demonstration Summary
Scenario
- Two VNets
- Peered together
- Web VM in VNet1
- DB VM in VNet2
- Testing SSH connectivity (Port 22)
Steps
1. Selected source VM
2. Selected destination VM
3. Ran Connection Troubleshoot
4. Reviewed results
Results Showed
- Connectivity successful
- Outbound NSG allowed
- Next hop via VNet peering
- Port 22 reachable
- Using system route
Network Watcher clearly indicated
Traffic flowed across peering successfully.
5. How Connection Troubleshoot Works Internally
When run
- Azure deploys Network Watcher extension on VM
- Performs active probe
- Returns structured diagnostic results
It checks
- DNS resolution
- Route table lookup
- NSG rules
- Effective security rules
- Next hop
- Port availability
This saves massive troubleshooting time.
6. Understanding the Output
Connection Troubleshoot returns
- | Test | What It Means |
- | --- | --- |
- | Connectivity | Reachable or not |
- | NSG diagnostic | Allowed/Denied |
- | Next hop | Route decision |
- | Port scanner | Service reachable |
If failure occurs
It tells you exactly which layer failed.
7. Real-World Troubleshooting Workflow
When connection fails
- Step 1 -> Connection Troubleshoot
- Step 2 -> Check NSG rules
- Step 3 -> Check Effective routes
- Step 4 -> Check UDRs
- Step 5 -> Check Peering
- Step 6 -> Check VPN / Gateway
- Step 7 -> Use Packet Capture
This structured method reduces guesswork.
8. Common Failure Causes Identified by Network Watcher
❌ NSG blocking inbound port
❌ UDR overriding system route
❌ Peering not configured properly
❌ VPN tunnel down
❌ Port closed on VM
❌ Incorrect next hop (blackhole route)
❌ No service running on destination
9. Route Interpretation in Results
Next hop types may include
- Internet
- VNet Peering
- Virtual Appliance
- VNet Gateway
- None (blackhole)
Route source
- System
- User Defined Route (UDR)
- BGP
Important exam concept
User-defined routes override system routes.
🔟 Network Watcher Architecture Concepts
- Regional service
- Auto-enabled with first VNet
- Extension deployed for active testing
- Does not incur heavy cost unless packet capture used
11. Exam Tips (AZ-104 / AZ-700)
- Network Watcher is global → False (regional)
- Automatically deployed when VNet created → True
- Connection Troubleshoot checks NSGs and routes → True
- Packet capture requires storage account → True
- Next hop identifies route source → True
12. Best Practices
- Use Connection Troubleshoot first
- Use Topology for architecture validation
- Check effective routes before modifying NSGs
- Use packet capture only when deeper inspection needed
- Enable flow logs for ongoing monitoring
13. Advanced Insight
Network Watcher helps validate
- Zero Trust networking
- Hub-spoke routing
- NVA routing
- Hybrid connectivity
- BGP route propagation
- Firewall insertion architectures
It becomes essential in
Enterprise-scale Azure networking.
14. Conceptual Summary
Network Watcher gives you visibility into
- Traffic path
- Security evaluation
- Route decisions
- Service availability
Instead of guessing
It gives deterministic answers.
Introduction to Virtual Networking Exam Tips deep dive
Exam Tips: Introduction to Virtual Networking (Structured Review + Deep Dive)
This lesson summarizes core networking concepts required for Azure administrator exams (especially AZ-104).
Primary service discussed
- Azure Virtual Network
1. Core Concept: What Is a Virtual Network?
A Virtual Network (VNet) is
- An isolated private network in Azure
- Similar to on-premises LAN
- Uses RFC1918 private IP ranges
- Segmented into subnets
Private IP ranges allowed
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
Official docs
2. Key Components of a VNet
- Address Space
Defines total IP CIDR block.
- Subnets
Smaller IP ranges carved from VNet.
Best practice
- Separate frontend
- Backend
- Database
- Identity
- Firewall
- Gateway subnet
- Connected Devices
VMs, NICs, private endpoints, etc.
Each device receives
- Private IP (static or dynamic)
- DNS settings
- NSG (optional)
- Public IP (optional)
3. DHCP and DNS
DHCP
Managed automatically by Azure.
Assigns
- Private IP
- Default gateway
- DNS settings
You cannot disable Azure DHCP.
DNS
Options
- Azure-provided DNS
- Custom DNS (e.g., domain controllers)
Docs
4. Routing in Virtual Networks
Every VNet includes
- System Routes (Default)
Automatically created.
Examples
- Local VNet route
- Internet route
- Peering route
Cannot be deleted, but can be overridden.
- User-Defined Routes (UDRs)
Custom routes created in route tables.
- BGP Routes
Learned from
- VPN Gateway
- ExpressRoute
Route precedence
- UDR
- BGP
- System route
Docs
5. Public vs Private Connectivity
Azure VNets live in the private zone.
To enable public connectivity
- Associate Public IP to NIC
- Use Load Balancer
- Use Application Gateway
Public IP types
- Basic (less secure)
- Standard (secure by default)
Private connectivity includes
- VNet peering
- VPN
- ExpressRoute
Docs
6. VNet Peering
Azure VNet Peering
Allows private connectivity between VNets.
Key properties
- Non-overlapping IP ranges required
- Private IP communication
- Low latency
- Cross-region supported
- Cross-subscription supported
- ❌ Not transitive
- ❌ Not encrypted by default
Important exam concept
Hub-and-spoke requires explicit peering between spokes if direct communication needed.
Docs
7. Hybrid Connectivity
Options
- VPN Gateway
Encrypted IPsec tunnel.
ExpressRoute
Private dedicated circuit.
Azure VPN Gateway
Azure ExpressRoute
Docs
- azure / vpn gateway / vpn gateway about vpngateways
- azure / expressroute / expressroute introduction
8. Network Security Groups (NSGs)
Azure Network Security Group
Layer 4 stateful firewall.
Can be applied at
- Subnet level
- NIC level
Key facts
- Controls inbound/outbound traffic
- Uses priority numbers (lower wins)
- Stateful (return traffic auto-allowed)
- Default rules exist (65000+ range)
Docs
9. Application Security Groups (ASGs)
Azure Application Security Group
Logical grouping of NICs.
Used inside NSG rules as
- Source
- Destination
Benefits
- Application-tier-based filtering
- Easier scaling
- Dynamic membership
Docs
- azure / virtual network / application security groups
- 🔟 Troubleshooting Tools
- Azure Network Watcher
Tools include
- IP Flow Verify
- Next Hop
- NSG Diagnostics
- Connection Troubleshoot
- Packet Capture
- VPN Troubleshoot
Connection Troubleshoot is the most powerful combined tool.
Docs
11. Important Design Principles for Exam
When designing a VNet
- Avoid IP overlap
- Plan future growth
- Separate tiers into subnets
- Use NSGs for segmentation
- Use UDRs carefully
- Understand route precedence
- Know peering limitations
- Understand public vs private zone concept
12. Exam Pitfalls to Watch
- NSGs are stateless → False (they are stateful)
- VNet peering is transitive → False
- Peering traffic encrypted automatically → False
- System routes can be deleted → False
- UDR overrides system route → True
- DHCP can be disabled → False
- One Network Watcher per region → True
13. Conceptual Architecture Stack (Mental Model)
Think in layers
- IP Addressing
- Subnet segmentation
- Routing (system, UDR, BGP)
- Security (NSG)
- Application grouping (ASG)
- Connectivity (Peering / VPN / ExpressRoute)
- Troubleshooting (Network Watcher)
If something breaks
Check in this order.
14. Final Revision Checklist
Before exam, make sure you understand
- VNet design process
- Subnet sizing
- CIDR calculations
- Route precedence
- NSG rule evaluation
- Public IP behavior
- Peering limitations
- Hybrid connectivity basics
- Network Watcher usage
Load Balancing and DNS
Introducing Azure Load Balancer deep dive
Azure Load Balancer – Structured Summary + In-Depth Notes
1. What is Azure Load Balancer?
Azure Load Balancer is a Layer 4 (Transport Layer) load balancing service in Microsoft Azure.
It distributes inbound and outbound traffic based on
- Source IP
- Source port
- Destination IP
- Destination port
- Protocol (TCP/UDP)
Because it operates at Layer 4, it does not inspect HTTP headers or URLs (that’s Layer 7 – handled by Application Gateway or Front Door).
2. Deployment Scope
Azure Load Balancer can be
Regional
Balances traffic within one Azure region
Backend resources must be in the same region
Global (Public only)
Cross-region load balancing
Used for multi-region architectures
3. Public vs Internal Load Balancer
🌐 Public Load Balancer
Has a public IP
Exposes services to the internet
Example: Web servers
Internal Load Balancer
Uses private IP
Only accessible inside VNet or connected networks
- Example: Web tier -> Database tier
4. Core Components Explained
Azure Load Balancer consists of several key components
1. Frontend IP Configuration
Defines
- Public or private IP
- IPv4 / IPv6
- Entry point for traffic
2. Backend Pool
Contains
- Virtual Machines
- VM Scale Sets
- NICs or IP addresses
Traffic is distributed among these backend resources.
3. Health Probes
Health probes check if backend instances are healthy.
Types
- TCP
- HTTP
- HTTPS (Standard SKU)
If a VM fails probe checks
- It is removed from rotation
- Traffic goes only to healthy instances
- Why important?
Prevents traffic from being sent to failed servers.
4. Load Balancing Rules
Defines
- Frontend port
- Backend port
- Protocol
- Backend pool
- Health probe
Example
- Frontend: TCP 80
- Backend: TCP 80
- Used for HTTP traffic
5. Inbound NAT Rules
Used for
- Administrative access (e.g., SSH, RDP)
Example
- Public IP: Port 1001 -> VM1: Port 22
- Public IP: Port 1002 -> VM2: Port 22
Commonly used with
- Virtual Machine Scale Sets
6. Outbound Rules
Controls
- SNAT (Source Network Address Translation)
- Outbound internet connectivity
- Prevents SNAT port exhaustion
5. SKUs Explained
Azure Load Balancer has 3 SKUs
- 🟡 Basic SKU (Retiring)
- No SLA
- No zone redundancy
- Limited features
- Not for production
- 🟢 Standard SKU (Recommended)
Key Features
- 99.99% SLA
- Zone redundancy
- HA ports
- HTTPS health probes
- Azure Monitor integration
- Multiple frontend IPs
- Secure by default (NSG required)
This is the production-grade option.
🔵 Gateway SKU
Azure Gateway Load Balancer
Used for
- Chaining traffic to NVAs (Network Virtual Appliances)
- Firewall insertion
- Deep packet inspection
Flow
Client → Public LB → Gateway LB → NVA → Public LB → Backend
Used in
- Security inspection
- Enterprise architectures
6. Demonstration Architecture Summary
From transcript
- VNet: vnet-prod
- Subnet: fe-subnet
- 2 Ubuntu VMs running NGINX
- Public Load Balancer (Standard SKU)
- HTTP load balancing rule (Port 80)
- TCP health probe (Port 80)
- SSH NAT rule (Port range 1000+)
Result
Accessing public IP → NGINX splash page → Traffic successfully distributed
7. How Traffic Distribution Works (Under the Hood)
Azure Load Balancer uses
Hash-Based Distribution
Based on 5-tuple hash
- Source IP
- Source Port
- Destination IP
- Destination Port
- Protocol
Ensures consistent routing for same session.
8. Session Persistence Options
None (default)
Client IP
Client IP + Protocol
Used when applications require sticky sessions.
9. HA Ports (Standard SKU Only)
Allows
- Load balancing across all ports
Useful for
- NVAs
- Complex firewall scenarios
Prevents
- Port exhaustion issues
- 🔟 When to Use Azure Load Balancer
Use when
- You need L4 load balancing
- You want high performance
- You need ultra-low latency
- You don’t need URL routing
11. Comparison with Other Azure Load Balancing Services
| Service | Layer | Use Case |
| --- | --- | --- |
| Azure Load Balancer | L4 | VM traffic distribution |
| Azure Application Gateway | L7 | Web routing, SSL termination |
| Azure Front Door | L7 Global | Global web apps |
| Traffic Manager | DNS | DNS-based failover |
12. Production Best Practices
- Always use Standard SKU
- Use Availability Zones
- Configure health probes correctly
- Monitor via Azure Monitor
- Define outbound rules to avoid SNAT exhaustion
- Use VM Scale Sets for auto scaling
- Secure with NSGs
13. Common Real-World Architectures
Architecture 1 – Web App
- Internet -> Public LB → Web VM Scale Set
Architecture 2 – 3-Tier
- Internet -> Public LB → Web Tier
- Web Tier -> Internal LB → App Tier
- App Tier -> Internal LB → DB Tier
Architecture 3 – Secure Enterprise
Internet → Public LB → Gateway LB → Firewall NVA → Backend
14. Reference Documentation
Official Microsoft Docs
- Azure Load Balancer overview
- azure / load balancer / load balancer overview
- Load Balancer components
- azure / load balancer / components
- Standard vs Basic comparison
- azure / load balancer / skus
- Health probes
- azure / load balancer / load balancer custom probe overview
- Gateway Load Balancer
- azure / load balancer / gateway overview
- Outbound connections & SNAT
- azure / load balancer / load balancer outbound connections
- 🔎 Deep Conceptual Understanding (Interview Ready)
Q: Why is Azure Load Balancer not suitable for URL-based routing?
Because it operates at Layer 4 and does not inspect HTTP headers.
Q: What happens if a backend VM fails?
Health probe fails → VM removed from rotation → No traffic sent.
Q: Why is Standard SKU secure by default?
It requires
- NSG rules explicitly allowing traffic
- No open default access
- Q: What causes SNAT port exhaustion?
Too many outbound connections using limited ephemeral ports.
Solution
- Use outbound rules
- Use NAT Gateway (preferred for large outbound traffic)
Key Takeaways
Azure Load Balancer = High-performance L4 load balancer
Standard SKU = Production-ready
Health probes = Critical
Gateway LB = Security chaining
Public vs Internal depends on exposure needs
Use VM Scale Sets for scalability
Troubleshooting Azure Load Balancers deep dive
Troubleshooting Azure Load Balancer – Structured Summary + Deep Dive
This lesson focuses on how to systematically troubleshoot issues in
Azure Load Balancer.
Azure Load Balancer troubleshooting usually falls into 3 main categories
- Configuration Issues
- Connectivity Issues
- Performance Issues
Because Load Balancer is a Layer 4 service, troubleshooting is mostly about validating configuration, network flow, and health probes.
1. Configuration Issues
These are the most common problems.
A. Frontend IP Configuration
Check
- Is it Public or Internal?
- Is the public IP assigned?
- Is the IP associated with the correct load balancer?
- Correct region?
Common issue
- Missing or incorrect frontend IP
- Wrong port exposed
- B. Backend Pool Configuration
Verify
- Correct VMs or NICs added?
- Correct VNet?
- Instances healthy?
If backend VM is not in the pool → no traffic will reach it.
C. Load Balancing Rules
Check
- Protocol (TCP/UDP)
- Frontend port
- Backend port
- Associated health probe
- If ports don’t match application port -> traffic fails.
Example from transcript
- SSH service runs on port 22
- NAT rule backend port was incorrectly set to 1000
- Result: SSH connection failed
- Fix: Change backend port to 22
This is a classic misconfiguration scenario.
D. Health Probes
Health probes determine if backend instances receive traffic.
If probe fails
- Instance removed from rotation
- Load balancer sends traffic to other healthy instances
Check
- Correct protocol (TCP/HTTP/HTTPS)
- Correct port
- Application listening on that port
- NSG allows probe traffic
Probe failure = no traffic distribution.
2. Connectivity Issues
These issues occur when traffic cannot reach the backend VMs.
Connectivity troubleshooting should follow this path
Client → Frontend IP → Load Balancer → Backend VM → Application
A. Network Security Groups (NSGs)
Check
- Is port allowed inbound?
- Is port allowed outbound?
- Are health probe ports allowed?
NSG misconfiguration is a top cause of failure.
B. Firewall or NVA
If chained through
- Azure Gateway Load Balancer
Then
- Firewall rules
- Deep packet inspection
- Route tables
May block traffic.
C. Outbound Connectivity Problems
Example from transcript
VM attempted
- sudo apt install nginx
It failed because
- No public IP
- No NAT Gateway
- No outbound rules
- Default outbound access deprecated
Azure provides 4 outbound options
- Public IP on VM
- Load Balancer outbound rules
- NAT Gateway (recommended)
- Default outbound (deprecated)
- Best Practice for Production
Use
- Azure NAT Gateway
- Why?
- Prevents SNAT port exhaustion
- Scales better
- Separates inbound and outbound traffic
In demo
- Public IP was added to VM -> outbound worked.
3. Performance Issues
Performance troubleshooting involves monitoring.
Azure Load Balancer itself rarely becomes bottleneck — backend pool usually does.
Common performance issues
- Too few backend instances
- CPU/memory exhaustion on VMs
- SNAT port exhaustion
- Uneven flow distribution
- Service health issues
- Monitoring & Diagnostics Tools
Under Load Balancer → Monitoring
- A. Metrics
Important metrics
- Byte count
- Data path availability
- SNAT connections
- Used SNAT ports
- Flows count
Use metrics to detect
- Throughput bottlenecks
- High SNAT usage
- Traffic spikes
- B. Diagnostic Settings
Send logs to
- Log Analytics
- Storage Account
- Event Hub
Enables
- Long-term analysis
- Advanced queries
- C. Log Analytics Queries
You can query
- LoadBalancerAlertEvent
- LoadBalancerProbeHealthStatus
- LoadBalancerRuleCounter
Requires Log Analytics workspace.
D. Load Balancer Insights
Shows
- Backend pool health
- Rule mapping
- Flow distribution
- VM availability
- Data throughput trends
Useful for
- Identifying traffic imbalance
- Checking health probe failure rates
- Understanding backend saturation
- Deep Understanding: How Azure Load Balancer Works Internally
Azure Load Balancer uses
5-tuple hash
- Source IP
- Source Port
- Destination IP
- Destination Port
- Protocol
This determines traffic distribution.
It does NOT
- Inspect HTTP headers
- Perform SSL termination
- Do URL routing
That’s Layer 7 functionality.
SNAT & Port Exhaustion Explained
When backend VMs make outbound connections
- Load Balancer performs SNAT
- Each outbound connection consumes a port
- Limited ephemeral port range
If exhausted
- New outbound connections fail
- Apps hang or timeout
Solution
- Use NAT Gateway
- Increase backend instances
- Optimize connection reuse
- Step-by-Step Troubleshooting Checklist
- Step 1: Validate Configuration
- Frontend IP exists
- Backend pool correct
- Rule ports match app ports
- Health probe configured correctly
- Step 2: Check Health Probes
- Healthy?
- Port correct?
- App listening?
- NSG allows probe?
- Step 3: Validate Connectivity
- NSG rules
- UDRs
- Firewall/NVA
- Outbound configuration
- Step 4: Check Metrics
- SNAT usage
- Flow distribution
- Byte count
- Backend health
- Step 5: Scale if Needed
- Add more backend VMs
- Use VM Scale Sets
- Add NAT Gateway
- Reference Documentation
- Azure Load Balancer Overview
- azure / load balancer / load balancer overview
- Troubleshoot Azure Load Balancer
- azure / load balancer / load balancer troubleshoot
- Outbound connections
- azure / load balancer / load balancer outbound connections
- Health probes
- azure / load balancer / load balancer custom probe overview
- SNAT and port exhaustion
- azure / load balancer / troubleshoot outbound connection
- NAT Gateway
- azure / nat gateway / nat overview
- Load Balancer Insights
- azure / load balancer / load balancer insights
- Interview-Ready Key Points
- Q: Most common Load Balancer issue?
→ Port mismatch or NSG blocking traffic.
Q: Why does health probe matter?
→ If probe fails, backend receives no traffic.
Q: Why avoid default outbound access?
→ Deprecated and unreliable.
Q: Best outbound solution for production?
→ NAT Gateway.
Q: How to detect SNAT exhaustion?
→ Monitor SNAT ports used metric.
Key Takeaways
- Troubleshooting is mainly configuration validation
- Always verify ports match actual application ports
- Health probe is critical
- NSGs and outbound configuration are common blockers
- Use monitoring + insights for performance diagnostics
- NAT Gateway is best practice for outbound traffic
If you’d like, I can now convert this into
- 🔎 50 Interview Q&A format
PowerPoint slides (deep-dive version)
Flashcards for certification
Real-world troubleshooting lab scenario
📄 One-page printable cheat sheet
Using Azure DNS deep dive
Using Azure DNS – Structured Summary + Deep Dive
This lesson explains how DNS works in Azure and demonstrates private DNS configuration using
Azure DNS.
Azure DNS provides hosted DNS zones for
- 🌐 Public name resolution (internet-facing)
- 🔒 Private name resolution (inside virtual networks)
1. What is DNS in Azure?
DNS (Domain Name System) translates
- www.contoso.com -> 20.x.x.x
- vm-web-01.private.contoso.com -> 172.16.x.x
Azure DNS is a fully managed DNS hosting service that replaces:
On-prem Windows DNS
Linux BIND DNS servers
Azure handles
- High availability
- Scalability
- Global distribution
2. Two Types of Azure DNS Zones
🌐 Public DNS Zone
Used for
- Internet-facing resources
- Public websites
- Public Load Balancers
- Public App Services
Example
- contoso.com -> A record → Public IP of Load Balancer
Records are publicly resolvable.
🔒 Private DNS Zone
Used for
- VMs inside VNet
- Internal Load Balancers
- Private endpoints
- Microservices architectures
Records are only resolvable
- Within linked VNets
- Peered VNets
- Connected on-prem networks (via resolver)
3. Public DNS – Key Concepts
If you create a public zone like
- contoso.com
You can create records such as
- | Record Type | Purpose |
- | --- | --- |
- | A | IPv4 address |
- | AAAA | IPv6 address |
- | CNAME | Alias |
- | MX | Mail |
- | NS | Name servers |
- | TXT | Verification / SPF |
- | SOA | Start of authority |
- | SRV | Service record |
- | PTR | Reverse lookup |
⚠ Azure DNS does NOT support DNSSEC directly.
Microsoft recommends
Use TLS encryption instead.
4. Private DNS – Demonstration Summary
In the demo
- Created private zone: private.contoso.com
- Linked to VNet: vnet-prod-01
- Enabled Auto Registration
- VMs automatically registered A records
Example record created automatically
- vm-web-prod-01.private.contoso.com -> 172.16.0.4
- vm-web-prod-02.private.contoso.com -> 172.16.0.5
Then
- SSH into VM
- Ping other VM using FQDN
- Successfully resolved to private IP
5. What is Auto Registration?
When enabled
- Azure automatically creates DNS records
- For VMs connected to the VNet
- Records are updated if IP changes
Without auto-registration
- You must manually create A records
Use auto-registration when
- You want automation
- You don't need selective exclusions
6. Virtual Network Link
Private DNS zones must be linked to VNets.
This link
- Enables DNS resolution
- Allows auto-registration
- Controls which VNets can resolve zone
Without VNet link
→ No resolution happens.
7. DNS Resolution Flow (Private)
- VM -> Uses Azure-provided DNS (168.63.129.16)
→ Checks private zone
→ Resolves private IP
If VM DNS settings are changed to custom
- It may NOT use Azure Private DNS
- Must configure conditional forwarding manually
Important check
VM → Network Interface → DNS Settings → Inherit from VNet
8. Advanced Private DNS Architecture
Private DNS can support
- Hub-Spoke architecture
- VNet peering
- On-prem via VPN/ExpressRoute
For hybrid
- Use
- Azure DNS Private Resolver
It allows
- Conditional forwarding
- On-prem DNS integration
- Hybrid DNS resolution
9. When to Use Public vs Private DNS
| Scenario | Use |
| --- | --- |
| Website on public LB | Public DNS |
| Internal app between VMs | Private DNS |
| AKS internal service | Private DNS |
| Private Endpoint to PaaS | Private DNS |
🔟 Real-World Example
Architecture
- Internet
- → Public DNS Zone
- → Public Load Balancer
- → Web Tier (Private IPs)
Inside network
- Web Tier
- → Private DNS
- → Database Tier
11. Common Troubleshooting Issues
A. Records Not Appearing
Auto-registration not enabled
VM not in linked VNet
DNS propagation delay
B. Cannot Resolve Name
VNet not linked
Custom DNS configured incorrectly
NSG blocking traffic
Using wrong FQDN
C. Hybrid Resolution Not Working
No DNS Private Resolver
Missing conditional forwarder
12. Azure DNS vs On-Prem DNS
| Feature | Azure DNS |
| --- | --- |
| Fully managed | Yes |
| High availability | Built-in |
| Global scale | Yes |
| Infrastructure management | None |
| DNSSEC | Not supported |
| Auto registration | Yes (Private only) |
13. Best Practices
- Use Private DNS for internal workloads
- Enable auto-registration when possible
- Use Private Resolver for hybrid
- Use meaningful subdomain naming
- Monitor zone changes
- Keep DNS simple (avoid overengineering)
14. Reference Documentation
Azure DNS Overview
Private DNS zones
Virtual network links
DNS record types
Azure DNS Private Resolver
Interview-Ready Key Points
Q: Difference between Public and Private DNS?
→ Public resolves over internet, Private resolves inside VNets.
Q: What enables private resolution?
→ Virtual network link.
Q: What is auto-registration?
→ Automatic A record creation for VMs.
Q: What DNS IP do Azure VMs use by default?
→ 168.63.129.16 (Azure-provided DNS).
Q: How to integrate on-prem DNS?
→ Azure DNS Private Resolver.
Key Takeaways
Azure DNS is fully managed.
Public DNS = internet resolution.
Private DNS = internal resolution.
VNet link is mandatory.
Auto-registration simplifies management.
Hybrid scenarios require DNS Private Resolver.
Load Balancing and DNS Exam Tips deep dive
Exam Tips: Load Balancing & DNS – Structured Review + Deep Understanding
This section consolidates key concepts for exam preparation covering
- Azure Load Balancer
- Azure DNS
These are commonly tested topics in Azure networking exams (AZ-104, AZ-700, AZ-305).
1. Azure Load Balancer – What You MUST Remember for the Exam
- Core Concept
Azure Load Balancer is a Layer 4 (Transport Layer) load balancer.
It distributes traffic based on
- Source IP
- Source Port
- Destination IP
- Destination Port
- Protocol (TCP/UDP)
⚠ It does NOT inspect HTTP headers (that’s Layer 7).
2. Regional vs Global Load Balancer
Regional
Balances traffic within one Azure region
Can be Public or Internal
Global (Public Only)
Balances traffic across multiple regions
Still has a “home region”
Only supported for Public Load Balancer
⚠ Internal Load Balancer cannot be Global.
3. Core Components (Highly Testable)
1. Frontend IP Configuration
Determines
- Public or Private
- Entry point for traffic
Exam trap
- If frontend is private -> not internet accessible.
2. Backend Pool
Contains
- VMs
- VM Scale Sets
- NICs
- IPs
Traffic is distributed across backend pool members.
3. Health Probe
Critical for exam questions.
If probe fails
→ Instance removed from rotation.
Common mistakes
- Wrong port
- NSG blocking probe
- Application not running
4. Load Balancing Rules
Maps
- Frontend Port -> Backend Port
Defines
- Protocol
- Health probe association
- Session persistence
Exam scenario example
SSH failing because backend port set incorrectly.
4. Troubleshooting – Exam Strategy
Always troubleshoot in this order
- Step 1: Configuration
- Frontend IP exists?
- Backend pool correct?
- Rule ports correct?
- Health probe healthy?
- Step 2: Connectivity
Determine
- Inbound issue?
- Outbound issue?
- Outbound Connectivity Exam Scenario
Common issue
VM cannot access internet.
Causes
- No public IP
- No outbound rules
- No NAT Gateway
- Default outbound access deprecated
Best production solution
- Use
- Azure NAT Gateway
- Why?
- Prevents SNAT port exhaustion
- Scales better than public IP per VM
5. Performance Troubleshooting
Know these tools
- Azure Monitor Metrics
Check
- Byte count
- SNAT usage
- Flow count
- Diagnostic Settings
Send logs to
- Log Analytics
- Storage Account
- Event Hub
- Load Balancer Insights
View
- Backend health
- Flow distribution
- Availability
- Throughput
Exam tip
- If uneven traffic -> check hash distribution and session persistence.
6. Azure DNS – What You Must Know
Public DNS
Used for
- Public websites
- Public load balancers
Records publicly resolvable.
Supports
- A
- AAAA
- CNAME
- MX
- TXT
- NS
- SOA
- SRV
- PTR
⚠ DNSSEC not supported.
Private DNS
Used for
- Internal VM communication
- Private endpoints
- Internal Load Balancer
Requires
- Virtual Network Link
Optional
- Auto-registration
7. Auto-Registration (Private DNS)
If enabled
- Automatically creates A records for VMs
- Updates if IP changes
If disabled
- Must manually create records
Exam tip
If VM not resolving → check VNet link + DNS settings.
8. Public vs Private DNS (Exam Comparison)
| Feature | Public DNS | Private DNS |
| --- | --- | --- |
| Internet resolvable | Yes | No |
| VNet required | No | Yes |
| Auto registration | No | Yes |
| Use case | Websites | Internal workloads |
9. Common Exam Traps
- Internal Load Balancer exposed to internet → Impossible
- Health probe failing → No traffic to VM
- VM cannot access internet → Outbound config issue
- DNS record exists but not resolving → VNet link missing
- Custom DNS configured → Azure Private DNS ignored
🔟 Architecture-Level Understanding (High-Level Questions)
Internet
→ Public DNS
→ Public Load Balancer
→ Backend Pool
Internal communication
- VM -> Private DNS → Private IP
Hybrid scenario
- On-prem DNS
- ↔ Azure DNS Private Resolver
- ↔ Azure Private DNS
11. Key Differences You Must Memorize
| Service | Layer | Scope |
| --- | --- | --- |
| Azure Load Balancer | L4 | Regional / Global |
| Application Gateway | L7 | Regional |
| Front Door | L7 | Global |
| Traffic Manager | DNS | Global |
12. High-Yield Exam Questions
Q: What removes a backend VM from load balancing?
→ Failed health probe.
Q: Can internal Load Balancer be global?
→ No.
Q: Best outbound method for production?
→ NAT Gateway.
Q: What enables private DNS resolution?
→ VNet link.
Q: What happens if VM uses custom DNS?
→ Private DNS zone may not resolve.
13. Reference Documentation
Azure Load Balancer Overview
Troubleshoot Load Balancer
Outbound Connections
Azure DNS Overview
Private DNS
Final Exam Strategy
If a question mentions
- “Layer 4” -> Azure Load Balancer
- “URL routing” -> Application Gateway
- “Global HTTP routing” -> Front Door
- “DNS-based routing” -> Traffic Manager
- “Internal name resolution” -> Private DNS
- Ultimate Takeaway
- Azure Load Balancer = Traffic distribution (L4)
- Azure DNS = Name resolution (Public & Private)
- Troubleshooting = Configuration -> Connectivity → Performance
Network Integration
Using Azure Bastion deep dive
Using Azure Bastion – Structured Summary + Deep Dive
This lesson explains how to securely connect to private Azure VMs using:
Azure Bastion
Azure Bastion is a fully managed PaaS jump host service that allows you to connect to VMs via:
SSH (Linux)
RDP (Windows)
Directly from the Azure Portal browser, without exposing VMs to the public internet.
1. Why Azure Bastion Exists
The Problem
You have
- Virtual Network
- Subnet
- Private VMs (no public IP)
You need secure administrative access.
Traditional method
- Deploy jump box in DMZ
- Assign public IP
- Harden OS
- Patch it
- Manage security
That increases
- Attack surface
- Operational overhead
- Maintenance effort
2. What Azure Bastion Does
Azure Bastion
- Deploys into a special subnet
- Uses a public IP
- Provides browser-based SSH/RDP
- Uses HTTPS (TLS encrypted)
- Does NOT require VM public IP
Connection flow
- Admin Browser
- → Azure Portal
- → Bastion (HTTPS)
- → Private VM (RDP/SSH)
VM stays private.
3. Key Architecture Requirements
A. Dedicated Subnet (Mandatory)
Must be named
- AzureBastionSubnet
It must
- Be /26 or larger
- Support scaling (host scaling)
- Exist inside the same VNet
Example
- 172.16.0.64/26
- If subnet is smaller than /26 -> Deployment fails.
- B. Public IP for Bastion
- Bastion requires a public IP
- VM does NOT need public IP
- C. Same Region Requirement
Bastion must
- Be deployed in same region as VNet
4. Bastion Tiers
Standard tier is production-ready.
Supports
- Copy & Paste
- IP-based connection
- Kerberos authentication
- Native client support
- Shareable links
Basic tier has limited features.
5. How Connection Works
From VM
- Portal -> VM → Connect → Bastion
Choose
- SSH (Linux)
- RDP (Windows)
- Custom port if needed
Authentication method
- Password
- SSH key (local file)
- Key Vault integration
Session opens in new browser tab.
Encrypted via HTTPS.
6. What Makes Bastion Secure
- No VM public IP required
- No inbound NSG rules for SSH/RDP needed
- TLS encryption (HTTPS tunnel)
- Managed & hardened infrastructure
- Autoscaling backend
Reduces attack surface significantly.
7. Comparison: Jump Box vs Bastion
| Feature | Jump Box | Bastion |
| --- | --- | --- |
| VM to manage | Yes | No |
| Patch OS | Yes | No |
| Public IP on VM | Yes | No |
| Managed by Microsoft | No | Yes |
| Browser access | No | Yes |
| Scaling | Manual | Automatic |
8. Session Monitoring
Inside Bastion resource
You can view
- Active sessions
- Username
- Protocol
- Target VM
- Session state
Useful for auditing.
9. Common Exam Scenarios
- Question: Securely access VMs without public IP?
Answer: Azure Bastion.
- Question: Reduce management overhead of jump server?
Answer: Bastion.
- Question: Connect via browser over HTTPS?
Answer: Bastion.
- Question: Subnet name requirement?
Answer: AzureBastionSubnet.
- Minimum subnet size?
Answer: /26.
🔟 When NOT to Use Bastion
If you need
- Automated scripting at scale
- Direct SSH from CLI without portal
- Complex jump workflows
Alternative
- VPN
- ExpressRoute
- Azure AD login
- Just-in-time VM access
11. Bastion vs Other Remote Access Methods
| Method | Public IP Required | Browser-based | Managed |
| --- | --- | --- | --- |
| Public IP + SSH | Yes | No | No |
| Jump Box | Yes | No | No |
| VPN Gateway | No | No | Managed |
| Bastion | No | Yes | Yes |
12. Security Best Practices
- Remove public IPs from VMs
- Use Bastion instead of jump servers
- Use SSH keys instead of passwords
- Use Azure AD authentication (if supported)
- Enable session logging
13. Performance & Scaling
Bastion auto scales (Standard tier)
Supports up to 50 scale units
Backend infrastructure managed by Microsoft
Scaling supports multiple concurrent sessions.
14. Reference Documentation
Azure Bastion Overview
Bastion Architecture
Bastion FAQ
Subnet requirements
15. Deep Conceptual Understanding
Azure Bastion is
- PaaS-based jump host
- Provides secure RDP/SSH over TLS
- Eliminates need for public VM exposure
- Reduces lateral attack risk
- Improves zero-trust posture
It integrates well with
- NSGs
- Private DNS
- Hub-spoke architecture
- Just-in-time VM access
- Final Exam Memory Hooks
- Bastion = Browser-based SSH/RDP
- Dedicated subnet = AzureBastionSubnet
- Minimum subnet = /26
- VM public IP = NOT required
- Managed jump box = Yes
Using Service Endpoints deep dive
Using Service Endpoints – Structured Summary + Deep Dive
This lesson explains how to privately connect Azure VMs to Azure PaaS services using:
Azure Virtual Network Service Endpoints
Service Endpoints allow secure connectivity from a VNet to Azure PaaS services without exposing traffic over the public internet.
1. The Problem Service Endpoints Solve
In Azure
- VMs live inside Virtual Networks (VNets)
- PaaS services (like Storage, SQL) have public endpoints by default
Example
- VM (private IP) -> Storage Account (public endpoint)
Without service endpoints
- VM must access storage via public IP
- Traffic goes over internet (even though it stays within Azure)
- VM may require outbound public IP
This creates
- Larger attack surface
- Security concerns
- Complex firewall configurations
2. What Service Endpoints Do
Service Endpoints
- Are enabled on a subnet
- Work for specific Azure resource providers
- Route traffic over the Microsoft Backbone
- Keep traffic inside Azure’s private network
Important
⚠ It still uses the public endpoint of the PaaS service
⚠ It does NOT create a private IP for the service
⚠ It does NOT place the service inside your VNet
It simply changes the route to use Azure’s internal backbone.
3. How It Works Internally
Without Service Endpoint
VM → Default route (0.0.0.0/0) → Internet → Storage public endpoint
With Service Endpoint
VM → System route (Service Endpoint) → Microsoft Backbone → Storage public endpoint
Traffic stays within Azure network.
4. Key Concepts (Exam Critical)
A. Enabled at Subnet Level
You enable service endpoints on
- Virtual Network -> Subnet → Service Endpoints
Not on
- Individual VM
- Individual NIC
All resources in that subnet benefit.
B. Resource Provider Based
You choose
- Microsoft.Storage
- Microsoft.Sql
- Microsoft.KeyVault
etc.
Important
If you enable
- Microsoft.Storage
It applies to ALL storage accounts, not just one specific storage account.
C. Effective Routes Validation
After enabling service endpoint
Go to
- NIC -> Effective Routes
You will see
- A new system route
- Destination = Azure service
- Next hop = VirtualNetworkServiceEndpoint
This confirms backbone routing.
5. Demonstration Summary
Steps performed
- Created Storage Account
- Enabled Microsoft.Storage service endpoint on subnet
- Waited for propagation
- Checked NIC -> Effective Routes
- Verified new system route appeared
Result
VM traffic to Storage now uses
Microsoft Backbone instead of internet route.
6. Security Implications
Service Endpoints improve security by
- Eliminating need for VM public IP for outbound access
- Keeping traffic inside Azure network
- Allowing Storage firewall to restrict access to specific VNets
Important
To fully secure
- Configure Storage Account firewall
- Allow only selected VNets
Otherwise, storage is still publicly accessible.
7. Service Endpoints vs Private Endpoints
This is a common exam question.
| Feature | Service Endpoint | Private Endpoint |
| --- | --- | --- |
| Uses public endpoint | Yes | No |
| Creates private IP | No | Yes |
| Works at subnet level | Yes | No |
| Stronger isolation | Moderate | High |
| Access from on-prem | No (directly) | Yes |
If question says
- “Assign private IP to storage” -> Private Endpoint
- “Secure backbone access only” -> Service Endpoint
8. When to Use Service Endpoints
Use when
- Need simple secure access to Azure PaaS
- Want to restrict PaaS access to specific VNets
- Don’t need private IP for service
- Want lower complexity than Private Endpoint
9. Limitations
Works only within Azure region (mostly)
Still public endpoint
Does not remove public DNS resolution
Not ideal for strict zero-trust architectures
For stronger isolation
Use Private Endpoints.
🔟 Supported Azure Services
Common services
- Microsoft.Storage
- Microsoft.Sql
- Microsoft.KeyVault
- Microsoft.EventHub
- Microsoft.ServiceBus
- Microsoft.AzureActiveDirectory
11. Service Endpoint Policies (Advanced)
You can apply
- Service Endpoint Policies
These
- Restrict which storage accounts are allowed
- Provide granular control
- Prevent accidental access to unintended storage accounts
Used in advanced security architectures.
12. Troubleshooting Checklist
If Service Endpoint not working
- Confirm enabled on correct subnet
- Verify VM in that subnet
- Check Effective Routes
- Confirm Storage firewall configured correctly
- Wait for propagation (can take minutes)
- Ensure same region compatibility
13. Deep Technical Understanding
When enabled
Azure injects a system route into the subnet route table.
Route type
- VirtualNetworkServiceEndpoint
Priority
- Overrides default internet route
- Ensures traffic stays internal
This is automatic.
No UDR needed.
14. Best Practices
- Use Service Endpoints with Storage firewall
- Avoid relying on default outbound access
- Use NAT Gateway for outbound internet traffic
- Use Private Endpoints for high-security workloads
- Validate effective routes after enabling
15. Reference Documentation
Service Endpoints Overview
Configure Service Endpoints
Storage Firewall with Service Endpoints
Private Endpoint Overview
Effective Routes
Exam Memory Hooks
Service Endpoint = Subnet-level backbone routing
Still uses public endpoint
No private IP assigned
Check effective routes
Storage firewall required for full restriction
Final Conceptual Summary
Service Endpoints
- Improve security
- Use Microsoft Backbone
- Work at subnet level
- Do not fully privatize PaaS service
- Are simpler than Private Endpoints
Using Private Endpoints deep dive
Using Private Endpoints – Structured Summary + Deep Dive
This lesson explains how to securely access Azure PaaS services using:
Azure Private Endpoint
Private Endpoints provide true private connectivity to Azure services by assigning them a private IP address inside your Virtual Network.
1. Why Private Endpoints Exist
Previously, with Service Endpoints
- Traffic stayed on Microsoft Backbone
- But still used the public endpoint
- Worked at subnet level
- Applied to all services of a resource provider (e.g., Microsoft.Storage)
Private Endpoints solve
- Granular access to specific service instance
- Granular access to specific sub-resource (Blob, File, etc.)
- Private IP-based connectivity
- Hybrid (on-prem) access
- Stronger isolation
2. What a Private Endpoint Does
When you create a Private Endpoint
- Azure creates a Network Interface (NIC)
- That NIC gets a private IP
- The PaaS service is “projected” into your VNet
Now your architecture becomes
- VM -> Private IP → Storage Blob
Instead of
- VM -> Public Endpoint → Storage
It behaves as if the service lives inside your VNet.
3. Key Differences vs Service Endpoints
| Feature | Service Endpoint | Private Endpoint |
| --- | --- | --- |
| Uses public endpoint | Yes | No |
| Assigns private IP | No | Yes |
| Granular sub-service | No | Yes |
| Works from on-prem | No (directly) | Yes |
| Strong isolation | Moderate | High |
Exam tip
If question says
- “Assign private IP to storage” -> Private Endpoint
- “Subnet-level backbone routing only” -> Service Endpoint
4. Sub-Resource Targeting (Very Important)
With Private Endpoint, you select
For Storage
- Blob
- File
- Table
- Queue
- DFS
- Web
Example
You can create private endpoint for
- StorageAccount -> Blob only
This gives granular control.
Service Endpoints cannot do this.
5. Demonstration Summary
Steps performed
- Created separate subnet: PrivateEndpointSubnet
- Created Private Endpoint from Storage Account
Selected
- Resource type: Microsoft.Storage
- Specific storage account
- Sub-resource: Blob
- Enabled Private DNS integration
Deployment created
- Network Interface
- Private IP (e.g., 172.16.0.132)
- Private DNS Zone
- DNS record
Result
Storage Blob now accessible via private IP.
6. Private DNS Integration (Critical Concept)
When enabling Private Endpoint
Azure automatically creates
- privatelink.blob.core.windows.net
DNS flow
- storageaccount.blob.core.windows.net
- → CNAME
- → storageaccount.privatelink.blob.core.windows.net
- → A record -> Private IP
This ensures
- No application changes required
- Same FQDN works
- DNS resolves to private IP internally
Without private DNS
You must manage DNS manually.
7. Hybrid Connectivity
Private Endpoint supports
- VNet
- Peered VNets
- On-prem via VPN Gateway
- On-prem via ExpressRoute
Because service now has
- → Private IP inside VNet
This is a major advantage over Service Endpoints.
8. Security Benefits
Private Endpoints
- Remove exposure to public endpoint
- Allow disabling public network access
- Provide zero-trust architecture
- Prevent data exfiltration
- Restrict access to specific VNets
Best practice
After creating Private Endpoint
Disable
- Public network access = Disabled
On the storage account.
9. Network Interface Creation
Every Private Endpoint creates
- A hidden NIC
- With private IP
- In chosen subnet
You can view it under
- Network Interface resource
- Subnet connected devices
This NIC consumes an IP address.
🔟 Subnet Considerations
You may
- Use existing subnet
- Or create dedicated PrivateEndpointSubnet
Best practice
Create dedicated subnet for
- Better traffic control
- Easier NSG management
- Cleaner architecture
11. Advanced: Network Policies
By default
Private Endpoint subnet disables
- Network Security Group policies
- Route table policies
You can enable network policies if needed.
12. When to Use Private Endpoint
Use when
- High security requirement
- Need private IP access
- Need on-prem access
- Want to disable public endpoint
- Zero-trust architecture
Use Service Endpoint when
- Simpler setup needed
- No hybrid requirement
- Moderate security sufficient
13. Troubleshooting Checklist
If Private Endpoint not working
- Check Private DNS zone linked?
- Verify correct sub-resource selected
- Confirm VNet/subnet correct
- Ensure public access disabled only after testing
- Validate DNS resolution inside VM
- Confirm hybrid routing if on-prem
14. Deep Architecture Understanding
Private Endpoint uses
- Azure Private Link
Private Link enables
- Private connectivity to Azure PaaS
- Private connectivity to third-party services
- Service provider publishing services privately
Private Endpoint is consumer side of Private Link.
15. Reference Documentation
Private Endpoint Overview
Private Link Architecture
DNS with Private Endpoints
Compare Service Endpoint vs Private Endpoint
Storage Private Endpoint
Exam Memory Hooks
Private Endpoint = Private IP for PaaS
Creates NIC in VNet
Supports hybrid
Granular sub-service selection
Requires private DNS integration
Final Conceptual Summary
Service Endpoint
- Subnet-level backbone routing
- Still public endpoint
Private Endpoint
- True private IP
- Instance-level isolation
- Hybrid-ready
- Strong security
Storage Network Access deep dive
Storage Network Access – Structured Summary + Deep Dive
This lesson explains how to control network access to Azure PaaS services using the service firewall, focusing on:
Azure Storage
It also clarifies how Service Endpoints and Private Endpoints interact with firewall rules.
1. Core Concept: PaaS Services Have Public Endpoints
Azure PaaS services (Storage, SQL, App Service, etc.)
- Expose a public endpoint by default
- Are reachable over the internet unless restricted
- Include a built-in service firewall
Examples of services with firewall capability
- Azure Storage
- Azure SQL Database
- Azure App Service
2. What Is the Service Firewall?
The service firewall
- Controls access to the public endpoint
Allows you to
- Allow all networks
- Allow selected networks
- Disable public access completely
Important
- ⚠ It only affects the public endpoint
- ⚠ It does NOT affect Private Endpoints
3. Firewall Access Modes
Inside Storage → Networking → Public network access
- Option 1: Allow from All Networks
- Default setting
- Publicly accessible (if authentication allows)
- Option 2: Allow from Selected Networks
Allows
- Specific Virtual Networks (via Service Endpoints)
- Specific Public IP addresses
- Specific Resource Instances
- Trusted Microsoft Services
- Option 3: Disable Public Access
- Completely blocks public endpoint
- Only Private Endpoint access works
This is the most secure configuration.
4. How Service Firewall Works with Service Endpoints
Important exam concept
Even though Service Endpoints use the Microsoft Backbone
- They still use the public endpoint
Therefore
- If firewall blocks public access,
- → Service Endpoints are also blocked
(unless explicitly allowed in firewall rules).
To allow Service Endpoint access
Add the specific VNet/subnet to firewall exceptions.
5. Private Endpoint Interaction
Private Endpoint
- Does NOT use public endpoint
- Uses private IP inside VNet
- Bypasses service firewall
Therefore
If you
- Disable public access completely
Private Endpoint will still work.
This enables zero-trust architecture.
6. Demonstration Summary
Steps performed
- Created storage account
- Created private container
- Uploaded blob
- Observed public URL behavior
- Enabled anonymous blob access
- Verified public access worked
- Disabled public network access
- Verified public endpoint blocked
- Confirmed only private endpoint works
This demonstrated
- Difference between anonymous access
- Service firewall restrictions
- Public endpoint behavior
7. Anonymous Blob Access vs Firewall
Two different controls
- A. Allow Blob Anonymous Access
- (Storage Account -> Configuration)
Controls
- Whether blobs can be accessed anonymously
- B. Container Access Level
- Private (no anonymous)
- Blob (read-only anonymous for blobs)
- Container (anonymous list + read)
- C. Service Firewall
Controls
- Network-level access
- Public endpoint exposure
- Even if anonymous access is allowed,
Firewall can still block it.
8. Resource Instance Exceptions
You can allow specific Azure resources
Example
- Allow a specific Azure SQL Server
- Allow specific App Service instance
This enables
- Granular PaaS-to-PaaS communication
9. Trusted Microsoft Services
Option
- Allow trusted Azure services
Examples
- Azure Backup
- Azure Monitor
- Azure Site Recovery
- Azure Data Box
This allows Azure internal services to access storage.
Be careful
Trusted services may be broader than expected.
🔟 Architecture-Level Understanding
Without restrictions
- Internet -> Storage Public Endpoint → Allowed
With firewall restrictions
- Internet -> Blocked
- VNet via Service Endpoint -> Allowed (if configured)
- Private Endpoint -> Always allowed (if configured)
11. Best Practice Security Model
For high-security production
- Create Private Endpoint
- Disable public network access
- Disable anonymous access
- Use RBAC + Azure AD authentication
This provides
- No public exposure
- Private IP-only access
- Hybrid connectivity
- Least privilege
12. Comparison: Service Endpoint vs Private Endpoint (With Firewall)
| Scenario | Service Endpoint | Private Endpoint |
| --- | --- | --- |
| Firewall disabled | Works | Works |
| Firewall enabled + VNet added | Works | Works |
| Firewall enabled + no exception | Blocked | Works |
| Public access disabled | Blocked | Works |
Exam trap
Service Endpoints still depend on public endpoint.
13. Common Exam Questions
Q: Does firewall affect Service Endpoints?
→ Yes.
Q: Does firewall affect Private Endpoints?
→ No.
Q: How to completely remove public exposure?
→ Disable public network access.
Q: Anonymous access allowed but firewall enabled?
→ Still blocked unless allowed by firewall.
14. Troubleshooting Checklist
If access fails
- Check firewall setting
- Verify Service Endpoint exception added
- Confirm VNet/subnet correct
- Validate Private Endpoint DNS resolution
- Confirm anonymous access settings
- Review NSGs
15. Deep Security Insight
The service firewall acts as
- Network-level gatekeeper
- For the public endpoint only
It complements
- RBAC
- Azure AD authentication
- Storage account keys
- SAS tokens
Security layering
- Identity + Network + Encryption + Access control
16. Reference Documentation
Storage Firewall
Storage Anonymous Access
Private Endpoint for Storage
Service Endpoints
Trusted Azure Services
Final Exam Memory Hooks
Service Firewall = Controls public endpoint
Service Endpoint = Uses public endpoint
Private Endpoint = Bypasses public endpoint
Disable public access = Private only
Ultimate Summary
Storage Network Access involves
- Public endpoint control via service firewall
- VNet integration via Service Endpoints
- True isolation via Private Endpoints
- Anonymous access controls
- Granular exception rules
Understanding how these layers interact is critical for Azure networking exams.
Network Integration Exam Tips deep dive
Exam Tips: Network Integration (AZ-104) – Structured Review + Deep Understanding
This section summarizes key Network Integration concepts for the AZ-104 exam.
It covers how Azure integrates virtual networks with PaaS services securely.
Core topics
- Azure Bastion
- Azure Virtual Network Service Endpoints
- Azure Private Endpoint
- Azure Storage (Service Firewall context)
1. Azure Bastion – Secure VM Administration
What It Does
Azure Bastion provides
- Browser-based SSH/RDP
- Over HTTPS (TLS encrypted)
- Managed PaaS jump host
- No public IP required on VMs
- Why It Matters for Exam
You must remember
- Dedicated subnet named AzureBastionSubnet
- Minimum subnet size: /26
- Must be in same region as VNet
- VM does NOT require public IP
- When to Choose Bastion
- Secure admin access required
- Remove public IP exposure
- Reduce jump-box management overhead
Exam Trigger Words
- “Secure browser-based access”
- “No public IP”
- “Managed jump host”
2. Service Endpoints – Subnet-Level Backbone Access
What They Do
Service Endpoints
- Enabled at subnet level
- Route traffic to Azure PaaS services
- Use Microsoft Backbone
- Still use public endpoint
Important
- ⚠ No private IP assigned
- ⚠ Still public endpoint
- ⚠ Affects all services under that provider
Example
- Enable Microsoft.Storage -> applies to all storage accounts.
- How It Works
Without service endpoint
- VM -> Internet route → Public endpoint
With service endpoint
- VM -> System route → Microsoft Backbone → Public endpoint
No public IP needed on VM.
Exam Key Distinction
Service Endpoint
- Subnet-based
- Public endpoint
- Moderate security
3. Private Endpoints – True Private Connectivity
Private Endpoints are part of
- Azure Private Link
- What They Do
- Assign private IP to PaaS service
- Create NIC in VNet
- Allow granular sub-resource access (Blob, File, etc.)
- Support hybrid (VPN / ExpressRoute)
Example
- StorageAccount -> Blob → Private IP
- Major Differences
- | Feature | Service Endpoint | Private Endpoint |
- | --- | --- | --- |
- | Uses public endpoint | Yes | No |
- | Assigns private IP | No | Yes |
- | Hybrid ready | Limited | Yes |
- | Sub-resource selection | No | Yes |
Exam Trigger Words
- “Private IP for storage”
- “Disable public access”
- “Hybrid access required”
- Answer -> Private Endpoint
4. Service Firewall (Storage Network Access)
Many PaaS services include a service firewall, including
- Azure Storage
- Azure SQL Database
- Azure Key Vault
- What It Does
Controls access to
- → Public endpoint only
Options
- Allow all networks
- Allow selected VNets/IPs
- Disable public access
- Critical Exam Concept
Service Firewall
- Affects Service Endpoints
- ❌ Does NOT affect Private Endpoints
If public access disabled
- Service Endpoint -> blocked
- Private Endpoint -> works
5. Security Architecture Patterns (Exam Scenarios)
Moderate Security
Service Endpoint
Firewall allows specific VNet
High Security (Zero Trust)
Private Endpoint
Public access disabled
Firewall blocks all public
DNS integrated
Secure Admin Pattern
Bastion for VM access
No public IP on VMs
NSGs restrict inbound traffic
6. Decision Tree for Exam Questions
If question mentions
“Browser-based RDP/SSH”
→ Bastion
“Subnet-level backbone routing”
→ Service Endpoint
“Assign private IP to storage”
→ Private Endpoint
“Block all public access”
→ Service Firewall + Private Endpoint
“Hybrid access required”
→ Private Endpoint
7. Common Exam Traps
- Service Endpoint gives private IP → False
- Firewall does not affect Service Endpoint → False
- Bastion requires VM public IP → False
- Private Endpoint uses public endpoint → False
8. Integration Hierarchy (Conceptual Model)
Layer 1 – Admin Access
→ Bastion
Layer 2 – Subnet-based PaaS routing
→ Service Endpoint
Layer 3 – True private PaaS connectivity
→ Private Endpoint
Layer 4 – Public endpoint control
→ Service Firewall
9. Hybrid Integration Understanding
Only Private Endpoint supports
- On-prem access via VPN
- On-prem access via ExpressRoute
- Private DNS resolution
Service Endpoint does NOT extend to on-prem.
🔟 Reference Documentation
Azure Bastion
Service Endpoints
Private Endpoint
Storage Firewall
Private Link vs Service Endpoints
Final AZ-104 Memory Summary
Azure Bastion
= Secure admin access without public IP
Service Endpoint
= Subnet-level backbone routing
Private Endpoint
= Private IP for PaaS
Service Firewall
= Controls public endpoint access
High-Impact Exam Strategy
When answering scenario questions
Identify whether problem is
- Admin access
- PaaS integration
- Hybrid requirement
- Public exposure control
Choose smallest secure solution that satisfies requirement.
Domain 5: Monitor and Maintain (10–15%)
Azure Monitor
- Metrics — platform metrics (auto), guest OS metrics (Azure Monitor Agent required).
- Logs — send to Log Analytics workspace; query with KQL.
- Alerts — metric alerts, log alerts, activity log alerts, action groups (email, SMS, webhook, runbook).
- Workbooks — rich visualisation dashboards.
- VM Insights — pre-built performance + dependency maps.
Log Analytics and KQL basics
// Heartbeat missed in last 5 min
Heartbeat | summarize LastHB = max(TimeGenerated) by Computer
| where LastHB < ago(5m)
// CPU > 90% for a VM
Perf | where ObjectName == "Processor" and CounterName == "% Processor Time"
| where CounterValue > 90 | project TimeGenerated, Computer, CounterValue
Azure Backup
- Recovery Services Vault — holds backup data.
- Backup policy — schedule + retention (daily/weekly/monthly/yearly).
- Supports: Azure VMs, SQL in VMs, Azure Files, on-premises via MARS/MABS agent.
- Soft delete — 14-day retention for deleted backup items (enabled by default).
Azure Site Recovery (ASR)
- Replicates VMs to a secondary region for disaster recovery.
- RPO typically < 30 seconds; RTO in minutes.
- Test failover — validates DR without impacting production.
- Recovery plans — orchestrate failover order + pre/post scripts.
Monitoring and Alerting deep dives
These lessons follow the source AZ-104 certification-theory hierarchy and expand the domain summary into practical administrator-level notes.
Azure Monitor Fundamentals
Azure Monitor Overview deep dive
Understanding Azure Monitor — Review Notes
The transcript is really about Azure Monitor overall, not specifically Azure Monitor Agent. Azure Monitor is Microsoft’s full-stack monitoring/observability service for collecting, analyzing, visualizing, and acting on telemetry from Azure, hybrid infrastructure, applications, and related services.
A useful mental model is:
Resources / Applications / Infrastructure
│
▼
Azure Monitor
┌──────┴──────┐
▼ ▼
Metrics Logs
│ │
▼ ▼
Metrics Explorer Log Analytics
│
▼
KQL
Current Microsoft documentation describes Azure Monitor as a unified observability service that brings together metrics, logs, traces, and events across cloud and hybrid environments. (Microsoft Learn)
1. What Azure Monitor can monitor
The transcript emphasizes that Azure Monitor can monitor more than just Azure VMs. It can cover:
- Azure resources
- Azure platform services
- applications
- on-premises resources
- hybrid infrastructure
- application code
This makes Azure Monitor a central monitoring platform rather than a VM-only monitoring service.
A broader current architecture looks like:
Azure Resources
Azure VMs
Azure PaaS
Applications
Azure Arc / Hybrid
Containers
Application telemetry
│
▼
Azure Monitor
│
┌─────┼──────────┐
▼ ▼ ▼
Metrics Logs Traces/Events
2. Metrics vs Logs
This is the main concept in the transcript.
Metrics
Metrics are primarily numeric, time-series values collected frequently.
Examples:
CPU = 72%
Available memory = 3.1 GB
Requests/sec = 420
Disk latency = 6 ms
Typical characteristics:
- numeric
- time-based
- collected frequently
- near-real-time
- lightweight
- good for alerting and visualization
Typical use case:
Performance monitoring
Azure automatically collects many platform metrics for Azure resources. Microsoft describes platform metrics as numeric values collected automatically at regular intervals. (Microsoft Learn)
Logs
Logs are richer records describing events or activity.
Examples:
Application error occurred
User logged in
VM extension failed
Database query timed out
Firewall rule changed
Characteristics:
- event-oriented
- richer than metrics
- structured or semi-structured
- queried using KQL
- useful for diagnostics and investigation
Typical use case:
Troubleshooting and root-cause analysis
Azure Monitor Logs data is normally analyzed using Log Analytics and Kusto Query Language (KQL). (Microsoft Learn)
3. Metrics vs Logs — exam-friendly comparison
| Characteristic | Metrics | Logs |
|---|---|---|
| Data type | Numeric time series | Records/events |
| Collection | Frequent | Event-driven / collected |
| Query complexity | Relatively simple | Powerful queries |
| Primary tool | Metrics Explorer | Log Analytics |
| Query language | Portal metric queries / modern PromQL scenarios | KQL |
| Best use | Performance and health | Diagnostics and investigation |
| Alerting | Metric alerts | Log search alerts |
| Example | CPU = 80% | "Authentication failed" |
The simplest distinction to remember is:
Metrics = "What is the value now?"
Logs = "What happened?"
4. Platform metrics are often collected automatically
The transcript demonstrates creating a VM and then going directly to:
VM → Monitoring → Metrics
without first installing an agent.
This is an important concept.
For many Azure resources:
Azure Resource
│
▼
Platform telemetry
│
▼
Azure Monitor Metrics
Azure itself can observe the resource at the platform level.
For a VM, for example:
Percentage CPU
Disk operations
Network traffic
may be available without Azure Monitor Agent.
Microsoft confirms that Azure platform metrics are automatically collected for supported Azure resources. (Microsoft Learn)
5. Platform metrics vs guest OS telemetry
This distinction becomes especially important when you study Azure Monitor Agent.
Platform monitoring
Azure sees the resource externally:
Azure Host
│
▼
VM
│
└── CPU / Disk / Network platform metrics
No guest monitoring agent may be required.
Guest monitoring
To inspect what is happening inside the OS, you need guest telemetry collection.
Examples:
Windows Event Logs
Syslog
Guest memory counters
Processes
Custom application logs
That is where:
Azure Monitor Agent
+
Data Collection Rule
becomes relevant.
So:
Platform metric
→ Azure collects it automatically
Guest OS log/counter
→ typically AMA + DCR
6. Metrics Explorer
The transcript demonstrates two ways to access the same metrics experience.
From the resource
Virtual Machine
↓
Monitoring
↓
Metrics
Azure automatically scopes Metrics Explorer to that VM.
From Azure Monitor
Azure Monitor
↓
Metrics
↓
Select Scope
↓
Choose VM
This approach is useful when working centrally across many resources.
Microsoft confirms that selecting Metrics from an Azure resource opens Metrics Explorer scoped to that resource. (Microsoft Learn)
7. Example: Percentage CPU
The lesson selects:
Metric:
Percentage CPU
which produces a time-series graph.
Conceptually:
CPU %
100 ┤
80 ┤ ╭───╮
60 ┤ ╭────╯ ╰─╮
40 ┤───────╯ ╰────
20 ┤
0 └────────────────────────
time →
This is a classic use of metrics because CPU percentage is:
- numeric
- time-series based
- frequently sampled
- useful for performance monitoring
8. Time range
Metrics Explorer allows you to control how much historical information is displayed.
The transcript demonstrates choices such as:
Last 30 minutes
Last 24 hours
Last 30 days
Custom
The time range controls which metric samples are considered.
Example:
Last 30 minutes
→ troubleshooting current spike
Last 24 hours
→ daily behavior
Last 30 days
→ identify long-term pattern
9. Time granularity
The transcript also explains time granularity.
This determines the size of the time buckets used to present the metric.
For example:
1-minute granularity
10:00
10:01
10:02
10:03
...
versus:
5-minute granularity
10:00
10:05
10:10
...
A smaller time grain provides more detail but potentially a noisier chart.
A larger time grain provides a smoother high-level trend.
Microsoft documentation also reflects how time range and time granularity influence metric visualization and aggregation. (Microsoft Learn)
10. Correction to the transcript's calculation
The transcript says that at 5-minute granularity, over 24 hours there would be 1,440 data points.
That arithmetic is incorrect.
At five-minute intervals:
60 minutes / 5 = 12 samples per hour
12 × 24 = 288 samples per day
So:
5-minute granularity over 24 hours ≈ 288 time buckets, not 1,440.
1,440 would correspond to one sample per minute:
60 × 24 = 1,440
This is worth correcting in your review notes.
11. Aggregation is different from collection interval
For deeper understanding, don't confuse:
Collection/sampling frequency
How frequently telemetry enters Azure Monitor.
with:
Time granularity
How Metrics Explorer groups the data for analysis.
For example:
Raw samples
10:00 → 42
10:01 → 48
10:02 → 51
10:03 → 47
10:04 → 52
Displayed as a 5-minute average:
10:00–10:05
Average = 48
So a chart's time grain does not necessarily mean Azure only collected one value during that entire period.
12. Metric aggregation
Metrics usually support aggregation functions such as:
Average
Minimum
Maximum
Sum
Count
For CPU:
Average CPU
is usually more useful than summing CPU percentages.
For requests:
Total requests
may make more sense.
This becomes important when building:
- dashboards
- alerts
- workbooks
- capacity planning charts
13. Where monitoring data can go
The transcript describes several destinations.
A useful architecture is:
Azure Resource
│
▼
Diagnostic / monitoring data
│
├────► Azure Monitor Logs / Log Analytics
│
├────► Storage Account
│
└────► Event Hub
Common reasons:
| Destination | Typical purpose |
|---|---|
| Log Analytics | Analysis and KQL |
| Storage Account | Long-term archival |
| Event Hub | Forward to third-party/SIEM |
| Azure Monitor Metrics | Time-series performance analysis |
Azure resource diagnostic settings are commonly used to route resource logs and supported metrics to destinations such as Log Analytics, Storage, and Event Hubs. (Microsoft Learn)
14. Log Analytics Workspace
A Log Analytics workspace is a central Azure Monitor Logs data store and query environment.
Architecture:
VM
Storage Account
Key Vault
Firewall
App Service
│
▼
Azure Monitor Logs
│
▼
Log Analytics Workspace
│
▼
KQL
Typical uses:
- troubleshooting
- correlation
- security analysis
- operational investigation
- dashboards
- alerting
- workbooks
15. KQL
The transcript refers to "Kusto" as the query language.
The full name is:
Kusto Query Language (KQL).
Example:
AzureActivity
| where TimeGenerated > ago(24h)
| summarize count() by OperationNameValue
| order by count_ desc
Another VM example might be:
Perf
| where ObjectName == "Processor"
| where CounterName == "% Processor Time"
| summarize avg(CounterValue) by Computer, bin(TimeGenerated, 5m)
KQL is fundamental for:
- Azure Monitor Logs
- Log Analytics
- Microsoft Sentinel
- Application Insights logs
- log search alerts
Log Analytics currently supports both a simpler exploration mode and full KQL mode for advanced queries. (Microsoft Learn)
16. Storage Account as a monitoring destination
A Storage Account is useful when you primarily need:
Archiving
Long-term retention
Compliance
Low-cost storage
For example:
Azure Firewall logs
│
▼
Storage Account
│
▼
Long-term archive
Later, that information can potentially be processed or imported into analytical platforms.
For active operational analytics, however, Log Analytics is usually much more convenient.
17. Event Hub as a monitoring destination
Event Hubs is useful when telemetry needs to leave Azure Monitor and go to another platform.
Example:
Azure resources
│
▼
Diagnostic Settings
│
▼
Event Hub
│
▼
Third-party SIEM
Potential consumers could include:
Splunk
Custom event processing
External SIEM
Security platform
So think:
Event Hub = streaming/integration destination.
18. Logs cannot be stored in the Azure Monitor metric database
This point from the transcript is important.
Logs
✕
Azure Monitor Metrics database
Metrics and logs are optimized for different data models.
Think:
Metrics database
↓
numeric time series
Log Analytics
↓
structured/semi-structured records
This separation enables each system to optimize for its workload.
19. Diagnostic settings
The transcript discusses routing metrics and logs, but the underlying Azure concept worth knowing is Diagnostic Settings.
A diagnostic setting can route supported resource telemetry to:
Log Analytics workspace
Storage account
Event Hub
For example:
Key Vault
│
▼
Diagnostic Setting
│
├──► Log Analytics
├──► Storage
└──► Event Hub
Microsoft notes that resource logs are generated by Azure, but typically require a diagnostic setting if you want to send them to a destination such as Log Analytics. (Microsoft Learn)
20. Resource logs vs Activity Log
Another distinction to understand:
Activity Log
Tracks Azure control-plane operations.
Examples:
Create VM
Delete VM
Start VM
Change NSG
Assign role
Resource logs
Describe operations occurring within a specific resource/service.
Examples:
Key Vault secret access
Firewall traffic
Storage operation
SQL query auditing
The resource itself generates these logs.
Guest OS logs
Come from inside the VM:
Windows Event Log
Syslog
Application logs
Usually collected using AMA.
So:
Azure control plane
→ Activity Log
Azure service internals
→ Resource Logs
VM operating system
→ AMA / Guest logs
21. Modern Azure Monitor terminology clarification
The transcript uses Azure Monitor as though it were a single metrics database.
Current Azure Monitor architecture is broader.
Microsoft now distinguishes between:
Log Analytics workspace
Primarily:
Logs + traces
→ KQL
Azure Monitor workspace
Currently focused primarily on:
Prometheus metrics
and related modern metrics scenarios.
These are separate resource types. (Microsoft Learn)
For AZ-104-style fundamentals, though, the useful model remains:
Azure Monitor
├── Metrics
└── Logs
22. Azure Monitor Agent's place in this architecture
Since your lesson title mentions Azure Monitor Agent, here's how it fits into the bigger architecture:
Azure Monitor
┌───────┴───────┐
▼ ▼
Metrics Logs
▲ ▲
│ │
Azure platform ───────┘ │
│
VM Guest OS │
│ │
▼ │
Azure Monitor Agent │
│ │
▼ │
Data Collection Rule ─────────────────┘
AMA does not replace Azure Monitor.
Instead:
Azure Monitor = monitoring platform AMA = agent that feeds certain guest telemetry into Azure Monitor
23. How Alerts fit into Azure Monitor
Once telemetry exists:
Metrics / Logs
│
▼
Azure Monitor Alert Rule
│
condition met
▼
Action Group
│
├── Email
├── SMS
├── Runbook
└── Function
So monitoring can move through three stages:
COLLECT
↓
ANALYZE
↓
ACT
For example:
Collect CPU metric
↓
Analyze CPU trend
↓
Alert if CPU > 90%
↓
Notify administrator
24. Azure Monitor services you should know
Azure Monitor is an umbrella containing several features.
| Feature | Purpose |
|---|---|
| Metrics | Numeric time-series monitoring |
| Metrics Explorer | Explore metric data |
| Azure Monitor Logs | Log data platform |
| Log Analytics | Query logs |
| KQL | Log query language |
| Application Insights | Application performance monitoring |
| VM Insights | VM monitoring experience |
| Container Insights | AKS/container monitoring |
| Alerts | Detect conditions |
| Action Groups | Respond to alerts |
| Workbooks | Interactive dashboards |
| Diagnostic Settings | Route resource telemetry |
| AMA | Guest OS collection |
| DCR | Define AMA collection |
25. Example end-to-end monitoring architecture
Imagine an App Service calling a VM-hosted database:
Azure Monitor
│
┌──────────────┼───────────────┐
▼ ▼ ▼
Metrics Log Analytics Alerts
▲ ▲ │
│ │ ▼
│ │ Action Groups
│ │
App Service │
│ │
▼ │
Application Insights │
│
VM │
│ │
├── Platform metrics ───┘
│
└── AMA
│
▼
DCR
│
▼
Log Analytics
This demonstrates why Azure Monitor is called full-stack monitoring.
26. Exam-focused decision table
| Requirement | Use |
|---|---|
| View VM CPU over last hour | Metrics Explorer |
| Query Windows Event Logs | Log Analytics + KQL |
| Collect guest VM logs | AMA + DCR |
| Store logs for archival | Storage Account |
| Forward logs to external SIEM | Event Hub |
| Query Azure logs | KQL |
| Alert when CPU > 90% | Metric Alert |
| Dashboard multiple monitoring queries | Workbook |
| Route resource logs | Diagnostic Settings |
| Monitor application performance | Application Insights |
| Investigate Key Vault operations | Resource Logs |
27. Common misconceptions
"Metrics require AMA"
Not necessarily.
Many Azure platform metrics are collected automatically.
"Every Azure resource log automatically appears in Log Analytics"
No.
Resource logs are generated by Azure services, but you typically need Diagnostic Settings or an appropriate collection mechanism to send them to Log Analytics. (Microsoft Learn)
"Azure Monitor and Log Analytics are the same"
No.
Azure Monitor
↓
Monitoring platform
Log Analytics
↓
Tool/workspace experience for analyzing Azure Monitor Logs
"KQL queries the Azure Monitor metric database"
Generally think of KQL primarily in relation to Azure Monitor Logs / Log Analytics. Current Azure Monitor also has newer metric experiences, including Prometheus/PromQL scenarios. (Microsoft Learn)
28. Quick revision cheat sheet
AZURE MONITOR
= Microsoft's unified monitoring / observability platform
METRICS
= Numeric + time-series
= Frequent
= Performance
= Metrics Explorer
LOGS
= Detailed event records
= Troubleshooting
= Log Analytics
= KQL
PLATFORM METRICS
= Often automatically collected
RESOURCE LOGS
= Usually routed through Diagnostic Settings
GUEST OS LOGS
= AMA + DCR
LOG DESTINATIONS
= Log Analytics / Storage / Event Hub
ALERTING
= Signal → Alert Rule → Action Group
Most important takeaway
Think of Azure Monitor as a pipeline:
COLLECT
│
├── Platform telemetry
├── AMA
├── Diagnostic Settings
└── Application Insights
↓
STORE
│
├── Azure Monitor Metrics
└── Log Analytics
↓
ANALYZE
│
├── Metrics Explorer
├── KQL
├── Workbooks
└── Insights
↓
RESPOND
│
├── Alerts
├── Action Groups
└── Automation
That model connects Azure Monitor, Azure Monitor Agent, Log Analytics, Metrics Explorer, Diagnostic Settings, and Alerts into one coherent architecture.
Official Microsoft reference documentation
Azure Monitor Agent
Azure Monitor Agent deep dive
The transcript introduces Azure Monitor Agent (AMA) as Microsoft's modern mechanism for collecting guest operating-system telemetry from Azure VMs, VM Scale Sets, and Azure Arc-enabled servers. It focuses on how AMA replaces the older multi-agent approach and uses Data Collection Rules (DCRs) to centrally define what data is collected and where it is sent.
Important update to the transcript: the lesson presents a Data Collection Endpoint (DCE) as a standard required component. Current Microsoft guidance says a DCE is not required for every AMA deployment. AMA can use public endpoints by default. DCEs are required for particular scenarios, notably Private Link/network isolation and certain data sources. (Microsoft Learn)
1. Why Azure Monitor Agent exists
Historically, guest OS monitoring could require several different agents/extensions.
| Requirement | Legacy approach | Modern approach |
|---|---|---|
| Windows/Linux logs → Log Analytics | Log Analytics Agent / MMA / OMS | AMA |
| Linux metrics | Telegraf-based mechanisms | AMA |
| Windows diagnostics/metrics | Diagnostics extension | AMA / modern Azure Monitor collection |
| Collection configuration | Agent/workspace-specific configuration | DCR |
| Azure VM | Supported | Supported |
| VM Scale Set | Supported | Supported |
| On-premises/other-cloud server | Legacy agents | AMA + Azure Arc |
Microsoft now describes AMA as the supported agent for collecting guest OS data in Azure Monitor. The old Log Analytics agent has been retired and should be migrated to AMA. (Microsoft Learn)
Core idea
Instead of configuring collection separately on every machine:
Install AMA → associate a DCR → DCR tells AMA what to collect and where to send it.
This separation is important:
AMA = collection engine DCR = collection configuration
2. Host metrics vs guest OS metrics
This distinction is particularly important for exams and architecture discussions.
Even without AMA, an Azure VM exposes platform/host metrics because Azure can observe the VM from its infrastructure.
Examples include:
- CPU percentage
- network traffic
- disk operations
- VM availability/platform information
But Azure cannot automatically see everything occurring inside the guest operating system.
For example:
- Windows Event Logs
- Linux Syslog
- application logs
- processes
- guest performance counters
- custom text/JSON logs
AMA runs inside the machine and therefore provides access to this guest-level telemetry. Microsoft explicitly notes that without an agent, Azure Monitor can collect only information available from the host rather than the guest OS and its running processes. (Microsoft Learn)
Exam shortcut
Azure platform can see the VM
↓
Platform metrics
AMA runs inside the VM
↓
Guest OS telemetry
3. Azure Monitor Agent architecture
A useful simplified architecture is:
Azure VM / VMSS / Arc Server
│
│ Azure Monitor Agent
│
▼
Data Collection Rule (DCR)
│
│ defines
├── WHAT to collect
├── HOW to process/filter it
└── WHERE to send it
│
├── Log Analytics Workspace
│
└── Azure Monitor Metrics
Depending upon the configuration, a Data Collection Endpoint may also participate:
Data Collection Rule
│
▼
VM ── AMA ──► Data Collection Endpoint
│
▼
Azure Monitor
│
┌───────┴────────┐
▼ ▼
Log Analytics Metrics
But don't memorize the DCE as mandatory.
4. Data Collection Rules (DCRs)
The DCR is one of the most important concepts to remember.
A DCR tells Azure Monitor:
- what data to collect
- which resources the configuration applies to
- how the data should be processed/transformed
- where the data should be sent
Microsoft describes the DCR processing model roughly as:
Data Sources
↓
Input Streams
↓
Data Flows / Transformations
↓
Destinations
Common AMA data sources
| Data source | Example |
|---|---|
| Performance counters | CPU, memory, disk |
| Windows Event Logs | System/Application/Security events |
| Syslog | Linux system events |
| IIS logs | IIS web-server logs |
| Custom text logs | Application .log files |
| Custom JSON logs | JSON-formatted application logs |
The transcript's demo configures:
Performance Counters
+
Windows Event Logs
and sends them to a Log Analytics workspace.
5. Data Collection Rule Associations (DCRAs)
There's another concept worth adding beyond the transcript.
A DCR does not simply exist independently of its monitored machines. Azure creates an association between the DCR and target resource.
This is called a:
Data Collection Rule Association (DCRA).
Conceptually:
VM1 ──────┐
VM2 ──────┼── DCRA ──► DCR-WebServers
VM3 ──────┘
This allows one DCR to configure many machines.
It can also work the other way:
┌── DCR-Performance
VM1 ─────────────┼── DCR-WindowsEvents
└── DCR-Security
Microsoft currently documents this relationship as many-to-many and supports multiple DCR associations for a resource. (Microsoft Learn)
This makes AMA significantly easier to manage at enterprise scale.
6. Data Collection Endpoint (DCE)
The transcript creates a DCE before creating its DCR.
A DCE provides endpoints related to:
- configuration access
- logs ingestion
- metrics ingestion
For example:
AMA
│
├── retrieve configuration
│
▼
DCE configuration endpoint
AMA
│
├── send telemetry
│
▼
DCE ingestion endpoint
Important current behavior
Current Microsoft documentation says:
AMA does not always require a DCE.
By default, AMA can retrieve configuration through Azure Monitor's public endpoints.
DCE becomes important when, for example:
- using Azure Monitor Private Link
- implementing network isolation
- collecting data sources that specifically require a DCE
Examples currently documented as requiring one include Windows Firewall Logs and Prometheus metrics for Container Insights. (Microsoft Learn)
Exam distinction
DCR
Defines collection behavior.
DCE
Provides collection/configuration endpoints where required.
Don't confuse the two.
7. System-assigned managed identity
During the transcript demo, Azure indicates that a system-assigned managed identity will be enabled on the monitored VM.
The major benefit is avoiding manually managed credentials.
Conceptually:
VM
│
├── System-assigned managed identity
│
▼
Azure Monitor
Rather than:
VM
│
├── username/password/key
│
▼
Monitoring service
The identity lifecycle is associated with the Azure resource rather than requiring administrators to distribute and rotate credentials manually.
8. Performance counters
The demonstration configures Performance Counters.
These provide guest OS performance information such as:
Processor
Memory
Logical Disk
Physical Disk
Network
Processes
DCRs use the performanceCounters data source for Windows and Linux machines.
Two important streams are:
Microsoft-Perf
Microsoft-InsightsMetrics
Their destinations differ.
Performance Counter
│
├── Microsoft-Perf
│ ↓
│ Log Analytics
│
└── Microsoft-InsightsMetrics
↓
Azure Monitor Metrics
You should generally collect only the counters that you actually need. Collecting unnecessary telemetry increases ingestion volume and potentially your monitoring cost.
9. Windows Event Logs
AMA can also collect Windows Event Logs.
Common Windows channels include:
Application
System
Security
You can filter which events should be collected.
The lesson demonstrates collecting:
Critical
Error
Audit Failure
rather than blindly ingesting every event.
This matters because targeted collection improves:
- signal-to-noise ratio
- query performance
- ingestion cost
- operational usability
DCR Windows event collection is represented using the windowsEventLogs data source and can use XPath expressions to specify which events should be collected. (Microsoft Learn)
10. Log Analytics Workspace
A Log Analytics workspace is the primary analytical store used by Azure Monitor Logs.
Think of the relationship as:
VM
↓
AMA
↓
DCR
↓
Log Analytics Workspace
↓
KQL
↓
Queries / Alerts / Workbooks / Analysis
Once the telemetry arrives, you can query it using Kusto Query Language (KQL).
The transcript demonstrates using built-in queries for:
- VM free disk space
- reported errors
A simplified performance query might conceptually look like:
Perf
| where Computer == "vm1"
| where CounterName == "% Free Space"
| summarize avg(CounterValue) by bin(TimeGenerated, 5m)
The key point for review is:
AMA collects → Log Analytics stores → KQL queries.
11. Logs vs Metrics
This is another useful exam distinction.
Azure Monitor Metrics
Optimized for numeric time-series data.
Examples:
CPU = 75%
Memory = 63%
Requests/sec = 900
Disk latency = 8 ms
Best suited to:
- dashboards
- charts
- fast metric alerts
- near-real-time monitoring
Azure Monitor Logs
Stores richer structured records.
Examples:
Windows Event
Syslog
Application error
Performance record
Security event
Custom application log
Queried using KQL.
So:
Metrics → numeric time series
Logs → detailed event/record data
12. Complete lab workflow from the transcript
The lesson effectively follows this sequence:
1. Create Windows VM
↓
2. Create Log Analytics Workspace
↓
3. Confirm VM has platform metrics
↓
4. Create Data Collection Endpoint
↓
5. Create Data Collection Rule
↓
6. Add VM as target resource
↓
7. Azure enables managed identity
↓
8. AMA extension installed
↓
9. Configure Performance Counters
↓
10. Destination → Log Analytics
↓
11. Configure Windows Event Logs
↓
12. Destination → Log Analytics
↓
13. Create DCR
↓
14. Wait for telemetry
↓
15. Azure Monitor → Logs
↓
16. Query data using KQL
For a modern implementation, remember that Step 4 isn't universally required; whether you need a DCE depends on the collection/networking scenario. (Microsoft Learn)
13. What happens automatically?
A useful part of the transcript is the portal notification sequence.
When the DCR was created and associated with the VM, Azure performed several operations:
Create DCE
↓
Enable system-assigned managed identity
↓
Install Azure Monitor Agent extension
↓
Associate DCR with VM
↓
AMA retrieves configuration
↓
AMA starts collecting telemetry
This is why you don't necessarily need to manually log into every VM and configure monitoring individually.
For large environments, Microsoft also supports AMA deployment through mechanisms such as Azure Policy. (Microsoft Learn)
14. AMA vs legacy Log Analytics Agent
| Feature | Legacy MMA/OMS | AMA |
|---|---|---|
| Current supported approach | ❌ | ✅ |
| Windows | ✅ | ✅ |
| Linux | ✅ | ✅ |
| Azure VM | ✅ | ✅ |
| Arc machines | Legacy support | ✅ |
| DCR configuration | ❌ | ✅ |
| Centralized granular collection | Limited | ✅ |
| Transform/filter pipeline | Limited | ✅ |
| Modern Azure Monitor integration | Legacy | ✅ |
Microsoft's migration guidance recommends:
Assess legacy deployment
↓
Create DCRs
↓
Deploy AMA
↓
Validate collection
↓
Validate dependent services
↓
Remove legacy agent
You should remove the legacy agent only after validating that AMA is collecting the required telemetry, otherwise monitoring gaps can result. (Microsoft Learn)
15. Architecture to memorize
For certification/review purposes, remember this model:
Azure Monitor
│
┌─────────┴─────────┐
│ │
Azure Monitor Logs Azure Monitor Metrics
│ │
Log Analytics Workspace │
▲ ▲
└────────┬──────────┘
│
DCR
▲
│
Azure Monitor Agent
▲
│
┌──────────┼───────────┐
│ │ │
Azure VM VMSS Arc Server
Potentially:
AMA ↔ DCE
when the collection/network architecture requires a Data Collection Endpoint.
16. Exam-focused facts
| Question / concept | Remember |
|---|---|
| Modern guest OS monitoring agent | Azure Monitor Agent (AMA) |
| Legacy agent | MMA / OMS / Log Analytics Agent |
| Defines what AMA collects | Data Collection Rule (DCR) |
| Connects DCR to VM | DCR Association (DCRA) |
| Windows + Linux supported | Yes |
| Azure Arc servers supported | Yes |
| Guest logs available without agent? | Generally No |
| Platform metrics available without AMA? | Yes |
| Query language for Azure Monitor Logs | KQL |
| Detailed log destination | Log Analytics workspace |
| Numeric time-series destination | Azure Monitor Metrics |
| DCE always required? | No |
| Private Link/network-isolated AMA | DCE commonly required |
| Windows events configurable via DCR | Yes |
| Performance counters configurable via DCR | Yes |
17. Scenario questions
Scenario 1
Requirement: Collect Windows System Event Log errors from 500 Azure VMs.
Use:
AMA
+
DCR containing Windows Event Logs
+
DCR association with the VMs
+
Log Analytics workspace
Scenario 2
Requirement: Monitor on-premises Windows servers using Azure Monitor.
Use:
Azure Arc
+
AMA
+
DCR
+
Log Analytics
Scenario 3
Requirement: Collect guest CPU/memory counters but not unnecessary Windows events.
Configure only the required performance counters in the DCR.
Scenario 4
Requirement: Query detailed historical VM events.
Use:
AMA → Log Analytics → KQL
Scenario 5
Requirement: Monitoring traffic must remain private.
Think:
AMA
+
DCR
+
DCE
+
Azure Monitor Private Link Scope
18. Key takeaway
The most important architectural change is that monitoring configuration is separated from the monitoring agent.
Instead of:
Configure each monitoring agent individually
Azure moves toward:
DCR
"What should I collect?"
│
┌───────────┼───────────┐
▼ ▼ ▼
AMA VM1 AMA VM2 AMA VM3
│ │ │
└───────────┼───────────┘
▼
Azure Monitor
That gives administrators centralized, reusable and scalable collection policies across Azure VMs, VM Scale Sets, and Azure Arc-enabled machines. (Microsoft Learn)
Microsoft reference documentation
Log Analytics and Logs
Azure Monitor Logs deep dive
This lesson focuses specifically on Azure Monitor Logs, Log Analytics workspaces, and Diagnostic Settings. The demonstration creates a Storage Account, routes Storage telemetry to a Log Analytics workspace, generates Blob activity, and then analyzes the resulting data with KQL.
The central architecture is:
Azure Resource
│
│ generates resource logs/metrics
▼
Diagnostic Settings
│
├────────► Log Analytics Workspace
│
├────────► Storage Account
│
├────────► Event Hub
│
└────────► Partner Solution
│
▼
Analysis / Integration
1. What are Azure Monitor Logs?
The transcript describes logs as records of events that occurred within Azure resources.
Azure Monitor Logs provides the platform for storing and analyzing this log data, while Log Analytics provides the Azure portal experience for querying and analyzing it.
A useful distinction is:
Azure Monitor Logs
= log data platform
Log Analytics workspace
= logical environment/data store for log data
Log Analytics
= portal tool for querying/analyzing that data
KQL
= query language
Current Microsoft documentation describes Azure Monitor Logs as a centralized data platform that can collect telemetry from multiple resources and allows complex analysis using KQL. Azure Monitor Logs overview
2. Why use a Log Analytics workspace?
Without centralized logging, troubleshooting might look like:
Storage Account → inspect separately
VM → inspect separately
App Service → inspect separately
Firewall → inspect separately
Key Vault → inspect separately
A Log Analytics workspace provides a central destination:
Storage ────────┐
VM ─────────────┤
App Service ────┤
Key Vault ──────┼──► Log Analytics Workspace
Firewall ───────┤ │
Arc Servers ────┘ ▼
KQL
│
┌──────────┼──────────┐
▼ ▼ ▼
Analysis Alerts Workbooks
This enables cross-resource analysis and centralized troubleshooting.
Log Analytics workspace overview
3. What can send data to Log Analytics?
The transcript mentions sources such as:
- Azure resources
- Microsoft Entra ID
- Azure subscriptions
- on-premises resources
Different sources use different collection mechanisms.
For example:
| Source | Typical collection mechanism |
|---|---|
| Azure resource logs | Diagnostic Settings |
| Azure Activity Log | Diagnostic Settings |
| VM guest OS | AMA + DCR |
| Arc-enabled server | AMA + DCR |
| Microsoft Entra logs | Diagnostic Settings |
| Application telemetry | Application Insights |
This distinction is important because Log Analytics is the destination; it isn't itself the collection agent.
4. Diagnostic Settings
The most important concept demonstrated in this lesson is Diagnostic Settings.
Diagnostic Settings tell an Azure resource:
Which supported logs/metrics should be exported, and where should they go?
Conceptually:
Storage Account
│
▼
Diagnostic Setting
│
├── Select logs
├── Select metrics
│
└── Select destination
│
▼
Log Analytics Workspace
Azure resources don't automatically send all their resource logs to a Log Analytics workspace just because the workspace exists.
You must configure the appropriate collection/routing mechanism.
Diagnostic Settings in Azure Monitor
5. Diagnostic Settings destinations
The transcript demonstrates four destination choices.
Log Analytics workspace
Best for:
Operational analysis
Troubleshooting
KQL queries
Alerts
Workbooks
Correlation
Storage Account
Best for:
Long-term archive
Compliance
Audit retention
Lower-cost storage
Event Hub
Best for:
Streaming telemetry
Third-party SIEM
External monitoring platform
Custom event processing
Architecture:
Azure Resource
│
▼
Diagnostic Settings
│
├────► Log Analytics
│ └─ KQL / analysis
│
├────► Storage Account
│ └─ archive
│
└────► Event Hub
└─ third-party integration
Diagnostic Settings can also send supported telemetry to partner solutions. Diagnostic Settings destinations
6. Resource-specific telemetry
A very important observation in the transcript is:
Different Azure resource types expose different logs and metrics.
For example:
Storage Account
│
├── Account-level metrics
│
└── Service-specific telemetry
│
├── Blob
├── File
├── Queue
└── Table
A Key Vault would expose completely different categories.
An Azure Firewall would expose things such as network/application rule logs.
Therefore:
Available diagnostic categories
↓
depend on
↓
Azure resource type
7. Storage Account example
The transcript uses an Azure Storage Account to demonstrate logging.
The workflow is:
Create Storage Account
↓
Create Log Analytics Workspace
↓
Configure Storage diagnostic settings
↓
Configure Blob diagnostic settings
↓
Create Blob container
↓
Upload files
↓
Storage generates telemetry
↓
Diagnostic Settings export telemetry
↓
Log Analytics receives it
↓
KQL analyzes it
This is a good practical example because uploading blobs creates Storage operations that can then be analyzed.
8. Storage Account vs Blob service diagnostics
The lesson configures diagnostics at two levels.
Conceptually:
Storage Account
│
├── Account-level monitoring
│
└── Blob Service
│
└── Blob-specific logs/metrics
This distinction matters for Azure Storage.
Storage is composed of several services:
Storage Account
│
├── Blob
├── File
├── Queue
└── Table
Service-specific resource logs are configured against the appropriate service resource rather than assuming one account-level setting captures everything.
Microsoft documents Azure Storage monitoring separately for Blob, File, Queue, and Table services. Monitor Azure Blob Storage
9. Storage log categories
The transcript selects category groups such as:
Audit
AllLogs
and also enables transaction metrics.
Category groups simplify selecting related log categories.
For example:
allLogs
↓
All currently supported resource log categories
audit
↓
Categories relevant to auditing
One advantage of category groups is that they can make configurations easier to maintain as supported categories evolve. Azure Monitor diagnostic settings — category groups
10. Logs don't necessarily appear immediately
After uploading the files, the transcript warns that telemetry may take some time to appear in Log Analytics.
This is normal.
The pipeline is:
Operation occurs
↓
Resource produces telemetry
↓
Diagnostic pipeline processes it
↓
Data sent to Log Analytics
↓
Data ingested
↓
Queryable using KQL
So:
Azure Monitor Logs should not be treated as an instantaneous transaction database.
Ingestion latency varies by data type and collection mechanism.
11. Querying data using Log Analytics
The demonstration goes to:
Azure Monitor
↓
Logs
↓
Select Scope
↓
Storage Account
The selected scope controls which resources are considered when querying.
The lesson then uses Microsoft's prebuilt queries rather than manually writing KQL.
This is useful when learning because you can:
- choose a prebuilt query;
- run it;
- inspect the generated KQL;
- modify it;
- gradually learn KQL.
12. Kusto Query Language (KQL)
Log Analytics uses:
Kusto Query Language (KQL).
The basic KQL pattern is:
TableName
| where Condition
| project Column1, Column2
| summarize ...
| order by ...
For example, Storage Blob logs commonly use the StorageBlobLogs table when resource-specific tables are used.
A simple example:
StorageBlobLogs
| where TimeGenerated > ago(30m)
| project TimeGenerated, OperationName, StatusCode, Uri
| order by TimeGenerated desc
Conceptually:
StorageBlobLogs
│
▼
Only last 30 minutes
│
▼
Select useful columns
│
▼
Sort newest first
13. Example: find failed Storage operations
A useful real-world query could be:
StorageBlobLogs
| where TimeGenerated > ago(1h)
| where StatusCode >= 400
| summarize Failures=count() by StatusCode, OperationName
| order by Failures desc
This could help answer:
"Which Blob operations are failing?"
That demonstrates why logs provide deeper troubleshooting capabilities than simple metrics.
14. Example: highest-latency operations
The transcript uses a built-in query for operations with high latency.
Conceptually:
Storage telemetry
↓
Look at operation duration
↓
Group by operation
↓
Calculate latency
↓
Identify slowest operations
This can help identify whether:
PutBlob
GetBlob
ListBlobs
DeleteBlob
or another operation is experiencing abnormal latency.
15. Time range matters
The lesson initially encounters a query whose time range doesn't match the newly generated telemetry.
The fix is to change the query range to:
Last 30 minutes
This teaches an important troubleshooting lesson.
If:
Query is correct
+
Telemetry exists
but you see:
No results
check:
1. Time range
2. Query scope
3. Correct table
4. Diagnostic Settings
5. Ingestion delay
6. Whether relevant activity actually occurred
This checklist is very useful in real Azure troubleshooting.
16. Table vs Chart visualization
Log Analytics can display query results as tables and, where the result structure supports it, charts.
For example:
KQL query
│
├──► Table
│
└──► Chart
Tables are useful for:
Detailed records
Error messages
IP addresses
Operation names
Status codes
Charts are better for:
Trends
Counts over time
Latency
Failures over time
17. Logs vs Metrics in this example
The Storage example helps distinguish them.
Metric
Transactions = 2,500/min
Answers:
"How much activity is happening?"
Log
14:01 PutBlob 200 Success
14:02 GetBlob 200 Success
14:03 DeleteBlob 403 AuthorizationFailure
Answers:
"What exactly happened?"
Therefore:
Metrics
↓
Health/performance trend
Logs
↓
Detailed investigation
18. Diagnostic Settings vs Azure Monitor Agent
This is especially important because your preceding lesson was AMA.
They solve different collection problems.
Azure resource logs
Example:
Storage Account
Key Vault
Azure Firewall
App Service
Commonly:
Resource
↓
Diagnostic Settings
↓
Log Analytics
VM guest OS logs
Example:
Windows Event Logs
Linux Syslog
Custom application log
Guest performance counters
Commonly:
VM
↓
Azure Monitor Agent
↓
Data Collection Rule
↓
Log Analytics
So remember:
Diagnostic Settings → Azure resource/platform telemetry
AMA + DCR → guest OS telemetry
19. Activity Log is another separate source
There's also the Azure Activity Log:
Subscription
│
▼
Activity Log
│
├── Create resource
├── Delete resource
├── Start VM
├── Change configuration
└── RBAC operation
You can export Activity Log entries through Diagnostic Settings to a Log Analytics workspace for longer-term analysis.
This gives three major logging paths:
CONTROL PLANE
Activity Log
│
▼
Diagnostic Settings
RESOURCE/SERVICE
Resource Logs
│
▼
Diagnostic Settings
GUEST OS
Windows Events / Syslog
│
▼
AMA + DCR
│
▼
Log Analytics Workspace
20. Log Analytics workspace tables
Log Analytics doesn't simply store everything in one giant log.
Data is organized into tables.
Examples include:
AzureActivity
StorageBlobLogs
AzureDiagnostics
Perf
Event
Syslog
Heartbeat
Which table receives data depends on:
- resource
- telemetry type
- collection mechanism
- diagnostic configuration
Understanding tables is fundamental to KQL because almost every query starts with a table:
StorageBlobLogs
| ...
21. Resource-specific vs AzureDiagnostics tables
For deeper understanding, Azure Monitor supports different destination table models for diagnostic data.
Older/general configurations commonly use:
AzureDiagnostics
Modern supported resources can use resource-specific tables, such as:
StorageBlobLogs
StorageFileLogs
StorageQueueLogs
StorageTableLogs
Resource-specific mode generally provides a schema tailored to that particular service, which makes querying easier and can improve the data model.
Microsoft recommends resource-specific mode for supported services in many scenarios. Azure Monitor diagnostic settings destination tables
22. Cost consideration
Sending telemetry into Log Analytics can incur ingestion and retention costs.
A poor strategy would be:
Enable everything
↓
Send every log
↓
Retain indefinitely
Instead:
Business/monitoring requirement
↓
Select necessary logs
↓
Choose appropriate destination
↓
Choose appropriate retention
For example:
Operational logs
→ Log Analytics
Compliance archive
→ Storage Account
External SIEM
→ Event Hub
This can significantly improve monitoring cost efficiency.
23. Diagnostic Settings don't store the data themselves
A common misconception:
Diagnostic Setting
= log storage
❌ Incorrect.
A Diagnostic Setting is essentially routing configuration.
Resource produces telemetry
↓
Diagnostic Setting says:
"send this telemetry there"
↓
Destination stores/processes it
The actual destination could be:
Log Analytics
Storage
Event Hub
Partner solution
24. End-to-end architecture from the lesson
The entire lab can be represented as:
Storage Account
│
┌──────────┴───────────┐
│ │
Account telemetry Blob operations
│ │
▼ ▼
Diagnostic Setting Diagnostic Setting
│ │
└──────────┬───────────┘
▼
Log Analytics Workspace
│
▼
Log Analytics
│
▼
KQL
│
┌───────┴───────┐
▼ ▼
Table Chart
25. Troubleshooting checklist
If Storage logs aren't appearing in Log Analytics:
| Check | Question |
|---|---|
| Diagnostic Setting | Is it enabled? |
| Category | Did you select the correct logs? |
| Destination | Is the correct workspace selected? |
| Resource level | Account or Blob service? |
| Activity | Did you generate any Storage operations? |
| Workspace | Are you querying the correct workspace? |
| Scope | Is the query scoped correctly? |
| Time range | Does it include when activity occurred? |
| Table | Are you querying the correct table? |
| Ingestion | Have you allowed time for ingestion? |
26. Exam-focused decision table
| Requirement | Solution |
|---|---|
| Central location for Azure logs | Log Analytics workspace |
| Query logs | KQL |
| Send Storage logs to Log Analytics | Diagnostic Settings |
| Archive resource logs | Storage Account |
| Send logs to third-party SIEM | Event Hub |
| Collect Windows Event Logs | AMA + DCR |
| Collect Linux Syslog | AMA + DCR |
| Analyze Storage Blob operations | Storage Blob logs + Log Analytics |
| Monitor control-plane operations | Activity Log |
| Visualize KQL results | Log Analytics chart / Workbook |
| Alert based on KQL results | Log search alert |
27. Relationship between your last three lessons
Your recent lessons now fit together cleanly:
AZURE MONITOR
│
┌────────────────┼────────────────┐
│ │ │
▼ ▼ ▼
Platform Metrics Resource Logs Guest OS Logs
│ │ │
│ ▼ ▼
│ Diagnostic Settings AMA + DCR
│ │ │
└────────────────┼────────────────┘
▼
Azure Monitor
┌──────┴──────┐
▼ ▼
Metrics Logs
│ │
▼ ▼
Metrics Explorer Log Analytics
│
▼
KQL
│
▼
Alert Rule
│
▼
Action Group
This is the architecture worth remembering rather than memorizing individual portal screens.
Quick revision
AZURE MONITOR LOGS
= centralized log analysis platform
LOG ANALYTICS WORKSPACE
= stores/organizes Azure Monitor log data
LOG ANALYTICS
= query and analysis experience
KQL
= query language
DIAGNOSTIC SETTINGS
= route supported Azure resource logs/metrics
AMA + DCR
= collect guest OS telemetry
STORAGE ACCOUNT
= archival destination
EVENT HUB
= streaming / external integration
RESOURCE LOGS
→ Diagnostic Settings
→ Log Analytics
VM GUEST LOGS
→ AMA
→ DCR
→ Log Analytics
LOG ANALYTICS DATA
→ KQL
→ Analysis / Workbooks / Alerts
Official Microsoft reference documentation
Alerts and Action Groups
Azure Monitor Alerts deep dive
Setting Up Alerts and Actions — Review Notes
This lesson explains how Azure Monitor alerts detect specific signals in your Azure environment and then use action groups to notify people or trigger automated remediation. In the demo, the signal is a VM start event in the Activity Log, and the automated response is an Azure Automation runbook that stops the VM again.
1. Core idea
Azure Monitor alerting follows this pattern:
Resource
↓
Signal
↓
Alert Rule
↓
Condition matched
↓
Alert fires
↓
Action Group
↓
Notification and/or automated action
The lesson highlights three common signal sources:
- Metrics
- Logs
- Activity Log events
In current Microsoft documentation, Azure Monitor alert types include metric alerts, log search alerts, simple log alerts, Activity Log alerts, Smart Detection alerts, and Prometheus alerts. (Microsoft Learn)
2. Alert rule components
A good way to remember an alert rule is:
Scope + Signal + Condition + Action
Scope
The Azure resource or resources being monitored.
Example:
az104alertsvm
Signal
The event or telemetry being evaluated.
Examples:
Percentage CPU
VM started
VM deleted
Application error
KQL query result
Condition
The rule that determines when the alert fires.
Examples:
CPU > 90%
or
Activity Log operation = Start Virtual Machine
Action
What Azure does when the condition is met.
Examples:
Send email
Send SMS
Run Azure Function
Execute Automation Runbook
Create ITSM incident
Microsoft describes the same model as a resource, a signal/data source, and conditions. When the criteria are met, the alert fires and invokes the associated action group. (Microsoft Learn)
3. What is an Action Group?
An Action Group is a reusable collection of:
- notification methods
- automated actions
For example:
Action Group: ag-production-critical
Notifications
├── Email operations team
├── SMS on-call engineer
└── Push notification
Actions
├── Azure Function
└── Automation Runbook
Multiple alert rules can reuse the same action group.
Microsoft currently documents that a single alert rule can have up to five action groups, and those action groups execute concurrently without a guaranteed order. (Microsoft Learn)
4. Notification options
The transcript mentions:
- SMS
- Push notification
- Voice
These remain supported notification types in Action Groups. (Microsoft Learn)
Example:
High CPU Alert
↓
Action Group
↓
├── Email: cloudops@company
├── SMS: on-call engineer
└── Push: Azure mobile app
5. Automated actions
Action groups can also trigger remediation.
The transcript mentions:
- Azure Automation Runbook
- Azure Function
- Event Hub
- ITSM ticket creation
Current Microsoft documentation also lists actions such as Logic Apps, webhooks, secure webhooks, Event Hubs, Functions, and Automation Runbooks. (Microsoft Learn)
So an Action Group can do both:
Alert
│
├── Tell someone
│
└── Do something automatically
This is an important architectural concept.
6. Activity Log alert in the lesson
The demo does not use Azure Monitor Agent.
Instead, it monitors the Azure Activity Log for a control-plane event:
Start Virtual Machine
The flow is:
User starts VM
↓
Azure records:
"Start Virtual Machine"
↓
Activity Log Alert Rule detects event
↓
Action Group executes
↓
Automation Runbook runs
↓
VM is stopped
This distinction matters.
Activity Log
Tracks Azure control-plane operations, such as:
Start VM
Stop VM
Delete resource
Create resource
Update configuration
Role assignment changes
Azure Monitor Agent
Collects data from inside the guest operating system.
So:
VM started
→ Activity Log
Windows Event Log error
→ AMA + DCR + Log Analytics
7. Demo architecture
The lesson builds the following resources:
Resource Group
│
├── Windows VM
│
└── Automation Account
│
▼
Stop VM Runbook
VM Activity Log
│
▼
Activity Log Alert Rule
│
▼
Action Group
│
▼
Automation Runbook
│
▼
Stop VM
The VM used in the lesson is:
az104alertsvm
and the Automation Account is similar to:
az104eastusauto
8. Lab flow from the transcript
The lesson follows roughly this sequence:
1. Create Resource Group
↓
2. Create Automation Account
↓
3. Create Windows VM
↓
4. VM → Monitoring → Alerts
↓
5. Create Alert Rule
↓
6. Signal = Start Virtual Machine
↓
7. Create Action Group
↓
8. Action = Automation Runbook
↓
9. Select Stop VM runbook
↓
10. Complete alert rule
↓
11. Stop VM manually
↓
12. Start VM
↓
13. Activity Log records Start VM
↓
14. Alert fires
↓
15. Action Group executes
↓
16. Runbook stops VM
9. Why an Automation Account is needed
The Action Group itself doesn't directly contain PowerShell automation logic.
Instead:
Action Group
↓
Automation Account
↓
Runbook
↓
Azure resource operation
The Automation Account provides the execution environment for the runbook.
Microsoft also documents using Azure Monitor alerts to invoke Azure Automation runbooks via Action Groups. (Microsoft Learn)
10. Managed identity is important today
One current-platform point worth adding to the lesson is authentication.
Older Automation implementations often used Run As accounts.
Those are retired.
Current automation should use managed identities.
Microsoft specifically notes that Azure Automation Run As accounts were retired and recommends configuring runbook actions to authenticate using managed identity instead. (Microsoft Learn)
Conceptually:
Automation Account
│
Managed Identity
│
RBAC permission
│
▼
Azure VM
For example, if your runbook needs to stop a VM, its managed identity needs appropriate permissions on the VM, resource group, or subscription.
11. Metric alerts vs Log alerts vs Activity Log alerts
This is worth memorizing.
| Requirement | Best alert type |
|---|---|
| CPU > 90% | Metric alert |
| Request latency > threshold | Metric alert |
| 20 application errors found | Log search alert |
| VM started | Activity Log alert |
| VM deleted | Activity Log alert |
| Role assignment changed | Activity Log alert |
| Complex KQL condition | Log search alert |
| Azure service outage | Service Health alert |
Microsoft's current documentation describes metric alerts as regularly evaluating numeric metrics, log search alerts as evaluating Log Analytics queries, and Activity Log alerts as firing when a matching Activity Log event occurs. (Microsoft Learn)
12. Example: Metric alert
Suppose you want:
CPU > 85% for 5 minutes
The design becomes:
VM
│
▼
Percentage CPU metric
│
▼
Metric Alert Rule
│
Condition:
Average > 85%
│
▼
Action Group
│
├── Email operations
└── Azure Function
You don't necessarily need AMA because percentage CPU is available as an Azure platform metric.
13. Example: Log alert
Suppose AMA is collecting Windows events.
VM
↓
AMA
↓
DCR
↓
Log Analytics
↓
KQL
↓
Log Alert
↓
Action Group
Example KQL:
Event
| where EventLevelName == "Error"
| summarize ErrorCount = count()
You might configure the alert to fire when:
ErrorCount > 10
This ties the previous AMA lesson directly to Azure Monitor alerting.
14. Example: Activity Log alert
The lesson's example is essentially:
Scope:
az104alertsvm
Signal:
Start Virtual Machine
Condition:
Event occurs
Action Group:
az104actgrp
Action:
Automation Runbook
Runbook:
Stop VM
No guest OS agent is necessary because Azure itself produces the control-plane event.
15. Alerts can be stateful or stateless
For additional depth, Azure Monitor supports both concepts.
A stateful alert can follow:
Normal
↓
Condition becomes true
↓
FIRED
↓
Condition clears
↓
RESOLVED
For example:
CPU > 90%
↓
Alert FIRED
CPU returns below threshold
↓
Alert RESOLVED
Microsoft currently documents alert conditions transitioning between Fired and Resolved where applicable. (Microsoft Learn)
16. Action Group reuse
A strong real-world pattern is:
ag-critical-production
│
┌─────────┼─────────┐
│ │ │
▼ ▼ ▼
CPU Alert Disk Alert App Alert
Instead of defining notification recipients repeatedly, centralize them inside reusable Action Groups.
Advantages include:
- easier administration
- consistent notification routing
- reusable remediation
- simpler IaC configuration
- fewer duplicated settings
17. Multiple actions per alert
An Action Group isn't limited to one response.
For example:
Critical VM Alert
│
▼
Action Group
│
├── Email cloud operations
├── SMS on-call
├── Execute Function
└── Publish to Event Hub
And an alert rule can attach up to five Action Groups. (Microsoft Learn)
This enables sophisticated incident-response workflows.
18. Common alert architecture
For production environments, think of alerting as several layers:
Azure Monitor
│
┌────────────┼────────────┐
│ │ │
▼ ▼ ▼
Metrics Logs Activity Log
│ │ │
▼ ▼ ▼
Alerts Alerts Alerts
└────────────┼────────────┘
▼
Action Groups
│
┌────────────┴────────────┐
▼ ▼
Notifications Automation
├─ Email ├─ Runbook
├─ SMS ├─ Function
└─ Push ├─ Logic App
└─ Webhook
19. Alerting permissions
Another useful point beyond the transcript is RBAC.
Current Microsoft guidance says creating an alert rule generally requires:
- Read permission on the resource being monitored
- Write permission on the resource group containing the alert rule
- Read permission on the Action Group if one is associated
The automation action itself may require additional permissions.
For example:
Alert creator
↓
Needs permission to create alert
Automation identity
↓
Needs permission to stop VM
Those are different security concerns.
20. Common Alert Schema
For deeper understanding, Azure supports a Common Alert Schema that standardizes alert payloads across alert types.
This matters when Action Groups call things such as:
Webhook
Azure Function
Logic App
Automation Runbook
Instead of building completely different integrations for every alert type, the common schema gives automation a more consistent payload format.
Microsoft's Automation documentation notes that alert-triggered runbooks receive a JSON alert payload and discusses the common alert schema. (Microsoft Learn)
21. Production example: automated remediation
Suppose a development environment should never run VMs overnight.
You could design:
VM started
↓
Activity Log
↓
Alert Rule
↓
Action Group
↓
Automation Runbook
↓
Check policy:
"Is VM allowed to run?"
↓
No
↓
Stop VM
↓
Send notification
This pattern turns Azure Monitor into more than a notification platform — it becomes part of an automated remediation system.
22. Common mistakes
Mistake 1: Thinking every alert requires AMA
It doesn't.
CPU platform metric → AMA usually not required
VM start event → AMA not required
Windows Event Log → AMA required
Mistake 2: Confusing Alert Rule and Action Group
Remember:
Alert Rule
= WHEN
Action Group
= WHAT NEXT
Mistake 3: Giving the runbook no permissions
An alert can fire successfully while the remediation fails because the Automation managed identity lacks RBAC permission.
Mistake 4: Creating unique Action Groups for every alert
Reuse common Action Groups wherever the recipients/actions are the same.
Mistake 5: Using old Run As Account guidance
Use managed identity for modern Automation workloads. (Microsoft Learn)
23. Exam-oriented scenarios
Requirement
Notify administrators when CPU exceeds 90%.
Use:
Metric Alert
+
Action Group
+
Email notification
Requirement
Run KQL and alert when more than 10 authentication failures are detected.
Use:
Log Search Alert
+
Action Group
Requirement
Notify operations whenever a VM is deleted.
Use:
Activity Log Alert
+
Action Group
Requirement
Automatically restart a service after an alert.
Use:
Alert Rule
+
Action Group
+
Automation Runbook / Function
Requirement
Automatically shut down a VM whenever someone starts it.
Use exactly the pattern demonstrated in the lesson:
Start VM Activity Log event
↓
Activity Log Alert
↓
Action Group
↓
Automation Runbook
↓
Stop VM
24. Quick revision table
| Concept | Remember |
|---|---|
| Detects monitoring condition | Alert Rule |
| Defines response | Action Group |
| CPU threshold | Metric alert |
| KQL-based condition | Log search alert |
| VM Start/Delete | Activity Log alert |
| Send email/SMS/push | Action Group notification |
| Execute PowerShell remediation | Automation Runbook |
| Execute serverless custom code | Azure Function |
| Integrate external event processing | Event Hub / webhook |
| Reuse response configuration | Action Group |
| Max Action Groups per alert rule | 5 |
| Modern Automation authentication | Managed Identity |
Best mental model
For revision, memorize this:
SIGNAL
↓
ALERT RULE
↓
CONDITION MATCHED
↓
ALERT FIRES
↓
ACTION GROUP
↓
┌──────────────────┐
│ │
▼ ▼
NOTIFY AUTOMATE
Email Runbook
SMS Function
Push Logic App
Voice Webhook
And then remember the three major signal choices:
Numeric performance
→ Metrics
Detailed telemetry / KQL
→ Logs
Azure control-plane operations
→ Activity Log
Official Microsoft references
Network Watcher
Azure Network Watcher deep dive
This lesson is about Azure Network Watcher, a collection of Azure-native tools for monitoring, diagnosing, and analyzing network traffic and connectivity. Its tools fit into three broad categories: monitoring, network diagnostics, and traffic monitoring.
A useful mental model is:
Azure Network Watcher
│
┌──────────────────┼──────────────────┐
│ │ │
▼ ▼ ▼
Monitoring Diagnostics Traffic
│ │ │
├─ Connection ├─ NSG Diagnostics ├─ Flow Logs
│ Monitor ├─ Packet Capture └─ Traffic Analytics
└─ Topology ├─ Effective Security Rules
├─ IP Flow Verify
├─ Connection Troubleshoot
└─ Next Hop
Microsoft currently describes Network Watcher as a suite for monitoring connectivity, diagnosing traffic-filtering and routing problems, capturing packets, and logging/visualizing network flows. (Microsoft Learn)
1. What is Azure Network Watcher?
Network Watcher is primarily for Azure IaaS networking.
It helps answer questions such as:
- Can resource A reach resource B?
- Is an NSG blocking traffic?
- Which NSG rule allowed or denied the flow?
- Which route will this packet take?
- What traffic is actually passing through the network?
- Is latency increasing between endpoints?
- What does my Azure network topology look like?
- What is happening across a hybrid Azure/on-premises connection?
Many Network Watcher tools sound similar, so knowing which tool answers which question is the most important thing to learn.
2. Monitoring tools
Two main monitoring tools are:
Connection Monitor
Topology
3. Connection Monitor
Connection Monitor continuously monitors connectivity between endpoints.
Typical architecture:
Source
│
│ connection test
▼
Destination
│
▼
Connection Monitor
│
├─ Reachability
├─ Latency
└─ Connectivity health
It can be used for connectivity inside Azure and across hybrid environments.
Typical use cases:
Azure VM → Azure VM
Azure VM → SQL endpoint
Azure VM → On-premises server
On-premises server → Azure endpoint
Microsoft currently describes Connection Monitor as the Network Watcher tool for monitoring connectivity and latency between endpoints inside and outside Azure. (Microsoft Learn)
Best exam clue
If the question says:
Continuously monitor connectivity and latency between two endpoints
think:
Connection Monitor
4. Connection Monitor vs Connection Troubleshoot
These names are easy to confuse.
Connection Monitor
Used for:
Continuous monitoring
Connection Troubleshoot
Used for:
Point-in-time test
So:
Need ongoing visibility?
→ Connection Monitor
Need to test connectivity right now?
→ Connection Troubleshoot
Microsoft specifically distinguishes Connection Monitor as ongoing monitoring, while Connection Troubleshoot performs a one-time connectivity and latency check. (Microsoft Learn)
5. Topology
The Topology feature provides a visual representation of Azure network resources and their relationships.
For example:
VNet
│
├── Subnet-Web
│ │
│ └── VM1 NIC
│ │
│ └── NSG
│
└── Subnet-App
│
└── VM2 NIC
This makes it easier to understand:
- resource relationships
- VNets
- subnets
- NICs
- NSGs
- network appliances
- other connected network resources
Use it when you need:
"Show me how these network resources are connected."
6. Network diagnostic tools
Most Network Watcher exam content focuses on diagnostics.
The tools are:
| Tool | Main question it answers |
|---|---|
| NSG Diagnostics | Which security rule allows/denies this flow? |
| Packet Capture | What packets are actually crossing the VM NIC? |
| Effective Security Rules | What NSG rules effectively apply to this NIC? |
| IP Flow Verify | Would this packet be allowed or denied? |
| Connection Troubleshoot | Can resource A communicate with resource B now? |
| Next Hop | Where will Azure route the packet next? |
This table is worth memorizing.
7. NSG Diagnostics
NSG Diagnostics helps troubleshoot traffic filtering caused by Network Security Groups.
It can simulate a network flow and show:
Allowed
or
Denied
and importantly:
Which NSG rule caused the result
Connection Monitor supports:
- VMs
- VM scale sets
- Application Gateway
Current Microsoft documentation lists support for VMs, NICs, VM scale-set NICs, and Application Gateway v2, with some limitations for private deployments. (Microsoft Learn)
Example:
Source IP: 10.0.1.4
Destination IP: 10.0.2.5
Destination port: 443
Protocol: TCP
↓
NSG Diagnostics
↓
ALLOW
Rule: Allow-HTTPS
or:
DENY
Rule: DenyAllInbound
Best use
Troubleshoot NSG rule configuration for supported Azure resources.
8. IP Flow Verify
IP Flow Verify is another tool for checking whether a specific packet would be allowed or denied.
You specify information such as:
VM
Direction
Protocol
Local IP
Remote IP
Local port
Remote port
and Network Watcher returns:
Allowed / Denied
+
NSG rule responsible
For example:
Inbound TCP
Source: 10.1.0.4
Destination: 10.2.0.5
Port: 3389
↓
IP Flow Verify
↓
Denied
Rule: Deny-RDP
Microsoft describes IP Flow Verify as a VM-level tool for detecting traffic-filtering issues. (Microsoft Learn)
9. NSG Diagnostics vs IP Flow Verify
These tools overlap, so this distinction matters.
IP Flow Verify
Think:
Specific VM packet flow
Question:
Would this exact packet be allowed or denied?
NSG Diagnostics
Think:
Broader NSG troubleshooting
across supported resource types
Question:
Which NSG rule explains why this traffic is allowed or denied?
A simplified exam distinction:
| Requirement | Tool |
|---|---|
| Check a specific VM flow | IP Flow Verify |
| Diagnose filtering on VM/VMSS/App Gateway | NSG Diagnostics |
Microsoft explicitly notes that IP Flow Verify focuses on VM-level filtering, while NSG Diagnostics covers a broader set of supported resources. (Microsoft Learn)
10. Effective Security Rules
Effective Security Rules tells you which NSG rules actually apply to a VM network interface.
This is useful because an NSG can be attached at multiple levels:
Subnet NSG
│
▼
NIC
│
▼
NIC NSG
The effective result is influenced by both.
So:
Subnet NSG rules
+
NIC NSG rules
↓
Effective Security Rules
This tool answers:
"What security rules are effectively applied to this NIC?"
It doesn't primarily simulate a packet like IP Flow Verify.
11. Effective Security Rules vs IP Flow Verify
Another common exam trap.
Effective Security Rules
Shows:
Which rules apply
IP Flow Verify
Shows:
Whether a specific packet is allowed/denied
+
the responsible rule
So:
Need rule inventory?
→ Effective Security Rules
Need packet decision?
→ IP Flow Verify
12. Packet Capture
Packet Capture records actual network packets going to and from a VM.
Conceptually:
VM NIC
│
├── Packet 1
├── Packet 2
├── Packet 3
└── Packet 4
│
▼
Packet Capture
│
▼
Analyze network traffic
Typical uses:
- inspect TCP handshakes
- investigate retransmissions
- troubleshoot protocol behavior
- inspect destination ports
- investigate intermittent networking problems
Microsoft describes Packet Capture as a tool for capturing traffic to and from virtual machines. (Microsoft Learn)
Think Wireshark-style troubleshooting
Network Watcher's packet capture generates packet-capture data that can then be analyzed with networking tools.
13. Connection Troubleshoot
Connection Troubleshoot performs a point-in-time connectivity test.
Conceptually:
Source VM
│
▼
Connection Troubleshoot
│
▼
Destination
It can help determine:
Reachable?
Latency?
Connectivity problem?
Microsoft currently describes it as a one-time connectivity and latency check involving supported resources such as VMs, Bastion, and Application Gateway scenarios. (Microsoft Learn)
Example
VM1
↓
Connection Troubleshoot
↓
VM2:443
Result:
Reachable
Latency: 4 ms
14. Next Hop
Next Hop helps troubleshoot Azure routing.
Given a source VM/NIC and destination IP, it tells you the next network hop Azure chooses.
Example:
VM
│
│ packet to 8.8.8.8
▼
Azure routing table
│
▼
Next Hop
│
▼
Internet
Possible next-hop types include things such as:
Virtual network
Internet
Virtual appliance
Virtual network gateway
None
This is useful when troubleshooting:
- User Defined Routes
- Azure Firewall routing
- Network Virtual Appliances
- forced tunneling
- unexpected traffic paths
Microsoft describes Next Hop as a tool for verifying traffic routing and detecting routing issues. (Microsoft Learn)
15. Next Hop vs Connection Troubleshoot
These tools answer different questions.
Connection Troubleshoot
Can I reach the destination?
Next Hop
Which route will Azure use to reach the destination?
Example:
VM can't reach Internet
You might first run:
Connection Troubleshoot
to confirm connectivity failure.
Then:
Next Hop
to discover:
0.0.0.0/0
→ Virtual Appliance
which could reveal an incorrect route.
16. Flow Logs
Flow logs record network-flow metadata.
Flow Logs can monitor:
- Network Security Groups
- Virtual Networks
and store flow information in an Azure Storage Account.
Conceptually:
Network traffic
│
▼
Flow Logs
│
▼
Storage Account
The data can include information such as:
Source IP
Destination IP
Source port
Destination port
Protocol
Direction
Traffic decision / flow information
depending on the type/version of flow logging being used.
Microsoft's current Network Watcher overview still groups Flow Logs and Traffic Analytics under traffic tools. (Microsoft Learn)
17. Important current update: NSG Flow Logs are retiring
This is the biggest current correction to remember.
Microsoft is retiring NSG Flow Logs.
Current dates:
June 30, 2025
→ creation of new NSG flow logs stopped
September 30, 2027
→ NSG flow logs retire
Microsoft recommends migrating to:
Virtual Network Flow Logs / VNet Flow Logs
So for modern architecture:
Old
NSG Flow Logs
↓ migrate
Current direction
VNet Flow Logs
18. Why VNet Flow Logs are preferred
Microsoft notes several advantages of VNet Flow Logs over NSG Flow Logs, including:
- coverage of traffic even when an NSG isn't processing it
- awareness of Virtual Network Manager security admin rules
- VNet encryption information
- simpler VNet-level configuration
- no duplicate records caused by configuring both subnet and NIC NSG flow logs
For current study material, memorize:
New deployments → use VNet Flow Logs.
19. Traffic Analytics
Raw flow logs are useful but difficult to interpret manually.
Traffic Analytics turns flow log data into visual insights.
VNet Flow Logs
│
▼
Storage
│
▼
Traffic Analytics
│
▼
Visualization / analysis
It can help show:
Traffic patterns
Source/destination communication
Top talkers
Ports
Traffic direction
Network activity trends
Microsoft describes Traffic Analytics as an analytics layer that provides insights into VNet traffic patterns based on flow log data. (Microsoft Learn)
20. Flow Logs vs Traffic Analytics
Another key distinction:
Flow Logs
Collect raw network-flow information
Traffic Analytics
Analyze and visualize flow logs
Think:
Flow Logs
= raw data
Traffic Analytics
= insights from the data
21. Network Watcher vs Network Insights
You studied Network Insights in the previous lesson.
These are related but different.
Network Insights
Provides a curated monitoring experience:
Topology
Health
Metrics
Alerts
Connectivity
Network Watcher
Provides diagnostic tools:
IP Flow Verify
Next Hop
Packet Capture
Connection Monitor
Connection Troubleshoot
Flow Logs
So:
Network Insights
= "Show me the network health"
Network Watcher
= "Help me troubleshoot the network"
22. Troubleshooting example
Suppose:
VM1 cannot connect to VM2 on TCP 443.
A reasonable investigation might be:
VM1 cannot reach VM2:443
│
▼
Connection Troubleshoot
│
▼
Connectivity failure confirmed
│
▼
IP Flow Verify / NSG Diagnostics
│
▼
NSG allowing traffic?
│
├── No → Fix NSG
│
└── Yes
│
▼
Next Hop
│
▼
Correct route?
│
├── No → Fix UDR
│
└── Yes
│
▼
Packet Capture
│
▼
Detailed protocol analysis
This workflow is much more useful than treating each tool independently.
23. Hybrid troubleshooting example
Suppose:
Azure VM
│
VPN / ExpressRoute
│
▼
On-premises server
and users report intermittent latency.
You could use:
Connection Monitor
to continuously track connectivity and latency.
If the connection fails:
VPN Troubleshoot
can help diagnose VPN Gateway/connection issues.
Microsoft's current Network Watcher documentation also includes VPN troubleshooting among its diagnostics capabilities. (Microsoft Learn)
24. Tool-selection table
This is the most important revision table for the lesson.
| Requirement | Network Watcher tool |
|---|---|
| Continuously monitor connectivity | Connection Monitor |
| Visualize Azure network relationships | Topology |
| Determine which NSG rule blocks traffic | NSG Diagnostics |
| Determine if a VM flow is allowed or denied | IP Flow Verify |
| View all NSG rules effectively applied to NIC | Effective Security Rules |
| Test connectivity once | Connection Troubleshoot |
| Determine where Azure routes packet next | Next Hop |
| Capture real network packets | Packet Capture |
| Log network-flow metadata | VNet Flow Logs |
| Visualize/analyze flow logs | Traffic Analytics |
25. Exam traps
"Which rule blocked my VM packet?"
Likely:
IP Flow Verify
or, depending on wording and resource scope:
NSG Diagnostics
"Which rules apply to this NIC?"
Effective Security Rules
"Which route will this VM use?"
Next Hop
"Is VM1 able to reach VM2 right now?"
Connection Troubleshoot
"Continuously check VM1 → VM2 latency"
Connection Monitor
"Capture actual TCP packets"
Packet Capture
"Record traffic patterns over time"
VNet Flow Logs
"Graph and analyze that flow data"
Traffic Analytics
26. Fast memory technique
Remember these keywords:
MONITOR
Connection Monitor
Topology
SECURITY
NSG Diagnostics
IP Flow Verify
Effective Security Rules
CONNECTIVITY
Connection Troubleshoot
ROUTING
Next Hop
PACKETS
Packet Capture
TRAFFIC HISTORY
VNet Flow Logs
TRAFFIC VISUALIZATION
Traffic Analytics
27. Current architecture to remember
NETWORK WATCHER
│
┌────────────────────┼─────────────────────┐
│ │ │
▼ ▼ ▼
Monitoring Diagnostics Traffic
│ │ │
Connection Monitor IP Flow Verify VNet Flow Logs
Topology NSG Diagnostics │
Effective Rules ▼
Next Hop Storage Account
Conn Troubleshoot │
Packet Capture ▼
Traffic Analytics
28. Most important takeaway
Network Watcher is easiest to understand if you categorize every tool by the question it answers:
Can A reach B continuously?
→ Connection Monitor
Can A reach B right now?
→ Connection Troubleshoot
Is an NSG blocking this exact VM flow?
→ IP Flow Verify
Why is an NSG allowing/denying traffic?
→ NSG Diagnostics
Which NSG rules actually apply?
→ Effective Security Rules
Where will the packet go?
→ Next Hop
What packets actually crossed the NIC?
→ Packet Capture
What traffic occurred over time?
→ VNet Flow Logs
Can I visualize that traffic?
→ Traffic Analytics
How are my resources connected?
→ Topology
That distinction is likely more important for AZ-104-style questions than memorizing the portal navigation.
Current Microsoft references
- Azure Network Watcher overview
- Azure Network Watcher documentation
- NSG Diagnostics overview
- Manage Virtual Network Flow Logs
- Azure network monitoring and observability guidance
The major current change is that NSG Flow Logs are now legacy: new NSG flow logs can no longer be created, and Microsoft recommends migrating to VNet Flow Logs before the NSG Flow Logs retirement on September 30, 2027. (Microsoft Learn)
Insights and Visualization
Azure Monitor Insights deep dive
This transcript is about Azure Monitor Insights, not Azure Monitor Agent itself. Azure Monitor Agent appears as an enabling component for VM Insights, but the main topic is Microsoft’s prebuilt monitoring experiences for VMs, networking, applications, and storage.
Azure Monitor Insights are essentially curated monitoring experiences. Microsoft preselects useful telemetry for a service and presents it through prebuilt visualizations, workbooks, topology views, and service-specific monitoring pages. (Microsoft Learn)
A good mental model is:
Raw Azure Monitor telemetry
│
├── Metrics
├── Logs
├── Dependencies
└── Resource health
│
▼
Azure Monitor Insights
│
▼
Prebuilt visual monitoring experience
1. What are Azure Monitor Insights?
Instead of requiring you to:
Find metric
→ Write KQL
→ Build workbook
→ Create visualization
Microsoft provides a ready-made experience:
Resource
↓
Azure Monitor Insights
↓
Preconfigured collection + analysis
↓
Charts / maps / workbooks / health
The transcript focuses on four examples:
| Insight | Main purpose |
|---|---|
| VM Insights | VM performance, processes and dependencies |
| Network Insights | Network topology, health and connectivity |
| Application Insights | Application performance and behavior |
| Storage Insights | Storage performance, capacity, availability and failures |
Microsoft describes Insights as curated visualizations that collect and analyze a subset of the telemetry available for a service and present it in a useful visual layout. (Microsoft Learn)
2. VM Insights
VM Insights is the Azure Monitor experience designed specifically for virtual machines.
The transcript says it supports:
- Windows VMs
- Linux VMs
- Azure Virtual Machine Scale Sets
- Azure Arc-enabled hybrid machines
and uses Azure Monitor Agent and Data Collection Rules behind the scenes.
Current Microsoft documentation confirms that VM Insights simplifies onboarding of Azure Monitor Agent and uses predefined DCRs to collect commonly required guest performance data. (Microsoft Learn)
Conceptually:
Azure VM / VMSS / Arc machine
│
▼
Azure Monitor Agent
│
▼
Data Collection Rule
│
▼
Azure Monitor
│
▼
VM Insights
3. Host metrics vs guest monitoring
Without VM Insights, Azure already collects many host/platform metrics automatically.
Examples:
CPU
Network traffic
Disk I/O
But to understand activity inside the operating system, VM Insights can enable enhanced guest monitoring.
Azure host
│
└── Host metrics
CPU / network / disk
VM operating system
│
└── Guest metrics
memory / processes / dependencies
│
▼
AMA
Microsoft's current documentation makes the same distinction: host metrics are collected automatically, while enhanced guest monitoring installs AMA and collects more detailed guest telemetry. (Microsoft Learn)
4. VM Insights performance view
The demo enables VM Insights and then examines the VM's Performance view.
The transcript shows telemetry such as:
- CPU utilization
- available memory
- logical disk IOPS
- bytes sent
- bytes received
- disk performance
This provides a ready-made performance dashboard rather than requiring you to manually identify all the relevant metrics.
Conceptually:
VM telemetry
│
▼
VM Insights
│
├── CPU
├── Memory
├── Disk
├── Network
└── Processes
5. VM Insights and Data Collection Rules
The transcript creates a DCR while enabling VM Insights.
Example:
az104vminsightsdcr
The selected configuration enables:
Guest performance
+
Processes and dependencies
+
Log Analytics workspace
A key architecture distinction is:
AMA performs collection.
DCR defines collection.
VM Insights provides the visualization/monitoring experience.
So:
AMA
= agent
DCR
= collection configuration
VM Insights
= monitoring experience
6. Current VM monitoring direction
There is an important current-platform change beyond the transcript.
Microsoft's 2026 VM monitoring documentation now describes two guest monitoring approaches:
OpenTelemetry metrics
↑
Recommended for new deployments
Logs-based metrics
↑
Classic / existing implementations
Both can provide guest monitoring, but they store and process telemetry differently. (Microsoft Learn)
For exam-style understanding, however, it remains useful to remember the transcript's simpler architecture:
VM → AMA → DCR → Azure Monitor → VM Insights
7. VM dependency mapping
One of VM Insights' most valuable features is its ability to visualize process and network dependencies.
The transcript enables:
Processes and dependencies
and then uses the Map view.
For example:
Client
│ TCP connection
▼
VM1
│
├── Process A → Database
│
├── Process B → External API
│
└── Process C → VM2
This helps answer questions such as:
- What connects to this VM?
- Which process opened that connection?
- Which destination IP is being contacted?
- Which port is being used?
- What downstream dependency might be causing a problem?
Microsoft lists dependency maps as a major VM Insights capability. (Microsoft Learn)
8. Dependency Agent
For deeper understanding, dependency/process mapping historically requires the Dependency Agent in addition to AMA.
The general architecture is:
Azure Monitor Agent
↓
Performance / monitoring telemetry
Dependency Agent
↓
Processes / dependency relationships
↓
VM Insights
Current Microsoft VM monitoring documentation still identifies the Dependency Agent extension as part of dependency mapping for supported VM monitoring scenarios. (Microsoft Learn)
9. Prebuilt workbooks
The transcript opens:
View workbooks
↓
Connections
The workbook shows information such as:
Computer
Process
Remote IP
Port
Bytes sent
Bytes received
Direction
This is an important general principle of Insights:
Many Insights experiences are powered partly or entirely by Azure Monitor Workbooks.
A workbook performs queries against collected telemetry and turns the results into visualizations.
Log Analytics
│
▼
KQL / telemetry
│
▼
Workbook
│
▼
Table / chart / visualization
Microsoft explicitly notes that many curated Insights experiences are based on Azure Monitor Workbooks. (Microsoft Learn)
10. Network Insights
The next service in the transcript is Azure Monitor Network Insights.
Unlike VM Insights:
No monitoring agent needs to be installed on your networking resources.
The transcript explains that Network Insights provides visibility into:
- network resources
- health
- alerts
- connectivity
- topology
and works together with Azure Network Watcher capabilities.
Current Microsoft documentation describes Network Insights as providing a comprehensive visual representation of topology, health, metrics, connectivity, and traffic without requiring additional monitoring configuration. (Microsoft Learn)
11. Network Insights architecture
Think:
Virtual Networks
NICs
Load Balancers
Application Gateways
Firewalls
VPN Gateways
Public IPs
NSGs
│
▼
Azure Monitor Network Insights
│
├── Topology
├── Health
├── Metrics
├── Alerts
├── Connectivity
└── Traffic
No AMA is needed because these are Azure network resources rather than guest operating systems.
12. Network topology
Topology is particularly useful.
For example:
VNet
│
├── Subnet-web
│ │
│ └── VM1 NIC
│
└── Subnet-app
│
└── VM2 NIC
A topology visualization makes relationships easier to understand than reading individual resource pages.
Current Network Insights can visualize relationships across subscriptions, regions, and resource groups. (Microsoft Learn)
13. Network health and metrics
Network Insights can also summarize:
Resource inventory
Resource health
Metrics
Alerts
Connectivity
Examples:
Load Balancer health
VPN Gateway availability
Firewall throughput
Public IP state
Network Interface metrics
This gives operations teams a central network monitoring view.
14. Network Watcher relationship
Don't confuse:
Network Insights
with:
Network Watcher
A useful distinction:
Network Insights
Provides the visual monitoring experience.
Network Watcher
Provides networking diagnostics and troubleshooting capabilities.
Examples documented today include:
Connection Monitor
Packet Capture
IP Flow Verify
Next Hop
VPN troubleshoot
Network topology
Network Insights exposes or integrates with several Network Watcher capabilities. (Microsoft Learn)
15. Important current networking change
For current Azure knowledge, note that NSG flow logs are being retired.
Microsoft states:
- no new NSG flow logs could be created after June 30, 2025
- migration to VNet flow logs should occur before September 30, 2027
So for modern Azure network monitoring, think:
VNet flow logs
rather than designing a new solution around NSG flow logs.
16. Application Insights
The third major topic is Application Insights.
It is Azure Monitor's Application Performance Monitoring (APM) capability.
The transcript describes it as providing insight into:
- performance
- reliability
- application quality
- application architecture
- transactions
- live metrics
- user interactions
Current Microsoft documentation describes Application Insights as an Azure Monitor feature for monitoring live applications and now strongly emphasizes OpenTelemetry for telemetry collection. (Microsoft Learn)
17. Application Insights architecture
Conceptually:
User
│
▼
Web Application
│
├── Requests
├── Dependencies
├── Exceptions
├── Traces
└── Custom telemetry
│
▼
Application Insights
│
▼
Azure Monitor
Application Insights helps answer:
Is the application slow?
Which requests fail?
What dependency caused a delay?
Where did an exception occur?
Which endpoints are busiest?
18. Auto-instrumentation vs manual instrumentation
The transcript mentions both.
Auto-instrumentation
Azure adds monitoring without requiring extensive code changes.
Conceptually:
Application
+
Application Insights integration
↓
Automatic telemetry
Manual instrumentation
You explicitly instrument the application.
Modern applications generally use:
OpenTelemetry SDK
or supported Application Insights integrations.
This gives finer control over:
- custom spans
- custom attributes
- business telemetry
- traces
Microsoft now positions Application Insights as an OpenTelemetry-based Azure Monitor APM experience. (Microsoft Learn)
19. Application Map
The transcript discusses visualizing application architecture and interactions.
Conceptually:
Users
│
▼
Web App
│
├────► SQL Database
│
├────► Storage Account
│
└────► External API
Application Insights can help identify:
slow dependency
failed dependency
high latency
request failures
That enables troubleshooting across distributed application components.
20. Live Metrics
Application Insights Live Metrics provides near-real-time visibility into application activity.
Examples can include:
Incoming requests
Request rate
Failures
Dependency calls
CPU
Memory
Exceptions
This is particularly useful during:
Production incident
Deployment
Load test
Performance troubleshooting
21. User and usage analytics
The transcript places significant emphasis on understanding how users interact with applications.
Examples:
Which features are used?
Where are users dropping off?
Which flows are slow?
Which pages have errors?
This telemetry can help improve both:
- reliability
- user experience
However, for modern application observability, the central role of Application Insights is broader than user analytics: it provides APM across requests, dependencies, exceptions, traces, availability, metrics, and related telemetry.
22. Storage Insights
The fourth monitoring experience is Storage Insights.
It gives a consolidated view of Azure Storage accounts.
The transcript highlights:
- health
- availability
- failures
- transactions
- API failures
- caller IP information when logs are available
Microsoft describes Storage Insights as providing a unified view of:
Performance
Capacity
Availability
across Azure Storage accounts. (Microsoft Learn)
23. Storage Insights requires no agent
Unlike VM guest monitoring:
Storage Account
│
▼
Azure platform metrics
│
▼
Storage Insights
There is no operating system where AMA would need to run.
Therefore:
VM Insights
→ AMA commonly involved
Storage Insights
→ No AMA
24. Storage Insights: default information vs detailed logs
This distinction in the transcript is especially important.
Storage Insights displays useful metrics without requiring diagnostic settings.
For example:
Availability
Transactions
Latency
Capacity
But if you want detailed resource logs such as:
Which API failed?
Which request failed?
Which caller IP caused it?
What status code was returned?
you need Storage resource logs routed to Log Analytics.
The transcript configures:
Storage Account
│
▼
Diagnostic Settings
│
▼
Log Analytics Workspace
25. Storage diagnostic configuration in the demo
The transcript configures diagnostic settings at two levels:
Storage Account
│
├── Account metrics
│
└── Blob service
├── allLogs
└── transaction metrics
Both are sent to:
Log Analytics Workspace
This enables richer investigation in Storage Insights.
26. Storage failure investigation
The transcript demonstrates:
Azure Monitor
↓
Insights
↓
Storage Accounts
↓
Storage Account
↓
Failures
At a high level you might see:
Failed transactions
↓
API name
With logs enabled:
Failed operation
│
├── API
├── status/error
├── request information
└── caller information
This illustrates a general Azure Monitor pattern:
Metrics
↓
Detect problem
Logs
↓
Investigate problem
27. Insights don't necessarily collect everything
A very important point from the transcript is that Insights usually consume a subset of available telemetry.
So:
Azure resource telemetry
│
├── Metric A
├── Metric B
├── Metric C
├── Log A
├── Log B
└── Log C
│
▼
Insight uses
selected telemetry
Azure Monitor Insights should therefore be considered:
A curated starting point, not necessarily the complete monitoring solution.
Microsoft's current overview explicitly describes Insights as collecting and analyzing subsets of telemetry for the corresponding service. (Microsoft Learn)
28. VM Insights collection limitation from the transcript
The transcript states that VM Insights collects primarily performance data by default and that additional event collection needs separate DCR configuration.
That concept remains valuable:
VM Insights default collection
↓
Core performance data
Need Windows events / Syslog / custom logs?
↓
Additional DCR
Microsoft similarly states that VM Insights starts with predefined performance data, and additional DCRs can be created for events and other performance data. (Microsoft Learn)
29. Comparison of the four Insights
| Feature | VM Insights | Network Insights | Application Insights | Storage Insights |
|---|---|---|---|---|
| Primary target | VMs | Network resources | Applications | Storage |
| AMA required | Yes for enhanced guest monitoring | No | No VM agent requirement; app instrumentation | No |
| Main data | Guest performance | Network metrics/topology | App telemetry | Storage metrics/logs |
| Visual topology | Dependency map | Network topology | Application map | Not primary feature |
| Log Analytics involved | Yes | Some features | Yes, workspace-based architecture | For deeper logs |
| Prebuilt views | Yes | Yes | Yes | Yes |
| Main use | VM troubleshooting | Network troubleshooting | APM | Storage troubleshooting |
30. Which Azure monitoring feature should you use?
Need VM guest performance?
VM Insights
Need VM process/dependency information?
VM Insights + dependency monitoring
Need VNet / Load Balancer / Firewall topology?
Network Insights
Need packet/network diagnostics?
Network Watcher
Need web application performance?
Application Insights
Need storage capacity/performance/availability?
Storage Insights
Need detailed Storage request failures?
Storage Insights
+
Diagnostic Settings
+
Log Analytics
31. How this fits with your previous Azure Monitor lessons
Your Azure Monitor topics now connect like this:
AZURE MONITOR
│
┌─────────────────────┼─────────────────────┐
│ │ │
▼ ▼ ▼
Metrics Logs Insights
│ │ │
▼ ▼ ┌──────────┼───────────┐
Metrics Explorer Log Analytics │ │ │
│ ▼ ▼ ▼
▼ VM Insights Network Storage
KQL Insights Insights
Application Insights
And telemetry arrives through mechanisms such as:
Azure platform metrics
↓
Azure Monitor
Resource logs
↓
Diagnostic Settings
↓
Log Analytics
VM guest telemetry
↓
AMA + DCR
↓
Azure Monitor
Application telemetry
↓
OpenTelemetry / instrumentation
↓
Application Insights
32. Exam-focused cheat sheet
| Question | Answer |
|---|---|
| Preconfigured Azure monitoring experience | Azure Monitor Insights |
| Monitor VM guest performance | VM Insights |
| VM Insights collection agent | Azure Monitor Agent |
| Controls VM telemetry collection | DCR |
| View VM process dependencies | VM Insights dependency map |
| Monitor network topology | Network Insights |
| Network diagnostic tools | Network Watcher |
| Agent needed for Network Insights | No |
| Application performance monitoring | Application Insights |
| Modern Application Insights telemetry standard | OpenTelemetry |
| Monitor Storage health/performance | Storage Insights |
| Agent needed for Storage Insights | No |
| Detailed Storage request analysis | Diagnostic Settings + Log Analytics |
| Insights collect every available signal | No — curated subset |
33. Scenario-based revision
Scenario 1
You need to monitor CPU, memory and disk usage inside 200 Windows and Linux VMs.
Use:
VM Insights
+
AMA
+
DCR
Scenario 2
You need to discover which processes on a VM connect to external services.
Use:
VM Insights
+
Process/dependency monitoring
+
Dependency Map
Scenario 3
You need a visual map of VNets, gateways, firewalls and connected networking resources.
Use:
Network Insights
Scenario 4
You need to troubleshoot why one VM cannot reach another.
Start with:
Network Watcher
Potential tools:
Connection Troubleshoot
IP Flow Verify
Next Hop
Scenario 5
Your application is slow and you need to determine which dependency is responsible.
Use:
Application Insights
Investigate:
Requests
Dependencies
Failures
Application Map
Live Metrics
Scenario 6
You need a consolidated view of capacity and availability across all Storage Accounts.
Use:
Storage Insights
Scenario 7
You need the source IP responsible for failed Blob requests.
Use:
Storage diagnostic logs
↓
Log Analytics
↓
Storage Insights / KQL
34. Most important takeaway
Don't think of Azure Monitor Insights as another telemetry database.
Think:
Azure Monitor
↓
collects and stores telemetry
↓
Insights
↓
makes that telemetry easier to consume
The four major examples from this lesson can be memorized as:
VM Insights
→ VM performance + processes + dependencies
Network Insights
→ topology + connectivity + network health
Application Insights
→ application performance + requests + dependencies
Storage Insights
→ storage performance + capacity + availability
And the architectural distinction worth remembering is:
VM
→ AMA + DCR
→ VM Insights
Network resources
→ Azure platform telemetry
→ Network Insights
Application
→ OpenTelemetry/instrumentation
→ Application Insights
Storage
→ Platform metrics
→ Storage Insights
+
Diagnostic Settings
→ Log Analytics
→ deeper failure analysis
Official Microsoft reference documentation
- Azure Monitor Insights overview
- Monitor Azure Virtual Machines and VM Insights
- Monitor Azure Virtual Machines overview
- Azure Monitor Network Insights
- Azure network monitoring and observability guidance
- Azure Monitor overview and Application Insights
- Azure Storage Insights overview
The biggest current update compared with the transcript is that Application Insights is now strongly OpenTelemetry-oriented, while VM monitoring documentation is also evolving toward OpenTelemetry-based guest metrics for new deployments. Network Insights itself remains agentless, and Microsoft is moving network flow monitoring from legacy NSG flow logs toward VNet flow logs. (Microsoft Learn)
Hands-on Lab Focus Areas
The AZ-104 exam has lab questions — practice these tasks:
- Create a VNet, add subnets, create an NSG, apply rules
- Deploy a VM, add a data disk, resize the VM
- Configure VNet peering between two VNets
- Create a storage account, upload blobs, configure a lifecycle policy
- Set RBAC on a resource group; verify effective permissions
- Apply an Azure Policy, verify compliance
- Create a Log Analytics workspace, connect a VM, run a KQL query
- Back up a VM; restore a file from backup
Study Plan (6–8 Weeks)
| Week | Focus |
|---|---|
| 1–2 | Identity & Governance — Entra ID, RBAC, Policy, Management Groups |
| 3 | Storage — accounts, blob tiers, lifecycle, Azure Files |
| 4 | Compute — VMs, VMSS, App Service, containers |
| 5 | Networking — VNet, NSG, peering, VPN, load balancers |
| 6 | Monitoring — Azure Monitor, Log Analytics, Backup, ASR |
| 7–8 | Full practice exams + lab practice + weak area review |
Key Resources
| Resource | Notes |
|---|---|
| Microsoft Learn AZ-104 | Free official learning path (highly detailed) |
| John Savill's AZ-104 Study Cram | Free YouTube — best pre-exam cram |
| Scott Duffy on Udemy | Popular paid video course |
| Tutorials Dojo | Best practice exam questions |
| Azure Free Account | 12 months free services — essential for labs |
Common Exam Traps
- RBAC vs Policy — RBAC controls who can do something. Policy controls what resources can be created and in what state. You need both.
- VNet peering is not transitive — A↔B and B↔C does not mean A can reach C. You must also peer A↔C.
- NSG vs Azure Firewall — NSG is subnet/NIC level, port/IP rules. Azure Firewall is a managed Layer 7 firewall for full inspection.
- Locks override RBAC — even the Owner cannot delete a resource with a CanNotDelete lock without first removing the lock.
- Soft delete — deleting a VM backup doesn't immediately delete the data; 14-day retention prevents data loss.
