The only change I would make to the "stages" is to add caching up front. Most modern web frameworks make the use of caching pretty trivial therefor making it less of a pain than setting up load balancers and multiple web servers, etc. Static content should also make use of caching headers and be served by a separate server than dynamic content; this is also a trivial improvement.<p>Having only a single web server, database server, and static content server while making liberal use of caching and smart querying result in benchmarks indicating we can sustain around 1900 req/sec. Even if that isn't entirely accurate, the chances of us reaching the 82 million page views per month to find out is all but inconceivable.