Assessment: Cloud Run to Container Apps
Checklist
1. Service Configuration
- CPU/Memory: Cloud Run (1–4 vCPU, 128 MiB–32 GiB) → Container Apps (0.25–4 vCPU, 0.5–8 Gi)
- Images: Registry location (GCR or Artifact Registry), image size, base image
- Port: Exposed port (Cloud Run default 8080)
- Environment Variables: Static values, secret references, service URLs
2. Request Handling
- Concurrency: Per instance (default 80, max 1000) → Container Apps (1–300)
- Min/Max Instances: 0–1000 → Container Apps 0–300 per revision
- Timeout: Max 60 min → Container Apps max 30 min (1800s)
- CPU Allocation: Request-based vs always → Container Apps always allocated
- HTTP/2, WebSockets, gRPC: Document if used
3. Networking
- Ingress: Public, internal (VPC), or internal + load balancing
- Custom Domains: List domains and SSL certificates
- VPC Connector: Region, IP range, connected VPC
- Dependencies: Cloud SQL, Firestore, Cloud Storage, Pub/Sub, Redis, external APIs
4. IAM & Security
- Service Account: Default or custom
- IAM Roles: Storage, Firestore, Pub/Sub, Secret Manager, Cloud SQL permissions
- Task role policies → Managed Identity + Azure RBAC
- Secret Manager access → Key Vault RBAC (recommended) or access policies for vaults still using access-policy mode
5. Observability
- Logging: Destinations, structured logs (JSON)
- Monitoring: Request metrics, CPU/memory, instance count
- Tracing: Cloud Trace → Application Insights
6. Event-Driven
- Eventarc: Pub/Sub triggers, Cloud Storage triggers
- Cloud Scheduler: Schedule (cron), target endpoint
7. Cost Analysis
- Cloud Run: Request charges, CPU/memory time
- Data transfer egress charges
- Container Registry storage
Resource Mapping
| Cloud Run Config | Container Apps Equivalent |
|---|---|
--concurrency 80 | --scale-rule-http-concurrency 80 |
--min-instances 0 | --min-replicas 0 |
--max-instances 10 | --max-replicas 10 |
--cpu 1 | --cpu 1.0 |
--memory 512Mi | --memory 1Gi |
--port 8080 | --target-port 8080 |
--timeout 300 | ingress timeout 300s |
Complexity Rating
- Low: Single container, public ingress, standard env vars, no VPC
- Medium: Internal ingress, Pub/Sub triggers, custom service account, Cloud Scheduler
- High: Complex traffic management, VPC networking, multiple Eventarc triggers, long-running requests (>30 min)