Skip to main content

Landing Zone and Platform Foundations on Microsoft Azure

Azure landing zones, deployed from code

Azure gives you a genuinely strong published reference architecture and a set of verified modules to build it from, which means the technical pattern is largely a solved problem. The decisions that are not solved for you are the ones that cost money later: how the management group hierarchy is shaped, which guardrails enforce rather than audit, and whether you can still change the platform in two years. We build from the accelerator and the verified modules so you inherit upstream improvements instead of maintaining a private fork.

Why Azure

When this is the right platform.

  • You already run Microsoft Entra ID, so the identity plane the hierarchy depends on is in place rather than something to stand up.
  • Azure Policy can remediate as well as block. The deployIfNotExists and modify effects bring existing resources to a required state, which has no direct equivalent at AWS organisation scope.
  • Management groups give you a policy and access inheritance tree that is independent of billing, so governance structure does not have to follow how invoices are cut.
  • Azure Verified Modules give a supported Bicep and Terraform path to the same reference architecture, so an existing Terraform team is not forced onto a second language.
  • Azure Arc extends the same management group governance to servers and Kubernetes outside Azure, which matters if the estate is genuinely hybrid.

Where it is less suited

We would rather say this now than after a migration.

  • Restructuring the management group hierarchy after the fact is genuinely painful. Policy assignments, role assignments and cost views all inherit from it, so an early structural mistake is carried for years rather than corrected cheaply.
  • Bringing existing non-compliant resources into line is slower than it looks. Remediation needs correctly scoped managed identities and remediation tasks, and partially applied remediation is a common end state.
  • The guidance of one platform landing zone per tenant does not fit every organisation. Acquisitions, joint ventures and divested business units all push against it, and the workarounds are awkward.
  • An environment deployed through the portal accelerator is difficult to bring under infrastructure as code afterwards. Moving to code in practice means partly rebuilding.
  • Choosing Bicep or Terraform is close to a one-way decision, because the accelerator, the pipelines and the team's skills all follow it.
  • Policy compliance reporting needs interpretation rather than reading. Results lag and non-compliant is often a scope artefact, which erodes trust in the dashboard if nobody explains it.

Business outcomes

What Azure delivers here.

One hierarchy every workload inherits from
Management groups carrying policy and role assignments, with application landing zones placed underneath so a new subscription arrives governed rather than empty.Agreed measure: Share of subscriptions sitting under the intended management group with the baseline assigned, verified at handover.
Guardrails that fix, not just refuse
Azure Policy applied at management group scope using deny to block non-conforming deployments and deployIfNotExists to bring resources up to the required configuration.Agreed measure: Compliance against the agreed initiative, reported per management group with exemptions listed separately.
Subscription vending as a pipeline
A new landing zone produced by instantiating the vending pattern once, arriving with policy, network, diagnostics and access already attached.Agreed measure: Elapsed time from request to a governed subscription, baselined before we start.
Central platform logging
Diagnostic settings routing activity, platform and resource logs into a Log Analytics workspace sized against retention, residency and access requirements.Agreed measure: Whether an audit question can be answered from central logs alone, tested on a sample.
Connectivity owned centrally
Egress inspection, private connectivity and name resolution held in the connectivity subscription so application teams consume them rather than rebuild them.Agreed measure: Number of workload-owned egress paths and public IPs outside the central pattern.
A platform you can still change
Bootstrapped onto a pipeline from the start, so an accelerator or module release is an update you test rather than a rebuild you defer.Agreed measure: Whether an upstream module release can be taken through the pipeline without hand-editing deployed resources.

Common client problems

What we usually hear first.

  • Should we use Bicep or Terraform for the platform?

    Both are supported paths to the same reference architecture, so this is a team decision rather than a technical one, and existing skill is usually the deciding argument. Be aware it is close to one-way: the accelerator, the pipelines and your hiring all follow it. We will also flag that feature parity between the two paths is a reasonable assumption rather than something we can promise, so if you depend on a specific pattern module we check it exists on your chosen path first.

  • Our management group structure is already wrong. How bad is fixing it?

    Genuinely painful, and worth being direct about. Policy assignments, role assignments and cost views all inherit from the hierarchy, so re-parenting is not a cosmetic move. We usually build the target structure alongside the current one and move subscriptions in tranches, least risky first, re-testing policy compliance at each step. The alternative, living with it, is sometimes the right call and we will say so if it is.

  • Our policy compliance dashboard says we are 60 per cent compliant and nobody believes it.

    Usually correct to be sceptical. Compliance results lag, and non-compliant is frequently a scope or definition artefact rather than a real control failure, which is exactly how a dashboard loses its audience. We go through the initiative definition by definition, separate genuine failures from scoping noise, fix the definitions and document what each control actually asserts, so the number means something before anyone is asked to act on it.

  • We deployed the portal accelerator and now we cannot manage it as code.

    This is the most common brownfield situation we see and it is a real constraint, not a configuration mistake. Microsoft's guidance is to move to code where possible, which in practice means importing what can be imported and rebuilding what cannot. We scope it honestly: the hierarchy and policy assignments usually come across, and some connectivity and diagnostic configuration is faster to redeploy than to import.

  • Do we need Virtual WAN or is hub and spoke enough?

    Hub and spoke is enough for most Australian mid-market estates, and it is cheaper and simpler to reason about. Virtual WAN earns its cost with multi-region global transit, a large branch count, or a genuine need for transitive routing between VPN and private circuits. We size this against your actual sites and regions rather than defaulting to the managed option, because the managed option is not free.

  • Our tenant situation is complicated. We have an acquisition in a separate tenant.

    Then the standard guidance does not fit you cleanly, and it is better to know that now. The reference architecture assumes one platform landing zone per tenant, and acquisitions, joint ventures and divestments all push against that. The workarounds are awkward rather than impossible. We map which governance you can genuinely share across tenants and which has to be duplicated, then design for the duplication instead of pretending it away.

How we deliver

Our Azure delivery approach.

  1. 01

    Assessment and advisory

    The Azure assessment is mostly about structure and sequencing, because the accelerator solves the build and not the decisions.

    • Tenant and hierarchy review. Existing management groups, subscriptions and any inherited assignments, plus whether a single platform landing zone genuinely fits your tenant situation.
    • Policy baseline classified. Each definition marked enforce, audit or out of scope, with remediation feasibility assessed for anything using deployIfNotExists or modify.
    • Bicep or Terraform decision. Made against existing team skill and the pattern modules you actually need, and recorded as a decision because the whole platform follows it.
    • Network topology sized honestly. Hub and spoke against Virtual WAN judged on your real sites, regions and routing needs rather than defaulting to the managed option.
    • Log Analytics workspace design. Retention, residency and access requirements checked before logs flow, because the retention bill and any sovereignty constraint both arrive late.
    • Australian region verification. Capability availability confirmed in Australia East and Australia Southeast with the date recorded, since parity with other geographies is not guaranteed.
  2. 02

    Architecture and implementation

    We follow the published accelerator sequence: plan, prerequisites, bootstrap, then run. The bootstrap phase is the one under pressure to be skipped, and it is the one that decides whether you can change the platform later.

    • Hierarchy and platform subscriptions first. Management groups established with dedicated identity, management and connectivity subscriptions before any application landing zone is created.
    • Assembled from Azure Verified Modules. The platform built from published Bicep or Terraform modules, including the landing zone vending pattern, rather than equivalents written from scratch.
    • Pipeline bootstrapped before the platform runs. Version control, service connections and deployment identities established first, so the platform has never existed outside a pipeline.
    • Connectivity centralised. Central egress inspection, private circuit termination and shared name resolution in the connectivity subscription, consumed by application landing zones.
    • Diagnostics applied by policy. Diagnostic settings deployed through policy rather than per resource, so a new resource cannot silently avoid central logging.
    • Locks on shared platform services. Resource locks protecting the shared components whose accidental deletion would affect every workload underneath them.
  3. 03

    Security and governance

    Most of what a landing zone is for lives here. On Azure the controls are largely available already, and the work is attaching them to the hierarchy deliberately and proving inheritance holds.

    • Entra ID groups for every assignment. Role assignments granted to groups at management group or subscription scope, never to individuals, so access follows joiner and leaver processes.
    • Privileged access time-bound. Standing administrative access removed in favour of eligible, approved and audited elevation for platform-level roles.
    • Defender for Cloud as the baseline. Enabled across every subscription in the hierarchy by policy, reporting against one agreed standard rather than per-subscription defaults.
    • Sentinel over central platform logs. Analytics and response sitting in the management or security subscription, reading the platform logs workload teams cannot alter.
    • Exemptions scoped and dated. Policy exemptions recorded against a named approver with a review date, rather than widened assignment scopes that disable a control invisibly.
    • Tag enforcement for attribution. Mandatory tags applied and inherited through policy effects, so cost attribution works without a monthly reconciliation exercise.
  4. 04

    Adoption and enablement

    The measure of adoption here is whether application teams use the vending path. If it is slower than opening the portal, they will not.

    • Vending faster than the portal. The governed request path timed against manual creation, because a slow pipeline means the control gets bypassed.
    • Platform team handover on the real thing. Sessions run against the deployed hierarchy, pipeline and vending workflow rather than a slide deck describing them.
    • Application landing zone pattern published. What a team receives by default, what they must not change, and how to request something the baseline forbids.
    • Exemption path rehearsed. Walked through with a genuinely blocked deployment before go-live, so the process is tested before it is needed.
    • Decision records handed over. One record per structural choice covering hierarchy, topology and the Bicep or Terraform decision, with the reasoning kept.
    • Runbooks for predictable work. Onboarding a subscription, adding a region, opening a network path, and responding to a failed policy remediation.
  5. 05

    Managed continuation

    Azure landing zones drift through portal changes and fall behind through skipped module updates. Continuation is mostly about catching both early enough that the fix is small.

    • Drift surfaced against the deployed baseline. Out-of-band portal changes detected and routed to a named owner, with repeat offenders treated as a process problem rather than a technical one.
    • Module and accelerator currency. Upstream Azure Verified Modules and accelerator releases assessed and taken through the pipeline on an agreed cadence.
    • Compliance reviewed by someone who reads it. Results triaged to separate genuine control failures from scope and definition artefacts before anything is escalated.
    • Remediation tasks completed. Partially applied deployIfNotExists and modify remediations chased to completion, since half-remediated is a common and misleading end state.
    • Log retention and cost watched. Workspace ingestion and retention reported monthly, because this is the platform line item that grows quietly.
    • Exemption register reviewed. Each exemption revisited at its review date and either renewed deliberately or removed.

Reference architecture

The Azure platform landing zone, layer by layer.

How the pieces fit together on Microsoft Azure. Every engagement adapts this, and we will tell you which layers you already have.

  1. 01

    Tenancy and identity

    One hierarchy, one identity plane, no local admin accounts beneath it.

    • Microsoft Entra ID
    • Management groups
    • Azure Resource Manager
  2. 02

    Governance

    Guardrails attached once and inherited, not reapplied per workload.

    • Azure Policy
    • Microsoft Defender for Cloud
    • Resource locks
  3. 03

    Vending

    A new landing zone is a pipeline run, not a project.

    • Azure Verified Modules
    • Azure DevOps or GitHub
    • Bicep or Terraform
  4. 04

    Connectivity

    Central transit and inspection, shared out to application landing zones.

    • Hub and spoke or Virtual WAN
    • Azure Firewall
    • Azure ExpressRoute
  5. 05

    Logging

    Platform and audit logs land where workload teams cannot alter them.

    • Azure Monitor
    • Log Analytics workspace
    • Microsoft Sentinel

Across every layer

  • Role assignments to Entra ID groups, never to individuals
  • Mandatory tagging enforced by policy for cost attribution
  • Every layer deployed from version-controlled code
  • Drift treated as a defect with a named owner
Layers 01 and 02 are what make the rest inheritable, and they are the ones compressed when a migration date is fixed. Note that vending sits at 03: if it is not automated, every environment below it is assembled by hand and the baseline holds only as well as somebody's memory.

Technology reference

The Microsoft Azure services we build with.

A reference architecture view of the platform services used in this domain, and what each one does in the design.

Foundation and governance

  • Azure Landing ZonesThe published reference architecture and accelerator the platform is built from, rather than a bespoke equivalent.
  • Azure PolicyGuardrails at management group scope, blocking non-conforming deployments and remediating resources to the required configuration.
  • Microsoft Entra IDThe tenant boundary and identity plane the hierarchy depends on, with access granted to groups.
  • Privileged Identity ManagementTime-bound, approved elevation for platform administrative roles in place of standing access.

Platform as code

  • BicepOne of the two supported paths to the reference architecture, suited to teams standardised on Microsoft tooling.
  • TerraformThe alternative supported path, usually the right choice where the team already operates Terraform elsewhere.
  • Azure DevOpsPipelines and version control bootstrapped before the platform is deployed, so it never exists outside source control.
  • GitHubThe alternative version control and pipeline host where the organisation already standardises on it.

Connectivity

  • Azure Virtual NetworkThe hub and spoke topology option, held in the connectivity subscription and peered to application landing zones.
  • Azure ExpressRoutePrivate on-premises connectivity terminated centrally rather than per workload.
  • Azure DDoS ProtectionA protection plan associated to each virtual network that needs it. Note there is no inheritance: a plan on the hub does not cover public IPs in a spoke, so association is part of the landing zone baseline.
  • Azure Application GatewayRegional application delivery and web application firewalling for workloads that need it, placed behind the central pattern.

Observability and operations

  • Azure MonitorThe central Log Analytics workspace platform diagnostic settings route activity and resource logs into.
  • Microsoft SentinelAnalytics and response over centralised platform logs, operated from the management or security subscription.
  • Microsoft Defender for CloudPosture and workload protection baseline across every subscription in the hierarchy.
  • Azure Cost ManagementCost visibility and budgets against the subscription and tagging structure the landing zone establishes.
  • Azure ArcExtends management group governance and policy to servers and Kubernetes outside Azure in hybrid estates.
  • Azure BackupBackup applied through the platform baseline rather than configured per workload after the fact.

Product names and icons are trademarks of Microsoft and Amazon Web Services, reproduced unmodified from their official architecture icon libraries to identify the technologies used in these architectures. Their presence does not indicate partnership, certification or endorsement by either vendor.

Azure questions

What people ask about doing this on Azure.

Cost, lock-in and the parts that go wrong, answered before you have to ask twice.

  • What is the difference between Azure Landing Zones and just using Azure Policy?

    Azure Policy is one component. A landing zone is the whole inherited foundation: the management group hierarchy the policy attaches to, the platform subscriptions for identity, connectivity and management, the network topology, the central logging destination and the vending automation that produces new environments. Policy without the hierarchy underneath it means reapplying the same controls per subscription and hoping nobody forgets.

  • Can we deploy the Azure landing zone accelerator and manage it ourselves?

    Yes, and if you have a platform team with Bicep or Terraform capability and time to spend, that is a legitimate path. The accelerator is well documented and free. Where engagements earn their fee is the decisions it does not make for you: hierarchy shape against how you are funded, which controls enforce versus audit, IP planning, and who approves an exemption. Those are the expensive ones to get wrong.

  • How many subscriptions should we actually have?

    Enough that a blast radius is contained and cost attribution is natural, which usually means separating environments and significant workloads rather than one subscription per application. The platform needs its own for identity, connectivity and management. Beyond that the driver is how you fund and secure work, not a target number. Vending automation is what makes a larger count sustainable, so we usually design that before deciding the granularity.

  • Will Azure Policy break our existing deployments?

    It can, and that is why nothing goes straight to deny. We run preventive controls in audit mode first, publish exactly which existing and in-flight deployments would have been blocked, agree an exemption path with a named approver, then enforce. The failure mode to avoid is enforcing broadly, blocking a legitimate release, and responding with a blanket exclusion that disables the control everywhere without anyone noticing.

  • Do we need Microsoft Sentinel as part of the landing zone?

    Not to have a working landing zone. Central logging into a Log Analytics workspace is the foundational requirement, and Sentinel is the analytics and response layer over it. Whether it is justified depends on whether you have anyone to act on detections. We would rather deliver reliable central logging and an honest conversation about who responds than deploy detection tooling nobody is resourced to monitor.

  • What is the biggest cost surprise in an Azure landing zone?

    Log Analytics ingestion and retention, almost every time. It starts small, grows with every new subscription and diagnostic setting, and the bill is not obviously attributable to any workload. The second is central network inspection, which is a fixed monthly cost regardless of traffic. We size both during assessment and set retention deliberately by log type rather than applying one blanket period.

Related industries

Where this work has the most leverage.

  • Professional Services

    Governed enterprise search, document intelligence and secure copilots that respect matter confidentiality and conflict boundaries.

  • Manufacturing and Distribution

    Demand and inventory intelligence, production analytics and supplier automation built on data your planners already trust.

  • Healthcare and Community Services

    Administrative automation, policy search, workforce analytics and privacy uplift for healthcare and community providers, with clinical decisions left entirely to clinicians.

Free discovery workshop

Start with a landing zones discovery workshop.

Bring one challenge. We will assess whether Microsoft Azure is the right platform for it before recommending anything.