Skip to main content
Cloud DevOps Solutions
Get a quote Talk to an engineer

Cloud platforms

Run Google Cloud with clear structure and predictable spend

Google Cloud is Google's cloud platform, known for BigQuery, managed Kubernetes on GKE and a clean project-based resource model. We design Google Cloud organisations, folders, projects, IAM, networking and billing controls, and provision them with Terraform so data and container platforms run securely and cost stays explainable.

Key takeaways

  • The organisation, folder and project hierarchy is how you apply IAM and organisation policy, so design it before creating projects.
  • Service accounts are the main credential risk: prefer attached identities and Workload Identity Federation over downloaded keys.
  • Shared VPC separates network ownership from workload ownership and suits multi-team estates.
  • BigQuery and GKE are the strongest reasons to choose Google Cloud, but both need cost and quota discipline.
  • The smaller service catalogue and market share mean fewer specialists, which matters for hiring and support.

What teams use Google Cloud for

Data and analytics platforms

BigQuery, Cloud Storage and Pub/Sub pipelines for teams where analytics is central to the product.

GKE container platforms

Managed Kubernetes in Autopilot or Standard mode, with workload identity and private clusters.

Machine learning workloads

Vertex AI and GPU or TPU capacity for training and serving, with budgets and quotas controlled.

Startups on cloud credits

Environments that use credits sensibly while still being structured so they survive the end of the programme.

Google Workspace organisations

Companies whose users and groups already live in Google identity and want one directory.

Why teams pick Google Cloud, and where it differs

Google Cloud is rarely chosen because it has the most services. It is chosen for specific strengths: BigQuery for analytics, a mature managed Kubernetes service in GKE, strong networking and a straightforward project model. Teams that came from Google Workspace, or whose product is built around data and machine learning, often find it the most natural fit.

The platform behaves differently from AWS and Azure in ways that surprise newcomers. The global VPC, project-scoped APIs, and an IAM model built around groups and inheritance reward planning. Our Google Cloud consulting work starts by making those structures deliberate, so that the platform is easy to reason about a year later.

Resource hierarchy and project structure

Everything on Google Cloud lives in a project, and projects sit under folders under an organisation. IAM policies and organisation policies inherit downward, so the hierarchy is where governance happens.

We keep it simple and map it to how you actually work:

LevelTypical use
OrganisationRoot policies, audit log sinks, billing links
FoldersEnvironment (production, non-production) or team groupings
ProjectsOne per workload and environment, plus shared network and logging projects

Separate projects are a strong boundary for IAM, quotas, API enablement and billing, and they cost nothing. We use labels for cost attribution and enforce them in code. Organisation policies then set outer limits: restrict resource locations, block creation of service account keys, and prevent external IP addresses on virtual machines unless approved.

Everything defined as code

We build the hierarchy with Terraform, using a dedicated bootstrap project for state and a pipeline that plans on pull request. Blocking key creation is a good example of a guardrail that is a few lines of code:

resource "google_org_policy_policy" "no_sa_keys" {
  name   = "organizations/${var.org_id}/policies/iam.disableServiceAccountKeyCreation"
  parent = "organizations/${var.org_id}"

  spec {
    rules {
      enforce = "TRUE"
    }
  }
}

If your projects were created in the console, we import them gradually through our Terraform engineering service.

Identity and access

Credentials are the usual failure point, and on Google Cloud the culprit is almost always the downloaded service account key. Our baseline:

  • IAM roles granted to groups, not individuals, at the narrowest scope that works, with primitive Owner and Editor roles avoided.
  • Attached service accounts for compute, and Workload Identity for pods on GKE.
  • Workload Identity Federation for CI/CD, so GitHub Actions or other pipelines exchange their own tokens instead of holding keys.
  • Separate service accounts per workload, rather than one shared account with broad rights.
  • Cloud KMS for customer-managed keys where policy or customers require them.

The custom role or predefined role you pick matters. A pipeline that only deploys to Cloud Run does not need project editor.

Networking with Shared VPC

A Google Cloud VPC is global, with regional subnets, which simplifies multi-region designs. For estates with more than one team, we use Shared VPC: a host project owns the network, and service projects attach workloads to it. Network engineers control subnets and firewall policy, while application teams control their own resources. It is a clean separation, but it requires deciding ownership early.

Other decisions we make up front: non-overlapping IP ranges, private Google access so workloads reach Google APIs without public addresses, Cloud NAT for controlled egress, and hierarchical firewall policies for rules that should apply everywhere. Private clusters on GKE keep nodes off the internet.

Cost control

Google Cloud bills are attributed through projects and labels, so structure does most of the work. We set budgets and alerts per project, export billing data to BigQuery for analysis, and review recommendations for idle or oversized resources. Committed use discounts come after right-sizing and apply only to steady baseline usage.

BigQuery deserves special attention. Query cost depends on the pricing model and on how much data each query scans, so partitioned and clustered tables, limited column selection and per-project controls matter. Cloud credits are also worth a mention: they hide bad habits until they run out, so we build good cost discipline while credits last.

Managed services we lean on

We prefer services Google operates: GKE for Kubernetes, Cloud Run for simple containerised services, Cloud SQL or AlloyDB for relational data, BigQuery for analytics, Pub/Sub for messaging and Cloud Storage for objects. For observability we combine Cloud Monitoring with open tooling; our Kubernetes monitoring guide explains the Prometheus and Grafana patterns we use.

Common failure modes

  • Downloaded service account keys. They end up in repositories and laptops. Block them.
  • Everything in one project. IAM, quotas and billing become impossible to separate.
  • Unbounded BigQuery queries. A careless query can cost real money. Set limits.
  • Default network left in place. Auto-created subnets and permissive firewall rules should be removed early.
  • No central audit logging. Sinks must be created at organisation level before they are needed.

When Google Cloud is not the right choice

Choose AWS when you need the widest service catalogue, the largest hiring pool or specific services Google lacks. Choose Microsoft Azure when your organisation is built on Microsoft identity and licensing. Google Cloud also has fewer regions and fewer local specialists in some markets, which can affect support and hiring. If you are unsure, book a consultation and we will compare options against your actual workload, or see how we work.

Official documentation: cloud.google.com

How we work with Google Cloud

  1. 01

    Audit organisation and projects

    We review the hierarchy, IAM bindings, organisation policies, billing accounts and recent spend with read-only access.

  2. 02

    Design the resource hierarchy

    Folders by environment or team, project naming, labels, billing structure and network ranges, agreed in writing.

  3. 03

    Codify in Terraform

    Folders, projects, IAM, Shared VPC and policies are defined in code and applied through a reviewed pipeline.

  4. 04

    Secure identity and keys

    Group based IAM, no downloaded service account keys, Workload Identity Federation for pipelines, and Cloud KMS where needed.

  5. 05

    Centralise logging and monitoring

    Organisation level audit log sinks, alerting and dashboards routed to a dedicated project.

  6. 06

    Control cost and operate

    Budgets, BigQuery spend controls, labels, right-sizing and a monthly review of spend and risk.

Google Cloud compared with the alternatives

We recommend the tool that fits your team, not the one we know best. Here is when each option makes sense.

OptionChoose it when
Google CloudGoogle Cloud is Google's cloud platform, known for BigQuery, managed Kubernetes on GKE and a clean project-based resource model.
AWSChoose AWS for the widest service catalogue, the largest talent pool and the most third-party integrations.
Microsoft AzureChoose Azure if your organisation is built on Microsoft 365, Entra ID and .NET and wants one identity story.
Snowflake or Databricks on any cloudChoose a dedicated data platform if your analytics needs are cloud-agnostic and already centred on it.
Managed container platforms (Cloud Run only)Choose Cloud Run alone if you want containers without running Kubernetes at all.

Tools we use alongside Google Cloud

TerraformCloud Resource ManagerCloud IAMVPC and Shared VPCGoogle Kubernetes EngineBigQueryCloud RunCloud LoggingCloud MonitoringCloud KMSArtifact RegistryGitHub Actions

Frequently asked questions

What is the Google Cloud resource hierarchy?
It is the tree of organisation, folders and projects that holds all your resources. IAM policies and organisation policies set at a higher level are inherited by everything beneath. Projects are the main unit for billing, quotas and API enablement. Designing the folders carefully lets you apply guardrails once instead of per project.
Should we use one project or many on Google Cloud?
Use several. Separate projects for production and non-production at minimum, and often per team or service. Projects are free and give clean IAM, quota and billing boundaries. A single project for everything mixes permissions and makes cost attribution hard. Too many tiny projects add overhead, so group by ownership and lifecycle.
How do we avoid service account key leaks?
Do not create downloaded keys. Attach service accounts to the compute that needs them, use Workload Identity for GKE, and use Workload Identity Federation so CI systems exchange their own tokens for short-lived access. You can block key creation entirely with an organisation policy, which we recommend for most teams.
How do we keep BigQuery costs under control?
Understand your pricing model first, on-demand by data scanned or capacity based. Partition and cluster large tables, avoid selecting every column, set per-query and per-project limits, and review expensive queries regularly. Budgets and alerts catch surprises early. We review your actual query patterns before suggesting a model.
GKE Autopilot or Standard?
Autopilot removes node management and charges based on pod resources, which suits teams that want less operational work and have conventional workloads. Standard gives control over node types, daemonsets and tuning. We start most teams on Autopilot and move to Standard only when a requirement demands it.
Can you work in our existing Google Cloud organisation?
Yes. We start with read-only access, document the current hierarchy and IAM, and agree changes before applying them. Resources created in the console are imported into Terraform carefully, with plans that must show no unexpected changes before we rely on them.

Talk to an engineer about Google Cloud

Book a free 30-minute call. We review your current setup and tell you honestly whether and how we can help.

Written by Saddique Khan, DevOps / SRE / Cloud Consultant Engineer. Last updated 2026-10-09.