CAMPUX Cloud Bootcamp Capstone · Plate II · After Class Thirty-Seven ← The plates
Capstone — The Plates
Working time 20–35 hours · One public repository
Résumé line II of three
Plate II

The Miniature Landing Zone

Governance before workload: a management-group hierarchy, policies that deny rather than warn, hub-and-spoke networking with private resolution, one place all logs meet, and an access model written as code rather than folklore — the senior-track tell, built at a size one person can own.

§1

The brief, and why it reads as senior

Plate I proved you can build a workload. This one proves something rarer and better paid: that you can build the ground the workloads stand on before anyone deploys one. The brief is the platform team's, not the app team's: "Set up the environment so that a dozen future applications land in a place that is already governed — spending capped, regions constrained, logs centralised, access defined, and the network segmented — without any of them having to think about it." This is platform engineering, and it is the difference between an engineer who fills a subscription and one who designs the estate the subscriptions live in.

Microsoft has a name and a blueprint for this: the Azure landing zone, from the Cloud Adoption Framework. It is organised around eight design areas and a standard management-group hierarchy, and this Plate is a deliberately miniature version — every design area represented at the smallest honest scale, so the shape is complete even though the estate is small.1

North star · the blueprint you are miniaturising

Microsoft Cloud Adoption Framework — Azure landing zones: design areas and the enterprise-scale reference architecture. The eight design areas are the checklist real platform teams work through; naming them in an interview is the single fastest way to sound like you have done this before.
learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-areas

Deliverable
One public GitHub repository: the management-group hierarchy, the hub-and-spoke network, the deny policies, the central logging, and the access model — all as code — plus a README that maps each piece to its Cloud Adoption Framework design area and defends the miniaturisation.
§2

Requirements — the ledger you build against

Each row is a landing-zone design area at portfolio scale, the classes that taught it, and the evidence a reviewer will demand. Governance is built top-down: the hierarchy first, then the rules that flow down it.

Plate II — requirements ledger
#RequirementDesign area / classEvidence
R1A management-group hierarchy — a root, a platform group, and a landing-zones group — with subscriptions (or resource groups, if constrained) placed under each2Resource organisation · Class 7 · Build IThe hierarchy diagram; the placement rationale in the README
R2Policies that deny, not warn: allowed-regions and required-tags assigned at the management group, inheriting down — enforcement, not adviceGovernance · Class 8A create refused at the API in a disallowed region; an untagged create refused
R3A hub-and-spoke network: a hub VNet peered to at least one spoke, with the hub holding shared services and the spoke holding a workloadNetwork topology · Classes 10, 15The peering; a resource in the spoke reaching a shared service in the hub
R4Private name resolution across the topology — a private DNS zone linked so the spoke resolves private endpoints correctlyNetwork topology · Classes 14, 15A lookup from the spoke resolving a hub private endpoint to its private IP
R5Centralised logging: one Log Analytics workspace, with a DeployIfNotExists policy that puts diagnostic settings on resources automatically — coverage by lawManagement · Classes 8, 28 · Build IVA newly created resource logging without anyone opening a valve by hand
R6An access model as code: RBAC role assignments defined in the templates, scoped least-privilege, and an identity design (human roles vs workload managed identities) written downIdentity & access · Classes 8, 9The role assignments in Bicep; one README paragraph on who can do what, where, and why
R7Platform automation: the entire landing zone deploys from the repository by pipeline — the estate is code, reproducible from an empty tenant scopePlatform automation & DevOps · Classes 20, 22–23 · Build IIIA subscription- or management-group-scoped deployment run; the estate rebuilt from code

Governance is code, or it is folklore.

Two boundaries. Miniaturise honestly: the enterprise landing zone separates platform subscriptions for connectivity, identity, and management, adds Azure Firewall in the hub, a bastion, and DDoS protection, and often runs dozens of application landing zones — each a README paragraph under "what enterprise scale adds." But keep every design area present: a landing zone missing its governance policies or its centralised logging is not a small landing zone, it is a subscription with ambitions. The tell of this Plate is completeness of shape, not size of estate.

§3

The rubric — graded on the five pillars

Like Plate I, this is marked against the Well-Architected Framework's five pillars — but a landing zone weights them differently: its whole purpose is operational excellence and security for other people's workloads, so those two carry the most.

Operational excellenceWAF pillar · weighted
The entire estate is code, deploys from a pipeline, and a new platform engineer could stand it up from the repository. Governance you cannot reproduce is a rumour; this pillar is where a landing zone lives or dies.
SecurityWAF pillar · weighted
Deny policies enforce the guardrails, the network is segmented hub-to-spoke, access is least-privilege and written down, and no workload can be born ungoverned. The security is structural, not behavioural.
ReliabilityWAF pillar
The shared services the spokes depend on — resolution, logging — are designed to survive a component failure, and the estate rebuilds from code if a subscription is lost.
Cost optimisationWAF pillar
The guardrails themselves control cost: allowed-regions stops egress surprises, required-tags makes every dollar attributable, and a budget could attach to any scope. Governance that pays for itself.
Performance efficiencyWAF pillar
The platform imposes no bottleneck on the workloads that land in it — the hub is sized for its shared services, and the topology scales to more spokes without redesign.

The capping deduction fits the Plate's thesis: a policy in audit mode where the brief asked for deny, or a guardrail a workload could bypass, fails the Security pillar — because a landing zone whose rules are optional is exactly the folklore it was built to replace. Governance that does not bind is decoration.

§4

What an interviewer will ask

This Plate signals the senior track, so the questions probe judgement about scale and blast radius, not syntax.

"Why a hierarchy instead of one subscription with good habits?"
Because a rule set at the management group inherits to every subscription beneath it, now and every one created next year — governance becomes a property of the estate, not a discipline each team must remember. Habits drift; inheritance does not.
"Walk me through your management-group design."
Root, then a platform group for shared services and a landing-zones group for workloads — the Cloud Adoption Framework shape, miniaturised. Naming the platform-versus-application split is the phrase that tells an interviewer you have read the blueprint, not guessed at it.
"Deny or audit — and why?"
Deny for the guardrails the business cannot cross — regions, tags — because a landing zone exists to make the wrong thing impossible, not merely visible. Audit is for the things you are still measuring before you enforce. Knowing which is which is the governance judgement itself.
"How does a new application land here safely?"
It gets a subscription or resource group under the landing-zones group, inherits the policies and the diagnostic-settings automation the moment it is created, peers into the hub for shared services, and is governed before its first resource exists. Being born governed is the whole product.
"What did you leave out, and what would enterprise scale add?"
Your miniaturisation note: separate platform subscriptions, Azure Firewall and a bastion in the hub, DDoS, many application landing zones. Drawing the line between your version and the full one, unprompted, is the platform-thinking tell the whole Plate exists to demonstrate.
Case File · Campux Retail

The floor plan, drawn before the building

Build I's governance, grown into a platform

Build I gave Campux a governed subscription — a management group, two environments, two policies, an identity. This Plate is a graduate taking that seed and growing it into a platform: a hierarchy a dozen applications could land in, a hub the spokes share, logging every workload inherits, and access defined once in code. Where Build I proved you could govern one subscription, Plate II proves you can design the estate — which is the exact capability that moves a résumé from "cloud engineer" to "platform engineer," and the salary band with it. Campux never needed a landing zone this size; you build it anyway, because the interviewer is not hiring you for Campux's forty stores — they are hiring you for the estate you will design at their company, and this is where you show you can.

Notes
  1. The eight design areas — Azure billing and Entra tenant, identity and access management, resource organisation, network topology and connectivity, security, management, governance, and platform automation and DevOps — are Microsoft's own framing from the Cloud Adoption Framework's "ready" phase. This Plate touches each at least once; the enterprise-scale reference architecture and the accelerator that deploys it are the full-size versions, worth reading even though you build small.
  2. If your subscription cannot create management groups (some free and student accounts cannot without elevation), the graded skills survive the substitution: use resource groups under one subscription to stand in for the hierarchy, and say so in the README. Scope and inheritance are the same mechanics at any level; hiding the constraint reads worse than working within it, exactly as it did in Build I.