Lessons in this course (9)

2. Compute Engine, Cloud Run, GKE, App Engine and Cloud Run functions

Basic★ Must knowLesson 2 of 9
ServiceModel.NET use
Compute EngineVMs (Windows Server images with IIS available; managed instance groups for autoscaling)Lift-and-shift .NET Framework/IIS apps
Cloud RunServerless containers (HTTP services and jobs), scale to zero, per-request billingASP.NET Core APIs and web apps — the default choice
GKE (Standard / Autopilot)Managed KubernetesMany microservices, teams on Kubernetes
App Engine (Standard/Flexible)Original PaaSLegacy; 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 20
csharp
// 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.