Practice Exams:

A Clean Azure Landing Zone for a Small Team

 

Azure landing zones are sometimes presented through enterprise diagrams with many management groups, shared services, policy layers, hub networks, security tooling, and automation pipelines. Those diagrams solve real problems, but a small team can misread them as a requirement to reproduce enterprise complexity before deploying its first useful workload.

A landing zone is better understood as a prepared environment in which workloads can be deployed with known rules for identity, governance, networking, security, monitoring, and ownership. The principles scale down. A small organization may need fewer subscriptions and simpler networking, but it still benefits from deciding who can administer the environment, where production lives, which policies are non-negotiable, how logs are collected, and how costs are attributed.

Microsoft distinguishes platform landing-zone concerns from the application landing zones that host workloads. A small team does not need separate departments to preserve that distinction. It simply needs to know which choices are shared platform decisions and which can vary by application. That prevents every workload from inventing its own identity, logging, network, and policy baseline.

This connects directly to AZ-104 because Azure administrators implement many of the controls that make a landing zone operable. The goal is not to create the largest hierarchy. It is to create enough structure that the environment can grow without requiring a redesign every time the second or third workload arrives.

Start with boundaries the team actually needs today

The first design question is not “how many management groups should we create?” It is “which things need independent policy, billing, access, or lifecycle boundaries?” Subscriptions are strong boundaries for quota, billing scope, RBAC, policy assignment, and operational separation. That makes them useful for separating environments or business units when the distinction is meaningful.

A very small team may begin with separate production and non-production subscriptions. Another organization may need a shared platform subscription plus one or more workload subscriptions. If regulatory or ownership requirements differ sharply, more separation may be justified.

Too little structure creates a shared bucket where every team can affect every workload. Too much structure creates administrative overhead, duplicated networking, and policy sprawl. The right starting point is the smallest hierarchy that expresses real governance differences.

Management groups become valuable when several subscriptions need common policy or access. If there are only two subscriptions, the hierarchy can remain simple. The architecture should leave room to add levels later without creating arbitrary empty layers today.

Identity and privileged access should be defined before workload teams arrive

A landing zone should make it obvious who can administer subscriptions, who can deploy applications, who controls networking, and who can change security policy. Those privileges should not be granted ad hoc as each new project asks for access.

Azure RBAC assignments can be made to groups rather than individuals so access follows team membership. Privileged roles should be narrower than “Owner everywhere” wherever practical. Emergency access should be designed separately from routine administration.

Small teams often argue that separation of duties is unnecessary because the same few people perform every role. Even then, using distinct groups for platform administration, workload contribution, and read-only operations creates a model that can survive staff growth. The same person can initially belong to several groups without forcing the permissions themselves to remain blended forever.

The Azure Administrator role is easier to operate when identity boundaries are part of the platform design instead of a collection of direct assignments scattered across resources.

Policy should prevent expensive mistakes, not encode every preference

Azure Policy can audit or enforce configuration across scopes. That power makes it tempting to turn every architectural opinion into a policy definition. A small team should start with controls that prevent meaningful risk or create important visibility.

Examples might include restricting unsupported regions, requiring specific tags, auditing public IP exposure, enforcing diagnostic settings where appropriate, limiting resource types, or checking security baselines. The exact set depends on the organization.

Policy should have an owner and an exception path. If a rule blocks legitimate deployment and nobody can explain how to request an exemption, teams will either fight the platform or look for ways around it. If every exception is permanent, the policy is not really governing anything.

Audit effects can be useful before deny effects. They let the team see how existing workloads would behave under a proposed control. Once the environment is understood, selected policies can move from visibility to enforcement.

Networking should be simple enough that the team can explain every path

A landing zone does not automatically require a large hub-and-spoke topology. Centralized networking is useful when workloads share firewalls, VPN or ExpressRoute connectivity, DNS, private endpoints, or other platform services. For a small environment with independent internet-facing applications, a simpler virtual-network model may be easier to operate.

The design should answer several practical questions. Which networks can talk to each other? Where does internet egress occur? How do administrators reach private resources? How will on-premises connectivity work if it is required? Who owns DNS? Where are network security controls enforced?

If the answers require a hub, build a hub. If they do not, avoid creating one solely because a reference architecture contains it. Complexity becomes justified when it centralizes a real shared dependency.

Teams that expect hybrid connectivity, centralized firewalling, or extensive private networking should involve the skills represented by AZ-700 early, because retrofitting shared routing and DNS after many applications are deployed can be disruptive.

Logging and monitoring should be a platform capability from the beginning

Small teams often postpone centralized monitoring until the environment becomes “large enough.” Unfortunately, the first serious incident can happen before that milestone.

A landing zone should define where important platform logs go, who can access them, how long they are retained, and what baseline alerts exist. Activity logs, security signals, resource diagnostics, cost alerts, and service health all contribute different evidence.

The goal is not to ingest every possible log at maximum retention. Logging has cost and operational overhead. The team should identify what it needs for troubleshooting, security investigation, compliance, and operational metrics, then configure collection deliberately.

Centralization helps because responders do not have to discover during an incident that one workload stores logs in a local workspace nobody can access while another never enabled diagnostics at all.

Resource names and tags often receive attention only because templates ask for them. Their real value appears during incident response, cost analysis, automation, and ownership changes.

A resource group should usually collect resources that share a meaningful lifecycle or administrative boundary. It should not become the permanent home for every resource created by one department regardless of dependency. Deleting, moving, securing, and monitoring resources is easier when the grouping reflects how the workload is actually operated.

Tags can identify application, owner, environment, cost center, data classification, or other dimensions the organization needs. A small controlled vocabulary is more useful than dozens of optional keys. Policy can help enforce or inherit important tags once the taxonomy is stable.

Naming conventions should optimize recognition rather than produce unreadable strings. Operators should be able to identify environment, workload, and resource purpose quickly without relying on tribal knowledge.

Budgets and cost ownership belong in the foundation

Cloud cost problems are easier to prevent when each subscription or workload has an owner and a budget before spending grows. Azure budgets and cost alerts provide early warning when usage deviates from expectations.

Cost ownership should align with the resource model. If several unrelated applications share one resource group and have inconsistent tags, chargeback or showback becomes harder. If production and experimentation share the same subscription with the same privileges, an expensive test can be difficult to separate from business-critical spend.

A landing zone does not have to implement a mature FinOps program on day one. It should make future cost analysis possible. Clear scope, tags, budgets, and owner information are enough to avoid many painful reconstruction exercises later.

Broader Azure governance becomes much easier when cost responsibility is treated as part of resource ownership rather than a report produced after the invoice arrives.

Infrastructure as code prevents the platform from becoming a handcrafted artifact

A landing zone is infrastructure that will change. New subscriptions appear, policies evolve, network ranges expand, diagnostic destinations change, and role assignments are updated. Managing all of that manually makes the platform difficult to reproduce and review.

Bicep, ARM templates, Terraform, or another infrastructure-as-code approach can define the repeatable parts of the environment. The important property is not the language. It is that changes are expressed as versioned configuration that can be reviewed and applied predictably.

For a small team, start with the elements that cause the most pain when inconsistent: subscription-level policy assignments, resource groups, shared networking, role assignments, logging configuration, and common workload scaffolding. The team does not need to automate every portal setting before gaining value.

If Terraform is selected, the broader Terraform workflow reinforces the same operating idea: infrastructure definitions should be versioned, reviewed, and repeatable rather than dependent on manual memory.

Even a five-person team benefits from knowing which controls belong to the platform and which belong to the workload. The platform might own subscription creation, baseline policy, identity groups, DNS, shared network connectivity, log destinations, and budgets. Application owners might choose service SKUs, application-level monitoring, data models, scaling rules, and deployment cadence within those boundaries.

This separation does not require separate departments. The same engineer may perform both roles, but distinguishing them makes architecture decisions clearer. A platform rule should be stable enough to support many applications. An application decision should be free to change without redesigning the whole environment.

This is a useful bridge toward AZ-305 architecture thinking. Good cloud platforms create constraints that reduce risk while leaving workload teams enough freedom to solve their own problems.

A small landing zone should be designed to evolve, not to predict everything

The team will learn. A second application may reveal the need for shared DNS. A regulatory requirement may justify a new management-group boundary. Growth may require central firewalling. A merger may introduce another tenant or network. The initial landing zone should make those changes possible without pretending they can all be predicted.

That means avoiding hard-coded assumptions that are difficult to undo: one giant address space with no growth plan, direct user assignments everywhere, manually created policy exceptions, undocumented shared resources, and workloads that depend on one administrator’s personal knowledge.

The most useful foundation is boring: clear subscriptions, understandable RBAC, a small policy baseline, known network paths, centralized enough logging, consistent ownership metadata, budgets, and repeatable deployment.

A small team does not need a miniature copy of the largest enterprise reference architecture. It needs the same design principles applied at the scale of its real problems. When those foundations are clean, growth adds structure instead of forcing a rescue project.

Related Posts

• How Routers Really Decide Where Packets Go

• How Azure Subscriptions, Policy, and Locks Work Together

• VLANs Are Simple Until the Trunk Is Wrong

• Identity Is the New Security Perimeter

• Spanning Tree Still Matters in a World of Faster Switches

• ACLs Work Best When You Can Predict the Packet Flow

• Troubleshooting Layer 2 Before Blaming Layer 3

• EtherChannel: When Bundling Links Helps and When It Hides a Problem

• Network Automation Starts With Structured Data, Not Python

• Vector Search Quality Starts Long Before You Pick a Database