A few years ago, I visited the Ben and Jerrys ice cream factory in Vermont, USA. Aside from obtaining an insight into the makings of the B&J delights, the highlight of the trip was being presented with a myriad of wonderful ice cream options at the conclusion of the tour. But how was I going to choose the best ice cream flavour given such complexity in the flavour options?
I knew they were all going to be good but some were going to suit me better at that time than others. There were no options to test them all out so I had to do some careful consideration of the components of each flavour and pick the flavour based on those ingredients. Which flavour did I pick? Well actually, I went for a combo of several…….
Leaving aside the selection and use of CDNs for serving large files (like video), below I have set out what I believe are some key considerations when you are selecting a CDN flavour for your website; and more importantly, for your users.
Choosing a CDN can be Confusing
There are more than 20 global CDNs in the market today and they have quite a variety of options available within each. If you go shopping for a CDN for your website, you may hear some of the following sort of statements;
- Vendor 1; We have the best CDN as we have Super PoPs with the best peering relationships to the telcos. Our PoPs are on the Internet backbone so content is served faster.
- Vendor 2; We have the best CDN as we have the most PoPs worldwide. Our PoPs are closer to your users so content is served faster.
- Vendor 3; We have the best CDN as our PoPs are the newest. Our infrastructure uses Solid State Drives so content is served faster.
- Vendor 4; We have the best CDN as we have superior networking and shared cache between our PoPs. Content moves faster and less often to and from your origin so it is served faster.
- Vendor 5; We are the cheapest CDN.
It can be challenging to work through the veracity of these statements and the extent to which any one of those statements may be important to your users.
Why Choose a CDN
To provide a framework around how to choose a CDN, first, lets consider the core reasons we choose a CDN to serve a website in the first place.
- Offload – Using a CDN can help offload requests and compute activity from your origin servers. This means significantly greater scale.
- Performance – Using a CDN can bring content closer (in network time not necessarily distance) to your users so round trips required to deliver a page are faster.
There are a number of other secondary reasons why CDNs can be attractive but usually, the above are the main reasons for considering bringing a CDN into your website delivery infrastructure. Choosing a CDN to deliver the most offload is broadly about choosing the best CDN for your website; while choosing a CDN for performance is a combination of choosing the one which works best for your website and the one which suits your users.
Choose the Best CDN for Your Website
When working out the CDN which will work for your website it is worth stepping into the market with a shopping list. Without the right set of features to work with your website, you could be left with a functionally broken website, inadequate offload to the CDN and/or a major drain of scarce technical resource being applied to implementation and management of the CDN. Some CDNs can hit just a few of the general requirements while others will hit many and become so complicated your tech team cant manage the options with the available resource. Some of the items on your shopping list might include;
- Push or Pull CDN – Do you have to change your application or workflow to push content up to the CDN or will the CDN pull the content from your origin in an automated fashion
- Cache Clear – Can you clear the CDN cache easily if there are bad files cached at the CDN? How long does the cache clear take?
- Cache Control Headers – Will the CDN observe your Cache Control settings?
- SSL Encryption – Does the CDN support termination of SSL traffic at the CDN? Can you bring an Extended Validation Certificate to the CDN. What are the additional costs of each?
- POST Support – Can your CDN support GET and POST requests? – the latter being relevant to many forms on websites.
- Customer Support – Can you reach out to customer support easily? What is the response time and quality of initial response likely to be?
- Change Required – How much do you need to change your application or core hosting infrastructure in order to support going live with the chosen CDN?
- CDN configuration and management – How much ongoing config and management of the CDN will you be left with and does your team have the skills to do this?
Choosing the Best CDN for Your Customers
Provided you can choose a CDN which works well for your website, the next step is to consider which one will work best for your customers. The best CDN for you customers is going to be the one which provides the best speed boost for your content. How can you predict the CDN which will deliver the fastest content for your users? There are two components to consider;
CDN Speed for Your User Base
Some CDNs will have Points of Presence (PoPs) geographically closer to your users and some will have PoPs which are closer in terms of network hops. Other CDNs will have more responsive infrastructure. In reality, all CDNs perform at various levels at various times for various users subject to the performance of the Network and Infrastructure in the delivery chain for that user at the point in time. No single CDN can be the best CDN for all your users. Indeed, for any single one of your users, different CDNs may be faster at different times. The following graph describes the highly variable performance for a number of CDNs as measured from users browsers over a one hour period in the Australian and New Zealand region (source Cedexis); The above shows that no single CDN is the best CDN for performance at all times.
CDN Availability for Your User Base
As with CDN performance, the availability of CDNs vary over time. Ideally, you should choose the CDN which is available the most. A reduced availability for a CDN means another roundtrip for content and slower load times. Again, reviewing availability of the CDNs, (this time over a 7 day period) we can see that there is a good deal of variability in that availability even when averaged over the 7 day period; Interestingly, we have found that combining the CDNs into a Multi CDN and dynamically choosing the fastest (an most available) CDN for users based on where they are in the Internet is delivering consistently superior CDN performance as follows (last 7 days): If you are interested in choosing just one CDN, Cedexis has some excellent data on CDN performance in any country as measured from users computers.
Choosing the Best CDN for Your Wallet
CDNs have a variety of ways of charging for services which may include;
- Traffic served,
- Requests served,
- Peak bandwidth utilisation,
- Edge Storage,
- SSL traffic premiums
- Extended Validation certificate premiums
- Set up charges
- Professional service fees for modifications
- Overage penalties
- And more.
Unfortunately, there is no way to understand the actual costs other than to understand the pricing structures employed by any one CDN and to model out all the costs for comparison. We have too often seen commitments made to CDNs on the basis of say, a traffic fee, only to later find out that the SSL certificates and SSL traffic were not included in the pricing (and in fact can be much more than the quoted HTTP traffic costs).
Choosing and implementing the best CDN for your users and your website can be daunting. Buying any CDN will likely bring speed and performance benefits to your website but buying the wrong one and suffering implementation problems can deliver performance problems and ultimately be much more costly in terms of implementation and management resource as compared with the cost of the CDN itself. At section.io we bring several CDNs to our customers websites all at once. We let our technology dynamically choose the fastest (and most available) CDN for your browsers based on where those browsers are in the internet at that point in time and the performance of the various CDNs at that time. In addition, we have a complete set of CDN features which we apply judiciously based on our understanding of our customers websites. section.io has solved the CDN flavour selection process so you can have a scoop of any flavour CDN whenever your customers need it!