Skip to content

can Azure devops be used for test plans for landing zone builds

Yes, Azure DevOps can definitely be used for test plans for landing zone builds, though with some considerations based on your testing scope and Azure environment.

✅ Azure DevOps Test Plans for Landing Zone Testing

What You Can Test with Azure DevOps:

  1. Infrastructure-as-Code (IaC) Validation
    • Unit testing Terraform/Bicep/ARM templates
    • Integration testing of resource dependencies
    • Security compliance checks (using tools like Checkov, Terrascan)
  2. Pipeline & Deployment Testing
    • Deployment success/failure scenarios
    • Rollback procedures
    • Pipeline integration tests
  3. Configuration Testing
    • Network connectivity tests
    • DNS resolution
    • RBAC permission validations
    • Policy enforcement checks

Typical Test Types for Landing Zones:

Test Category

Azure DevOps Capability

Recommended Approach

Unit Tests

✅ Excellent

Use Pester (PowerShell), Terratest (Go), or built-in tasks

Integration Tests

✅ Good

Pipeline stages with environment deployment

Compliance Tests

⚠️ Partial

Integrate with Azure Policy, Security Center

Performance Tests

⚠️ Limited

Use Azure Load Testing (separate service)

Security Tests

⚠️ Partial

Integrate security scanning tools

📋 Implementation Approaches:

  1. Using Azure DevOps Test Plans Module

yaml

# Example pipeline with testing stages

stages:

– stage: Validate

  jobs:

  – job: IaC_Validation

    steps:

    – script: terraform validate

    – script: terraform plan

 

– stage: Deploy_Test_Environment

  jobs:

  – job: Deploy_Test_LZ

    steps:

    – script: terraform apply -auto-approve

 

– stage: Run_Tests

  jobs:

  – job: Execute_Test_Suite

    steps:

    # Run connectivity tests

    – script: Test-NetworkConnectivity.ps1

    # Run security scans

    – script: Run-SecurityScan.ps1

  1. Test Case Management

Azure DevOps Test Plans allows you to:

  • Create manual test cases for landing zone validation
  • Define test suites for different scenarios (baseline, enterprise, etc.)
  • Track test results and defects
  • Link tests to requirements/work items
  1. Integration with Other Azure Services

yaml

# Comprehensive testing approach

– task: AzurePolicyAudit@2

– task: AzureResourceGroupDeployment@3

– task: AzureCLI@2

  inputs:

    script: |

      # Test network peering

      # Test private endpoints

      # Validate logging configuration

⚠️ Limitations & Considerations:

  1. Infrastructure-Specific Testing
    • Azure DevOps isn’t optimized for cloud infrastructure testing
    • Consider Azure Native Tools for specific scenarios:
      • Azure Policy for compliance testing
      • Azure Monitor for operational validation
      • Azure Security Center for security posture
  2. Performance & Load Testing
    • For landing zone performance testing, use:
      • Azure Load Testing (standalone service)
      • Azure Network Watcher for network tests
  3. Cost Management Testing
    • Azure DevOps doesn’t have built-in cost validation
    • Integrate with Azure Cost Management APIs

🏆 Recommended Hybrid Approach:

Best Practice Architecture:

text

Azure DevOps Pipeline

├── Stage 1: Static Analysis

│   ├── Code Quality (SonarQube)

│   ├── Security Scanning (Checkov/Snyk)

│   └── Template Validation

├── Stage 2: Deployment to Test Environment

├── Stage 3: Automated Testing

│   ├── Infrastructure Tests (Pester/Terratest)

│   ├── Integration Tests (Azure CLI/PowerShell)

│   └── Compliance Checks (Azure Policy)

└── Stage 4: Manual Validation (Test Plans)

    ├── Governance Review

    ├── Security Review

    └── Operational Readiness

🔧 Useful Extensions & Tools:

  • Pester for PowerShell testing
  • Terratest for Terraform testing
  • Azure DevOps Test Plans for manual test case management
  • Azure Pipeline Templates for reusable test patterns

📊 When to Use Azure DevOps vs. Other Tools:

Use Case

Azure DevOps

Alternative

Manual test case tracking

✅ Good

Infrastructure unit testing

✅ Good

Terratest, Pester

Compliance validation

⚠️ Integrate

Azure Policy

Performance testing

❌ Poor

Azure Load Testing

Security penetration testing

❌ Poor

Microsoft Defender

Conclusion:

Yes, Azure DevOps can be effectively used for landing zone test plans, particularly for:

  • IaC validation and deployment testing
  • Manual test case management
  • Integration with CI/CD pipelines

However, for comprehensive landing zone validation, you should augment Azure DevOps with Azure-native services (Policy, Security Center, Monitor) and specialized infrastructure testing tools.

Recommendation: Use Azure DevOps as your test orchestration and tracking platform, while leveraging specialized Azure services for domain-specific validation.

Xxx

 

give me a list of azure landing zone services that will be required by a workload subscription for a secure development environment

Here’s a comprehensive list of Azure Landing Zone services typically required for a secure development workload subscription:

Identity & Access Management

  • Azure Active Directory Premium P1/P2 (via parent/identity subscription)
  • Azure AD Privileged Identity Management (via identity subscription)
  • Managed Identities (user-assigned and system-assigned)

Networking & Connectivity

  • Virtual Network with appropriate subnets (dev, test, etc.)
  • Network Security Groups with dev-appropriate rules
  • Azure Firewall Premium (centralized or local)
  • Private Endpoints for PaaS services
  • Azure Bastion for secure VM access
  • Route Tables (UDRs)
  • Azure DNS Private Zones

Security & Compliance

  • Microsoft Defender for Cloud (Standard/Premium)
  • Azure Policy (with built-in and custom policies)
  • Azure Key Vault Premium
  • Azure Security Center integrated policies
  • Microsoft Sentinel (centralized log aggregation)

Monitoring & Logging

  • Log Analytics Workspace (centralized or dedicated)
  • Azure Monitor
    • Application Insights
    • VM insights
    • Container insights
  • Azure Activity Logs (routed to central workspace)
  • Diagnostic Settings for all services

Management & Governance

  • Resource Groups with appropriate tagging
  • Management Groups hierarchy alignment
  • Azure Blueprints or Bicep/Terraform deployment
  • Update Management Center
  • Azure Automation Account (for runbooks)

Compute & Development Services

  • Azure Container Registry Premium (with geo-replication)
  • Azure Kubernetes Service (with Azure AD integration)
  • App Service (with VNet integration)
  • Azure DevOps (or GitHub Enterprise)
  • Azure Virtual Machines (with Azure Disk Encryption)
  • Azure DevTest Labs (optional, for sandbox environments)

Storage & Data

  • Azure Storage Accounts (with Private Endpoints)
  • Azure SQL Database (with Advanced Data Security)
  • Cosmos DB (with Private Endpoints)
  • Azure Files (with Private Endpoints)
  • Backup Vault (or centralized backup solution)

Integration & Messaging

  • Azure Service Bus Premium (with VNet integration)
  • Event Grid (with Private Endpoints)
  • API Management Developer tier (with VNet integration)

Cost Management

  • Azure Cost Management + Billing
  • Budgets and alerts
  • Tags for chargeback/showback

Special Considerations for Dev Environments:

  1. Isolation: Separate VNets with peering to shared services
  2. Relaxed Policies: Some policies might be less restrictive than production
  3. Self-Service: Azure DevOps pipelines with approval gates
  4. Quotas: Higher limits for experimentation
  5. Automated Shutdown: For cost optimization on non-production resources

Centralized Services (Typically from Connectivity/Management Subs):

  • ExpressRoute/VPN Gateway (connectivity subscription)
  • Azure Firewall Policy (centralized management)
  • Log Analytics Workspace (centralized)
  • Shared Image Gallery (centralized)
  • Domain Controller (centralized)

Recommended Azure Policy Sets:

  • Deploy Microsoft Defender for Cloud
  • Require tags on resources
  • Enforce NSG flow logs
  • Audit storage account public access
  • Deploy SQL threat detection
  • Enforce Private Endpoints for PaaS services

This setup follows the Azure Landing Zone conceptual architecture with appropriate security controls while allowing developers the flexibility needed for development activities.

This response is AI-generated, for reference only.

draw me a network diagram of the above for a non-production tenant in a single region

I’ll create a network diagram for a non-production tenant in a single region following Azure Landing Zone principles. Here’s the conceptual diagram:

text

┌─────────────────────────────────────────────────────────────────────────────┐

│                     NON-PRODUCTION TENANT (Single Region)                   │

│                         Azure Region: [e.g., East US 2]                     │

└─────────────────────────────────────────────────────────────────────────────┘

 

┌─────────────────────────────────────────────────────────────────────────────┐

│                        HUB NETWORK (Shared Services)                        │

│                VNet: np-hub-vnet-eastus2 (10.1.0.0/16)                      │

└─────────────────────────────────────────────────────────────────────────────┘

              │               │              │               │

              ▼               ▼              ▼               ▼

    ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐

    │ Azure       │ │ ExpressRoute│ │ VPN Gateway │ │ Azure DNS   │

    │ Firewall    │ │ / VPN       │ │ (Optional)  │ │ Private     │

    │ Premium     │ │ Gateway     │ │             │ │ Zones      │

    │ (10.1.0.4)  │ │             │ │             │ │            │

    └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘

              │               │              │               │

              │               └──────┬───────┘               │

              │                      │                      │

              ▼                      ▼                      ▼

    ┌─────────────────────────────────────────────────────────┐

    │                    Hub Subnets:                         │

    ├─────────────────────────────────────────────────────────┤

    │ • AzureFirewallSubnet (10.1.0.0/26)                     │

    │ • GatewaySubnet (10.1.0.64/27)                          │

    │ • ManagementSubnet (10.1.0.96/28) – Azure Bastion       │

    │ • SharedServicesSubnet (10.1.1.0/24)                    │

    └─────────────────────────────────────────────────────────┘

              │                      │                      │

              │                      │                      │

              ▼                      ▼                      ▼

┌─────────────────────────────────────────────────────────────────────────────┐

│                             VNET PEERING                                    │

│            Bi-directional peering between Hub and Spoke VNets              │

└─────────────────────────────────────────────────────────────────────────────┘

              │                      │                      │

              ▼                      ▼                      ▼

┌─────────────────────┐  ┌─────────────────────┐  ┌─────────────────────┐

│   SPOKE 1:          │  │   SPOKE 2:          │  │   SPOKE 3:          │

│   DEVELOPMENT       │  │   TEST/QA           │  │   BUILD/PIPELINE    │

│   VNet: np-dev-vnet │  │   VNet: np-qa-vnet  │  │   VNet: np-build-vnet│

│   (10.2.0.0/16)     │  │   (10.3.0.0/16)     │  │   (10.4.0.0/16)     │

├─────────────────────┤  ├─────────────────────┤  ├─────────────────────┤

│ Subnets:            │  │ Subnets:            │  │ Subnets:            │

│ • Web (10.2.1.0/24) │  │ • Web (10.3.1.0/24) │  │ • Agents (10.4.1.0/24)│

│ • App (10.2.2.0/24) │  │ • App (10.3.2.0/24) │  │ • Build (10.4.2.0/24) │

│ • Data (10.2.3.0/24)│  │ • Data (10.3.3.0/24)│  │ • Release (10.4.3.0/24)│

│ • PrivateEndpoints  │  │ • PrivateEndpoints  │  │ • PrivateEndpoints  │

│   (10.2.4.0/24)     │  │   (10.3.4.0/24)     │  │   (10.3.4.0/24)     │

└──────────┬──────────┘  └──────────┬──────────┘  └──────────┬──────────┘

           │                        │                        │

           ▼                        ▼                        ▼

┌─────────────────────┐  ┌─────────────────────┐  ┌─────────────────────┐

│  Key Services:      │  │  Key Services:      │  │  Key Services:      │

│  • AKS Cluster      │  │  • Test VMs         │  │  • Azure DevOps     │

│  • App Service      │  │  • Test Databases   │  │    Agents           │

│    (ILB ASE)        │  │  • Load Testing     │  │  • GitHub Runners   │

│  • VM Scale Sets    │  │    Services         │  │  • Container        │

│  • Azure Spring Apps│  │  • Selenium Grid    │  │    Registry         │

│  • DevTest Labs     │  │  • API Testing      │  │  • Artifact Feeds   │

└─────────────────────┘  └─────────────────────┘  └─────────────────────┘

           │                        │                        │

           ▼                        ▼                        ▼

┌─────────────────────────────────────────────────────────────────────────────┐

│                    PRIVATE ENDPOINT CONNECTIVITY                            │

│  (All PaaS services connect via Private Endpoints in spoke VNets)           │

└─────────────────────────────────────────────────────────────────────────────┘

           │                        │                        │

           ▼                        ▼                        ▼

┌─────────────────────────────────────────────────────────────────────────────┐

│                   CENTRALIZED PAAS SERVICES (Private Link)                  │

├─────────────────────────────────────────────────────────────────────────────┤

│  • Azure Key Vault (Central)    • Azure SQL (Dev/Test Tiers)                │

│  • Azure Storage (Private)      • Service Bus Premium                       │

│  • Azure Container Registry     • Cosmos DB                                 │

│  • App Configuration            • Event Grid                                │

│  (All accessed via Private Endpoints – no public internet access)           │

└─────────────────────────────────────────────────────────────────────────────┘

 

┌─────────────────────────────────────────────────────────────────────────────┐

│                    CENTRAL MANAGEMENT & MONITORING                          │

├─────────────────────────────────────────────────────────────────────────────┤

│  • Log Analytics Workspace (Central) – All diagnostic logs sent here        │

│  • Microsoft Defender for Cloud – Central security monitoring               │

│  • Azure Monitor (Application Insights, VM Insights)                        │

│  • Microsoft Sentinel (SIEM) – Central security logging                     │

│  • Azure Automation Account – Central runbooks                              │

└─────────────────────────────────────────────────────────────────────────────┘

                                  │

                                  ▼

┌─────────────────────────────────────────────────────────────────────────────┐

│                        EXTERNAL CONNECTIVITY                                │

├─────────────────────────────────────────────────────────────────────────────┤

│  Internet egress → Azure Firewall → Internet                                │

│                                                                             │

│  On-premises connectivity:                                                  │

│  • ExpressRoute Circuit → ExpressRoute Gateway                              │

│  • Site-to-Site VPN → VPN Gateway                                           │

│                                                                             │

│  Developer Access:                                                          │

│  • Azure Bastion → VMs (no public IPs)                                      │

│  • VPN/ExpressRoute → Corporate Network                                     │

│  • Just-In-Time (JIT) VM Access via Defender for Cloud                      │

└─────────────────────────────────────────────────────────────────────────────┘

 

┌─────────────────────────────────────────────────────────────────────────────┐

│                         SECURITY CONTROLS                                   │

├─────────────────────────────────────────────────────────────────────────────┤

│  • NSGs on all subnets (minimum required rules)                             │

│  • Azure Firewall Policy (centralized rule management)                      │

│  • Web Application Firewall (WAF) on Application Gateway if needed          │

│  • DDoS Protection Standard on VNets                                        │

│  • All traffic routed through Azure Firewall (UDRs: 0.0.0.0/0 → Firewall)   │

│  • Private DNS Zones for all PaaS services                                  │

└─────────────────────────────────────────────────────────────────────────────┘

 

┌─────────────────────────────────────────────────────────────────────────────┐

│                         COST OPTIMIZATION                                   │

├─────────────────────────────────────────────────────────────────────────────┤

│  • Auto-shutdown schedules for non-production VMs                           │

│  • Spot VMs for CI/CD agents where possible                                 │

│  • Dev/Test pricing for applicable services                                 │

│  • Budget alerts and monitoring                                             │

└─────────────────────────────────────────────────────────────────────────────┘

Key Architecture Principles Illustrated:

  1. Hub-Spoke Topology: Centralized security and connectivity through Hub VNet
  2. Traffic Flow: All internet egress through Azure Firewall
  3. Private Connectivity: PaaS services via Private Endpoints only
  4. Segmentation: Separate spokes for different environment purposes
  5. Centralized Management: Logging, security, and monitoring centralized
  6. Least Privilege Access: No public IPs on VMs, Bastion for access
  7. Cost Control: Auto-shutdown and appropriate SKUs for non-prod

Traffic Flow Examples:

  1. Dev VM to Internet:

text

VM → NSG → UDR → Azure Firewall → Internet

  1. Dev App to Azure SQL:

text

App → Private Endpoint (in spoke) → Private Link → Azure SQL

  1. Developer Access to VM:

text

Developer → VPN/ExpressRoute → Azure Bastion → VM (private IP)

  1. Logging:

text

All resources → Diagnostic Settings → Log Analytics Workspace (central)

This design provides secure isolation while maintaining connectivity needed for development activities in a non-production environment.

Xxx

In Azure, routing determines how network traffic is directed between Azure resources, on-premises networks, and the internet. Here are the primary types and mechanisms of routing in Azure:

  1. System Routes (Default Routes)

Automatically created by Azure for each subnet. They control traffic flow within a VNet and to/from the internet.

  • Local VNet routes: Traffic within the VNet
  • Internet route: Outbound traffic to the internet
  • Azure services: Direct connectivity to Azure services via service endpoints
  • Gateway routes: Routes to on-premises networks via VPN/ExpressRoute
  1. User-Defined Routes (UDRs)

Custom route tables that override or extend system routes. Key use cases:

  • Forced tunneling: Route all internet-bound traffic through on-premises network
  • Network Virtual Appliances (NVAs): Direct traffic through firewalls or other appliances
  • Hub-and-spoke architectures: Control traffic flow between VNets
  • Service chaining: Route between virtual networks through NVAs
  1. Border Gateway Protocol (BGP) Routes

Used with:

  • Azure VPN Gateway: Exchange routes with on-premises networks
  • ExpressRoute: Dynamic routing between on-premises and Azure
  • Virtual WAN: Automatic route propagation
  1. Route Propagation Sources

Routes can come from multiple sources:

  • Virtual network gateway (VPN/ExpressRoute)
  • Network Virtual Appliance (via BGP or UDR)
  • Virtual network peering (automatic route exchange)
  • Azure Route Server (centralized routing management)
  1. Route Types by Service

Virtual Network Routing

  • Subnet-to-subnet: Within same VNet
  • VNet-to-VNet: Via peering (system routes)
  • VNet-to-internet: Default internet egress

Hybrid Networking Routing

  • Site-to-Site VPN: Static or BGP routes
  • ExpressRoute: Private, Microsoft, and public peering
  • Azure Virtual WAN: Automated routing hub

Service-Specific Routing

  • Azure Load Balancer: Direct traffic to backend pools
  • Application Gateway: Path-based routing
  • Front Door: Global HTTP routing
  • Traffic Manager: DNS-based global routing
  1. Routing Preferences
  • Microsoft global network: Optimized for Microsoft services
  • Internet routing: Lower-cost option
  • Cold potato routing vs Hot potato routing

Key Routing Concepts:

  • Longest prefix match: Azure selects the most specific route
  • Route priority: UDRs override system routes
  • Next hop types: Virtual appliance, VNet gateway, VNet peering, etc.
  • Route tables: Associated with subnets, not individual VMs

Common Routing Scenarios:

  1. Hub-and-spoke with NVA inspection
  2. Direct internet egress from specific subnets
  3. Forced tunneling for compliance/security
  4. Multi-region connectivity with optimal routing
  5. Service chaining through multiple NVAs

Azure routing is hierarchical and deterministic, with User-Defined Routes taking precedence over system routes when there’s overlap.

This response is AI-generated, for reference only.

please give a description for each of the above

Comprehensive Description of Azure Routing Types

  1. System Routes (Default Routes)

Description: Azure automatically creates and maintains these routes for every subnet in a Virtual Network. They cannot be created or removed manually but can be overridden by User-Defined Routes. System routes provide the fundamental connectivity that makes Azure networking work.

Key Routes:

  • Local VNet route: 0.0.0.0/0 → VNetLocal – Routes traffic between all IP addresses within the VNet’s address space. This enables direct communication between VMs in the same VNet without going through a gateway.
  • Internet route: 0.0.0.0/0 → Internet – Sends any traffic not destined for VNet IP addresses or Azure service endpoints to the internet. This is how VMs get outbound internet access.
  • Azure service virtual IPs: Specific IP ranges → Internet – Routes to Azure’s infrastructure services (like host node management traffic).
  • Virtual network peering routes: Automatically exchanged between peered VNets, appearing as VNetPeering next hop type.

Example: When VM1 (10.0.1.4) communicates with VM2 (10.0.2.4) in the same VNet, Azure uses the local VNet route for direct communication.

  1. User-Defined Routes (UDRs)

Description: Custom route tables created by administrators to override or supplement system routes. UDRs are critical for implementing advanced network architectures and security controls.

Key Characteristics:

  • Associated with subnets (not individual VMs)
  • Higher priority than system routes (when routes overlap)
  • Support next hop types: Virtual Appliance, VNet Gateway, VNet Peering, Internet, or None
  • Enable forced tunneling (0.0.0.0/0 route to on-premises)

Common Use Cases:

Forced Tunneling Example:

text

Route Table: “Force-Tunnel-All”

Destination: 0.0.0.0/0

Next hop type: Virtual Network Gateway

Next hop IP: [VPN Gateway IP]

This sends all internet-bound traffic through your on-premises network for inspection.

NVA Inspection Example:

text

Route Table: “Inspection-Routes”

Destination: 10.20.0.0/16 (Spoke VNet)

Next hop type: Virtual Appliance

Next hop IP: 10.0.0.4 (Firewall VM)

 

Destination: 0.0.0.0/0 (Internet)

Next hop type: Virtual Appliance 

Next hop IP: 10.0.0.4 (Firewall VM)

All traffic to spoke VNet and internet goes through the firewall.

  1. Border Gateway Protocol (BGP) Routes

Description: A dynamic routing protocol that automatically exchanges network reachability information between networks. In Azure, BGP is used primarily for hybrid connectivity.

Implementation Scenarios:

Azure VPN Gateway with BGP:

  • On-premises router advertises local routes (192.168.1.0/24)
  • Azure VPN Gateway advertises VNet routes (10.0.0.0/16)
  • Both networks learn routes dynamically
  • If on-premises has multiple paths to Azure, BGP provides failover

ExpressRoute with BGP:

  • Private Peering: Advertises VNet routes to on-premises (10.0.0.0/16)
  • Microsoft Peering: Advertises public IP prefixes for Microsoft 365/Azure services
  • Automatic failover: If primary circuit fails, BGP reroutes traffic

Route Propagation: BGP-learned routes appear in the route table with next hop type “Virtual Network Gateway” and are automatically propagated to connected VNets.

  1. Route Propagation Sources

Description: The origins from which routes are learned and distributed throughout Azure networking components.

Detailed Breakdown:

Virtual Network Gateway:

  • Propagates routes learned from on-premises via VPN/ExpressRoute
  • Can advertise Azure routes to on-premises
  • Supports both static and BGP routes

Network Virtual Appliance (NVA):

  • Can participate in BGP with Azure Route Server
  • Advertises routes to other network segments
  • Often used in hub-and-spoke to advertise default route to spokes

Virtual Network Peering:

  • Automatically exchanges routes between peered VNets
  • Non-transitive by default (spoke-to-spoke traffic goes through hub)
  • Global peering enables cross-region route exchange

Azure Route Server:

  • Centralized routing service that exchanges routes between NVAs and Azure
  • NVAs establish BGP sessions with Route Server
  • Route Server propagates NVA routes to all connected VNets
  1. Route Types by Service

Virtual Network Routing

Subnet-to-Subnet: Direct routing within same VNet using system routes. No gateway needed.

VNet-to-VNet via Peering:

  • Routes automatically appear as VNetPeering next hop
  • Traffic stays on Azure backbone
  • Example: VNet A (10.1.0.0/16) peers with VNet B (10.2.0.0/16)

VNet-to-Internet:

  • Default outbound via public IP or Load Balancer
  • SNAT (Source Network Address Translation) performed
  • Can be restricted via NSGs or forced tunneling

Hybrid Networking Routing

Site-to-Site VPN:

  • Policy-based VPN: Static routes configured manually
  • Route-based VPN: Can use BGP for dynamic routing
  • Routes appear with VPN Gateway next hop

ExpressRoute:

text

Private Peering:

On-premises → Azure: 10.0.0.0/16

Azure → On-premises: 192.168.0.0/16

 

Microsoft Peering:

Azure → Customer: Public IP prefixes

Traffic doesn’t traverse the internet

Azure Virtual WAN:

  • Automated routing hub with transitive connectivity
  • Uses proprietary routing engine
  • Simplifies large-scale mesh networking

Service-Specific Routing

Azure Load Balancer:

  • Public Load Balancer: Routes to backend pool based on load balancing rules
  • Internal Load Balancer: Directs traffic within VNet

Application Gateway:

  • Path-based routing: /api/* to backend pool 1, /images/* to pool 2
  • Multi-site routing: blog.contoso.com and shop.contoso.com to different pools

Azure Front Door:

  • Global HTTP load balancer with Anycast
  • Routes to closest healthy backend
  • Supports latency-based and geographic routing

Traffic Manager:

  • DNS-based global load balancing
  • Routing methods: Priority, Weighted, Performance, Geographic
  • Doesn’t see actual traffic, only DNS queries
  1. Routing Preferences

Description: Controls the path traffic takes between Azure and the internet.

Microsoft Global Network (Cold Potato Routing):

  • Keeps traffic on Microsoft’s backbone as long as possible
  • Better performance and reliability
  • Higher cost but optimized for Microsoft services
  • Example: Traffic from Azure East US to internet user in London stays on Microsoft network until London POP

Internet Routing (Hot Potato Routing):

  • Hands off to ISP as soon as possible
  • Lower cost, potentially higher latency
  • Used for internet egress and some PaaS services

Key Routing Concepts Explained

Longest Prefix Match:

text

Available routes:

  1. 10.0.0.0/16 → Virtual Appliance
  2. 10.0.1.0/24 → Internet
  3. 0.0.0.0/0 → Virtual Network Gateway

 

Traffic to 10.0.1.5 matches route #2 (more specific /24)

Traffic to 10.0.2.5 matches route #1 (more specific /16 than #3)

Traffic to 8.8.8.8 matches route #3 (only match)

Route Priority Hierarchy:

  1. User-Defined Routes (most specific)
  2. BGP Routes (from VPN/ExpressRoute)
  3. System Routes
  4. Default route (if no match)

Next Hop Types:

  • Virtual Appliance: VM with IP forwarding enabled
  • VNet Gateway: VPN or ExpressRoute gateway
  • VNet Peering: Another peered VNet
  • Internet: Azure infrastructure egress
  • None: Blackhole traffic (for security)

Common Routing Scenarios with Examples

  1. Hub-and-Spoke with NVA Inspection

text

Hub VNet: 10.0.0.0/16

– Subnet: GatewaySubnet (VPN/ExpressRoute)

– Subnet: NVA-Subnet (Firewall: 10.0.0.4)

– Subnet: SharedServices (10.0.1.0/24)

 

Spoke1 VNet: 10.1.0.0/16 (peered with Hub)

Spoke2 VNet: 10.2.0.0/16 (peered with Hub)

 

Route Table on Spoke1:

0.0.0.0/0 → Virtual Appliance (10.0.0.4)

10.0.0.0/16 → VNetPeering (to Hub)

10.2.0.0/16 → Virtual Appliance (10.0.0.4)

All inter-spoke and internet traffic flows through hub firewall

  1. Direct Internet Egress for Specific Subnet

text

Route Table: “Direct-Internet”

0.0.0.0/0 → Internet

 

Associated with: “Public-Facing-Subnet”

Not associated with: “Database-Subnet”

Only specific subnets can reach internet directly

  1. Forced Tunneling for Compliance

text

Route Table: “Compliance-Routes”

0.0.0.0/0 → Virtual Network Gateway (to on-premises)

8.8.8.8/32 → Internet (exception for specific service)

All traffic inspected on-premises except DNS

  1. Service Chaining

text

VM → Firewall (10.0.0.4) → IDS (10.0.0.5) → Internet

Routes:

0.0.0.0/0 → Virtual Appliance (10.0.0.4)

Firewall configured to send inspected traffic to IDS

IDS has route to internet

  1. Multi-Region DR Routing

text

Primary Region: East US (10.1.0.0/16)

DR Region: West US (10.2.0.0/16)

Global Load Balancer health probes both regions

If East US fails, Traffic Manager updates DNS to point to West US

ExpressRoute advertises both routes with different BGP weights

Practical Considerations

Route Table Limits:

  • 400 routes per route table
  • 200 route tables per subscription
  • 25 BGP peerings per VPN gateway

Routing Best Practices:

  • Use descriptive names for route tables
  • Document routing decisions and exceptions
  • Test routing changes in non-production first
  • Monitor route tables with Network Watcher
  • Implement routing incrementally

Troubleshooting Tools:

  • Network Watcher: Next hop analysis, IP flow verify
  • Effective Routes: View routes applied to NIC
  • Connection Troubleshoot: Test connectivity paths
  • Packet Capture: Analyze actual traffic flow

This comprehensive routing system enables Azure to support everything from simple web applications to complex global enterprise networks with multiple connectivity requirements.