If delivering content over the Internet is important to your business, then you probably need a Content Delivery Network (CDN). If you are delivering to a large, geographically dispersed population of end users who use a range of devices, and user experience and security are important to you, then you really need a CDN.
The good news is that you have lots of choices. Over 45 CDN providers are tracked at http://www.cdnlist.com/, and that is excluding the 30 or more telcos that have some form of licensed or managed CDN offering.
However too much choice can be a bad thing. Not all providers are created equal, so how do you find the right provider for your needs?
1. Use the available public performance data
For a service like CDN with limited standardization or accepted benchmarks, independent third party data is incredibly valuable. Knowing the limitations of this data is important, but as a starting point for your evaluation, a few key data sources can save you many weeks of evaluation.
For example, Cedexis is a service that publishes a massive amount of data that has been collected from millions of real world users. They measure Web performance and reliability across 30 different CDNs (as well as Cloud providers and ISPs) and publish their benchmarks at: http://www.cedexis.com/reports/.
Conviva and Youbora are also useful services, although they share less data publicly.
From this data you should be able to quickly identify that there are a group of CDNs that consistently perform well and reliably. The variation in performance between this shortlist of CDNs within these benchmarks is minimal, so we need to look at other areas to differentiate between these providers.
2. Identify your key criteria
Once you have your shortlist of providers, you need to start to identify what is most important for your particular use case. For example, if you are distributing free software updates, you probably want to minimize cost. However, if you are streaming video, you want to ensure that each end user sees the video in the highest possible quality without any interruptions.
You will quickly find that the cheapest provider does not always provide the best quality, so it is important to understand what you value most highly so that you can make the right decision for your business. Here are the key criteria that you should use to evaluate your providers:
– Geographical Reach: If your users are in Egypt, then picking a provider with great performance in Indonesia is irrelevant. Make sure that you get real data for the region that matters to you.
– Traffic Type: If you are delivering video, don’t compare webpage load times across providers; look at data that matches your use case. Video content is very different from Web content and puts very different loads on the CDN infrastructure; one CDN architecture might be great for small Web objects but perform badly for large VOD libraries.
– Protocol: If you will be delivering traffic using SSL encryption, then make sure to test that. Many CDNs use entirely different infrastructures for different protocols and as a result, performance can vary substantially.
– Capacity: If you are delivering your home movies to friends and family, then you are probably less concerned about the ability of your CDN to maintain performance under peak load. However if you are concerned about performance, the ability of your CDN to handle load from you and others is critical, otherwise everyone will slow down at peak times.
– Connections to end users: How will your CDN get content from their servers to end users? Does your CDN have direct relationships with ISPs or is it relying on public peering points? How can you be sure that the CDN will be able to upgrade its capacity in a timely fashion? Ask your CDN about its relationships with the networks that matter most to you.
– SLA: What service level agreement and remedies will the CDN provide? Does that align with the key areas that are important to your business? While none of us want to see a failure, they do happen. Any provider that tells you they never fail or guarantees 100 percent availability should be treated with suspicion. What is most important is how your provider deals with failure and takes steps to prevent a recurrence.
3. Protect your content and your infrastructure
What level of protection to put around your content is a critical decision as you launch a new service or evolve an existing one. It is almost impossible to fully protect your content against unauthorized access and redistribution, and the costs and complexity can be prohibitive, especially when you consider the impact to end user experience. As a result, many content service providers decide to take a security stance that makes it sufficiently difficult for the majority of users to unlawfully access content.
Your CDN can play a critical role in the protection of your content and you should understand what you want from your CDN and what you will do yourself. Basic encryption is something that your CDN should provide, whether that is SSL transport encryption or video ‘scrambling’ through AES128 encryption. However full digital rights management (DRM) is probably something that you do not want to purchase from your CDN provider. There are specialists who are much better at providing DRM (see #5 to understand how portability is important).
Similarly, authorization is something that your CDN should provide at request time — typically through tokens appended to the URL, although geoblocking is based on end users’ IP addresses. However user authentication and entitlement is an area that you will want to handle upstream of your CDN.
In addition to protecting your content, you need to think about how you will protect your infrastructure. This is definitely an area where you should expect your CDN provider to assist you, and you should ask them what options they have available to protect your origin. How are they going to protect your infrastructure from the bad guys who are trying to disrupt your service, steal your content and/or steal your customers’ data?
4. Know what you should pay
Unless you are an expert with these services, knowing whether you are getting a fair deal can be challenging, and in many cases, CDNs attempt to make it intentionally difficult to compare costs between providers.
First you should understand the basic elements that CDNs charge for:
1. Delivery: This is normally the largest component of your invoice and can be measured in either volume transferred (gigabytes, GB) or traffic levels (95th percentile Mbps). For most customers, a per GB model makes most sense, as you don’t get penalized for the peaks in your traffic.
2. Storage: When you decide to store your content on the CDN rather than your own origin, the CDN will charge you for the volume of content stored, although be careful around additional charges for ingress and egress bandwidth that some providers may add on.
3. Services and Support: Standard support and SLAs should always be available at no additional cost, although there has been a recent trend among providers to charge for even basic support. Advanced integration services and enhanced SLAs are offered by several CDNs and can be very valuable, although be careful to ensure that you are not being upsold to a package that you don’t need.
4. Value-add services: Depending on the provider, they could have hundreds of additional features that may appear on your invoice, whereas other CDNs might provide the same feature at no cost. Make sure to understand what is inclusive and what is extra.
Second, you should understand how to get a better price and fortunately, this is relatively simple. If your requirements are simple and/or you are prepared to commit to a large spend over a longer term, you will be able to get a discount. Most CDNs offer discounts based on volumes, so if you commit to deliver 10 petabytes every month, you will get a better price than if you only commit to 10 terabytes.
Finally you should benchmark against public data. Dan Rayburn publishes pricing on his blog at http://www.cdnpricing.com/. As with all surveys it is never 100 percent accurate, but is a good guide of the range to expect. If you are delivering video, you should expect to be at the higher end of the range, where with software delivery, pricing would be toward the lower end.
5. Don’t get locked in
As with all decisions, it is important to retain options. While it may make perfect sense to work with a single CDN today, over time that may change ╨ your traffic could grow substantially, you may launch in new markets or you might add new services.
Having a second provider gives you redundancy and the ability to optimize your delivery. You can take advantages of the strengths of each provider and protect against any issues.
As you work with your CDN provider, you should always consider how dependent upon them you are. There have been many examples over the years where customers have integrated heavily against a single CDN and have come to regret that decision later when they have tried to introduce a second provider.
You should certainly aim and expect to have a positive, constructive relationship with your CDN over many years and you may decide that you are perfectly happy relying on a single provider. However, we strongly advise that you consider how you would introduce another provider.
Developing a client or player that is hardcoded such that it can only work with a single CDN is a bad idea. Similarly, storing all of your content with a CDN provider that does not allow other CDNs to connect to that storage can make it very slow, difficult and expensive to add another provider.
Selecting CDN providers is an important decision that can have a large impact on the success of your business. There are many choices available, but also huge differences between providers in terms of architecture, scale, costs and performance. It’s critical that you take the time to closely evaluate your options and select the best CDN for your business.
About Level 3 Senior Director of Product Management Jon Alexander
I build products to make the web fast, reliable and secure. Outside of work, I am a displaced Brit exploring Colorado.