No matter the ultimate goal of your business, whether you are creating the next massively multiplayer online role-playing game (MMORPG) or the next must-read blog, delivering content to your users quickly and efficiently is crucial. The difference between the best- and worst-rated websites on the Internet today is often determined by speed—users will judge your website based upon how long they have to wait for content to load.
In the race to offer the best service to your customers, take the time to answer this very important question: What is a CDN? While content delivery networks (CDNs) have existed for 15 years, only in light of HTML 2.0 have they become increasingly practical.
In a typical client–server model, the user is subject to the fragility of the data link. Content is only hosted on one server, which may be busy or unavailable at the time a user requests it. In this set-up, there is no way to guarantee that content will be downloaded quickly, completely and without fear of packet loss each time a customer requests it. There is also no way to ensure that your server will be located locally to your customer. A CDN configuration can help resolve the shortcomings of the client–server link, efficiently and affordably.
What is a CDN?
A CDN provides a way to master distribution of your media in a cost-effective and controlled manner. In its most simplistic definition, a CDN is a managed network of servers, each hosting a copy of your media and scripts, that connects users to the fastest and most conveniently available server. A CDN is an application service provider that offers the end-user access to bandwidth-intensive static content in a manner that is distributed and balanced. This ensures that the user has access to the requested assets fast, and that dynamic content can be quickly populated.
Perhaps the most well-known example of the use of a CDN is the video-hosting website YouTube. YouTube is able to transmit massive amounts of video content because it uses a CDN. When a user uploads a video to YouTube, it is stored in the website’s central server. When another user requests to view the video, the server located closest to him will download the video and stream the content. This means that the next person located nearby that requests the same video will not have to wait, as the content is now cached and ready to stream.
Benefits of a CDN
Typically, a CDN is used in situations where high content flow is essential. Under normal conditions, a browser will only allow a set number of media files to be downloaded from a single domain simultaneously per user. Since CDN files are hosted on different domains, a browser is able to download more files at the same time. Transmission speed from the server to the end user is a factor of the latency of the delivery network and the maximum transmission control protocol (TCP) window size of the end user’s operating system. As the TCP size is a system setting, the only controllable factor is latency.
Transmitting many packets internationally can lead to a high rate of latency. Greater distance can lead to dropped packets, data distortion or the wholesale corruption of the file. To service end users in China or Australia downloading content from the United States, for example, it may be practical to have a data center with a shorter transmission path available.
A CDN can also provide your business with increased security. In the case of a client–server connection, anything that interferes with this pathway will break the flow of content. Through a CDN, the end user will access the most readily available server. If the CDN is designed so that traffic for the end users can only originate or terminate at its servers, the loss of service to that server—from a power outage, telecom failure, or even a distributed denial-of-service (DDoS) attack—would not mean that your web service would be offline. A well-designed CDN would instead re-route the traffic to available servers with little noticeable change in latency.
Choosing the right CDN provider
In choosing a CDN provider, you should ask several questions:
- How reliable and fast are the provider’s servers?
- How many servers does the provider operate, and where are they located?
- Can the provider offer 24/7 customer support, FTP uploads, real-time CDN usage statistics and the ability to override browser caching headers?
- Does the provider offer Origin-Pull, gzip compression and custom CNAME for secure web pages?
- Does the provider offer dynamic content hosting?
It is important to establish your requirements before attempting to purchase a solution. The best way to approach this is the MoSCoW method: determining 1) what you must have, i.e., what is absolutely needed to make your content delivery scheme work; 2) what you should have, i.e., high-priority items that should be included in the solution if possible; 3) what you could have, i.e., determining what is desirable but not necessary; and 4) what you won’t have, i.e., requirements that can be passed on for the time being.
By taking the time to determine your business’s needs first-hand and discussing your plan with a solutions advisor, you can cost-effectively determine how a CDN can help you leverage the power of the Internet—giving your customers the best possible user experience.
Image source: Flickr