The need to balance compute power with latency has made edge computing a hot topic, fueled partly by the emergence of the 5G Edge, which promises ultra-low latency. The 5G Edge’s <10 ms latency is foundational to enabling virtual reality, the Internet of Things (IoT), and autonomous vehicles. Without edge computing, these functionalities would be seriously constrained.
While 5G Edge is making rapid strides forward, content delivery networks (CDN) have enabled edge compute use cases for many years, offering massive network capacity and just milliseconds of latency to virtually every connected device and internet user the planet. CDNs are well established and have proven to be highly effective at delivering large flows of content at scale. The Verizon Media, now Edgio, Platform, for example, offers 250+ Tbps of egress capacity and is deeply peered with more than 7,000 last-mile networks, providing global scale, performance, and security.
This puts the CDN Edge in the driver’s seat as a highly cost-effective way to move applications and workloads from the cloud and closer to end users. Long round trips to core servers can result in sluggish user experiences and ultimately limits the type of applications developed. Pushing application processing to the CDN Edge opens up new opportunities to add functionality and create better user experiences.
The rise of edge applications
But what’s the best way to develop applications on the edge? Despite the unrelenting buzz, edge computing is still very much in the early stages of development. As such, the future of “mainstream” edge computing will likely be much different than it looks today. One significant change we expect is the emergence of what we’re calling “Edge Applications.” These are highly optimized, fully tested, pre-built functions integrated into the CDN that can be enabled quickly and easily. These work together with our Functions@Edge capability that enables developers to write and execute their code in the CDN Edge, giving customers a wide spectrum of possible computing capabilities.
Edgio Applications are built to solve common use cases such as:
Edge Side Includes (ESI)
Edgio Applications lower the barrier to edge compute by giving customers access to edge compute tools without needing to develop and support code.
Even though specific edge compute applications may vary considerably in terms of overall functionality or target industry, many underlying requirements are nearly identical from app to app. These similarities span standardized protocols and workflows. Edgio Applications takes advantage of this fact to help simplify deployment and speed the adoption of edge compute capabilities.
As shown on the left of the figure below, CDN customers can interact with our Applications through a simple configuration. They use our Rules Engine API to enable or disable a particular application. The right side of the figure below shows how applications are created and updated through our CI/CD pipeline. Following initial development, new features and functions are continuously added via a robust feedback loop. In this model, we can see how everybody across the entire network uses the application. We can use this input to fix bugs, add key features, and address security concerns. Customers give up some control but gain a simplified deployment model and are not burdened with building and maintaining CI/CD pipelines for each function. This is particularly valuable for functions not highly differentiated yet needed in various use cases.
Figure 1. The Original Verizon Media Edge Applications development model.
This contrasts with the Functions@Edge model, shown below, where each customer is responsible for their development. As new functions are developed, they are deployed to the CDN Edge using the Functions@Edge API. While this provides more control, it shifts the development burden to the user. It falls to each developer/organization to track bug reports, gathers feature requests, and roll out new versions and patches for their particular edge function. Organizations that need custom or one-off functions that aren’t common to multiple customers or are highly specialized should use Functions@Edge to develop the functionality they need. But for commonplace edge compute use cases, Edgio Applications can bring these in-house and offer them as managed services.
Figure 2. Functions@Edge development model.
Edgio Applications example: Image optimization
The process we use for determining what edge applications to develop starts with input from our customers. Multiple customer requests for the same feature are a good predictor of its popularity and value to a broad cross-section of organizations. One example that comes up frequently is image optimization, an application that can resize and optimize images on behalf of CDN customers for their clients (internet users).
Image optimization has become an important application to reduce the load times of web pages containing images. Rather than store image versions in the application or on origin storage, an image optimization edge application integrates into the CDN’s request handling to seamlessly transform images as they are served, eliminating the cost of storage and improving client load times. Customers use the Verizon Media Platform Rules Engine to supply matching criteria such as URL extension (e.g., jpg), host, or URL path to access an image optimization edge application.
At first blush, an image optimizer may seem like a simple development effort, but as you dig below the surface, you’ll discover considerable complexity. An edge image optimization server must handle basic image resizing and various other options designed to help with dynamic image formatting. Supported features in an edge image optimization application should ideally include a broad set of functions such as:
Basic width and height resizing
DPR (device pixel ratio) handling
Auto-sizing via a device database
Trimming and padding
Fitting image to a region or within canvas with optional background color
Rotating and blurring images
Quantizing image sizes linearly or logarithmically to reduce cached variations
Automatic metadata stripping
The image optimization application should handle client hints for responsive pages if enabled via the Rules Engine and optimized for multi-tiered caching. The application should also take advantage of CDN cache functionality, such as an origin shield, which caches content to minimize requests to the origin server. As shown in the image below, transform results could be cached at a shield PoP and then served and cached at edge PoPs to reduce latency and the number of invocations of the application.
Figure 3. An optimized request flow minimizes requests to the origin server.
Image optimization requests are designed to take advantage of CDN caching. Incoming requests route to the proper cache node using consistent hashing to optimize for cache localization. The first CDN cache node that receives a request applies logic in two phases. In the first phase, the cache node computes the cache key and looks it up in the cache. If the file is not present in the cache, then it would pull the base image in the case of image optimization. The base image returned in the response would then be optimized on the fly as it is cached and served back to the client.
Such functionality is challenging for developers to fully optimize, as described here, when building their edge functions, offering a compelling case for why we expect edge applications to play such an important role in edge computing going forward.
The advent of 5G has brought the rise of edge computing and the recognition that pushing processing loads out to the edge can reduce latency compared to the cloud, improve customer experience and open up new categories of applications. With its sub-10ms latency, the 5G Edge is a must for virtual reality or autonomous vehicles. For most other applications, CDNs are more established than 5G and are just a few milliseconds slower to every user and device on the planet than the 5G Edge. As enterprises and software developers push more compute workloads to the edge, the CDN is taking on added significance beyond its traditional content delivery role. This opens up new applications and services that would be impractical in the cloud alone due to the latency involved with cloud computing.
One way to lower the barriers to adopting edge computing is with Edgio Applications. This approach allows organizations to access a particular application, such as image optimization, through simple rules configuration instead of a full-scale development effort. Edgio Applications benefit from a rich feedback loop as more and more organizations worldwide take advantage of the service, which we believe will play a major role in driving edge compute adoption.
Whether it’s an incremental improvement in the customer experience or the introduction of breakthrough applications, one thing is clear: bringing more compute functionality to the edge will fundamentally change how applications are developed and deployed for the better.