Skip to content

Architecture Reference

This page describes how the Managed Cloud Platform (MCP) is organised as a whole: the layers, the technology domains, the management group hierarchy and the way hub and spokes fit together. It explains the why. For the exact resources, layers and Terraform behaviour, see Platform.

The platform exists to give workload teams a foundation that is:

  • secure by design,
  • highly available,
  • performant and predictable,
  • agile and scalable,
  • standardised and automated as much as possible.

Teams get what they need through automation or self-service, so they can spend their time on the workload and not on the common plumbing around it.

Three layers

A workload is built on three layers. Each layer has its own owner.

Layer What it is Who owns it
Microsoft Azure The raw services: connectivity, security, storage, compute Microsoft
The platform (landing zone) A management overlay on Azure that keeps the environment compliant, keeps cost in check and offers ready-to-use services: hub, policies, spoke baseline The platform team (XMMS or your own team)
The workload The business solution itself: the thing that creates value for the organisation The workload team (consumer)

Because the workload is built on the platform, the workload team does not have to solve the generic requirements (network isolation, central logging, baseline policies) again. See Responsibilities for the exact split.

Technology domains

The platform combines five technology domains. Think of them as the utilities needed to run a business solution.

Domain What it covers Typical technology
Identity and access management Identification, authentication, authorisation and accountability Microsoft Entra ID, Privileged Identity Management (PIM)
Infrastructure Physical and virtual infrastructure and the software components around it Azure Virtual WAN, Azure Firewall, virtual machines and other native Azure resources
Security Protection against, and resilience to, harm from others Microsoft Defender for Cloud and, optionally, Microsoft Sentinel
Development Infrastructure as code, built and deployed through pipelines Azure DevOps or GitHub, Terraform, the Xebia.Mcp module
Governance Keeping the whole consistent: decisions, policy enforcement, exception management, compliance monitoring and reporting Azure Policy, management groups, tags, the decision process in Governance

The platform team provides the management overlay on top of these domains: the automation that configures them, and the self-service entry points (standard changes).

Management group hierarchy

The management group tree gives a hierarchy for access control (RBAC), policy and tags, and isolates parts of the environment from each other. A common design has these levels:

Level Purpose
1. Tenant root Created by Azure with every Entra ID tenant. Everything is below it.
2. Landing zone (organisation) Separates this platform from other landing zones in the same tenant. Normally you have one. A second can be needed, for example when an externally managed platform must live in the same tenant: it is then fully isolated from the others.
3. Usage type (canary / production) The platform is infrastructure as code, so new code must be tested before it reaches production. A copy of the code and, where needed, of the hierarchy is used for canary.
4. Platform area Separates workloads that need different policies, tags and access (see below).
5. Subtype Allows small differences in policy or access inside one area, for example corp and online under landing zones.
6. Workload / spoke The subscriptions of a workload.

The areas on level 4:

Area Contains
Platform The platform's own subscriptions (management, connectivity, identity) and shared services. Policies may be less restrictive where a platform resource requires it.
Landing zones All business workloads. Corp is for internal workloads, online for internet-facing ones; the split lets you isolate the corp spokes from internet access.
Shared Shared components used by several workloads
Sandbox Subscriptions for experiments. Isolated by default: no connectivity to other workloads or to internal resources.
Decommissioned A recycle bin. Subscriptions that left production are moved here before they are cancelled.

The tree that MCP creates is shown in Platform.

What the hierarchy is used for

Mechanism How it is used
Access control Entra ID groups get Azure roles on management groups, subscriptions or resources. See Identity and access model.
Azure Policy Standards are enforced and compliance is assessed at scale, with remediation for existing and new resources. Typical uses: allowed regions, consistent tags, diagnostic logs to Log Analytics.
Microsoft Defender for Cloud Security policies and regulatory initiatives are applied by placing a subscription under the right management group.
Tags Key-value metadata for cost allocation, ownership and automation. See Naming and tags.
Management groups Containers that carry the policy and RBAC assignments above to many subscriptions at once.

Hub and spokes

The network is a hub-and-spoke design. Traffic between spokes, towards on-premises networks and towards the internet always passes the hub, where it can be inspected and authorised.

  • The hub offers the shared services: connectivity, firewalling, DNS, monitoring and governance.
  • A spoke is an isolated subscription that hosts one workload in one environment.
  • In a secured virtual hub (Virtual WAN with Azure Firewall), routing through the firewall is automated, so spokes do not need their own user-defined routes for it.

See Service types for what the hub offers and DNS design for name resolution. What the platform builds inside a spoke is described in Spoke canvas, and why a spoke gets its subscription from a provisioning step and not from a pool in Subscription provisioning.

A workload and its spokes

A workload identifies, isolates and gives ownership to one business solution. It is the top of a hierarchy:

  • the Entra ID groups and roles of the team (Identity and access model),
  • optionally a project in Azure DevOps,
  • one spoke per environment, normally one for production data and the others for non-production data.

Spoke variants (standard, sandbox, managed) are described in Service types.

IP plan structure

All address ranges come from one central IP plan, because overlapping ranges break routing. A workable structure is to reserve one large block per Azure region and divide it by purpose:

Block Use
Hub, per platform environment (prod, canary) Connectivity (virtual hub, Bastion, build agents, DNS resolver, gateways), management and identity networks
Reserved inside the hub Room to grow, for example for client address pools of a point-to-site VPN
Sandbox An isolated range for sandbox subscriptions
Workload spokes The bulk of the block, handed out per spoke (a /24 is a common default)
Core IT / special purposes Ranges for platform-adjacent systems

Keep the plan in one place

Keep the plan as a document or table in the repository next to the configuration, and update it in the same pull request that adds a spoke or region. Ask your network team which ranges on-premises already uses.

Related: Plan your IP range and subnets and Add a region.