Introduction
Google Cloud Platform (GCP) has evolved from a collection of experimental services that powered Google’s own products into a mature, enterprise‑grade public cloud offering. Today, GCP competes head‑to‑head with AWS and Azure across virtually every workload—from simple static website hosting to massive, petabyte‑scale data analytics and AI‑driven applications.
This article is a comprehensive, in‑depth guide for anyone looking to understand GCP’s core concepts, navigate its sprawling catalogue of services, and apply the platform to real‑world problems. We’ll walk through:
- Foundations – projects, billing, and identity.
- Core compute and storage – the building blocks of any cloud workload.
- Data & analytics – BigQuery, Dataflow, and more.
- AI/ML – Vertex AI, pre‑trained APIs, and custom model pipelines.
- Networking, security, and operations – VPC, IAM, monitoring, and cost‑optimization.
- Practical examples – IaC with Terraform, gcloud CLI snippets, Python SDK usage.
- Real‑world use cases – media streaming, IoT, fintech, gaming, and healthcare.
- Migration strategies – best‑practice pathways for moving to GCP.
By the end of this guide, you should feel confident designing, building, and operating production‑grade solutions on Google Cloud.
1. Foundations: Projects, Billing, and Identity
1.1 GCP Projects
Every resource in GCP lives inside a project. A project provides:
- Isolation – resources, IAM policies, and quotas are scoped to the project.
- Billing association – costs are aggregated per project.
- Resource hierarchy – projects sit under an organization (if you have one) and can be grouped with folders.
Note: Even a single‑developer sandbox should be created as a project to avoid accidental resource leakage.
1.2 Billing Setup
- Create a billing account (or link to an existing corporate account).
- Attach the billing account to your project via the Cloud Console.
- Enable cost alerts and budget notifications to stay on top of spend.
1.3 Identity & Access Management (IAM)
IAM is the cornerstone of security on GCP. It operates on a resource‑level basis and follows the principle of least privilege.
| IAM Element | Description |
|---|---|
| Members | Google accounts, service accounts, groups, or domains. |
| Roles | Collections of permissions (primitive, predefined, or custom). |
| Policies | Bind members to roles on a resource. |
Example: Granting a developer read‑only access to a specific bucket
# Create a custom role with storage.objects.get permission
gcloud iam roles create bucketReader \
--project=my-gcp-project \
--title="Bucket Reader" \
--permissions=storage.objects.get \
--stage=GA
# Bind the role to a user on a single bucket
gsutil iam ch user:alice@example.com:roles/bucketReader gs://my-data-bucket
2. Core Compute Services
2.1 Compute Engine (IaaS)
Compute Engine provides virtual machines (VMs) with full control over OS, CPU, memory, and networking.
- Machine types: e2, n2, n2d, custom (choose exact vCPU/Memory).
- Preemptible VMs: 80% cheaper, suitable for batch jobs.
- Sustained use discounts: Automatic savings after 25% usage.
Terraform example: Provision a standard VM
provider "google" {
project = "my-gcp-project"
region = "us-central1"
}
resource "google_compute_instance" "web" {
name = "web-server"
machine_type = "e2-medium"
zone = "us-central1-a"
boot_disk {
initialize_params {
image = "debian-cloud/debian-12"
}
}
network_interface {
network = "default"
access_config {}
}
metadata_startup_script = <<-EOF
#!/bin/bash
apt-get update && apt-get install -y nginx
systemctl start nginx
EOF
}
2.2 Google Kubernetes Engine (GKE)
GKE is a managed Kubernetes service offering auto‑scaling, node auto‑repair, and integrated logging/monitoring.
- Standard clusters: Full control over node pools.
- Autopilot clusters: Serverless node management, you pay per pod resource.
Deploying a simple service to GKE
# Create a cluster (Standard)
gcloud container clusters create prod-cluster \
--zone us-central1-a \
--num-nodes 3 \
--machine-type n2-standard-4
# Deploy a container
kubectl create deployment hello --image=gcr.io/google-samples/hello-app:1.0
kubectl expose deployment hello --type LoadBalancer --port 80
2.3 Cloud Run (Serverless Containers)
Cloud Run abstracts away the underlying infrastructure and runs stateless containers that scale to zero.
- Fully managed (no clusters) or Cloud Run for Anthos (runs on GKE).
- Concurrency: Up to 80 requests per container instance.
Dockerfile & deployment
# Dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY app.py .
RUN pip install flask
EXPOSE 8080
CMD ["python", "app.py"]
# Build and push to Artifact Registry
gcloud builds submit --tag us-central1-docker.pkg.dev/my-gcp-project/run-images/hello
# Deploy to Cloud Run
gcloud run deploy hello \
--image us-central1-docker.pkg.dev/my-gcp-project/run-images/hello \
--platform managed \
--region us-central1 \
--allow-unauthenticated
2.4 App Engine (PaaS)
App Engine offers a fully managed platform for web applications with automatic scaling. It supports standard (sandboxed runtimes) and flexible (custom Docker) environments.
When to use: Small to medium web apps where you want zero‑ops, but need more control than Cloud Run can provide (e.g., built‑in request routing, task queues).
3. Storage Solutions
| Service | Use‑Case | Durability | Typical Cost |
|---|---|---|---|
| Cloud Storage | Object storage (static assets, backups) | 99.999999999% (11 9s) | $0.020/GB‑month (standard) |
| Filestore | Managed NFS for workloads needing POSIX FS | 99.9% | $0.30/GB‑month |
| Cloud SQL | Managed relational DB (MySQL/PostgreSQL/SQL Server) | Multi‑zone replication | $0.10/GB‑month + instance fee |
| Cloud Spanner | Globally distributed, strongly consistent relational DB | 99.999% | $0.90/GB‑month + compute |
| Firestore / Datastore | NoSQL document store, serverless | Multi‑region | Pay‑per‑read/write |
| Bigtable | Wide‑column store for time‑series / analytics | 99.999% | $0.65/GB‑month |
3.1 Cloud Storage – Code Example (Python)
from google.cloud import storage
client = storage.Client()
bucket = client.bucket('my-data-bucket')
blob = bucket.blob('datasets/2024_sales.csv')
blob.upload_from_filename('local_sales.csv')
print(f'Uploaded {blob.name} to {bucket.name}')
3.2 Cloud SQL – Connecting from Cloud Run
# Enable the Cloud SQL Auth proxy as a sidecar
gcloud run deploy my-service \
--image gcr.io/my-project/my-image \
--add-cloudsql-instances my-project:us-central1:my-instance \
--set-env-vars DB_HOST=127.0.0.1 \
--region us-central1
Inside your container you can connect using standard drivers (e.g., psycopg2 for PostgreSQL) pointing to 127.0.0.1.
4. Data Analytics & Big Data
4.1 BigQuery – Serverless Data Warehouse
- SQL‑based analytics on petabyte‑scale data.
- Separation of storage and compute → pay only for queries run.
- Federated queries across Cloud Storage, Cloud SQL, and external sources.
Example: Querying a public dataset
SELECT
country_name,
SUM(number) AS total_cases
FROM `bigquery-public-data.covid19_jhu_csse.summary`
WHERE date = DATE('2024-01-01')
GROUP BY country_name
ORDER BY total_cases DESC
LIMIT 10;
Python client (run query & fetch results)
from google.cloud import bigquery
client = bigquery.Client()
query = """
SELECT
country_name,
SUM(number) AS total_cases
FROM `bigquery-public-data.covid19_jhu_csse.summary`
WHERE date = DATE('2024-01-01')
GROUP BY country_name
ORDER BY total_cases DESC
LIMIT 10
"""
df = client.query(query).to_dataframe()
print(df)
4.2 Dataflow – Managed Apache Beam
Dataflow runs streaming and batch pipelines written in Apache Beam (Java, Python, Go). It auto‑scales and integrates with Pub/Sub, BigQuery, Cloud Storage, and more.
Simple Beam pipeline (Python) – Word Count from Pub/Sub to BigQuery
import apache_beam as beam
from apache_beam.options.pipeline_options import PipelineOptions
options = PipelineOptions(
project='my-gcp-project',
region='us-central1',
runner='DataflowRunner',
temp_location='gs://my-bucket/tmp',
streaming=True,
)
def split_words(element):
return element.split()
with beam.Pipeline(options=options) as p:
(p
| 'ReadFromPubSub' >> beam.io.ReadFromPubSub(topic='projects/my-gcp-project/topics/text')
| 'Decode' >> beam.Map(lambda x: x.decode('utf-8'))
| 'Split' >> beam.FlatMap(split_words)
| 'PairWithOne' >> beam.Map(lambda w: (w, 1))
| 'Count' >> beam.CombinePerKey(sum)
| 'ToBQRow' >> beam.Map(lambda kv: {'word': kv[0], 'count': kv[1]})
| 'WriteToBQ' >> beam.io.WriteToBigQuery(
table='my-gcp-project:analytics.word_counts',
schema='word:STRING, count:INTEGER',
write_disposition=beam.io.BigQueryDisposition.WRITE_APPEND))
4.3 Dataproc – Managed Hadoop/Spark
Dataproc provides quickly provisioned clusters for Spark, Hadoop, Hive, and Presto workloads. Use cases include ETL, machine learning, and graph processing.
- Transient clusters (start‑up in <2 minutes) to reduce cost.
- Autoscaling based on YARN metrics.
4.4 Pub/Sub – Messaging Service
Pub/Sub is a global, horizontally scalable messaging system for event‑driven architectures.
- At‑least‑once delivery (or exactly‑once with ordering keys).
- Push or pull subscription models.
Publishing a message with gcloud
gcloud pubsub topics publish my-topic --message "Hello, GCP!"
Pull subscriber (Python)
from google.cloud import pubsub_v1
subscriber = pubsub_v1.SubscriberClient()
subscription_path = subscriber.subscription_path('my-gcp-project', 'my-subscription')
def callback(message):
print(f"Received: {message.data}")
message.ack()
subscriber.subscribe(subscription_path, callback=callback)
print("Listening for messages...")
5. AI & Machine Learning
5.1 Vertex AI – Unified ML Platform
Vertex AI consolidates training, hyperparameter tuning, model deployment, and MLOps.
- Custom training (TensorFlow, PyTorch, XGBoost) on managed notebooks or pipelines.
- AutoML for vision, language, tabular data without writing code.
- Feature Store for reusable feature engineering.
Example: Deploying a model via Vertex AI
# Assume you have a saved model in GCS: gs://my-bucket/model/
gcloud ai models upload \
--region=us-central1 \
--display-name=my-model \
--container-image-uri=gcr.io/cloud-aiplatform/prediction/tf2-cpu.2-5:latest \
--artifact-uri=gs://my-bucket/model/
gcloud ai endpoints create \
--region=us-central1 \
--display-name=my-endpoint
gcloud ai endpoints deploy-model endpoint-id \
--region=us-central1 \
--model=my-model-id \
--display-name=deployed-model \
--machine-type=n1-standard-4 \
--traffic-split=0=100
5.2 Pre‑trained APIs
Google offers Vision AI, Speech-to-Text, Natural Language, Translation, and Document AI via simple REST calls.
Using Vision API to detect labels (curl)
curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"requests": [
{
"image": { "source": { "imageUri": "gs://my-bucket/dog.jpg" } },
"features": [{ "type": "LABEL_DETECTION", "maxResults": 5 }]
}
]
}' \
"https://vision.googleapis.com/v1/images:annotate"
6. Networking & Hybrid Connectivity
6.1 Virtual Private Cloud (VPC)
A VPC is a software‑defined network that spans regions. Key components:
| Component | Description |
|---|---|
| Subnets | Regional IP ranges; can be auto‑mode or custom‑mode. |
| Firewall rules | Implicit deny; allow rules for traffic. |
| Routes | Default internet gateway, custom routes. |
| Private Google Access | Enables VMs without external IPs to reach Google APIs. |
Example: Creating a custom VPC with a private subnet
gcloud compute networks create prod-vpc \
--subnet-mode=custom
gcloud compute networks subnets create prod-subnet \
--network=prod-vpc \
--region=us-central1 \
--range=10.0.0.0/24 \
--private-access
# Allow SSH from corporate IP range
gcloud compute firewall-rules create allow-ssh \
--network=prod-vpc \
--allow=tcp:22 \
--source-ranges=203.0.113.0/24 \
--direction=INGRESS
6.2 Cloud Load Balancing
GCP offers global external HTTP(S) load balancer, regional TCP/SSL load balancer, and internal load balancer. Features include:
- Anycast IP and global CDN.
- Autoscaling based on traffic.
- SSL/TLS termination with managed certificates.
Creating a simple HTTP(S) LB with Terraform
resource "google_compute_global_address" "lb_ip" {
name = "lb-ip"
}
resource "google_compute_backend_service" "default" {
name = "my-backend"
protocol = "HTTP"
port_name = "http"
timeout_sec = 30
backend {
group = google_compute_instance_group.my_group.self_link
}
}
resource "google_compute_url_map" "default" {
name = "url-map"
default_service = google_compute_backend_service.default.self_link
}
resource "google_compute_target_http_proxy" "default" {
name = "http-proxy"
url_map = google_compute_url_map.default.self_link
}
resource "google_compute_global_forwarding_rule" "default" {
name = "http-forwarding"
ip_address = google_compute_global_address.lb_ip.address
target = google_compute_target_http_proxy.default.self_link
port_range = "80"
}
6.3 Cloud CDN & Interconnect
- Cloud CDN caches content at edge points of presence, reducing latency.
- Dedicated Interconnect or Partner Interconnect provides high‑throughput, low‑latency connectivity between on‑premises data centers and GCP.
6.4 Hybrid Tools
| Tool | Use‑Case |
|---|---|
| Anthos | Consistent Kubernetes across on‑prem, GKE, and other clouds. |
| Transfer Service | Large‑scale data migration (NAS, S3, Azure Blob). |
| Migrate for Compute Engine | Lift‑and‑shift VMs from on‑prem/other clouds. |
7. Security, Identity, & Governance
7.1 IAM Best Practices
- Principle of least privilege – assign only required roles.
- Use service accounts – never embed user credentials in code.
- Enable MFA for human users.
- Leverage custom roles for fine‑grained permissions.
7.2 Cloud KMS (Key Management Service)
KMS lets you create, rotate, and manage cryptographic keys used for encrypting data at rest (e.g., Cloud Storage, Compute disks).
Example: Encrypting a secret with Cloud KMS (gcloud)
# Create a keyring and key
gcloud kms keyrings create my-keyring --location us-central1
gcloud kms keys create my-key --location us-central1 --keyring my-keyring --purpose encryption
# Encrypt a file
gcloud kms encrypt \
--location us-central1 \
--keyring my-keyring \
--key my-key \
--plaintext-file api_key.txt \
--ciphertext-file api_key.enc
7.3 Cloud Armor
Provides DDoS protection and WAF capabilities for HTTP(S) load balancers. Use custom security policies to block malicious IPs, enforce geo‑restrictions, or rate‑limit traffic.
7.4 Security Command Center (SCC)
A unified dashboard that aggregates vulnerability findings, misconfigurations, and threat detections across services.
- Enable SCC via the console or
gcloud. - Integrate with Forseti or Config Validator for policy-as-code.
7.5 Audit Logging
All GCP services emit Audit Logs (Admin, Data Access, System Event). Export logs to BigQuery, Cloud Storage, or Pub/Sub for analysis and compliance.
# Create a sink to BigQuery
gcloud logging sinks create gcp-audit-to-bq \
bigquery.googleapis.com/projects/my-gcp-project/datasets/audit_logs \
--log-filter='resource.type="gce_instance"'
8. DevOps, CI/CD, & Automation
8.1 Cloud Build
A serverless CI system that builds containers, runs tests, and pushes artifacts.
Cloud Build config (YAML) – Build & push Docker image
steps:
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'us-central1-docker.pkg.dev/$PROJECT_ID/run-images/hello', '.']
images:
- 'us-central1-docker.pkg.dev/$PROJECT_ID/run-images/hello'
Trigger builds on GitHub or Cloud Source Repositories.
8.2 Cloud Deploy
A continuous delivery service for progressive rollouts (canary, blue/green) to GKE, Cloud Run, or App Engine.
8.3 Artifact Registry
Stores Docker images, Maven, npm, and Python packages with fine‑grained IAM.
8.4 Cloud Scheduler & Workflows
- Cloud Scheduler: Cron‑like job runner (HTTP, Pub/Sub, App Engine).
- Workflows: Orchestrates serverless steps across Cloud Functions, Cloud Run, and APIs.
Example: Workflow that triggers a Dataflow job and notifies Slack
main:
params: [input]
steps:
- init:
assign:
- jobId: ${"dataflow-" + string(now())}
- launchDataflow:
call: googleapis.dataflow.v1b3.projects.locations.templates.create
args:
projectId: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
location: us-central1
gcsPath: gs://templates/my-template
jobName: ${jobId}
- postToSlack:
call: http.post
args:
url: https://hooks.slack.com/services/XXXXX/XXXXX/XXXXX
body:
text: "Dataflow job ${jobId} started."
9. Monitoring, Logging, & Observability
9.1 Cloud Monitoring (formerly Stackdriver)
- Metrics collection (CPU, memory, custom metrics).
- Alerting policies with Slack, email, or SMS notifications.
- Dashboard creation with built‑in charts.
Example: Creating a custom metric (Python)
from google.cloud import monitoring_v3
client = monitoring_v3.MetricServiceClient()
project_name = f"projects/{os.getenv('GOOGLE_CLOUD_PROJECT')}"
series = monitoring_v3.TimeSeries()
series.metric.type = "custom.googleapis.com/my_metric"
series.resource.type = "global"
point = series.points.add()
point.value.double_value = 42.0
point.interval.end_time.seconds = int(time.time())
point.interval.end_time.nanos = int((time.time() % 1) * 10**9)
client.create_time_series(name=project_name, time_series=[series])
print("Metric submitted.")
9.2 Cloud Logging
- Centralized log storage.
- Log‑based metrics for alerting.
- Log Router to export logs.
9.3 Error Reporting & Trace
- Error Reporting aggregates unhandled exceptions.
- Cloud Trace visualizes latency across services.
10. Cost Management & Optimization
10.1 Understanding Pricing Models
| Service | Pricing Model | Typical Unit |
|---|---|---|
| Compute Engine | Per‑second CPU & memory + sustained use discounts | $/vCPU‑hour |
| Cloud Run | Per‑request CPU/memory + request count | $/GiB‑second |
| BigQuery | Storage $/TB‑month + query $ per TB processed | $/TB |
| Cloud Functions | Invocations + execution time | $/M invocations |
| VPC Egress | Tiered pricing based on destination | $/GB |
10.2 Tools for Cost Visibility
- Billing Export to BigQuery → run custom queries.
- Cost Table (Console) for detailed breakdown.
- Recommender → rightsizing, idle resources, committed use suggestions.
- Committed Use Contracts (CUCs) → up to 70% discount for 1‑ or 3‑year commitments.
Sample BigQuery query to find idle Compute Engine VMs
SELECT
project.id,
instance.name,
instance.zone,
TIMESTAMP_DIFF(CURRENT_TIMESTAMP(), MAX(timestamp), HOUR) AS idle_hours
FROM `my-billing-project`.gcp_compute_instance_usage AS instance
WHERE instance.cpu_utilization < 0.01
GROUP BY project.id, instance.name, instance.zone
HAVING idle_hours > 720 -- > 30 days idle
ORDER BY idle_hours DESC;
10.3 Best Practices
- Use preemptible VMs for batch workloads.
- Turn off resources (e.g., dev clusters) during off‑hours via Cloud Scheduler.
- Leverage autoscaling on GKE, Cloud Run, and Dataflow.
- Apply labels to all resources for cost allocation.
11. Real‑World Use Cases
11.1 Media Streaming Platform
- Compute: GKE for transcoding micro‑services.
- Storage: Cloud Storage (Coldline) for archived assets.
- CDN: Cloud CDN + Load Balancer for low‑latency delivery.
- Analytics: BigQuery for viewership metrics, Dataflow for real‑time event processing.
- AI: Video Intelligence API for automatic thumbnail generation.
11.2 Internet of Things (IoT) Fleet Management
- Ingestion: Cloud Pub/Sub receives telemetry from edge devices.
- Processing: Dataflow pipelines clean and enrich data.
- Storage: Bigtable for time‑series storage; Cloud Storage for raw logs.
- ML: Vertex AI for predictive maintenance models.
- Visualization: Looker Studio dashboards fed from BigQuery.
11.3 FinTech – Real‑Time Fraud Detection
- Low‑latency: Cloud Run (or GKE) hosts fraud scoring micro‑service.
- Messaging: Pub/Sub for transaction event streaming.
- Analytics: BigQuery for historical pattern analysis.
- Security: Cloud Armor & VPC Service Controls for data exfiltration protection.
- Compliance: Cloud KMS for encrypting sensitive fields; SCC for audit.
11.4 Gaming Backend
- Matchmaking: Cloud Run containers scale to zero during off‑peak.
- State storage: Cloud Spanner for strongly consistent player profiles.
- Leaderboards: Bigtable for high‑throughput sorted sets.
- Observability: Cloud Monitoring + Trace to pinpoint latency spikes.
11.5 Healthcare Data Lake
- HIPAA‑compliant: Use Google Cloud Healthcare API with Cloud Storage.
- De‑identification: Dataflow pipelines with DLP API.
- Analytics: BigQuery with federated queries over DICOM files.
- AI: Vertex AI for diagnostic image classification.
12. Migration Strategies
12.1 Lift‑and‑Shift (Rehost)
- Migrate for Compute Engine – automated VM import from on‑prem or other clouds.
- Transfer Service – large data migrations (TB‑PB scale) via parallel streaming.
12.2 Re‑Platform (Lift‑and‑Reshape)
- Move monolithic apps to App Engine or Cloud Run.
- Convert databases to Cloud SQL or Spanner using Database Migration Service (DMS).
12.3 Refactor (Re‑Architect)
- Break monoliths into micro‑services.
- Adopt event‑driven architecture with Pub/Sub.
- Leverage serverless for bursty workloads.
12.4 Hybrid & Multi‑Cloud
- Anthos provides a consistent Kubernetes control plane across on‑prem, GKE, and other clouds.
- Network Service Tiers enable low‑latency connectivity between regions.
13. Best Practices & Common Pitfalls
| Area | Best Practice | Pitfall to Avoid |
|---|---|---|
| IAM | Use least‑privilege roles; prefer custom roles for narrow permissions. | Granting Owner or Editor broadly. |
| Networking | Enable Private Google Access; use firewall tags for segmentation. | Opening 0.0.0.0/0 to all ports. |
| Cost | Tag resources; schedule auto‑stop for dev environments. | Forgetting to delete preemptible VMs after testing. |
| CI/CD | Store artifacts in Artifact Registry; use immutable tags. | Over‑writing latest image causing rollbacks. |
| Observability | Export logs to BigQuery for long‑term analysis. | Relying solely on dashboards without alerts. |
| Security | Rotate service account keys; use Workload Identity. | Storing keys in code repositories. |
| Data | Partition BigQuery tables on ingestion date. | Scanning entire tables leading to high query costs. |
Conclusion
Google Cloud Platform offers a rich, cohesive ecosystem that can support virtually any workload—from simple static sites to complex, AI‑driven, globally distributed applications. By mastering the core services—Compute Engine, GKE, Cloud Run, BigQuery, Vertex AI, and the surrounding networking, security, and operations toolbox—architects can design solutions that are scalable, secure, and cost‑effective.
Key takeaways:
- Start with a solid foundation: proper project organization, billing, and IAM.
- Choose the right compute model for your workload (VMs, containers, or serverless).
- Leverage managed data services (BigQuery, Spanner, Firestore) to avoid operational overhead.
- Integrate AI/ML early using Vertex AI or pre‑trained APIs for competitive advantage.
- Implement robust security with IAM, Cloud KMS, Cloud Armor, and SCC.
- Automate everything—CI/CD, monitoring, and cost governance—to sustain velocity at scale.
Whether you’re a startup looking to prototype quickly or an enterprise embarking on a multi‑year cloud transformation, GCP provides the flexibility and depth to meet your objectives. With the patterns, tools, and best practices outlined in this guide, you’re equipped to architect, build, and operate modern applications on Google Cloud with confidence.
Resources
- Google Cloud Documentation – The official source for all services: https://cloud.google.com/docs
- Google Cloud Architecture Center – Reference architectures and patterns: https://cloud.google.com/architecture
- Qwiklabs – Hands‑on Labs for GCP – Free labs to practice: https://www.qwiklabs.com/
- Google Cloud Blog – Latest product announcements and use‑case stories: https://cloud.google.com/blog
- Google Cloud Training & Certification – Courses and certifications: https://cloud.google.com/training
- GitHub – GoogleCloudPlatform – Sample code and Terraform modules: https://github.com/GoogleCloudPlatform
- Google Cloud Pricing Calculator – Estimate costs for any configuration: https://cloud.google.com/products/calculator