Migrate the operating model, not just the workloads
Cloud programmes rarely stall on technology. They stall when workloads move but tickets, change windows and environment requests stay the same. Sequence by capability and run the landing zone as a product.
On this page (3 sections)
The lift-and-shift phase of a cloud programme is the easy part. The workloads run, the invoices arrive, and then the organisation discovers that nothing about how it operates has actually changed — the same tickets, the same change windows, the same three-week wait for an environment.
You do not finish a cloud migration. You finish migrating the operating model, and the workloads follow.
Sequence by capability, not by application
A migration plan organised as a list of applications produces a list of lift-and-shifts. A plan organised around capabilities — identity, networking, a landing zone, a delivery pipeline, an observability baseline — produces a platform that the applications then move onto. The second plan is slower to show its first migrated workload and far faster to show its tenth.
- Establish the landing zone: management groups, policy, network topology, identity.
- Stand up the delivery pipeline and infrastructure-as-code workflow.
- Migrate a low-risk workload end to end to prove the path.
- Only then migrate at pace, because the path is now repeatable.
Make the landing zone the product
The landing zone is not scaffolding you throw away after migration — it is the product the platform team maintains for the life of the estate. Express it as code so it is reviewable and reproducible. A management-group hierarchy in Terraform is a few lines:
resource "azurerm_management_group" "platform" {
display_name = "Platform"
parent_management_group_id = azurerm_management_group.root.id
}
resource "azurerm_management_group" "landing_zones" {
display_name = "Landing Zones"
parent_management_group_id = azurerm_management_group.root.id
}
resource "azurerm_management_group_policy_assignment" "require_tags" {
name = "require-cost-center"
management_group_id = azurerm_management_group.landing_zones.id
policy_definition_id = data.azurerm_policy_definition.require_tag.id
}A policy that requires a cost-centre tag at the landing-zone level is worth more than any dashboard. It makes untagged spend impossible to create rather than merely visible after the fact.
Budget for the operating model
The line item most transformation plans miss is the cost of running the platform after migration: the platform team, the guardrails they maintain, the FinOps loop that keeps spend honest. That is not overhead on top of the migration. It is the thing the migration existed to build.
NinetyX Cloud Practice
Cloud & Platform Engineering
Engineers who design landing zones on Microsoft Azure and Google Cloud and plan the migrations into them. They write about the operating model as much as the architecture.
Where to next
Plan a landing zone your team can run
We design the management hierarchy, policy, network topology and identity as infrastructure as code, committed to your repositories and deployed through your pipelines.
See the Multi-Cloud Consulting servicesRelated articles
Landing zones that make the secure path the easy one
A landing zone is the governed environment every new workload is deployed into. Enforce it with policy rather than review and version all of it, and teams will build on it instead of around it.
NinetyX Cloud Practice · · 2 min read
Laying out a Microsoft Fabric lakehouse for analytics
Fabric puts the lake, the warehouse and Power BI on one storage layer. That only simplifies things if medallion layers, workspace ownership and Direct Lake models are settled before the first load.
NinetyX Data & AI Practice · · 3 min read
Governed data comes before useful AI
AI work stalls in the data layer far more often than in the model. A catalogue, access granted at the source and lineage you can query are the groundwork most plans leave out.
NinetyX Data & AI Practice · · 2 min read