Introduction
Modern cloud projects often fall into a trap: Too many tools. Too much complexity. Not enough clarity.
As cloud architects, we’re expected to balance flexibility with maintainability — and sometimes that means saying no to one more tool, dashboard, or service.
Inspired by a simple sketch, this post breaks down a principle I live by when designing scalable, reliable cloud systems:
“Add fewer services. Design them better.”
Why Cloud Bloat Happens
It usually starts with good intentions:
- “Let’s use a different DB just for analytics.”
- “Let’s add a second pipeline to separate staging.”
- “We could plug in this open-source sidecar for observability.”
But over time, the architecture becomes fragile:
- Multiple runtimes = duplicated configs
- More managed services = more IAM policies
- Debugging = chasing logs across 7 dashboards
Result? Your team spends more time orchestrating chaos than shipping value.
A Simpler, Stronger Approach
Here’s what I’ve found works better — and keeps projects leaner and cleaner:
1. Minimize Service Sprawl
Pick fewer core services (e.g., 1 DB type, 1 compute pattern), and go deep on them.
Example: One well-configured GKE cluster with Workload Identity often outperforms juggling Cloud Run, GCE, and App Engine side-by-side.
2. Standardize Patterns
Establish architectural templates that teams can reuse confidently.
Example: A shared Terraform module for VPCs or a common CI/CD pattern using Cloud Build + GitHub Actions.
3. Design for Debuggability
Every extra service adds a new place to fail — and a new place to forget to look.
Stick to tools that integrate well with your logging, alerting, and tracing systems.
4. Build with the End in Mind
Think of Day 2: How easy will it be to hand this over, debug it later, or cost-optimize it?
A good question to ask: “Would a new teammate be able to understand this design in under 15 minutes?”
The Visual

Sometimes the best architecture advice can be captured in a single sketch.
Left: Confusion from trying to manage too many services. Right: Clarity from thoughtful design and focus.
Conclusion
In cloud architecture, less isn’t lazy — it’s strategic.
Fewer services means:
- Less overhead
- Faster onboarding
- Easier scaling
- Fewer surprises at 2AM
So next time you’re designing that next big system, try asking:
“What can we remove without losing capability?”
Your cloud — and your team — will thank you.