I've seen many companies rush into the cloud without a solid foundation, which is why I always emphasize the importance of a well-designed Landing Zone in Azure. This foundational environment is where workloads are deployed, and getting it right from the start saves a lot of headaches and expensive architectural remediation down the line.

The Azure management group hierarchy is a crucial aspect of a Landing Zone, providing the scope for governance policies and Role-Based Access Control (RBAC). The Enterprise-Scale architecture, which is Microsoft's reference landing zone, defines a clear hierarchy: tenant root, management groups, and subscriptions. This hierarchy allows for policies to be assigned at the management group level and then cascade to all subscriptions below.

When it comes to networking, the hub-and-spoke topology is a popular choice for Landing Zones. This topology places shared services like ExpressRoute/VPN gateways, Azure Firewalls, bastion hosts, and DNS resolvers in a central hub VNet. Spoke VNets, which are typically one per application or environment, peer to the hub, allowing for centralized security control without all workloads sharing a single VNet.

On the networking side, the hub-and-spoke model looks clean on paper, but the devil is in the details. I once managed a migration for a financial services client that had 48 spoke VNets spread across three regions. They initially duplicated the same NSG rules in every spoke, thinking it would be safer. The result was a nightmare: overlapping rules caused packet drops, and the audit logs were filled with false positives. We resolved this by centralizing the NSG templates in a Git repo, using ARM parameters to inject the appropriate rules per spoke, and then applying them through Azure Policy with the built‑in 'deny if not allowed' effect. The change cut down on troubleshooting time by 70% and eliminated the risk of mis‑configured security rules.

Subscription design is another critical aspect of a Landing Zone, as subscriptions serve as the isolation and billing boundary in Azure. The enterprise pattern involves separating subscriptions by environment, application criticality, and compliance requirements. This means having separate subscriptions for production and non-production environments, as well as for different applications and regulatory requirements.

Subscription boundaries are often chosen with a 'one subscription per app' mantra, but that can backfire if you ignore the 200 subscription limit that Azure enforces per tenant. A startup that grew from 4 to 18 teams ended up with 36 subscriptions when each team spun up a dev, test, and prod set. Policy assignments became a maintenance nightmare, and the cost center mapping blurred. We shifted to a hybrid model: three core subscriptions for shared services, one per environment, and a single subscription per application that could host multiple environments via nested resource groups. This approach preserved isolation while keeping the total subscription count under 20, making policy compliance and cost reporting manageable.

Each subscription has its own resource groups, RBAC assignments, and cost reporting, which can be managed at scale using the management group hierarchy and Azure Policy. This approach allows for greater control and flexibility, while also reducing the governance overhead associated with multiple subscriptions.

Resource groups are the next level of granularity, and they can become a double‑edged sword. In one case, a telecom operator had a single subscription for all its billing services and created 200 resource groups to separate by feature. The Azure Policy that enforced tagging on every resource was triggered for every deployment, leading to a 15% increase in deployment time and a 10% rise in storage costs for the policy engine itself. We re‑architected the tagging strategy to apply only to high‑value resources and used a custom policy that allowed exceptions for low‑cost services. That cut the policy evaluation time by 40% and saved roughly $12k annually.

A solid identity baseline is essential for a Landing Zone, and this involves configuring the Azure AD tenant with Conditional Access policies, such as multi-factor authentication for all users and compliant devices for privileged access. Additionally, Privileged Identity Management should be implemented for just-in-time privileged role activation, and Azure AD Identity Protection should be used for risky sign-in detection.

Break-glass accounts, which are emergency access accounts with permanent Global Admin privileges, should also be stored offline and monitored for use. This identity baseline must be in place before workloads are deployed, as it provides a secure foundation for the entire Landing Zone.

By following these best practices and designing a well-structured Landing Zone, organizations can ensure a smooth and secure transition to the cloud, while also avoiding costly remediation and governance overhead down the line.