What are the Limitations of CDN Today?
Content Delivery Networks (CDNs) are a cornerstone of modern internet architecture, improving the user experience by providing content quickly and effectively. CDNs have become an essential tool for businesses, utilizing cached content and global distribution to cater to the needs of a vast audience. While the CDN advantages are numerous, including reduced latency and increased availability, it’s a fact that CDNs are not a one-size-fits-all solution either. In this article, we will explore the limitations of a CDN, breaking down key areas where CDNs fall short, and providing insights into their solutions.
CDN’s Effectiveness: Static Vs Dynamic Content
Back in the day, a CDN’s primary function revolved around caching static content and delivering it efficiently to end-users. The concept of “cacheable” refers to content that doesn’t change frequently and can be stored for quick access. Examples include images, stylesheets, or pre-recorded videos.
Non-cacheable or dynamic content, on the other hand, is content that changes frequently or is unique to individual users. Examples include real-time video conferencing, gaming, or personalized web pages.
Today, 40% of the online traffic is made up of dynamic content, CDN also did their part of the effort to adopt this new reality. This includes adding Edge compute capabilities to generate dynamic content on the Edge!
To better understand the war of static vs dynamic content, let’s dive into more details below:
Static Content - A Netflix Movie
Consider a popular movie on Netflix. The same movie file is served to millions of users worldwide. It’s a static file, and CDN can cache it, enabling quick delivery to various locations.
The length of a content isn’t the main issue for a CDN, it’s the nature of the content that really reflects whether something can be cached or not.
{{promo}}
Dynamic Content - Online Gaming
Imagine a video gaming match. All the actions and the moves of your characters are happening in real-time. You press the buttons, and your character does actions in return. There is no predefined moveset.
Therefore, it has no way of storing that content beforehand. This is a scenario where CDN’s effectiveness is reduced, as it’s designed to handle static content rather than real-time dynamic content.
CDNs Can Still Help with Dynamic Content!
When an end user requests dynamic content, the CDN must pass the request to the origin server; high RTTs can add significant delays, particularly if the origin server is distant from both the CDN’s edge server and the end user.
To mitigate this, they pass the request by shortening the TLS handshake process. This functionality offers a more responsive user experience, even if the usage in CDN for dynamic content remains significantly limited.
For a service like Zoom, which deals with high volumes of dynamic content, using a CDN might not be the optimal choice. In fact, large companies with significant dynamic content needs might utilize peer-to-peer connections, bypassing traditional CDNs altogether.
CDN Supports Only HTTP(S)
CDNs primarily support the HTTP (HyperText Transfer Protocol) for content delivery. HTTP is widely used and well-suited for web content but is not the best choice of all applications.
TCP (Transmission Control Protocol) is another lower level protocol that breaks streams of data into packets, tracking lost packets, and ensuring reliable data transmissions.
For applications that use proprietary protocols on top of TCP/UDP, CDN is unable to protect their traffic or accelerate their performance - hence it’s not a proper solution for such applications.
{{promo}}
Limitation of HTTP in CDN
For some companies, HTTP might be too heavy or expensive. These companies may require customized TCP protocols that CDN cannot support.
Here is why this is a major limitation:
- CDN’s Inability to Support TCP: Since CDNs are specifically designed to accept HTTP requests, they cannot support customized TCP requests.
This restriction might lead to a scenario where companies must build their own infrastructure to provide the network, avoiding CDN entirely.
One way to overcome this limitation and utilize a proprietary protocol is through the use of WebSockets. These are supported by most CDNs, and offer a means to facilitate full-duplex communication channels over a single, long-held connection, which can be used for more customized communication needs.
CDN is Less Effective in Distributing Local Content
Local content refers to data or information targeting a specific geographic area or region. In some cases, businesses may primarily serve a local audience, and their content might not need global distribution.
Here’s where CDN’s global architecture will not be as advantageous.
Local News Website
Imagine a local news website that primarily serves a city or a small region. The content is most relevant to the local population, and there’s little need to distribute it globally.
In this scenario, a CDN’s worldwide distribution will only add unnecessary complexity and cost.
Local CDN vs Global CDN
Some regions have local CDNs, like in Australia, China, or Russia. These local CDNs don’t fall into the category of high-premium CDNs and might not provide the same level of services.
However, if your service is primarily local, and most of your content doesn’t need global reach, a local CDN is more suitable. On the other hand, a global CDN will not be a good choice since it’s primarily designed to serve content worldwide.
CDN Drawbacks
We’ve learned that CDNs are an essential part of modern web infrastructure, but they’re not without their disadvantages, and the list hasn’t stopped just yet.
Here’s an exploration of some of the key drawbacks of using a CDN:
Costs
The costs of implementing and maintaining a CDN can be quite high, especially for small to medium-sized businesses.
This expense can include not only the basic subscription fee but also hidden costs such as data transfer charges, overage fees, and minimum commitments.
These costs can make CDN services less appealing for smaller businesses or websites with a limited budget. To add insult to the injury, building, maintaining, and optimizing a CDN can be even more expensive, particularly if extensive customization is required.
Location of Services
If your audience is concentrated in regions where the CDN provider does not have servers, it might actually hinder performance rather than enhance it.
A simple solution to minimize this risk is to use a multi-CDN architecture, where you always have at least two CDNs running simultaneously for maximum coverage. You can find a multi-CDN provider in this day and age quite easily.
Single Point of Failure
If a business uses just one Content Delivery Network (CDN) provider, it means there's only one point that might fail or have issues.
This can make the system more fragile and risky. Businesses need to think carefully about this and maybe have backup plans.
Capacity Limitations
CDNs have a set capacity, and they are constantly trying to ensure it meets demand. However, this isn't always achievable, especially during spikes of traffic or major events. If a CDN is short on capacity in a particular geographical area, some traffic might be rerouted to distant areas, resulting in diminished performance.
Moreover, if there isn't enough cache capacity, content might get evicted sooner than anticipated, leading to poor offloading and reduced efficiency. Likewise, insufficient memory and network capacity can degrade the overall performance, presenting unexpected challenges for businesses and their end-users.
Conclusion
Content Delivery Networks have revolutionized the way we access content online. However, it’s vital to recognize that CDNs are not without their limitations. Whether it’s the handling of non-cacheable content, limited or a lack of support for protocols beyond HTTP, or reduced effectiveness in distributing local content, having a good understanding of these limitations helps in making more informed decisions.