Content delivery networks are anything but new and yet for 99% of the website & service owners choosing the right one is usually troublesome. Here are a few tips on how to select the best CDN for your project.
Small objects delivery is heavily affected by latency - the time it takes for data to start travelling from one point to another, in this case - between the server and your visitors. Websites of today are complex and full of large number of small elements of which each requires a connection to be opened to the server and the latency builds up. On the other hand, small objects don't require a high network throughput since they are easy to move around and won't occupy big amounts of bandwidth while being delivered to the browser of the visitor.
Large objects, on the other hand, are different. Latency is less important since the majority of time the visitor will spend will be in downloading or streaming the content instead opening and closing connections. Network throughput, also known as bandwidth, becomes more important since it dictates the actual speed of the download. Insufficient throughput means longer running downloads and in the event of video streaming - buffering, playback interruptions and, as a result, a negative user experience.
Content delivery networks of the scattered type will have a large number of points of presence (PoPs), ideally all around the globe to guarantee low latency for your visitors around the world. If your purpose is small object acceleration this is the type of network infrastructure that will suit you best. A scattered CDN will always have a server close to your visitors, thus lower latency and a faster loading website.
A consolidated CDN will have a smaller number of globally distributed PoPs, usually with a higher network capacity each. These PoPs will have large amounts of bandwidth available and the physical servers in them will have multiple SSD drives. Ideally, a consolidated CDN will always have enough resources available to eliminate bandwidth exhaustion, disk I/O overload, and by rule will be more resilient to unexpected traffic spikes.
One of the main objectives of a CDN is to deliver your content from a location closer to your visitors. If you are running a truly global website, service or app, the larger the network, the better. This, of course, comes at a price. Connectivity in some areas of the world is more expensive than others and you always have to weight in the pros and cons of paying for a PoP in an expensive location, especially if only a small percentage of your users will be served from it. Many content delivery networks will allow you to turn off these expensive points and serve these locations from other, more distant but cheaper points of presence. However, the costs of running these exotic PoPs needs to be recovered, which will translate into a higher price for the cheaper PoPs that you use. Unless you plan to use all these locations, select a network which offers the locations that you need to bring the costs down.
The more features you have, the better, unless for when you don't need them. While you may need control over settings like on-the-fly image optimisation, for example, you rarely need to be able to limit the maximum speed your visitors can load your site at. On the opposite, when you deliver software or video, you may want to put some limits on the maximum number of connections per IP address or to avoid content hot linking by using secure tokens. The best CDN for your needs would be the one that has the right feature set for your use case, instead of offering an endless list of options that would inflate the price, but you would never use them.
Due to their design, CDNs are less prone to downtime compared to your server or group of servers in a single location. By routing around failing servers and data centres, content delivery networks provide high uptime and reliability. The best CDN for your needs would be the one that offers the highest uptime service level agreement at the price you are willing to pay, or an uptime higher than the minimum your are ready to live with.
Most content delivery networks will share resources between their customers, especially on the edge of their network where caching and delivery takes place. This approach may or may not work for you. Since the PoPs have finite storage capacity, each edge cache server will eventually have to purge some of it's cached content to make room for new content to be cached. The least accessed files will usually be the one to be purged first. If you are sharing the cache with another customer and their content is more popular than yours, you may end up being rotated out of cache frequently. You will probably be able to live with that if you are serving small files, as after all, these would be cached again on the next request and the cache fill operation would be fast enough. However, if you are serving VOD content or software downloads, hundreds of megabytes in size, this would put a strain on your origin server and will make for a not so good end user experience due to slower cache fill operations, so you want to have a dedicated edge cache instead.
The billing model that your CDN provider uses is another important thing to factor in.
The traditional model is based on the amount of data that your website, service or app has transferred through the CDN's network over the course of the billing period. When you are accelerating small objects this model provides a good balance between value and price. The larger the objects, the less value and the higher price compared to the two models below.
This billing model provides unmetered connectivity. In other words, you are not being billed for the traffic that you generate, but for the maximum speed at which your content has been delivered during 95% of the billing period. During 5% of the time, you could experience bandwidth spikes that would not affect your bill. This billing model works best if you have a steady traffic to your service, website or app, with predictable usage patterns and no daily spikes during peak hours. Spiking beyond the agreed bandwidth for more than 5% of the time causes overage billing.
Like the 95th% model, the unmetered model is not based on the amount of traffic. You are billed based on the maximum speed at which your content has been served. This model is extremely popular with VOD, streaming and software-oriented services where bandwidth usage during peak hours is times higher than the rest of the time and bandwidth spikes are usually not so easy to predict. Expenses are easier to predict and no overage billing is applied.
24/7 support is paramount. Content delivery networks are, by default, a managed service with continuous network monitoring and engineers ready to investigate and resolve situations as they appear. Where most customers actually need help and support is with integrations and questions regarding features, and your CDN provider should be there to help you when you need them.