When does a CDN (content delivery network) become worth it?
Solution 1:
At what point is it worth adding a CDN (content delivery network) to your website?
When one of the following occurs:
- You're reaching a large, international audience. Careful analysis of your audience shows that many of them are 100 - 300ms Round Trip Time (RTT) away. You do the math, and discover that a large group of you customers are getting a somewhat slow site, due to TCP/IP's so-so performance on links with high bandwidth delay product.
- You find that you have a lots of requests for mostly static files, i.e. streaming video, audio, PDFs, images etc. In fact, there are so many requests per second that it can't easily be handled by just setting up 2, 3, 4 or more servers dedicated to static file serving.
- You're a tech geek, and you set up a site using Amazon Cloudfront or Cachefly just for the fun of it. Don't feel bad, I have done it too.
I have repeatedly seen articles where SimpleCDN didn't do so great. It is really hard to objectively quantify the performance of the various CDNs, but here is one attempt. Maybe I'm being unfair to SimpleCDN here, but they wouldn't be my first choice.
Amazon Cloudfront is pretty consistenly good ... not great, but cheap and easy to get started with.
Edit: Akamai still seems to be the very best CDN, expensive but so worth it. See SmugMugs recent presentation, slide 7 in the PDF or the more detailed version in the video. I have never worked with Akamai, I have always dismissed them as obviously too expensive for the sites I have worked on. Maybe that is beginning to change, I don't know, but they are trying to lower the barrier to entry to their CDN service.
Solution 2:
It depends on the application. If you're highly latency sensitive (an interactive application) then you want the fastest page loads possible. If you're a streaming app (like YouTube for example), then latency is less of an issue.
For latency sensitive applications, CDN is generally a build vs buy decisions.
If you have lots of international users, you can either build out racks near your users (most likely expensive to do) or you can pay a CDN to cache your content for you locally.
CDN pricing has gotten a lot more competitive in the last few years. Shop around, see what's out there. And if you can build and maintain several racks of caches distributed around the world for cheaper, then you don't need a CDN.
Solution 3:
Obviously a CDN is worth it as soon as it's more economical than doing it yourself.
But there's one case where it's absolutely indispensable: when you can expect to have very strong bursts of traffic. Typically, when a company is launching a new product with heavy media promotion, or doing some sort of viral thingie without using existing social platforms.
Additionally, when you have to reach an international audience, you may want to have servers closer to your users. Your site will be snappier, and you could want to spend more just for that.