The online applications of organizations today are served by a complement of technologies such as container schedulers, load balancers, content-delivery networks, cloud compute and storage, web-application firewalls, and DDoS mitigation services. A common denominator and entry point for most applications is DNS, an often overlooked but critical component of every stack. Once merely the Internet’s phone book, DNS has evolved along with the Internet to become a major part of successful application delivery. One way in which today’s DNS technologies and providers can help is as partners in optimizing the content-delivery-network (CDN) strategy for organizations that use CDNs.
The Benefits of a CDN
Initially, organizations used a CDN improve the performance of content delivery. Imagine an early-2000s web page with a bunch of text and images interspersed. Behind the scenes, to load all the assets for the page, you might need to do a few dozen HTTP requests. (These days that number might be more like a few hundred.) Each request requires your browser to connect to a web server, specify the content it’s requesting, download the content and display the content.
If you have users around the world (or even around the country), connecting all of them to a single data center (say, in Virginia or maybe California) to get the content for your application can work just fine, but if you can move the content physically closer to the application’s end users so each request goes to a web server in the same locale as the user, the time to connect and fetch the content before it can be displayed is reduced.
A CDN can be highly valuable if better performance is your goal, especially if your users are widely distributed. If all your users are in New York City, and your application’s “origin” data center is also in New York City, there may be no great performance motivation to use a CDN. But if you also have users around the U.S., in Europe, in Asia or elsewhere, then a CDN with a wider (ideally global) presence can improve the experiences of all those users.
Among the many reasons to use a CDN, here are two more:
- Burstability: Remember the “slashdot effect”? A CDN has a lot of capacity to handle requests on demand and can handle big bursts of traffic (or even attacks) usually much more effectively than an application’s origin infrastructure.
- SSL termination: More and more, this use case has become important. Sometimes, instead of serving static content directly to users, a CDN simply sits between the end user and the application and passes traffic straight through. In these cases, in addition to serving as a buffer against attack, a CDN can handle some aspects of the connection process — like the back-and-forth communication that goes into setting up an SSL-encrypted connection — offloading that work from the application infrastructure.
How a DNS Provider Can Help
Like any other application, content delivery starts for most CDNs with a DNS lookup to a host name owned by the CDN (e.g., “client-name.some-cdn.net”). Some DNS providers enable their CDN customers to use that lookup to make the decision about which of their CDN data centers should fulfill the request. And, of course, the organization’s DNS provider maps an organization’s domains to the CDN servicing those domains.
More and more often, a DNS provider can interact with CDNs in an intriguing way: by directing traffic across multiple CDNs (the “multi-CDN” use case). For instance, an online gaming company may employ not just one or two but many CDNs. They do so to optimize performance across challenging markets, to optimize cost (by selecting low/no-cost CDNs for specific end users of network-based traffic management) and to optimize availability by routing around CDN outages. Multi-CDN (and multi-cloud) is rapidly growing use cases that will continue to become more prevalent over the next few years as more companies seek to hedge against service-provider outages.
Typically, during the initial discussion between an organization and a potential DNS provider, the DNS implementation is part of a larger application-delivery project. It frequently includes discussion of CDN strategy. For example, an enterprise may be using a contemporary CDN for SSL termination of their application delivery at the edge and may be seeking to bring additional CDNs into the mix to increase performance, optimize cost and maximize reliability. Some CDNs are great for automation, small-object delivery, SSL termination and the like; others are amazing for high-throughput, high-bandwidth applications; and some are legacy CDNs that may not be hyper-modern in their capability but can be reliable choices for simple enterprise applications.
Get a CDN Plan
Good content delivery has become the victim of its own success. Consumers have become used to accessing content instantly from anywhere and at any time of day. Organizations that provide content must meet these expectations or risk losing customers. This is where content-delivery networks come in, and organizations often use more than one to mitigate the threat of outages. But not all CDNs are created equal, so talk with your DNS provider and use their expertise and visibility into best practices, and create a CDN plan that take the needs of your applications and their users into account.
About the Author
Kris Beevers leads NS1’s team of industry experts as they create products to enable companies to use DNS to build and deliver dynamic, distributed and automated applications that delight users. Kris is an authority on DNS and global application delivery, and he often speaks and writes about building and deploying high-performance globally distributed Internet infrastructure at scale. He holds a PhD in computer science from Rensselaer Polytechnic Institute (RPI). Before founding and leading NS1, he built CDN, cloud, bare-metal and other infrastructure products at Voxel, which sold to Internap in 2011.