Back to Insights

Brownfield Nightmares: Adopting Azure Landing Zones Without Breaking Production

How to migrate legacy flat networks into hub-spoke with minimal downtime.

The Truth

Landing zones are clean on paper. Brownfield migrations are not.

If you try to "fix" a flat production network in-place, you will break something. The safe move is a controlled transition where old and new coexist for a while, with clear exit criteria and rollback.

This article is a practical playbook for moving from a legacy, flat Azure environment to an Azure Landing Zone style hub-and-spoke without turning production into a change-failure festival.

TL;DR (what actually works)

  1. Build the new hub first (connectivity, security, DNS). Do not touch workloads yet.
  2. Connect legacy to the new hub using peering + gateway transit (temporary bridge).
  3. Migrate workloads in waves into new spokes. Validate each wave.
  4. Cut DNS over with low TTL. Keep rollback simple.
  5. Decommission legacy only after you have stable operations and monitoring.

Scenario (what this looks like in real life)

Typical brownfield starting point:

Target end state:

What to decide first (don't skip this)

1) Hub-and-spoke vs Virtual WAN

Pick one early. Switching later is expensive.

2) Where NAT belongs (overlapping IPs)

If overlapping address spaces exist, decide which control point owns translation:

Do not confuse NAT Gateway (outbound SNAT for internet egress) with network-to-network address translation.

3) DNS ownership

Brownfield migrations fail more often due to DNS than compute.

Decide:

Transition Strategy (the controlled bridge)

1) Migration bridge (legacy behaves like a temporary spoke)

Goal: Keep connectivity stable while you build the new platform and move workloads gradually.

Approach:

Key configuration "gotchas":

Outcome:

On-prem can continue to reach legacy workloads while the hub becomes the new network control plane.

2) Overlapping IPs (the part everyone underestimates)

If you have IP overlap due to M&A, partner networks, or bad historical planning:

Practical guidance:

3) Cutover (treat migration like DR)

For wave-based workload moves, you want a migration method that supports:

A pattern that works well in brownfield:

Note: Many teams now use Azure Migrate for migration. If you already use Site Recovery patterns, keep it disciplined and test-driven. The point is the methodology: test failovers before production cutover, every time.

Migration plan (phases + exit criteria)

Phase 0: Pre-flight (inventory + blast radius)

Checklist:

Exit criteria:

Phase 1: Build the new hub (don't migrate yet)

Checklist:

Exit criteria:

Phase 2: Connect legacy to hub (temporary bridge)

Checklist:

Exit criteria:

Phase 3: Migrate workloads in waves (repeatable playbook)

For each wave:

Exit criteria:

Phase 4: Cut DNS (small changes, big consequences)

Checklist:

Exit criteria:

Phase 5: Decommission legacy (after you prove operations)

Checklist:

Exit criteria:

Common failure modes (and how to avoid them)

1) Hairpin routing

Symptoms:

Impact:

Fix:

2) "It worked yesterday" routing black holes

Root causes:

Fix:

3) DNS drift

Symptoms:

Fix:

4) Legacy licenses tied to MAC / hardware IDs

Symptoms:

Fix:

Diagram (Azure icons)

Brownfield transition state with hub-spoke and ASR cutover

Transition State Diagram

Azure brownfield migration transition state showing hub-spoke architecture with legacy VNet bridge

Operational Checklists

Pre-cutover (per wave)

Cutover day

Post-cutover

References

Microsoft Learn

Microsoft Blogs

GitHub

YouTube (Microsoft)

YouTube (Community)

Spread the Insight

Back to Insights