Tuesday 23rd June, 2009
2:50pm to 3:30pm
You’ve got a CDN in place, now what? Static objects are the low-hanging fruit that satisfies immediate needs. You’re probably using a CDN either because the bandwidth is cheaper, or you want your media assets to load faster. So what’s next?
1. Measure your performance. How much bandwidth are you serving from origin, and how much has been offloaded to your CDN? You need to have metrics in place to show the results of ongoing optimizations.
3. Cache dynamic objects. Static objects are very easy to serve and typically very fast, so your major savings by moving to a CDN is in bandwidth. Dynamic objects are more CPU intensive, so caching these has a bigger impact on the performance of your servers. Think hard about what pages you can or cannot cache (search results, Ajax page fragments, etc.).
5. Inspect origin hits. Review how many times your CDN is requesting supposedly cacheable files. Are any slipping through the cracks? Are you double-paying for bandwidth… i.e. every request goes back to your origin, costing you origin bandwidth plus CDN bandwidth? Have you forgotten cache-control headers on some requests? Very large files and infrequently accessed files don’t always stick around on the CDN, so they cause origin hits more often. There may be some big surprises in your server logs.
6. Using proper HTTP headers saves bandwidth. When serving dynamic objects, inspect the if-modified-since request headers and respond with “not modified” whenever possible. This saves origin bandwidth costs and reduces origin response time.
7. Use multiple CDNs. This can be considered a redundancy approach, but can also be a big cost-saver. Stick to a high-performance CDN for your premium and hot content—pages that get requested often or have major advertising or sponsorships around them. Find a cheaper CDN for your archives and non-sponsored content. (I did this at Heavy.com making use of Akamai for premium content, and direct access to Amazon S3 for non-sponsored, even before the announcement of their CloudFront service.) Make sure you can measure each CDN and origin separately, and build controls so you can tweak this easily.
8. Review CDN documentation. Each vendor is different. After you’ve gotten past your initial implementation, take a look back over any additional features you glossed over the first time. There may be some gems in there.
9. Engage your vendor. CDNs are out there fighting for business and need to differentiate themselves from being a commodity industry by providing advanced features and responding to customers. Find your technical contact and have a discussion with them about your application and infrastructure. Tell them what additional features you want, even if they seem absurd.
Engineering Director, Mobile at Etsy. Creator of One tsp., possibly the best recipe organizer in the universe: http://onetsp.com
Sign in to add slides, notes or videos to this session