Scale 60M req/mo solo on Cloud Run for $180
Solo builder scales feature flag SaaS RocketFlag to 60M requests/month across regions using Go on Cloud Run, batch DB writes to Firestore/BigQuery, and Cloud Armor—total Dec bill $180 USD (252 AUD) with zero SRE time.
Serverless Stack Handles 60M Requests Without Ops
Deploy Go apps on Cloud Run for ultra-low cold starts and high concurrency, auto-scaling to peaks like 26 requests/second in busiest region (Western Europe) across multiple regions. This serverless setup eliminates VM management, patching, or uptime worries, letting a solo dev handle production traffic equivalent to enterprise loads. Use multi-stage Docker builds (copy binary to scratch image) to minimize attack surface—no exposed files for bad actors. Cloud Run's traffic splitting supports gradual rollouts, but pair it with feature flags for independent toggles targeting user segments via a non-technical web UI, keeping code live but off until ready.
Result: From 2M to 60M requests/month organically as customers onboarded, with seamless scaling—no crashes, no ops team needed. Total ownership cost beats multi-region VMs due to zero SRE overhead (0 minutes/month spent).
Batch Writes to Avoid Firestore/BigQuery Cost Trap
Per-request writes to Firestore (for counters) and BigQuery (analytics) scale but rack up costs—one write per flag evaluation explodes bills. Fix: Buffer requests in-memory and batch every 60 seconds—single batch write to Firestore, batch load to BigQuery. In Go, goroutines run batching concurrently with HTTP handlers since CPU stays active under high traffic.
For lower traffic, queue to Pub/Sub and use a worker consumer. Deployed at 8AM; Firestore write slope flattened immediately, slashing costs. December bill: $180 USD total (252 AUD)—mostly networking early (free tier), then Cloud Run (dark orange bars post-free tier exhaustion). Monitor billing console regularly; serverless is cheap if optimized, deadly trap otherwise.
Block Garbage Traffic with Cloud Armor
Popularity attracts script kiddies probing sensitive files (impossible on Cloud Run but logs clog). Solution: Front with Cloud Armor using regex for valid URLs—blocks mismatches pre-app/logs. Keeps logs clean for real errors. Combined with serverless, this offloads security/ops, freeing solo focus for features/clients.
Lessons: Launch fast/scale quick on Cloud Run; batch/optimize as traffic grows; serverless punches above weight for indie teams.