Where content is semi-static (e.g. blogs, informational sites like WebMD, sites in which the information updates infrequently on a per-page level), we have flipped the approach/architecture and it has proven to be a HUGE boon for us. With the approach, we get performance that is essentially unmatched via any traditional server setup, nearly unlimited read scalability, vastly reduced infrastructure costs, improved usability for end users with direct benefits to engagement and SEO, and much more. It certainly is not a fit for every site. For instance, Twitter could not work at all this way. But, for semi-static sites it works like a charm:<p><pre><code> - Host all content via CDNs, which is dynamically managed via backend servers (see
below).
- Allow user interactivity via events being pushed to pub/sub event servers. On the
other side, in other DCs entirely, are the more traditional servers
which await said events. Said events are processed, aggregated, and then pushed back
up, via CDN APIs, to the CDN servers.
- Use eventual consistency concepts to simulate real-time interactivity for users.
For instance, when a user posts a review/comment we show it client-side to them,
knowing that the CDN update should be coming momentarily.
</code></pre>
Besides the pub/sub servers, servers can be housed just about anywhere across the globe (latency isn't a huge issue any longer). If you are based in the US, you might be surprised to find out just how competitive/cheap the European market is for servers. Previously, it would have been insane to consider them, but now we can leverage them for a large reduction in costs. For example, compare Rackspace dedicated servers to OVH dedicated servers. It is roughly one order of magnitude less costly.