Can Your CDN Handle a Cloud Based Web Application?
Content Delivery Networks have been around for almost two decades now. And their primary goal has almost always been the same—to deliver web resources faster to global end users.
In the 90s, websites used to be a collection of static images and text. The legacy CDNs focused on accelerating such static content by caching on edge servers close to the end users. The first generation of CDNs spent millions of dollars building out caching infrastructure and investing in a large number of Points of Presence (PoPs) that were globally distributed. The key performance metrics were last mile latency (also known as, connect time) and cache hit ratio. CDNs spent most of their time tuning their caching algorithms to get to 99 percent cache hit ratios.
Fast forward to 2015. The focus today is not on static websites but on dynamic cloud based web applications. The emphasis is a lot more on dynamic data (more on this later) and bi-directional traffic (user generated data).
The real challenge that CDNs face today is not just being able to speed up static websites, but to enhance the performance of dynamic and interactive cloud based web applications. While the applications still have some static content, legacy CDNs that can optimize only a small fraction of the application (that is static) just don’t cut it anymore.
Understanding Dynamic Content
Dynamic content is content that cannot be pre-created and stored on the web server. Such content needs to be generated in real time, and is constantly being updated on the fly. This makes the legacy focus of caching solutions obsolete.
An interesting caveat is that even dynamic content is of two kinds—“shared” and “personalized.”
An example of shared dynamic content would be a stock market web chart that gets updated every few seconds (appears real time); however, all end users see the same chart. Shared dynamic content, while being cacheable, has the nasty side effect of reducing cache hit ratios as the Time to Live (TTL) is extremely small. Most legacy CDNs break into a sweat when the cache ratio goes below 90 percent. The performance deteriorates significantly at lower cache hit ratios.
The other kind of dynamic content is what the industry calls personalized dynamic content. An example of this is your bank statement or your shopping cart. Such content cannot be cached. Every request needs to go all the way back to the origin server. In my opinion, personalized dynamic content is the only true dynamic content. Cacheable dynamic content is an oxymoron. If shared dynamic content causes legacy CDN vendors to break into a sweat, personalized dynamic content makes them tip over.
The third piece of the puzzle is bi-directional content. This includes any and every kind of user generated content/uploads such as filling out forms on a website, commenting on a review site, shopping on an ecommerce portal, etc. Legacy CDNs simply do not understand the concept of a POST.
What it Takes to Accelerate Dynamic Content
Next generation CDNs need to be built from ground up to accelerate dynamic content. The approach taken by existing CDNs to bolt on ‘cacheable dynamic content acceleration’ capabilities to their legacy caching platforms, is really not an option. Next generation CDNs need to be able to:
• Handle personalized dynamic content
• Deal with low cache hit ratios without significant deterioration in performance for shared dynamic content
• Provide stable and consistent performance and acceleration, for both downloads and uploads
• Provide compression on the fly
• Provide great performance for static content (all web applications have some fraction of content that is static and cacheable)
• Ensure that high volume sites do not cause cache eviction for lower volume objects from a dynamic web application
• Handle end-to-end persistent connections efficiently
The ideal dynamic web acceleration solution must have a stable private network in the middle connecting all the POPs, so that the traffic can bypass the congestion on the Internet.
What you Need to be Looking for, as a Buyer
Over the years, CDNs have become so good at gaming performance tests for a single cacheable image file download, that you need an electron microscope to see the differences in response times across different vendors. For today’s web applications, however, what matters is the end-to-end performance, for a complete transaction, not the time it takes to download a single statically cached image from the edge servers.
Before settling on a CDN vendor, make sure you measure the improvement in the time taken for a complete transaction, and not the time it takes to download a single cached image from the edge servers, from a page that has several complex user interactions.
Enterprise buyers also need to evaluate the nature of their content prior to evaluating CDN providers, and decide what’s best for their needs. Static content delivery is a commoditized market space. But if you’re looking for a solution that can turbocharge premium enterprise content or personalized dynamic content, the list of vendors that you should be looking at, is quite short.