Don’t Blame Yourself: The Failures of ADC and FEO
According to those “in the know” in internet technology, there are two primary mechanisms to accelerate today’s dynamic, Internet-facing applications: network optimization and front-end optimization (FEO). In fact, these are the only separate categories listed in Gartner’s Technology Insight for Content Delivery Networks (aside from edge caching, which is the base feature of a CDN).
While this reading of the market has generally held true for the past decade, lately some of the inherent limitations in each of these approaches have become evident.
To learn more and see a case study demonstrating the power of orchestration, download our white paper on content orchestration.
Network Optimizations + ADC
For one, network optimizations are up against the laws of physics. Where dynamic/personalized content is concerned, the bytes must always traverse a path from the visitor’s device through the Internet to an origin server, where the content is generated by a database, then make the trip back again. In other words, no amount of route optimization or cache management can change the fact that some significant geographic distance must be covered by the data.
As a result, online applications that rely on pure CDN and ADN technologies are getting slower: the amount of dynamic content they host is growing quickly, while latency can only be reduced by tiny increments, if at all.
FEO, for its part, suffers from being both too narrow and too broad. On one hand, it is limited by a scope that begins and ends with content that is owned and managed by the application owner and can be re-written or re-organized manually. In a world where third party content is taking an increasing share of applications, this is a problem. On the other hand it’s overly broad in the variety of techniques that fall under the moniker. Official descriptions of FEO include one-off programming hacks, software automation (much of which has since migrated to browsers), and complex feats of application engineering – all rolled into one:
For the true “last mile,” web performance optimization — often called front-end optimization (FEO) — manipulates assets to optimize time-to-first-render and time-to-first-interaction. Web performance optimization solutions achieve these feats by: 1) bundling assets and images to make fewer roundtrip calls; 2) sequencing elements, e.g., focusing on above the fold content first or progressively painting content; 3) compressing code and images; and 4) image format, resolution, and art direction changes.
Market Overview: CDN Platforms and Digital Performance Services (Forrester Research)
Front-end optimization (FEO), sometimes called Web content optimization or Web performance optimization, alters the pages produced by the Web servers, so that they are both delivered faster by the network and rendered more quickly by the browser. Examples of FEO techniques include: Combining multiple Cascading Style Sheets (CSS) files into a single file. Combining multiple images into a single file, using CSS sprites and inlining…Increasing cache efficiency by manipulating headers, such as altering expiration times. Sending only deltas (changes), if the client has retrieved the page before. Taking advantage of the application cache in browsers that support HTML 5.
Analyst-speak aside, “on the ground” industry sentiment says that FEO as a whole is brittle – i.e., it frequently causes errors and requires more time than it’s worth. What’s more, it will generally be made redundant with a broad adoption of HTTP/2. For example, the following FEO optimizations, already marginalized, would further fade to insignificance with HTTP/2:
- Script combination
- Script inlining
- Script minification
- Domain sharding/request parallelization
Other key FEO optimizations might still “work” in the strictest sense in an HTTP/2 world, but will have a diminishing impact over time. These include:
- GZip compression
- DataURI scheme
- Lossless & lossy image compression
- Image Right-sizing
- Image Transcoding
- Responsive imaging
These techniques help to cut down the number of bytes, particularly for images, but don’t account for dynamic content or third party content. That would make them what we call “technical gravy”: useful in certain cases as a point solution, but otherwise irrelevant to overall user experiences.
It’s not me, it’s you
You may have picked up on a theme here. The biggest problem with legacy optimization methods is the inability to address dynamic, personalized, and third party content. To make modern applications fast, you simply can’t avoid the source of the problem. In other words, it’s not your fault – you’ve added new tools and services to keep your website engaging, and it’s the industry that has fallen behind by relying on ADC and FEO methods for too long.
If not FEO and ADC, then what?
What you DO have direct control over is how elements are prioritized within your own application, and how your app instructs the browser on when to download and render them. We refer to such manipulations of the default rendering path as “content orchestration.” Content orchestration has the power to take a bloated, convoluted web application from unbearably slow to exceeding user expectations for speed practically overnight (and with no changes to code). By getting crucial static elements in front of the user instantly and sequencing the dynamic content just in time for when its needed, it’s possible to address and overcome the failures of ADC and FEO.