Intuitively Showing How To Scale a Web Application Using a Coffee Shop as an Example

This is a guest repost by Sriram Devadas, Engineer at Vistaprint, Web platform group. A fun and well written analogy of how to scale web applications using a familiar coffee shop as an example. No coffee was harmed during the making of this post.
I own a small coffee shop.
My expense is proportional to resources
100 square feet of built up area with utilities, 1 barista, 1 cup coffee maker.
My shop's capacity
Serves 1 customer at a time, takes 3 minutes to brew a cup of coffee, a total of 5 minutes to serve a customer.
Since my barista works without breaks and the German made coffee maker never breaks down,
my shop's maximum throughput = 12 customers per hour.
Web server
Customers walk away during peak hours. We only serve one customer at a time. There is no space to wait.
I upgrade shop. My new setup is better!
Expenses
Same area and utilities, 3 baristas, 2 cup coffee maker, 2 chairs
Capacity
3 minutes to brew 2 cups of coffee, ~7 minutes to serve 3 concurrent customers, 2 additional customers can wait in queue on chairs.
Concurrent customers = 3, Customer capacity = 5
Scaling vertically
Business is booming. Time to upgrade again. Bigger is better!...