An online retailer runs its web storefront on four physical servers. Normal weekday traffic is handled comfortably at 35% CPU utilization. The team knows Black Friday generates 8Γ normal traffic volume.
A social platform has grown its user database to 800 million rows. Query performance has degraded significantly β a single server struggles with the index size and concurrent write volume.
800,000,000 rows
Index size: 180 GB
Concurrent writes: 12,000/sec
Average query time: 890ms β degraded
200M rows
Index size: 45 GB
Writes: 3,000/sec
Query time: 180ms β
200M rows
Index size: 45 GB
Writes: 3,000/sec
Query time: 180ms β
200M rows
Index size: 45 GB
Writes: 3,000/sec
Query time: 180ms β
200M rows
Index size: 45 GB
Writes: 3,000/sec
Query time: 180ms β
The tradeoff: Queries that touch a single user's record route to one shard β fast. Queries that need to aggregate data across all users (e.g., "count all users by country") must query all four shards and merge results in the application layer β more complex. This cross-shard join complexity is why sharding must be designed for from the beginning; retrofitting it after the fact requires rewriting large portions of the application.
Two organizations both discover on the same Monday morning that they need 10 additional application servers to handle unexpected growth. One runs on-premises; one runs in the cloud.
| Step | On-Premises Organization | Cloud Organization |
|---|---|---|
| Day 1 | Identify need, write justification, submit purchase order for approval | Log into cloud console; launch 10 new instances; takes 8 minutes |
| Day 2β3 | Finance approval process | Servers already serving traffic; auto-scaling configured to handle further growth |
| Day 4β7 | Vendor procurement, order confirmation, estimated 2-week delivery | β |
| Day 14β18 | Hardware delivered; schedule datacenter access; rack and cable 10 servers | β |
| Day 19β21 | OS installation, configuration management, application deployment | β |
| Day 22 | Testing and validation before production deployment | β |
| Day 23 | Servers live in production β 23 days after identifying the need | Already handled for 22 days; no delay, no degradation |
A startup's API server (stateless, handles REST requests) and its payment processing database (stateful, single-instance, complex transactions) both need more capacity.
A regional hospital network is deploying a new patient portal that will be used by 400,000 patients. The IT team must plan capacity across all three dimensions.
Capacity decision: Each support agent handles ~80 contacts/day. Peak staffing needed: 500 Γ· 80 = ~7 agents. Current team: 3 agents. Gap: 4 agents. Hiring timeline: 8 weeks minimum. Launch is in 10 weeks β barely enough time. Decision: hire 2 permanent agents now, contract 2 temporary agents for the 90-day peak period.
Database tier: Patient records database cannot be sharded easily (existing application, complex queries). Decision: vertical scaling β upgrade to the largest available cloud database instance (32 vCPU, 256 GB RAM). Read replicas added for report queries to offload the primary.
Monitoring configured: Alerts at 70% CPU, 80% memory, 85% storage, 500ms average response time. Weekly right-sizing review scheduled for 90 days post-launch to right-size instances based on actual measured utilization.