GCP Lesson 76 of 98

GCP Cloud Adoption Framework: Operating Model & Epics — Designing the Cloud Operating Model, the Epic Backlog as Your Execution Engine, and Wiring It Into the Landing Zone & Enterprise Foundations Blueprint

In a nutshell

A cloud operating model is the answer to a deceptively simple question: now that we have Google Cloud, who does what, who decides what, and who pays for what? It is the organizational machine — the teams, their decision rights, the funding flows, and the way one team serves another — that runs the cloud day after day. Google’s Cloud Adoption Framework (CAF) spends parts 1–5 scoring how ready you are across four themes (Learn, Lead, Scale, Secure). This part, part 6, is where that score becomes a machine that can actually run: an operating model plus a sequenced epic backlog of work, wired down into a real, deployed landing zone.

Here is the analogy that makes it click. Think of a serviced office building (a co-working space). The building operator provides the wired desks, the meeting rooms, the WiFi, the security badges, the cleaning, and the fire-safety systems — a ready-to-use, safe environment you just move into. Each company renting a floor runs its own business however it likes inside the building’s rules: they don’t lay their own electrical wiring or install their own fire alarms. There’s a short house-rules document (who’s allowed to do what), and rent is split by the desks each company actually uses. In this picture the platform team is the building operator, the product teams are the companies renting floors, the paved road is the wired-and-ready desk, the decision rights are the house rules, and chargeback is the per-desk rent. A mature cloud operating model is exactly this: a small platform team ships a safe, self-service, opinionated environment, and product teams move in and build with real autonomy inside guardrails they didn’t have to invent.

Why should a beginner care? Because this is the difference between a cloud that gets faster as it grows and one that seizes up. The same Google Cloud, with the same engineers, produces either a smooth self-service platform or a three-week-ticket bottleneck — and the only variable is the operating model. Get it right and “secure by default” and “fast by default” become the same default instead of a trade-off.

Level: Intermediate → Advanced · Time: ~45 min · This is part 6 of the Google Cloud Adoption Framework series; it stands on the four themes but is written so a newcomer to operating models can follow every step.

GCP CAF operating model — sponsor + CCoE → decision rights → platform team & guardrails → product teams → funding & maturity

Read the diagram left → right: a sponsor and a Cloud Center of Excellence charter the model; a decision-rights RACI says what the platform team mandates, recommends, or delegates; the platform team encodes the mandated guardrails as Cloud IAM and Organization Policy and ships a self-service paved road; product teams build with autonomy inside it; and a funding/showback loop plus a versioned maturity scorecard keep the machine durable as it matures Tactical → Strategic → Transformational.

Before you start

What to know first. This part assumes you have met the framework’s vocabulary in the earlier lessons. If any of the terms below feel unfamiliar, skim these siblings first:

You do not need to have built a landing zone yet; this part is where you decide how to build one.

After this lesson you will be able to:

Where this fits

Parts 1–5 of this series built the diagnostic half of Google’s Cloud Adoption Framework: the four themes (Learn, Lead, Scale, Secure), the three maturity phases (Tactical, Strategic, Transformational), and an honest, scored assessment of where your organization sits on each. This article is part 6 — the synthesis-and-execution capstone that turns that scored picture into something an enterprise can actually run. Two artifacts do that work: the operating model (who owns what, how decisions are made, how product teams pull from a platform team) and the epic backlog (the sequenced, ownable program of work that moves the gating themes up a phase). The third thing this part nails down is the hand-off most programs fumble — how the operating model and the foundational epics translate into a concrete, deployed Google Cloud landing zone built on the enterprise foundations blueprint and the Cloud Foundation Toolkit. Get this part right and the framework stops being a slide deck and becomes a funded roadmap landing real resource hierarchy, Shared VPC, and Organization Policy into your organization resource; skip it and you have four theme scores and no machine to act on them.

Google Cloud Adoption Framework — animated overview

Designing the cloud operating model

What it is. The cloud operating model is the organizational machine that runs Google Cloud day to day: the set of teams, their decision rights, the funding and accountability flows, and — above all — the interaction pattern between the people who build the platform and the people who build products on it. Google’s CAF measures readiness across four themes, but those themes only become durable if there is a standing operating model that owns them. The operating model answers the questions a scorecard cannot: Who owns the resource hierarchy? Who can change an Organization Policy? When a product team needs a new project, do they file a ticket or push a button? Who pays for the shared VPC? Who is accountable when Security Command Center flags a misconfiguration? It is the connective tissue between the Lead theme (sponsorship and the cross-functional team) and the Scale/Secure themes (the platform and guardrails those teams operate).

Why it matters. Two organizations with identical theme scores can have wildly different outcomes, and the difference is almost always the operating model. The classic failure is the central-IT bottleneck: a well-meaning platform team that insists on hand-building every project and approving every firewall rule, which throttles adoption until product teams route around it into shadow IT. The opposite failure is the anarchy of full delegation: every team gets Owner on its own projects, invents its own networking, and the security posture fragments into a hundred snowflakes that no one can audit. Google’s CAF treats the mature answer as a platform-and-paved-road model — a small platform team (often the Cloud Center of Excellence) that ships self-service, opinionated, guardrailed building blocks, and product teams that consume them with autonomy inside those guardrails. The operating model is what makes “secure by default” and “fast by default” the same default rather than a trade-off.

How to do it well. Pick an operating-model archetype deliberately, then encode it in the resource hierarchy and IAM rather than in a wiki page. The decisions that matter:

The operating-model archetypes compared:

Archetype How projects get created Networking & guardrails Speed Risk When it fits
Centralized / ticket-driven Platform team hand-builds every project Platform-owned, manual Slow Low blast radius, high bottleneck Tiny estates, heavy regulation, very early
Fully decentralized Each team self-serves with broad rights Team-owned, inconsistent Fast High — fragmented, unauditable Almost never at enterprise scale
Platform + paved road (recommended) Self-service vending inside guardrails Platform-owned guardrails, product-owned apps Fast and safe Low — uniform baseline, bounded autonomy The CAF target for Strategic+
Federated / hub-and-spoke Central platform + per-BU sub-platforms Org guardrails + BU-level autonomy Fast Medium Large multi-BU or multi-region enterprises

Artifacts, decisions, and Google Cloud tooling. The artifacts are an operating-model design document (the chosen archetype, team topology, and the platform/product contract), a RACI / decision-rights matrix mapping each decision class to mandate/recommend/delegate, the resource-hierarchy design (folder structure, project naming, IAM inheritance plan), and a FinOps model (billing-account structure, label taxonomy, showback/chargeback policy). The Google Cloud tooling that operationalizes the model is the resource hierarchy itself (organization, folders, projects), Cloud Identity / Google Workspace Groups for role assignment, Cloud IAM (custom roles, least privilege, IAM Conditions), Organization Policy Service for the mandated guardrails, Shared VPC for the platform-owned network, Cloud Billing with BigQuery billing export and Budgets & alerts for the FinOps flow, and Service Catalog / a project factory for the self-service vending that makes the paved-road archetype real.

Team topologies for the cloud operating model

The archetype table above tells you how much to centralize; team topologies tell you which teams to actually staff and how they should talk to each other. This is where the operating model stops being an abstraction and becomes an org chart you can hire against. The framing comes from Team Topologies (Skelton & Pais), and it maps almost one-to-one onto Google Cloud.

The four fundamental team types.

Team type On Google Cloud, it owns… Sizing & staffing The trap to avoid
Platform team The landing zone, the paved road (project factory, golden Terraform modules, CI/CD templates), Shared VPC, the Organization Policy set, FinOps tooling Small and senior (often 4–10). Treats the platform as a product with a roadmap and internal customers Becoming a ticket queue — hand-building instead of shipping self-service
Stream-aligned team One product or value stream end to end — build and run — inside the guardrails The majority of engineers. “You build it, you run it”: they own the on-call pager for their workload Being blocked waiting on the platform team, so they route around into shadow IT
Enabling team (the CCoE) Standards, golden patterns, upskilling, evangelism. Helps other teams become good at cloud, then leaves Small, senior, cross-functional, part-time coaching many teams Becoming permanent owners of everything (the anti-pattern below)
Complicated-subsystem team A genuinely deep specialism — e.g. the data platform (BigQuery/Dataplex), the ML platform (Vertex AI), or the network/DNS core Only stand one up when the cognitive load truly warrants it Splitting one out too early, before the complexity justifies it

The three interaction modes are just as important as the team types, because most operating-model dysfunction is really a broken interaction:

The Cloud Center of Excellence, precisely. The single most misunderstood box in the whole model. A CCoE is an enabling team, not an operations team. Its job is to set standards, build the first golden paths, diffuse skills across the organization, and then deliberately work itself out of a job — handing steady-state ownership to the platform team and the product teams. Concretely, on Google Cloud the CCoE authors the first version of the paved road (the project-factory modules, the Organization Policy baseline, the reference architectures), runs the enablement and certification program, and chairs the standards forum — but it should not be the standing owner of every production project forever. When a CCoE never withdraws, it silently becomes the central-IT bottleneck under a nicer name. The clean pattern in a mature org: the CCoE incubates the platform, the platform team productizes and runs it, and the product teams consume it. In smaller organizations one small group may wear all three hats early on — that is fine, provided the interaction modes are still explicit and the group is consciously trying to move work into the as-a-service column.

Conway’s Law is the hidden force here. Systems mirror the communication structures of the organizations that build them, so your resource hierarchy will end up shaped like your org chart whether you plan it or not. The mature move is the Inverse Conway Maneuver: design the team topology you want (small platform team, autonomous product teams), and let the Google Cloud folder/project structure and IAM boundaries follow that topology deliberately, rather than accreting a hierarchy that fossilizes yesterday’s org chart.

Decision rights and the RACI

“Define decision rights explicitly” is the bullet that programs nod at and then skip — and it is the one that decides whether the platform team is ignored (too little authority) or resented (too much). The tool is a decision-rights matrix: for every recurring decision class, record who is Responsible (does the work), who is Accountable (the single owner who signs off — exactly one per row), who is Consulted, and who is Informed — and, crucially, whether the platform team mandates, recommends, or delegates that class.

A worked decision-rights matrix for a platform + paved-road org:

Decision class Mandate / Recommend / Delegate Accountable (one) Responsible Consulted Encoded on Google Cloud as…
Resource-hierarchy & folder taxonomy Mandate Platform lead Platform team CCoE, Security Resource Manager folders + naming standard
Organization Policy guardrail set Mandate Security lead Platform + Security CCoE gcloud org-policies constraints at org/folder
IAM baseline (Groups at folders) Mandate Platform lead Platform team Security Cloud Identity Groups + folder IAM bindings
Network topology & perimeter Mandate Network lead Platform team Security, BUs Shared VPC, VPC Service Controls
Data-residency regions Mandate Compliance lead Platform team Legal gcp.resourceLocations constraint
Managed database / cache choice Recommend Product tech lead Product team Platform (data) Reference architectures + Service Catalog items
CI/CD tooling within the paved road Recommend Product tech lead Product team Platform Golden Cloud Build/Cloud Deploy templates
In-project application architecture Delegate Product tech lead Product team Free choice inside project guardrails
Per-service SLOs & error budgets Delegate Product tech lead Product team SRE/CCoE Cloud Monitoring SLOs owned by the team

The discipline that makes this real: every “Mandate” row must have a matching control in configuration. A mandate that isn’t an actual Organization Policy constraint or IAM binding is an aspiration, and drift will erase it. For example, encoding the mandated data-residency and Groups-at-folder rows looks like:

# Grant a Cloud Identity GROUP (never an individual) at the FOLDER node,
# so every project born under that folder inherits the binding.
gcloud resource-manager folders add-iam-policy-binding FOLDER_ID \
  --member="group:gcp-prod-platform-admins@example.com" \
  --role="roles/resourcemanager.folderAdmin"

# Mandate data residency as an Organization Policy v2 constraint at the org node.
# policy.yaml:
#   name: organizations/ORG_ID/policies/gcp.resourceLocations
#   spec:
#     rules:
#       - values:
#           allowedValues:
#             - in:europe-west2-locations
#             - in:europe-west1-locations
gcloud org-policies set-policy policy.yaml

Now the RACI row and the running configuration are the same object: change the mandate, change the policy; audit the policy, audit the mandate.

Funding the platform: showback, chargeback, and the FinOps operating model

Who pays for the Shared VPC, the logging project, the Security Command Center subscription, and the platform team’s time? “Funding is an operating-model decision before it is a tooling one” — decide it wrong and the platform is starved, over-built, or politically resented. There is a maturity ladder here, and most enterprises should climb it in order rather than jump to the top:

Funding model What it means Prerequisite Best for
Central cost centre The platform is funded from a central budget; teams see no bill None — simplest to start Very early / Tactical; small estates
Showback Costs are attributed and shown to each team, but not billed to them Accurate cost attribution (labels + billing export) Building cost awareness before enforcing it
Chargeback Teams are actually billed for their consumption, including a share of platform cost Trusted attribution and cultural buy-in Mature FinOps; federated multi-BU orgs
Internal product / price list The platform charges published unit prices for paved-road services A real platform-as-product operating model Transformational; large, cross-charged enterprises

Showback before chargeback is the near-universal right sequence. Chargeback without accurate, trusted attribution just moves the argument from “the cloud is too expensive” to “your numbers are wrong,” and it can perversely incentivize teams to abandon the paved road to dodge a shared-cost allocation. Show the numbers first, let teams optimize against a bill they can see but don’t yet pay, then switch on chargeback once the attribution is trusted.

The attribution machinery is the same regardless of model, and it is a foundation concern, so mandate it early:

# A per-BU budget with threshold alerts, tied to the billing account.
gcloud billing budgets create \
  --billing-account=BILLING_ACCOUNT_ID \
  --display-name="bu-diagnostics-monthly" \
  --budget-amount=25000GBP \
  --filter-labels=bu=diagnostics \
  --threshold-rule=percent=0.5 \
  --threshold-rule=percent=0.9 \
  --threshold-rule=percent=1.0

The subtle part is shared and unallocated cost: the Shared VPC, the logging sink project, org-wide SCC, and the platform team’s own projects don’t belong to any one product team. Decide the allocation rule up front — split platform cost evenly, by consumption, or absorb it centrally — and publish it, because an opaque “platform tax” is the fastest way to lose the product teams’ trust in the whole model.

How the operating model matures: Tactical → Strategic → Transformational

The four themes each mature along Google’s three phases, but so does the operating model as a whole — and it is worth reading the model dimension by dimension, because a program is usually at different phases on different dimensions at once. The point of the CAF phases here is diagnostic: find the dimension that is lagging and holding the others back, and make that the next epic.

Operating-model dimension Tactical Strategic Transformational
Archetype Centralized / ticket-driven, or unmanaged sprawl Platform + paved road for the core estate Federated paved roads; per-BU autonomy inside org guardrails
Team topology One overloaded central team does everything Distinct platform team + stream-aligned teams; CCoE enabling Thin platform, many autonomous product teams; platform-as-product
CCoE Ad-hoc champions, no standing group Funded CCoE building golden paths CCoE has diffused itself; enablement is continuous and embedded
Decision rights Implicit, contested, inconsistent Documented RACI; mandate/recommend/delegate explicit Decision rights encoded as policy; exceptions are automated, audited
Guardrails Manual review boards, gates Org Policy + IAM baseline enforced from the foundation Policy-as-code with admission-time enforcement and drift detection
Provisioning Hand-built projects, weeks of lead time Project factory vends compliant projects in minutes Fully self-service catalog; provisioning is a non-event
Funding / FinOps Central cost centre, little visibility Showback with a mandated label taxonomy Chargeback / internal price list; unit economics per product
Governance cadence Reactive, incident-driven Standing steering committee, versioned scorecard Continuous, data-driven; the scorecard is a live dashboard

Two things make this table more than a poster. First, the gating dimension is the one to fund next — the dimension that is both low and blocking others. A team stuck Tactical on guardrails cannot safely move provisioning to Strategic, because self-service without enforced Organization Policy is just faster sprawl. Second, maturity must be evidenced, not asserted. “We’re Strategic on funding” should mean there is a showback dashboard built on BigQuery billing export with a mandated label taxonomy, not we talked about FinOps. Version the scorecard over time so each phase movement is a re-assessable, evidenced change — which is exactly how the epic backlog (next) ties its definitions of done back to the model.

The epics as a work backlog

What it is. Epics are how Google’s CAF converts a scored assessment and a chosen operating model into work that can be funded, staffed, sequenced, and finished. An epic is a discrete, outcome-oriented body of work that advances one or more themes toward a higher maturity phase — the framework’s unit of execution. Where part 1 introduced epics as a concept, this part treats the backlog as a managed, living instrument: a prioritized, dependency-aware queue of epics that the steering committee funds iteration by iteration, each epic decomposing into the engineering-level user stories and workstreams that teams actually pick up in a sprint. The backlog is the bridge between “you are Tactical on Secure” (a finding) and “this quarter we deploy org-wide guardrails and reach Strategic on Secure” (a plan with an owner, a budget, and a definition of done).

Why it matters. The chasm where cloud programs die is between assessment and action, and the epic backlog is the only thing that spans it. A scorecard with no backlog is an opinion; a pile of recommendations with no sequencing is a recipe for doing the exciting epics (analytics, AI, self-service) before the foundational ones (resource hierarchy, identity, landing zone, guardrails) and discovering nine months in that nothing rests on solid ground. A well-run backlog imposes three disciplines the framework depends on: prioritization (fund the epics that move the gating theme — the one that is both low-scoring and blocking a priority outcome), sequencing by dependency (you cannot vend self-service projects before the project factory exists, which cannot exist before the resource hierarchy and IAM baseline exist), and traceability (every epic answers “why are we doing this?” with “to move theme X from phase A to phase B, which unblocks the outcome that executive Y owns”). The backlog is also what keeps the program funded: a steering committee will keep paying for work it can see advancing on a board with measurable definitions of done.

How to do it well. Write and run the backlog with these rules:

A representative epic backlog, in roughly the order dependency forces, with the operating-model and foundation linkage made explicit:

# Epic Theme(s) Target phase Depends on Google Cloud building blocks
1 Charter the operating model: CCoE, steering, decision rights Lead, Learn Tactical → Strategic CCoE charter, RACI, OKRs, executive sponsorship
2 Stand up resource hierarchy & central identity Secure, Scale Tactical → Strategic 1 Organization, folders, projects, Cloud IAM, Cloud Identity, Groups
3 Deploy the landing zone foundation Scale, Secure Tactical → Strategic 2 Enterprise foundations blueprint, Cloud Foundation Toolkit, Terraform, Config Controller
4 Implement org-wide guardrails Secure Tactical → Strategic 2, 3 Organization Policy Service, Security Command Center, VPC Service Controls, Cloud KMS
5 Build shared networking & hybrid connectivity Scale, Secure Tactical → Strategic 3 Shared VPC, Cloud Interconnect/HA VPN, Cloud NAT, Cloud DNS
6 Ship self-service environment vending Scale, Lead Strategic → Transformational 3, 4, 5 Project factory, Terraform modules, Cloud Build/CI-CD, Service Catalog
7 Run the first migration wave Scale Tactical → Strategic 3, 4, 5 Migration Center, Migrate to Virtual Machines, Database Migration Service
8 Establish FinOps & cost governance Lead, Scale Tactical → Strategic 2, 3 Cloud Billing, BigQuery billing export, Budgets & alerts, Active Assist Recommenders
9 Stand up the analytics & AI platform Scale Strategic → Transformational 5, 6, 7 BigQuery, Dataplex, Looker, Vertex AI
10 Run a continuous upskilling & certification program Learn Tactical → Strategic 1 Google Cloud Skills Boost, certification paths, partner enablement

Artifacts, decisions, and tooling. The artifacts are the epic backlog (each epic carrying the five mandatory attributes), the dependency graph that fixes the sequence, the iteration/roadmap plan (which epics this quarter, gated by dependency and gating theme), and the definition-of-done register that ties each completion to a re-assessable maturity change. The decision the backlog drives is the entire sequenced program; the most consequential single decision is placing the foundational epics (1–5 above) ahead of the headline epics (analytics, AI, self-service) because every later epic stands on them. The tooling is the program-management system of record plus the maturity scorecard versioned over time, so each “done” epic can be evidenced as a phase movement rather than an activity.

How the framework connects to the landing zone and foundation setup

What it is. This is the hand-off the rest of the framework exists to produce: the point where the operating model and the foundational epics become a deployed Google Cloud landing zone — a secure, scalable, well-governed environment built from Google’s enterprise foundations blueprint and instantiated with the Cloud Foundation Toolkit and Terraform. The CAF tells you whether you are ready and what to build first; the landing zone is what gets built. Concretely, the foundational epics (resource hierarchy, identity, guardrails, networking) are not abstract — each one maps onto a specific layer of Google’s reference foundation, so the epic “deploy the landing zone foundation” is literally “run the enterprise foundations blueprint, parameterized to our operating-model decisions.” This section is where Google’s CAF (the readiness framework) shakes hands with the Google Cloud Architecture Framework (the design framework) and the enterprise foundations blueprint (the reference implementation).

Why it matters. The most expensive mistake in a Google Cloud program is building the foundation by hand, inconsistently, before the operating model is decided — because the foundation is the one thing you cannot cheaply re-do later. Get the resource hierarchy or the network topology wrong and you are re-parenting projects and re-IP-ing VPCs a year in, with production on top. The CAF prevents this by forcing the operating-model decisions (team topology, decision rights, isolation strategy, network model, FinOps) to be made before the foundation is laid, so the landing zone encodes the right answers from day one. Equally, the enterprise foundations blueprint prevents the opposite failure — re-deriving from scratch what Google has already distilled into an opinionated, auditable, Terraform-delivered reference that bakes in the security and reliability the Architecture Framework demands. The connection runs both ways: the CAF assessment parameterizes the blueprint (your org structure, your perimeter, your folders), and the blueprint operationalizes the foundational epics (it is the deliverable for epics 2–5 above).

How to do it well. Treat the landing zone as the materialization of your operating model, layer by layer, delivered as code:

How the foundational epics map onto the enterprise foundations blueprint layers and the tooling:

Foundational epic Blueprint layer it deploys Operating-model decision it encodes CFT / GCP mechanism
Resource hierarchy & identity Organization layer Team topology, isolation strategy, IAM inheritance Folders, projects, Cloud IAM, Cloud Identity Groups, custom roles
Org-wide guardrails Organization layer (policies) What is mandated vs delegated Organization Policy Service, Security Command Center, Cloud KMS
Landing zone foundation Bootstrap + environments layers dev/non-prod/prod separation, foundation CI/CD ownership Cloud Foundation Toolkit, Terraform modules, Config Controller
Shared networking & connectivity Networking layer Centralized vs delegated networking, hybrid model Shared VPC, Cloud Interconnect/HA VPN, Cloud NAT, Cloud DNS, VPC Service Controls
Self-service vending Project/app layer Paved-road vs ticket-driven provisioning Project factory, Service Catalog, Cloud Build pipelines
FinOps & cost governance Cross-cutting Cost centre vs chargeback, attribution model Cloud Billing, BigQuery billing export, Budgets & alerts, labels

Artifacts, decisions, and tooling. The artifacts are the landing-zone design document (the blueprint parameterized to your operating-model decisions, layer by layer), the foundation Terraform repository (bootstrap, org, environments, networking, projects — with CI/CD), the org-policy and IAM baseline as code, the network topology design (Shared VPC, address plan, connectivity), and the security/observability baseline (SCC, VPC-SC perimeters, logging-sink architecture, CMEK policy). The headline decision is the isolation and network model — single vs multiple host projects, the dev/non-prod/prod folder split, and the hybrid-connectivity topology — because it is the most expensive thing to change after the fact. The tooling is the enterprise foundations blueprint as the reference, the Cloud Foundation Toolkit / Terraform Google modules (or Fabric FAST, or Config Controller) as the delivery engine, and the Google Cloud Architecture Framework as the acceptance standard the deployed foundation must satisfy.

Real-world enterprise scenario

Northwind Pathology is a fictional but realistic clinical-diagnostics network: ~7,500 staff across 40 lab sites in the UK and Ireland, a regulated estate (UK GDPR, NHS DSP Toolkit, ISO 27001), one datacenter on a lease expiring in 16 months, and a board mandate to consolidate a sprawl of lab-information-system data into a single analytics platform that can power AI-assisted reporting. Parts 1–5 of their CAF journey left them with a clear, lumpy scorecard — Strategic on Scale (a strong engineering group already running GKE), but Tactical on Lead, Secure, and Learn — and a clear gating theme: Secure is blocking everything, because clinical data cannot move until guardrails and a perimeter exist. Their principal architect, Aoife, runs part 6 to turn that into an operating model, a backlog, and a deployed foundation.

Designing the operating model. Northwind chooses the platform + paved-road archetype with a federated twist: a central Platform team (8 engineers, the home of the CCoE) owns the landing zone, guardrails, Shared VPC, and FinOps; each of three clinical business units gets a stream-aligned squad that owns its workloads inside the guardrails. Decision rights are written down explicitly: the Platform team mandates the org-policy set, the IAM baseline, the network perimeter, and CMEK; recommends managed-service choices; and delegates application architecture inside a project. The model is encoded in the hierarchy — an Organization with folders for bootstrap, common (logging, security, network host projects), and dev / non-prod / prod, each with a per-BU sub-folder — and IAM is granted to Cloud Identity Groups at the folder level, never to individuals. FinOps is decided as showback first, chargeback by year two, attributed via a mandated cost-centre / bu / env label taxonomy and BigQuery billing export. The artifacts: an operating-model design doc, a decision-rights RACI, the resource-hierarchy design, and the FinOps model.

The epic backlog. Aoife sequences the backlog by dependency, foundational epics first, with Secure (the gating theme) front-loaded:

# Epic Theme(s) Target phase Definition of done (re-assessable)
1 Charter Platform team / CCoE + steering Lead, Learn Tactical → Strategic Funded CCoE, quarterly steering chaired by COO, RACI signed
2 Resource hierarchy & central identity Secure, Scale Tactical → Strategic Org, folders, Groups-based IAM live; no individual Owner grants
3 Landing zone foundation (blueprint) Scale, Secure Tactical → Strategic Enterprise foundations blueprint deployed via CFT/Terraform, in CI/CD
4 Org-wide guardrails + data perimeter Secure Tactical → Strategic Org Policies enforced, SCC Premium on, VPC-SC perimeter around clinical data
5 Shared networking & hybrid connectivity Scale, Secure Tactical → Strategic Shared VPC + HA VPN/Interconnect to the datacenter live
6 FinOps & cost governance Lead, Scale Tactical → Strategic Label taxonomy enforced, billing export + budgets, showback live
7 First migration wave + DC-exit plan Scale Tactical → Strategic First LIS workloads migrated; dated datacenter-exit plan
8 Self-service environment vending Scale, Lead Strategic → Transformational Project factory + Service Catalog; squads self-provision compliant projects
9 Clinical analytics & AI platform Scale Strategic → Transformational BigQuery + Dataplex + Vertex AI platform live inside the perimeter

Connecting to the landing zone and foundation. Epic 3 is delivered as the enterprise foundations blueprint parameterized to Northwind’s decisions and instantiated with the Cloud Foundation Toolkit Terraform modules: the bootstrap layer holds org-level state in a seed project with its own CI/CD; the organization layer applies the org-policy set (disable default network, restrict external IPs, restrict service-account key creation, enforce CMEK, restrict resource locations to europe-west2/europe-west1 for data residency) and the Groups-based IAM baseline; the environments layer lays down the dev/non-prod/prod folders with per-BU sub-folders; and the networking layer (epic 5) deploys Shared VPC host projects in common, HA VPN then Cloud Interconnect to the datacenter, Cloud NAT, Cloud DNS, and the VPC Service Controls perimeter (epic 4) that rings the clinical-data projects so BigQuery and Cloud Storage cannot be reached from outside the perimeter. Security Command Center Premium is enabled at the org, Cloud KMS CMEK is mandated for clinical data, and centralized Cloud Logging sinks land in a logging project in common. Every one of these is a parameter traceable back to a row in the decision-rights matrix. Once the foundation is live, epic 8 adds the project factory and Service Catalog on top, so the three BU squads provision compliant projects by button — the paved road closing the loop back to the operating model.

The measurable outcome. Thirteen months later Northwind re-assesses. Secure reaches Strategic — org-wide guardrails enforced and evidenced in Security Command Center, a VPC-SC perimeter around all clinical data, CMEK on every regulated bucket, and a clean NHS DSP Toolkit submission citing the foundation as evidence. Lead reaches Strategic (funded Platform team/CCoE, COO-chaired steering, signed RACI). Scale reaches Strategic with the landing zone live, the first two LIS workloads migrated, the datacenter-exit on track for the lease deadline, and 74% of new projects provisioned through the project factory rather than by hand. The clinical analytics platform on BigQuery + Dataplex + Vertex AI goes live inside the perimeter and begins powering AI-assisted draft reporting — a Transformational capability on the Scale theme that the board is now funding as a product line. The scorecard that started spiky and Tactical on three themes is balanced and a phase higher, and — the part that matters to an auditor — every control is evidenced in a tool, not asserted in a slide.

Going deeper

For the experienced reader, the operating model is where organizational design and Google Cloud primitives fuse. A few advanced nuances separate a model that survives contact with reality from one that looks good on a slide.

Encode decision rights with precision, not just folder IAM. Mandate/recommend/delegate is a coarse instrument; Google Cloud gives you finer ones for the hard cases:

Roll guardrails out in dry-run before you enforce. The scariest moment in the operating model is switching on a mandate across thousands of existing projects. Organization Policy supports a dry-run mode — a dryRunSpec on the policy (or dry-run enforcement in the console) — so a constraint’s violations are logged without blocking anything. You watch the audit logs, find the workloads that would break, remediate them, and only then promote the same rule to live spec. Treat every new mandated constraint as dry-run → observe → enforce; skipping the dry run is how a well-intentioned guardrail causes an outage.

Policy-as-code and drift are what make maturity real. A mandate encoded once and never checked degrades silently. Mature orgs run the guardrails as code with continuous reconciliation: Config Controller / Config Connector to provision and re-converge GCP resources from declarative KRM; Policy Controller (Gatekeeper/OPA) to block non-compliant config at admission time on GKE; and Security Command Center posture management to detect drift from the intended baseline. Terraform in CI is the source of truth for the foundation; a nightly plan that shows drift is your early-warning that someone changed a mandate by hand. The operating-model dimension “guardrails: Transformational” means exactly this — admission-time enforcement plus drift detection, not a review board.

Treat the platform as a product, and measure it. The difference between a platform team and central IT under a new name is whether the platform has customers, a roadmap, and metrics. Track adoption of the paved road (what % of new projects come through the factory — Northwind’s 74%), lead time to provision a compliant environment, DORA metrics for the golden CI/CD, and support-ticket volume (which should fall as self-service rises). If paved-road adoption is flat, the road isn’t paved well enough — the fix is product work, not a mandate forcing teams onto a bad path.

Mind cognitive load and the thinnest viable platform. Team Topologies’ core insight is that the platform exists to reduce the cognitive load on stream-aligned teams. That implies a discipline: build the thinnest viable platform that removes the most load, and resist gold-plating. A platform team that ships everything imaginable becomes a bottleneck of a different kind — a huge surface no small team can run. Keep the platform team small and senior precisely so it is forced to prioritize the highest-leverage paved roads.

Federation without a second bottleneck. The federated/hub-and-spoke archetype is powerful for multi-BU enterprises but has a failure mode: each BU sub-platform quietly re-creates the central-IT bottleneck at BU scale. The mature pattern keeps the mandated guardrails (org policy, IAM baseline, perimeter) strictly central and non-negotiable, while genuinely delegating the recommended and delegated classes to BU sub-platforms — so autonomy is real but the org-wide invariants still hold. When two BUs must interoperate, define an explicit contract (shared VPC attachment, a published API, a data-exchange perimeter bridge) rather than letting one BU reach into another’s projects.

Know the hard edges of the hierarchy. Some operating-model decisions are expensive precisely because Google Cloud makes them sticky: the folder hierarchy is limited in depth (up to 10 levels) and you cannot re-parent an Organization; projects can be moved between folders but re-parenting a live estate is disruptive; and Organization Policy inheritance has real merge semantics (inheritFromParent, reset, and allow/deny value merging) that you must reason about deliberately — a child folder can loosen or tighten an inherited constraint in ways that surprise people. When strict isolation is a hard requirement (M&A, a regulated ring-fence, a sovereign boundary), the right primitive is sometimes a second Organization rather than a folder, accepting the cost of cross-org identity and billing federation. These are the “measure twice, cut once” decisions the CAF wants made before the foundation is laid — because they are the ones you cannot cheaply undo.

Deliverables & checklist

By the end of the Operating Model & Epics phase you should have produced:

Common pitfalls

  1. Laying the foundation before deciding the operating model. Hand-building the resource hierarchy and network “to get moving,” then discovering the team topology or isolation strategy demands a different shape — and re-parenting projects with production on top. Avoid it by making the operating-model decisions (topology, decision rights, isolation, network, FinOps) explicit before the foundation, and encoding each as a foundation parameter.
  2. The central-IT bottleneck. A platform team that insists on hand-building every project and approving every firewall rule throttles adoption until product teams route around it into shadow IT. Avoid it by shipping self-service paved-road assets (project factory, Service Catalog, golden Terraform) so the compliant path is the fast path, and measuring paved-road adoption %.
  3. Epics whose “done” is an activity, not a maturity change. “Ran a security workshop” is an activity; “moved Secure to Strategic, evidenced in Security Command Center” is an outcome. Avoid it by writing every epic’s definition of done as a re-assessable phase change tied to an owner and sponsor.
  4. Sequencing by excitement instead of dependency. Launching the analytics/AI or self-service epics before the resource hierarchy, identity, and guardrails exist builds a penthouse with no building under it. Avoid it by drawing the dependency graph and front-loading the foundational epics, even though they demo poorly.
  5. Re-deriving the foundation from scratch. Writing bespoke Terraform that re-invents what the enterprise foundations blueprint already distils — and missing the security and reliability defaults Google has baked in. Avoid it by starting from the blueprint and the Cloud Foundation Toolkit (or Fabric FAST), parameterized to your decisions, and using the Architecture Framework as the acceptance standard.
  6. An operating model that lives in a wiki, not in IAM and Org Policy. A decision-rights document nobody enforces is fiction; if “mandated” guardrails are not actually set as Organization Policy constraints, they are aspirations. Avoid it by encoding the model in the hierarchy, IAM (Groups at folders), and Organization Policy — so the model is the configuration, and drift is detectable.

Practice challenges

Work these in order — they climb from reading a symptom to designing a rollout. Try each before opening the solution.

  1. (Beginner) Name the anti-pattern and the target. A product team complains that every new project takes three weeks because the central team hand-builds and approves each one. Name the operating-model anti-pattern and the archetype they should move toward. <details><summary>Solution</summary>

    The anti-pattern is the central-IT bottleneck (over-centralized, ticket-driven). The target is the platform + paved-road archetype: a small platform team ships self-service, guardrailed project vending so a compliant project is created in minutes.

    Why: the fix is to make the compliant path the fast path, not to add more approvers. </details>

  2. (Beginner) Classify three decisions. For a platform + paved-road org, classify each as mandate, recommend, or delegate: (a) the data-residency region for regulated data; (b) which NoSQL database a team uses; © the microservice boundaries inside a team’s own project. <details><summary>Solution</summary>

    (a) Mandate — data residency is an org-wide, non-negotiable guardrail (gcp.resourceLocations). (b) Recommend — a strong default with guardrails and an escape hatch. © Delegate — in-project application architecture is the product team’s own call.

    Why: mandate the few org-wide invariants; delegate everything that is safely a team’s own concern; recommend the middle. </details>

  3. (Intermediate) Grant at the right level. Write the gcloud that grants the group gcp-network-admins@example.com the roles/compute.networkAdmin role on folder folders/223344556677, and state why you grant to a Group at a folder rather than to a user on a project. <details><summary>Solution</summary>

    gcloud resource-manager folders add-iam-policy-binding folders/223344556677 \
      --member="group:gcp-network-admins@example.com" \
      --role="roles/compute.networkAdmin"
    

    Why: granting to a Group means membership changes (joiners/leavers) never require touching IAM; granting at the folder means every project born under it inherits the binding — the operating model is expressed once, not re-applied per project. </details>

  4. (Intermediate) Encode a mandated guardrail. Write the Organization Policy v2 YAML that restricts resource locations to europe-west2 and europe-west1 for the whole organization 123456789012, and the command to apply it. Where in the hierarchy should it live? <details><summary>Solution</summary>

    # policy.yaml
    name: organizations/123456789012/policies/gcp.resourceLocations
    spec:
      rules:
        - values:
            allowedValues:
              - in:europe-west2-locations
              - in:europe-west1-locations
    
    gcloud org-policies set-policy policy.yaml
    

    Set it at the organization node so every folder and project inherits it; a specific folder may tighten (never loosen a compliance mandate) if needed.

    Why: a mandated decision-rights row is only real when it is an actual inherited constraint on the hierarchy. </details>

  5. (Advanced) Design a RACI row and roll it out safely. For the decision class “restrict external IPs on VMs org-wide,” write the RACI (who is Accountable, Responsible, Consulted) and describe how you would roll the constraint out across thousands of existing projects without causing an outage. <details><summary>Solution</summary>

    RACI — Accountable: Security lead; Responsible: Platform team; Consulted: product tech leads, network lead; classification Mandate. Encode as the compute.vmExternalIpAccess boolean constraint. Roll out dry-run first: apply the policy with a dryRunSpec (enforce) so violations are logged, not blocked; watch audit logs to find VMs relying on external IPs; remediate (Cloud NAT for egress, load balancers for ingress); then promote the rule from dryRunSpec to live spec.

    name: organizations/123456789012/policies/compute.vmExternalIpAccess
    spec:                 # start with this section EMPTY of enforce, or absent
    dryRunSpec:
      rules:
        - enforce: true
    

    Why: dry-run → observe → enforce turns a potentially org-wide outage into a measured migration. </details>

  6. (Advanced) Choose and design the funding model. A three-BU federated org is in its first year on Google Cloud. Choose showback vs chargeback for year one, and design the minimum label taxonomy plus the data source that makes it work. <details><summary>Solution</summary>

    Choose showback for year one (chargeback in year two once attribution is trusted). Minimum mandated label taxonomy: bu, cost-centre, env, app, owner, stamped automatically by the project factory. Data source: BigQuery billing export at the billing account, joined to the labels, driving per-BU showback dashboards and Budgets & alerts. Decide the shared/unallocated-cost rule (Shared VPC, logging, SCC) up front.

    Why: chargeback without trusted attribution just relocates the argument to “your numbers are wrong” and can push teams off the paved road to dodge allocations; show first, bill later. </details>

Common beginner mistakes

Glossary

What’s next

With the operating model designed, the epic backlog sequenced, and the landing zone connected to the enterprise foundations blueprint, part 7 of the Google Cloud Adoption Framework series turns to running the program in steady state — governance, FinOps, and continuous re-assessment that keep every theme advancing after the foundation is live.

GCPCloud Adoption FrameworkOperating Model & EpicsEnterprise
Need this built for real?

Vinod is a Senior Cloud Architect (22+ yrs) — available for Azure / AWS / GCP architecture, landing zones, and migrations.

Work with me

Comments