← Back to Case Studies
Jun 2024Director β€” Cloud & Infrastructure Architecture

Scaling Enterprise Cloud to 45+ Subscriptions: Landing Zones & BGP Steering

Architected a multi-region Azure Enterprise Landing Zone (CAF) across 45+ subscriptions with deterministic BGP route engineering over dual ExpressRoute circuits.

#Azure#Landing Zones#BGP#ExpressRoute#Cloud Architecture#case-study

β€œIn enterprise cloud, uptime dashboards lie. Packets can flow while your architecture is broken. Scaling past 40 subscriptions requires treating routing policies, landing zones, and transit failovers with the mathematical rigor of a compiler.”

Executive Summary

As enterprise cloud footprints expand across dozens of business units, uncoordinated virtual networking and ad-hoc routing inevitably produce two catastrophic failure modes: asymmetric traffic drops across stateful firewalls and silent route degradation over hybrid circuits.

By architecting a modular Azure Enterprise Landing Zone (CAF) architecture across 45+ subscriptions and implementing deterministic BGP route engineering across dual ExpressRoute circuits, we eliminated stateful packet drops for 300+ enterprise workloads, locked private P95 latency at 18ms, and automated infrastructure guardrails before any code reached production.


1. The Challenge & Context

In a large enterprise hybrid cloud estate, business units frequently provision infrastructure across disparate subscriptions. Over time, without central architectural governance, teams deploy ad-hoc Virtual Networks (VNets), unpeered transit bridges, and conflicting static routes.

Our infrastructure footprint spanned 45+ enterprise Azure subscriptions connecting to on-premises compute and private GPU inference clusters. Hybrid connectivity relied on dual Azure ExpressRoute private circuits:

  • Primary Circuit: 10 Gbps via Mumbai Edge PoP (18ms target latency).
  • Secondary Circuit: 1 Gbps via Singapore Edge PoP (standby disaster recovery).

Incident 1: The Asymmetric Routing Drop

During an early migration wave, a business-critical application reported intermittent 100% connection timeouts following a security policy update.

Network flow analysis revealed that outbound TCP SYN packets from Spoke workloads correctly traversed the central Azure Firewall (NVA) via a custom User-Defined Route (UDR 0.0.0.0/0). However, return SYN-ACK packets from on-premises databases learned a more specific route via the ExpressRoute Gateway, bypassing the firewall on return.

Because stateful inspection firewalls drop out-of-state return packets, all connections were silently discarded:

[CRITICAL] Azure Network Watcher Flow Log Diagnostic
Resource:    vnet-spoke-analytics-01
Flow Status: DROPPED (Stateful Firewall Asymmetric Invalidation)
Analysis:    Outbound SYN traversed NVA Firewall; return SYN-ACK routed directly
             via ExpressRoute Gateway. TCP state table mismatch dropped packet.

Incident 2: The 340ms Silent Route Degradation

Following a scheduled maintenance window on the primary 10 Gbps circuit, traffic failed over to the secondary 1 Gbps Singapore circuit exactly as designed.

However, once the primary circuit re-established, long-lived TCP sessions persisted on the secondary link. Because the backup circuit had re-initialized with default BGP path attributes during a prior credential rotation, existing flows never steered back to the primary path.

The monitoring dashboards remained green because uptime was 100% and zero packets dropped. But inference response times jumped from 18ms to 340ms for 72 hours before discovery. The SLA was silent.


2. Constraints & Architectural Principles

To prevent these failure modes across 45+ enterprise subscriptions, the architecture had to enforce four strict principles:

  1. Deterministic Traffic Symmetry: Every packet entering a stateful security boundary must exit through that exact same boundary.
  2. Deterministic Route Preference: Upstream BGP path selection must be mathematically enforced and automated against configuration drift.
  3. Automated Factory Deployment: Subscriptions and spoke VNets must be stamp-provisioned via modular Terraformβ€”eliminating manual portal changes.
  4. Active Synthetic Path Telemetry: Latency and route path telemetry must be monitored continuously at the protocol level, not inferred from uptime checks.

3. The Architecture: Hub-Spoke & Deterministic BGP Steering

1. Management Group Hierarchy & CAF Governance

Organized all 45+ subscriptions under a strictly partitioned Management Group Hierarchy:

  • Root $\rightarrow$ Platform (Identity, Management, Connectivity)
  • Root $\rightarrow$ Landing Zones (Core Business Units, De-Militarized Zones)
  • Root $\rightarrow$ Sandbox (Strict internet egress controls, zero hybrid peering)

2. Solving Asymmetric Drops: Gateway Subnet Route Table Isolation

To enforce bidirectional symmetry through the central firewall:

  • Deployed a dedicated Route Table on the GatewaySubnet with explicit routes directing all spoke CIDRs (10.0.0.0/8) to the private IP of the central Azure Firewall.
  • On spoke route tables, disabled GatewaySubnetRoutePropagation and forced all transit through the firewall NVA. This guaranteed that both egress and return paths traversed the state table symmetrically.

3. Deterministic BGP Traffic Engineering

Configured BGP route policies on Customer Edge (CE) routers and Azure MSEE peering:

  • Primary Path (Mumbai): Advertised with BGP Local-Preference 200.
  • Secondary Path (Singapore): Advertised with BGP Local-Preference 100 and 3x AS-Path Prepending.
  • Automated Reset Watchdogs: Implemented automated health probes that perform TCP session teardown upon primary link recovery, preventing sticky sessions from persisting on the high-latency standby circuit.

4. Implementation Pattern (Terraform)

# hub-connectivity/routes.tf β€” Gateway Subnet UDR Enforcing Symmetric Inspection
resource "azurerm_route_table" "gateway_udr" {
  name                          = "rt-hub-gateway-we-01"
  location                      = var.location
  resource_group_name           = var.connectivity_rg_name
  disable_bgp_route_propagation = false

  route {
    name                   = "to-spokes-via-firewall"
    address_prefix         = "10.0.0.0/8"
    next_hop_type          = "VirtualAppliance"
    next_hop_in_ip_address = var.central_firewall_private_ip
  }
}

resource "azurerm_subnet_route_table_association" "gateway_assoc" {
  subnet_id      = var.gateway_subnet_id
  route_table_id = azurerm_route_table.gateway_udr.id
}

5. Measurable Outcomes & Production Impact

Metric Before Landing Zone Governance After Implementation Impact
Subscriptions Governed Ad-hoc / Unmanaged 45+ Enterprise Subscriptions Unified security baseline across all business units
Asymmetric Routing Drops Frequent during migration Zero drops across 300+ workloads 100% stateful packet symmetry
Hybrid P95 Latency Volatile (18ms to 340ms) Locked at 18ms (Mumbai PoP) Zero silent latency degradation
Spoke Provisioning Time 3 weeks (manual ticketing) < 45 minutes (Terraform Factory) 97% reduction in delivery lead time
Public IP Exposure 14 unmanaged public endpoints 0 direct public IPs 100% private endpoint & NVA ingress

6. The First-Principles Lesson

β€œIn enterprise cloud, uptime dashboards lie. Packets can flow while your architecture is broken.”

A passive connection that doesn’t drop packets is not proof of architectural health. If your return traffic bypasses inspection, or if your inference workloads silently degrade onto high-latency standby circuits without alerting, you do not have an engineering control; you have an accidental topology.

Complexity is the enemy. Determinism is the cure.

⚑ Theme Adaptive Shift
Switching layouts matching domain reading affinity...