Originally published on MaxCDN, a StackPath company
My desire to create a compilation of more-sweet-than-bitter testimony of CDNs was doomed from the start. Not because there’s more bad than good about CDNs, but because there’s so much potential.
When speaking with experts on the phone and communicating through email, I always noticed two things right from the start: 1) a passion for CDNs and 2) a desire to make them better.
Because of content delivery networks’ vital role in making the web a faster, more enjoyable experience, CDN experts were quick to show how and why they loved CDNs. And because of their faith in them, they were just as quick to point out problems and solutions. “CDNs are good, but could be great” was at the core of each response.
So instead of making CDNs shine, this post does something much different. It paints an honest picture of CDNs and pushes our industry to live up to our true potential. For CDN users, it serves as a way to gauge what’s expected of CDNs (and to hold them accountable); and for product teams, it provides a wealth of ideas on how to meet user expectations.
The Honest Truth About CDNs
According to Kyle Rush
Kyle Rush is Director of Frontend Engineering and Optimization for Hillary for America. He had a similar role in the successful Obama for America campaign and has also held many high level tech/optimization positions in companies like Optimizely and The New Yorker.
Caching is the biggest thing and there are two big benefits to it. The first is that content gets to the end user faster; the second is that caching at the edge reduces load on the origin server. This keeps both the user and engineer happy. It’s always kind of scary to me to manage a server that is exposed to production traffic. I would much rather have someone else (the CDN) worry about absorbing attacks, scaling and uptime.
CDNs are almost always difficult to configure. Akamai has a complicated API with hard-to-understand configs, Fastly is all Varnish so you’re editing VCLs which can get hairy, CloudFront is notoriously light on configuration options, and MaxCDN has a web GUI, but without a config file you lose the power of version control. So my main complaint is that I’ve never found a CDN that has a flexible AND easy-to-use configuration.
As far as solutions go, I think it would be cool to see an opinionated CDN! Caching can be super complicated to configure and it would be nice for a CDN to have some general options for the type of content you want to cache and then just handle all the caching rules for you.
For example, a default rule set for caching static HTML vs. a default rule set for caching CSS files. Of course it would be nice to have transparency into the rule sets when necessary and the ability to extend them. I suppose CloudFlare does this already, but it has a lot of extras and magic baked in. It’s also not super configurable.
It would be cool to see an opinionated CDN - one that has some general options for the type of content you want to cache and then just handle all the caching rules for you.
- Kyle Rush
According to Ilya Grigorik
Ilya Grigorik is a web performance engineer and developer advocate at Google where his focus is on making the web fast and driving adoption of performance best practices.
They make things fast! Check out this section of High Performance Browser Networking. The one persistent myth in our industry is that “CDNs are for static content,” but there is a lot to be gained for routing dynamic (non-cacheable) requests through a CDN as well. (See uncached origin fetch note on the page linked to above.)
Despite their focus on performance, many are slow to adopt performance-critical features. Case in point, the TLS optimization matrix. It’s frustrating to hear time and time again: “Yes, but my CDN does not support that.”
Faster releases, canary releases (e.g. beta opt-in), and more openness about the process.
The one persistent myth in our industry is that “CDNs are for static content,” but there is a lot to be gained for routing dynamic (non-cacheable) requests through a CDN as well.
- Ilya Grigorik
According to Dan Rayburn
Dan Rayburn, EVP of Streaming Media, is considered to be one of the foremost authorities, speakers, and writers on streaming media technology, content, and business models.
Edge delivery and caching provided by content delivery networks is the primary solution for working around Internet congestion and slow-down.
Also, with third party CDNs in the mix, companies can offload content delivery responsibilities to third party providers as they scale instead of building a costly infrastructure on their own. In early 2015, I wrote about how Microsoft started relying more on third party CDN providers as the demand for Windows and Xbox grew.
It’s hard for many consumers to know what exactly each CDN provider specializes in. Does the CDN specialize in the delivery of small objects, large objects, video, live streaming, or something else? The legacy attitude of one-size-fits-all for a CDN has become outdated as businesses seek out best-of-breed solutions to keep them competitive and drive top-line growth.
Also, there’s not enough transparency in regards to pricing. In my experience, it’s not uncommon for a customer to receive a statement from their provider that says X amount is owed this month without any specific breakdown of services used.
Education and transparency. Content delivery networks need to hone in on their speciality and make it known to consumers. For the sake of making the market less convoluted and consumers less confused, providers need to stop fearing what will happen when they take a firm stance in their offering.
As for pricing, providers need to be proactive in their approach to let consumers know when a certain month’s pricing will be other-than-expected.
For the sake of making the market less convoluted and consumers less confused, providers need to stop fearing what will happen when they take a firm stance in their offering.
- Dan Rayburn
According to Pat Meenan
Pat Meenan is a software engineer at Google and founder of WebPagetest. Before joining Google he worked as technical director and chief architect at Aol.
There are a bunch of things about CDNs that are great:
First, bandwidth offload from origin. For a well-designed, mostly-static site, this can mean core hosting being on minimal hardware and most of the scaling being offloaded to the CDN. Second, performance! Particularly for users on fast connections, the latency savings from using a CDN can make a night-and-day difference.
Third, faster adoption of new technologies. As things like HTTP/2 are deployed, CDNs tend to support them a lot sooner than most hosting providers or platforms. Lastly, browser-specific logic moved to the edge. This is usually an add-on service but the ability to serve images and fonts specifically tailored to the user’s browsers can be done automatically with no changes to the site itself.
First, the added complexity in the serving path can make diagnosing issues a lot more complicated, particularly if there are region-specific issues. Is there a problem between the users and an edge node, with the edge node itself, between the edge node and the origin? Can you even detect the issues or do you rely on user reporting? Second, configuring HTTPS serving can be complicated and expensive, depending on the provider and if support for non-SNI clients is needed.
Third, historically things like dynamic site acceleration (DSA) have been expensive add-ons, but to get the most out of new technologies it’s best for the static and dynamic content to all be served from the same domain/edge. Lastly, some CDNs don’t faithfully honor HTTP headers from the origins and try to layer their own custom logic for serving and caching.
As for complexity, the best solution I can think of is a high-level of transparency into the per-edge serving information for the customer’s domain. Drops in traffic levels may indicate issues though it could also be normal traffic re-balancing.
For HTTPS, hopefully that becomes less of an issue as the need for non-SNI support falls off, but it will probably continue to be an issue for a few more years.
For DSA and other newer technologies, those basically come down to product and marketing decisions by each CDN on how to position its offerings. The best I can hope for is that the offering stack is simplified and the default offering carries the best architecture.
Added complexity in the serving path makes diagnosing issues hard, therefore CDNs should offer a high level of transparency into per-edge serving information for the customer's domain.
- Pat Meenan
According to Steve Lerner
Steve Lerner, Senior Member of Technical Staff at eBay, Inc. is responsible for designing, deploying, and managing the CDN architecture that allows eBay’s Marketplace to scale and assist in $80B/yr of enabled commerce.
I love the ability to get edge delivery, especially proxying and a TLS handshake, in the far corners of networks around the world. I love how bandwidth pricing has come down to be close to transit pricing so CDN decisions aren’t based so much on bandwidth economics anymore but on more relevant decisions of efficiency and performance.
Universally, CDN portals are slow and lack the necessary features worthy of the functions that CDNs perform. Also, CDNs have yet to offer comprehensive log analysis and management solutions. Why should a CDN client have to ingest logs and run ElasticSearch/LogStash/Kibana/Druid/Grafana? Why don’t CDNs simply offer that stack onboard?
The solution for logging touches on a larger issue of lack of cloud solutions offered by CDNs. All pure play CDNs should invest in OpenStack and deploy on-net global cloud solutions using the operations expertise and scale that are unique to CDNs.
CDN portals are slow and lack the necessary features worthy of the functions that CDNs perform. Also, CDNs have yet to offer comprehensive log analysis and management solutions.
- Steve Lerner
According to Mukaddim Pathan
Mukaddim Pathan is a digital media professional with 8 years of experience in audio/video streaming, enterprise media storage, network media analytics, and CDNs. He is also the author of Advanced Content Delivery, Streaming, and Cloud Services and Internetworking of Content Delivery Networks. The following response is his own and not endorsed or affiliated with Telstra.
CDNs carry 39% of global traffic today and are likely to carry 62% of worldwide IP traffic by 2019. Also, the ups and downs CDNs have gone through are fascinating.
After the dot com bubble burst and before the proliferation of video services over CDNs, many considered CDNs a dead technology. The growth of video – formats, protocols, encoding, asset management, viewership – not only gave CDNs a lifeline, but also made them “the conduit” for the delivery of IT and network services.
The fact that CDNs improve performance, create revenue, and reduce infrastructure cost are well known. But what’s more fascinating is that the scope and definition of CDNs are ever-changing, making CDNs more attractive to use as a platform to create new revenue streams.
Potentially a whole gamut of new business models can be developed based on functionalities ranging from security, optimization, cloud services, integrated on-the-fly transcoding, just-in-time packaging, guaranteed ad delivery, analytics as a service, network and congestion awareness as a service, unicast/multicast distribution, and client-assisted delivery.
Many see CDNs solely as an infrastructure. As much as a CDN consists of servers, networks, and caches, in my opinion CDNs are applications. The intelligence is in the software. Anyone can build a CDN infrastructure, but to make its operations meaningful, services efficient, and performance robust, one has to be a CDN veteran and know how to fine tune the CDN software intelligence.
I also dislike how so many CDNs are being introduced in the market, almost at the speed of fast-growing fungus, but most of the CDN vendors don’t understand and/or conceptualize what a CDN can do. It’s a pity that so many CDN vendors compete on the basis of how many PoPs they have rather than what intelligent and innovative features they are offering to the market, and most importantly doing things differently.
There has not been a single other CDN able to meaningfully challenge the market incumbent. It simply shows that the new CDN entrants are not putting their focus on innovation and rather are here to make a few quick bucks by doing “all the same.” Moreover, many of them are not backed by a strong R&D arm.
As far as CDN technology and evolution are concerned, I would love to see CDN federation to its fullest maturity and adoption. This has been the largest missing factor for CDNs.
I think the solution to this is a true alliance between service providers (Telco operators), content providers, and CDNs where a set of best practices and standardized set of APIs are agreed for data exchange and interaction between disparate CDNs.
Ideally, CDNs across the Internet middle mile and operator’s last mile would be functioning according to a uniform end-to-end workflow, such that there is no interoperability issue. The last mile CDN should be able to perform one-hop delivery of the content, with the integration of micro-caches at regional/suburban/city locations, along the train/tram lines and/or inside the train, tram or bus.
For geographical content distribution across countries and across multiple last-mile CDNs, satellite content distribution would be leveraged (subject to business justification). Moreover, these interoperable CDNs would be present through a set of standardized APIs for integration with content providers such that they see a single CDN, without knowing the details of each disparate CDN behind the scene.
Have one content acquisition point, but with multiple geographic distribution points across CDNs while leveraging the full suite of functionalities of all the contributing CDNs. The business model will be based on revenue share as well as bi-directional charging of content traffic. In addition to this “CDN Exchange,” underlying CDNs will also offer technology enabler building blocks (microservices) for the creation of new types of CDNs and/or solution workflows as a future use case suite.
It’s a pity that so many CDN vendors compete on the basis of how many PoPs they have rather than what intelligent and innovative features they are offering.
- Mukaddim Pathan
According to Justin Dorfman
Justin Dorfman manages BootstrapCDN and is Director of Developer Relations at StickerMule.
CDNs allow household named services like Netflix, Twitter, and YouTube to exist. The Internet as we know it today wouldn’t be possible without them.
There is a lack of standardization in the CDN industry and I don’t see any sign of that changing in the near future.
An industry consortium where each CDN has a couple of representatives to discuss standards, common issues, and things like interoperability between other providers for their customers would be a huge step forward.
For example, if a client wanted to load balance different CDNs, they wouldn’t have to insert zone (pull, push, live, etc) settings or write multiple cache purge scripts (smart engineers use ipecache). If settings could be imported/exported via a JSON file and Provisioning/Purge requests handled by an open industry standard API, customers would have a good time.
A consortium where different CDNs come together to discuss standards and interoperability would be a huge step forward for our industry.
- Justin Dorfman
According to Joshua Roza
Joshua Roza is Director of CDN at Radware, a provider of integrated application delivery, load balancing, and application & network security solutions for virtual and cloud data centers. He has been in the CDN industry and supporting industries for over 16 years and helps CDN products get built.
For me, the world of CDN is kind of like a long marriage. It feels like I have been here all my life and have experienced everything there is to experience. But in reality we are just getting started and every day is marked with something new.
CDNs have grown into a utility-based platform that helps Internet companies concentrate on their base level offerings rather than latency, distance and performance. Without CDNs there would be a huge difference in the dynamics and costs with creating a website or company on the Internet.
CDNs level the playing field and give smaller companies the ability to compete and overtake larger companies. Who would have ever predicted that tiny little companies trying to break into Internet video could compete with major networks. Heck, we binge watch on Netflix and Hulu and not ABC or CBS.
What’s off about CDNs is that many don’t have an end goal for how they fit into a client’s complete architecture. What I mean by this is that CDNs are so focused on competing in a commodity-based business that they often miss the boat in leveraging their network for things like security, platform-as-a-service, network optimization, cloud hosting, and dozens of other complimentary services.
By focusing in on public use software like mod-secure, CDNs are not offering much in the way of true security. They are adding a checkbox, but real WAFs still have to be deployed behind the CDN in order to catch the 35% of attacks that aren’t volumetric and static, rather highly dynamic and resource-focused.
I see the next generation CDN on the horizon and think it’s going to be very different than the current generation. It’s going to look more like an integrations platform and offer a huge amount of functionality from analytics, security, optimization, SDK, multi-vendor load balancing, and, most importantly, an update to the pricing schema.
I see this generation being based on best-of-breed integrated solutions and complementary partnerships rather than “What software can I get for free and then hack into an acceptable product?”
While I realize CDNs have a development past, they are now entering into more critical infrastructure and should embrace best-of-breed technologies. With the speed at which customer needs are changing and the required response to changing security landscapes, can CDNs really be development shops or do they need to go back to being operations companies with big scale integration? I’m not sure, but it’s going to be fun to find out.
CDNs help internet companies concentrate on their base level offerings rather than latency, distance and performance. They level the playing field and give smaller companies the ability to compete and overtake larger companies.
- Joshua Roza
According to Mehdi Daoudi
Mehdi Daoudi is the co-founder and CEO of Catchpoint, an application performance monitoring service that combines synthetic, end user, and internal monitoring into a single solution.
CDNs offer immediate ROI and provide instant relief for capacity, latency and reachability.
CDNs play games with basic things like compression and are not always honest about performance problems. It seems as if they are always ready to blame anyone else but their own system. Also, sometimes there are hidden fees, customer segregation based on monthly commit, and no openness about the cache HIT/MISS ratio.
All content should be optimized out of the box and GZIP’d by default to save bandwidth and improve performance. Platforms should be built on trust and providers must own up to problematic issues. Additionally, providers should return debug headers to help customers and help monitoring companies help mutual customers. Image optimization tools should also be built into the core platform.
All content should be optimized out of the box and GZIP’d by default to save bandwidth and improve performance. Image optimization tools should also be built into the core platform.
- Mehdi Daoudi
According to Marty Kagan
Marty Kagan is Co-Founder and CTO at Cedexis, a real time data company that optimizes web performance across data centers, CDNs, and clouds for companies that want to ensure 100% availability and extend their reach to new global markets.
Many services that we take for granted today on the Internet would not be possible without CDNs. Over the top Video Delivery (OTT), worldwide e-commerce, and massive multi-player game downloads all require CDNs.
Commercial CDNs help smaller companies have worldwide presence and allow live video of soccer games that are played in England to be broadcast in the US, baseball games played in the US to be viewed in Cuba, and cricket games played in India to be viewed in France. None of this would be possible without CDNs.
CDNs can be expensive but don’t have to be. Also, CDNs are multi-tenant applications so they are subject to the noisy neighbor problem. Like every other piece of technology, they are subject to major and minor outages. CDNs can also introduce security issues (for instance, a customer on the CDN getting DDoS’d and other CDN customers being affected).
Clearly at Cedexis we believe you can solve these negative issues with CDNs by deploying a latency-based multi-CDN solution. In terms of costs, having a multi-CDN allows for better vendor management and cost controls. In terms of availability, having multiple CDNs ensures 100% availability. And in terms of performance, routing traffic to the best performing CDN in the enterprise’s portfolio of CDNs ensures the best possible performance – both globally and regionally.
The S-Curve shows the basic fact around multi-CDN about how there is always some portion of users that are better served by one CDN than another. Whatever CDN you have, there’s a different one that can serve some portion of your user base better. By combining CDNs using latency-based traffic management, you can offer the best possible performance to all of your users.
Another (perhaps more important) point is that CDN technology has become much more accessible and we are seeing many customers building “hybrid-CDNs.” A hybrid-CDN is a content delivery environment in which an enterprise provides and manages some resources in-house and has other services provided externally by public CDN vendors. We see this as a growing trend and one that CDN vendors will be asked to support on a regular basis. Hybrid CDNs keep costs down and performance and availability up where it provides much more control to the enterprise.
A growing trend, hybrid CDNs keep costs down and performance and availability up where it provides much more control to the enterprise.
- Marty Kagan
According to Dmitriy Akulov
I love a CDN’s ability to offload 90% of traffic from the origin and not worry about the static file delivery or any configuration and maintenance such a system requires. It allows people to focus on their work and the actual content or service they provide. It’s a very simple and fast way to give a huge performance boost to any website or service and sometimes even save them some money.
It’s also very simple to combine multiple CDNs and achieve even greater performance and uptime than a single provider can offer. Thats what we do at jsDelivr and we always rank above most big enterprise CDNs.
Sometimes it’s hard to integrate a CDN into your service due to each provider’s limitations. Not supporting custom CNAMEs with SSL. No SPDY. No raw log access. Dynamic content acceleration is also a particularly hard topic for most providers but very important and useful for lots of businesses. Also, some providers insist on charging huge amounts of money for something as basic as HTTPS support.
Vote with your wallet and start switching from providers stuck in the past to better companies supporting all the latest technologies and reasonable pricing.
Implementing a CDN is a very simple and fast way to give a huge performance boost to any website or service and sometimes even save them some money.
- Dmitriy Akulov
According to Jay Hung
Jay Hung is a software architect and performance consultant. He has evangelized and improved web performance at many large media organizations including Yahoo, Food Network, HGTV, Turner Sports, NCAA, Intuit, Active Network, as well as a number of smaller startups.
CDNs make the web and online world a faster place by simultaneously getting the content assets physically closer to the end user, as well as reducing the load on your application/origin servers – which in turn makes for a faster and improved user experience.
CDNs are still largely perceived by the broader web as intended for static assets, but there’s much more you can do with technologies such as edge side includes (ESI) and dynamic content caching.
Configuration is not always easy, often requiring a devops or network admin. This is especially true when serving HTTPS traffic.
More evangelism and training for CDNs, particularly for advanced and emerging features. Information should be easy to find on the web, and without requiring an account rep to provide access (it’s getting much better).
An ability to start from common pre-configured options can go a long way in helping with setup. For instance, one config may allow the user to upload their ssl certificate and enter their origin server, but have settings such as GZIP, TTL, allowed HTTP methods, headers/cookie forwarding, etc. be automatically selected for you, with the ability to modify. Configs can be included for light to aggressive caching and for various scenarios such as caching css/js, caching video, and so forth.
It’d be great to see automatic finger-printing of cached assets w/ automatic hash updating for specified ESI components.
Having pre-configured options can go a long way in helping with CDN setup. Configs could be included for light to aggressive caching and for various scenarios such as caching css/js, caching video, and so forth.
- Jay Hung
These are the things expected of CDN providers moving forward and mentioned by at least two CDN experts above.
Pre-configuration options needed. Not everyone is born a CDN whiz or necessarily wants to be one. Some individuals and companies just know they need a CDN, and when they get it, they just want it to work. Giving customers the ability to pick a pre-configuration option, and trust the CDN to call the shots, would save businesses from worrying about CDN functions.
More original features and next-gen support required. A content delivery network with exceptional speed and uptime is not enough. Speed and uptime needs to come standard – no questions asked. To make a CDN truly valuable, the provider needs to invest in original features and support for the “web ahead.”
Does the CDN support HTTP/2? Is it adopting TLS/SSL best practices? Does it perform on-the-fly image optimization and on-the-fly transcoding? Does it offer easy pre-configuration options that just work? Acting on these questions will keep CDNs relevant, as well as their customers’ content delivery strategy.
Interoperability would be revolutionary. Whether talking about the CDN industry as a whole or a multi-CDN approach, interoperability is crucial. For instance, if different providers could come together and create a set of CDN standards, users could easily interact with multiple CDNs in a singular, simple way.
Above, Mukaddim Pathan calls for “a true alliance between service providers, content providers, and CDNs where a set of best practices and standardized set of APIs are agreed for data exchange and interaction between disparate CDNs.” And Justin Dorfman calls for an “industry consortium where each CDN has a couple of representatives to discuss standards, common issues, and things like interoperability between other providers.”
Transparency is lacking. Regarding pricing, even though bandwidth pricing has come down to be close to transit pricing, there is still a pricing problem in the CDN industry. For one, it’s difficult for customers to forecast next month’s pricing and ambiguous charges often find their way into invoices. This needs to stop if we’re to establish an industry based on trust.
Regarding product, providers need to be direct and take a firm stance in their offering. Because all CDNs aren’t created equal, providers need to cut the BS and give it to people straight. What kind of object delivery do you excel at? Does your platform accommodate the needs of developers, businessmen, or both? What core features make you original? These are the questions people need to ask and that providers need to answer honestly (in their marketing collateral and in-person).
Bottom line: Be bold. Be honest. And take risks (with anything but people’s trust.)
With all that said, CDNs rock. They significantly reduce infrastructure costs, improve loading times, and help websites and web services scale. In terms of content delivery, they level the playing field and help smaller businesses compete with larger ones. Also, many experts agree that if it wasn’t for CDNs, the Internet as we know it would not exist.
Above is a trove of facts, theories, and insight that, if acted on, could accelerate the growth of the CDN industry. This growth would be the result of incredible value offered by CDNs rather than pure demand for faster content delivery.
Just like any competitive industry, there are things both good and bad about the current state of CDNs. The good is often the result of one provider’s innovation and the other providers’ reactions, while the bad is often the result of a “good enough” attitude shared among all CDN providers toward a certain inefficiency.
It’s obvious that there are ways to crush complacencies in the CDN industry – and now we just need to act.
What issue would you like to see us tackle first? What do you love about CDNs and want to get even better?
We’re listening, ready to live up to our full potential.