In order to deliver a complete web experience to your users, it’s important to utilize the services of a reliable Content Delivery Network. The basic promise of the traditional CDN product is to provide better and faster web performance for end users by serving static assets from the edge (it’s worth noting that CDN companies also offer additional products like site acceleration, which goes beyond serving static files).
The reason that they can deliver on this promise is not only because they have bigger network pipes, more servers around the world, and better network peering capabilities than you do, but also because they have teams dedicated to optimizing their stacks and monitoring their infrastructure in order to better manage increased traffic spikes.
In other words, a CDN is able to leverage economies of scale to provide you with a service that is faster, better, and more cost-effective than what it would be if you relied on your own infrastructure. Of course some CDN companies deliver on these promises better and more efficiently than others, but how is a prospective consumer to know what factors to look at when deciding which one to choose?
First of all, there are few basic qualifications to look at. If a prospective vendor is unable to deliver on these, then it should go without saying that it should not be considered any further:
- Make sure that the CDN is faster than your Origin.
- You want the CDN to be good at delivering a small file (~5KB), but also a larger payload.
- The CDN should be able to minimize the geographical impact by reducing the latency to fetch all of the items on the page.
However, given the increasingly complex infrastructure that makes up many modern websites, there are many other more intricate metrics and data points that should be looked at and factored into the decision to go with one CDN provider over another.
Metrics & Data to look for
Some CDNs have more complex DNS setup than others and can slow things down. What often happens is that a faster Wait time gets offset by slower DNS response times.
Keep in mind that DNS performance from the last mile, end user, is quite different from the tests run in the backbone. End users rely on DNS resolvers of their ISPs or Public Resolvers, whereas backbone monitoring relies on resolvers that are very close to the machine running the tests.
Review the differing connect times to make sure that your CDN has great network connectivity, low latency, and no packet loss. Additionally, you want to make sure it does not get slower during peak hours and that you are being routed to the right network peering. For example, if an end user is on Verizon FIOS, there is no reason to go through five different backbone networks because that CDN does not have a direct peering with Verizon.
This metrics is important when looking at various CDNs, it helps you see if your content is hot on the edge or that does edge needs to fetch it from the Origin servers. The Wait time is also an indicator of potential capacity issues or bad configuration at the CDN level or Origin server (e.g. setting cache expiration in the past).
A CDN will deliver different performance if an asset is hot, i.e. requested 100,000+ times in the past hour vs. a few times an hour. A CDN is a shared environment where more popular items are faster to deliver than others; if something is in memory it’s fast, but if it has to hit a spinning disk it’s a different story. Thus I would personally consider having Solid State Drives as criteria in my CDN selection.
“With solid-state drives, a CDN can fetch cached objects faster and handle more requests per second, leading to a higher cache hit ratio for your site or application,” said Jason Evans, Director of Product at Fastly, a real-time content delivery network. “This means users get your content more quickly.” Read their take on how using SSDs results in cost-savings for businesses here.
Make sure that the throughput of the CDN test is higher than the origin no matter what the file size is!
You need to run traceroutes from where you are monitoring to make sure you are not mapped to the wrong place. Many CDNs use commercial geo-mapping databases and the data for the IP could be wrong. So if your CDN sends requests to the United Kingdom from your home connection in Los Angeles, something is not right.
Other things to keep an eye on
Most CDNs will give you access to a control panel, so make sure you monitor your Cache Hit / Miss ratio. How often do they have to come back to the origin? A good CDN architecture should not come to the origin very often.
You have to also ask questions about what happen when an edge server does not have that content? How long does it take to purge a file? How long does it take to load a file to the edge? How long before a Cname is active?
How well does the CDN handle public name resolverssuch as OpenDNS, Dyn, or Google? These companies are carrying more and more of the DNS traffic, and this could impact certain CDNs’ geo-load balancing algorithms.
Are the metrics from the CDN such as DNS, Connect, Wait and Response consistent? (Note: do not just look at averages!) Remember, great performance is about more than just speed; the reliability to deliver a consistent experience is just as important, if not more so.
After considering all of these factors, the simple questions that you and your IT Ops team must answer are:
- Can the CDN improve my performance in key markets where we lack physical server presence?
- By how much? Is it a 5% improvement, 20% or 200%?
- Will this translate into revenue increase? Institute a way to monitor the long-term impact of a CDN on your revenue.
Now besides speed, CDNs do bring other benefits that are not measured in seconds:
- By offloading your static files you have more servers, more bandwidth and personnel to deal with more important things than serving static files.
- They can help you handle DDOS attacks.
- They are better prepared to handle seasonal traffic.
Once you have selected a CDN and are up and running on their platform, the work is not over. You should have regular communication with your CDN provider and monitor their performance versus the origin at all times. Doing so will create a symbiotic relationship between you and your provider, and benefit all parties (including your end users) in the long run.