Roadmap › Google Cloud Platform (GCP) for .NET and Full Stack Developers › Module: Compute
Lessons in this course (9)
2. Compute Engine, Cloud Run, GKE, App Engine and Cloud Run functions
Basic★ Must knowLesson 2 of 9
| Service | Model | .NET use |
|---|---|---|
| Compute Engine | VMs (Windows Server images with IIS available; managed instance groups for autoscaling) | Lift-and-shift .NET Framework/IIS apps |
| Cloud Run | Serverless containers (HTTP services and jobs), scale to zero, per-request billing | ASP.NET Core APIs and web apps — the default choice |
| GKE (Standard / Autopilot) | Managed Kubernetes | Many microservices, teams on Kubernetes |
| App Engine (Standard/Flexible) | Original PaaS | Legacy; Flexible supports .NET via containers |
| Cloud Run functions (formerly Cloud Functions) | Event-driven functions (.NET supported) | Triggers from Pub/Sub, Storage, Eventarc |
bash
# Build and deploy an ASP.NET Core API to Cloud Run from source (uses Cloud Build + buildpacks or your Dockerfile)
gcloud run deploy shop-api --source . --region asia-south1 --allow-unauthenticated \
--service-account shop-api@shop-prod.iam.gserviceaccount.com \
--set-secrets "ConnectionStrings__Shop=shop-db-cs:latest" --min-instances 0 --max-instances 20csharp
// Program.cs — Cloud Run sends the port in the PORT environment variable
var port = Environment.GetEnvironmentVariable("PORT") ?? "8080";
builder.WebHost.UseUrls($"http://0.0.0.0:{port}");Cloud Run facts: each revision is immutable; traffic splitting for canary releases; concurrency (default up to 80 requests per instance); request timeout up to 60 minutes; min instances to avoid cold starts; VPC access for private Cloud SQL/Memorystore.