Original source: Limelight Networks
Can your business afford to lose $9,000 per minute?
According to the Ponemon Institute $9,000 is the average cost of an unplanned outage (1). In some cases the costs are much higher (2). The catalogue of cloud outages over recent years is well publicized and reads like a “who’s who” of the technology industry – Amazon (3), Google (4), Apple (5), Microsoft (6) – to name a few. No one is immune it would seem.
But when it comes to delivering digital content, downtime isn’t the only concern. Today a poor user experience can be just as damaging as an outage. According to Limelight research, 78% of people will stop watching an online video after it buffers three times (7), and the majority of people will not wait more than five seconds for a website to load (8).
Organizations looking to deliver great digital experiences for their customers often choose to deliver that content using Content Delivery Networks (CDNs). Using multiple CDNs to deliver these digital content experiences promises even greater levels of availability and performance. But it brings with it a host of questions. In this paper we’ll explore the five things you should know about multi-CDN in order to determine if it might make sense for your business.
A CDN is a system of geographically dispersed servers that facilitates the delivery of digital content with high performance and high availability. The idea behind a CDN is to move content much closer to end users. Instead of centralizing digital content (web applications, web objects, files, downloadable media and streaming media) on a relatively small number of servers (as shown in the “BEFORE” diagram in Figure 1), the content is cached across many servers distributed around the globe (as in the “AFTER” diagram in Figure 1). End-users now retrieve the content they’re looking for from the closest CDN edge server, rather than going all the way back to the origin to retrieve it. This results in much better performance (lower latency) for your customers. It also avoids overloading your origin and allows your audience to scale.
As our appetite for digital content has grown, so has the need for CDNs. For example many of the e-commerce transactions that take place, a large portion of software that is delivered over the Internet, and much of the video that is watched online, is delivered over CDNs. According to Cisco, 73% of all Internet video traffic will cross CDNs by 2020 (9). However not only has our appetite for digital content grown, so too have our expectations. Your customers expect a high quality online experience, irrespective of where they are or whatever device they’re using. In an attempt to minimize single points of failure and eke out even more performance advantages many organizations have started to deploy multiple CDNs (multi-CDN) for redundancy and load sharing.
In a multi-CDN environment, the goal is to distribute load among two or more CDNs. Multi-CDN enables you to direct user requests to the optimal CDN according to your business needs. Say for example, in Figure 2 CDN provider A provides an excellent service for users 1 and 2, but CDN provider C offers a better experience for user 3. In a multi-CDN environment, requests by users 1 and 2 can be directed to CDN A and requests by user 3 can be directed to CDN C.
CDN selection may be carried out manually, or it may be automated using techniques like DNS (Domain Name System) or commercial decision engines. Depending on the technique, selecting an optimal CDN could be based on a number of criteria – availability, geographic location, traffic type, capacity, cost, performance or combinations of the above.
There are many reasons to consider a multi-CDN strategy for your business including higher availability, better performance, increased capacity, and better security.
Delivering some of the largest sporting events on the planet isn’t for the faint of heart. With millions of fans watching you can’t afford any hiccups. That is why this organization designs redundancy into every step of their video delivery workflow. Content delivery is no exception. Once their video content is encoded it’s sent to three separate CDNs for delivery. Should any CDN experience a problem, traffic is dynamically shifted to other CDNs for delivery, ensuring a great digital experience for their customers.
While an outage may not rise to the level of global notoriety, it’s likely just as devastating for your business. As the Internet has become more critical to every aspect of business, minutes of downtime can impact your bottom line and damage customer relationships. Multi-CDN can minimize single points of failure by providing alternate delivery options in the event of a CDN outage.
This global security software manufacturer needs to get their software updates out as quickly as possible. A delay in delivery could increase vulnerability to a new security threat, expose systems to a software bug, or prevent access to functionality that generates revenue or enables a new solution. Time is money. In order to deliver their software as quickly as possible this organization measures various performance metrics across multiple CDNs and favors faster performing CDNs for delivery, ensuring the best experience for their customers.
Whether delivering online video, web content, or software over the Internet, poor performance results in abandonment, customer frustration and a negative impact to your brand. It’s unlikely that any single CDN delivers the best performance for all traffic types, in all regions, all of the time. By intelligently balancing your content delivery needs across multiple CDN providers, you can mitigate the impact the performance glitches of specific providers, in specific regions, for specific traffic types.
As one of the world’s largest technology companies this organization has its own CDN. However, there are certain times where large delivery events exceed available capacity. There are also regions where capacity is limited and additional capacity is needed. In these cases a multi-CDN approach enables excess traffic to overflow to other CDNs. The entire process is seamless to customers, who are able to enjoy a first-rate experience as a result.
Capacity is a finite resource. We’re delivering more content, to more devices, in more locations, at a higher quality than ever before. This ratchets up the stress on an already stretched infrastructure, and quality of experience suffers. Large-scale content delivery events may create choke points in individual CDN providers or in certain locations. Multi-CDN alleviates these bottlenecks by distributing load amongst multiple CDNs.
It’s also important to recognize that not all capacity is alike. Capacity might be limited for a specific service. For example, as Internet security concerns have grown, so has the need for encryption (more than 45% of websites today are encrypted (10) ). So for example, while overall capacity might not be constrained on a single CDN, Secure Sockets Layer (SSL (11) ) capacity might still be limited.
Internet security is an increasing concern globally. In fact cybercrime represents the fastest growing cause of data center outages according to the Ponemon Institute (12). If a CDN is compromised it could negatively impact the ability of customers trying to access your digital content, or their experience in accessing that content. Having multiple CDN providers allows you minimize exposure, or to bypass compromised CDNs altogether, in the event of a cyber attack.
It is clear that in many situations multi-CDN can be beneficial, but how does one deploy multiple CDNs, and what factors should be considered in determining the best method for your particular application?
The Domain Name System (DNS) is a naming system for the Internet. To locate specific information on the Internet we point our web browser at a URL that contains a domain name. For example, the URL http://www.example.com contains the domain name http://www.example.com/. This is easy for us humans to remember, however the equipment running the Internet doesn’t understand domain names – it operates using IP addresses (unique numerical identifiers). The translation from domain name into IP address is performed by DNS. DNS is fundamental to CDN operation, and it is one of the most prevalent methods of switching between different CDNs in a multi-CDN environment.
The most basic method of incorporating multiple CDNs is by modifying DNS entries. This method can be used in an active-standby configuration. For example in Figure 3, if CDN B fails the DNS entry is modified so that all requests are redirected to CDN A. Using this method, different policies can be enforced by mapping different hostnames to different CDNs. For example DNS can be configured to serve website traffic (www.example.com) from CDN A, but serve online videos (http://www.example.com/) from CDN B.
An obvious downside of this approach is that changes are made manually so re-routing traffic between CDNs can be time consuming. Commercial managed DNS solutions do exist that will automate this re-routing for you.
With a round robin load balancing method, requests are dynamically divided among CDNs on a rotating basis. So, for example, in a dual CDN configuration the first user request is directed to CDN 1, the second user request is directed to CDN 2, the third user request is directed to CDN 1, and so on. Typically DNS is used to direct user requests to the next available CDN. Round robin load balancing is relatively easy to implement, however it treats all CDN providers as equal and doesn’t take into account geographical location or other network conditions.
Also known as Ratio Load Balancing, the weighted round robin approach allows you to apply a different ranking to each CDN to indicate CDN preference. In this case, DNS determines traffic distribution based on your ratio setting. For example, in Figure 4 CDN A is designated to receive three quarters of all requests, with CDN B receiving the remaining quarter.
Weights or ratios can be based on criteria you determine most important for your business, e.g. cost, performance, ISP connectivity, etc. While providing greater control than the round robin method, this method still doesn’t take into account things like location or network conditions.
In the Geolocation case, traffic is distributed between CDNs based on the end user’s location. This allows you to favor specific CDNs based on where traffic originates. For example in Figure 5, requests originating in North America are directed to CDN A, whereas requests from Europe and Asia are directed to CDN B. Depending on the implementation, location can be defined down to the country, state or province level.
While geolocation provides a useful balancing method, it doesn’t take into account network conditions. For example there may be times that the preferred CDN in a specific region is no longer optimal during high traffic periods.
Performance-based load balancing takes into account current network conditions to achieve the best theoretical performance. This approach involves measuring network conditions and considering this data when making balancing decisions. Depending on the CDN switching solution being implemented, a number of different performance characteristics may be used as the basis for CDN selection, e.g. response time, throughput, re-buffering ratio, bit rate and many others. It’s important when considering solutions of this type to carefully understand the metrics that are most important to your business, and also how those metrics will be measured.
More sophisticated techniques of performance-based load balancing between multiple CDNs become possible when using a client application like a video player. In the case of video streaming a video player can indicate specific client capabilities. Based on these client capabilities, the video server sends a manifest file to the player containing URLs for the video and audio chunks13 for multiple quality levels that may be located among multiple CDNs. Many players monitor current conditions (e.g. buffering, available bandwidth) to decide what quality of video to download, and can use this information to select the optimal CDN based on the chosen selection criteria.
Multi-CDN has some potentially compelling benefits but it is not necessarily for everyone. Here are some questions to consider when exploring if multi-CDN is right for you:
Can you afford minutes, or hours of downtime? The less tolerant your business is of an outage, the more advantageous a multi-CDN strategy will be.
Do you exceed usage limits or have traffic spikes that could be alleviated with an overflow capability to other CDNs? The more traffic, the greater potential benefit derives from multiple CDNs.
Performance is really important in some applications, e.g. video streaming, but may not be as important in others, e.g. downloading software patches. Multi-CDN is likely to have greater benefits in performance-sensitive cases.
The larger, and more distributed the audience, the greater the need for multiple CDNs.
Is your digital content stored in the CDN or outside of it? Storing your content in the CDN should result in performance and cost benefits, but it will mean replicating your content when using multiple CDNs or picking a CDN that allows origin access from other CDNs.
There are a number of methods as previously discussed, but which makes the most sense for your business? Do you have the time to manage manual DNS approaches, or the expertise to tune performance methods?
Does the performance-based switching solution you’re considering support the metrics most important to your specific content delivery application, e.g. rebuffer ratios, bit rate, availability, throughput, response time?
There is a point of diminishing returns as more CDNs are added. Adding CDNs introduces a measure of complexity because each CDN has its own user interface, set of APIs, billing methodology, functional capabilities etc. Your development and operations teams will need to understand and manage these differences.
Once you have determined that adding a CDN, or multiple CDNs, to your content delivery environment makes sense, the next question becomes which CDN partner to select. Here are some important factors to consider:
An important question to ask when considering a CDN: where are my users located? Look for a CDN that has a presence in the regions or countries where most of your users are located. When considering your global traffic distribution it’s also important to think about future growth. If you expect to see increased traffic coming from emerging markets like India for example, factor that into your decision now to avoid having to renegotiate your CDN contract or prematurely move CDN providers.
Performance is a complex topic because it’s unique to different content delivery environments and workloads. Important questions to consider concerning performance are what types of content you’re delivering and what performance metrics are most important to your customers’ experience. Important metrics for video delivery might include rebuffer rate, bit rate and startup time. For software downloads metrics like throughput, error rate and download completions may be more important, while time-to-first-byte and page load time might be more important for website delivery. Some CDNs may be better suited to some of these workloads than others.
You also have to consider how you are going to evaluate performance between different CDN vendors. There are several performance monitoring tools commercially available, however in many cases results can be misleading. This is because the measurements are based on simulations or derived using unrealistic test objects that often don’t represent your actual workload. The best approach to evaluate performance is to do a trial or proof of concept with one or more CDNs, using your actual workload in the geographical regions that are most important to you.
Things sometimes go wrong. At times like this excellent support can make all the difference. Consider how important it is for you to have access to live customer support. Will that support be available outside of business hours? What kind of support is offered in your region? Is the support free or is there a premium charged for this service? If you deliver live events what relevant experience does the CDN partner have and are they willing to participate on a bridge before or during the event? Is the CDN vendor able to assist with onboarding or migrating from another CDN?
Do you have a need to offload your content origin to a CDN and if so, how important is the performance of the CDN storage or mid tier cache solution? Does the CDN storage solution support multi-CDN environments, and if so, how will the CDN storage solution you select operate in a multi-CDN environment?
Different CDNs have different capabilities. Consider which of these functions are most important for your content delivery needs and make sure that they’re tightly integrated with the CDN itself.
Purge. How important is a rapid purge capability, i.e. the ability to quickly remove content from the CDN? How many objects will you potentially need to purge? Is it important to be able to verify purge operations?
Security. How important is security in your content delivery needs? Do you need protection from denial of service attacks or attacks against your web applications? Is a significant portion of your traffic encrypted or will it be in future? Do you need to control access to your content based on things like geographic location, IP address or URL?
Video. If you are doing video delivery do you require transcode, transmux or transrate capabilities?
Management and reporting. Do you need access to a user interface or portal that gives you the ability to provision and manage your content yourself? Do your developers need access to APIs that allow them to more tightly integrate CDN functions with your systems? What real-time statistics do you need to optimize your digital content delivery?
Limelight is one of the world’s leading CDNs. Our private network is built for and dedicated to content delivery, enabling you to securely manage and globally deliver digital content, on any device, with exceptional quality. At Limelight every person is focused on delivering a better experience for you and your customers. These are just some of the reasons that Limelight could be a great fit for your multi-CDN strategy:
Limelight operates one of the largest CDNs in the world with a continuously growing egress capacity and ~123 PoPs around the globe.
Limelight’s network of densely architected PoPs is interconnected via a private network that is dedicated to content delivery. This unique architecture results in high throughput, low latency delivery and one of the highest cache efficiency ratios in the industry (which in turn leads to greater origin offload, better performance and lower bandwidth costs).
Limelight provides unrestricted 24x7x365 live customer support by phone or email, with in-region language support for key languages. Our NOC monitors the network in real-time and relays periodical and proactive network status to customers.
Limelight’s professional services team has extensive experience in everything from live events to implementing a multi-CDN strategy.
Limelight Cloud Security Services offer a layered defense against malicious website attacks, unauthorized access, or theft. In addition to having one of the largest SSL footprints in the world and an array of defensive safeguards embedded in the Limelight CDN itself, services include proactive security alerts, DDoS protection and mitigation, and WAF solutions.
Limelight Origin Storage Services are proven in multi-CDN environments to address the challenges of quickly and efficiently serving digital content. Limelight Origin Storage Services provide industry-leading performance, easy setup, and cost free replication.
Limelight provides an integrated set of services including video packaging for high performance video workflow and delivery, a self service portal with integrated real-time reporting and the industry’s only high speed purge capability with detailed reporting and complex rule capabilities at global scale.
Delivering exceptional digital experiences to your audience is more important than ever. In many cases entrusting content delivery to a single CDN does not provide the level of resiliency your business requires, neither does it ensure the best possible experience for your users.
A multi-CDN strategy can certainly help to provide the level of assurance and quality of experience your audiences expect. But implementing a multi-CDN strategy is not as simple as picking a CDN and turning it on. It requires understanding your digital content traffic and audience needs, the maturity of your own IT organization and your choice of CDN partner.
Limelight Networks, now Edgio, has worked with many organizations, including some of the largest brands in the world, to implement effective multi-CDN strategies. A great way to see if adding a CDN like ours can help eliminate delivery disruption and delight your digital audience is to sign up for a free trial at edg.io.
(1) “Cost of Data Center Outages”, Ponemon Institute, January 2016 (http://www.ponemon.org/blog/2016-cost-of-data-center-outages)
(2) E.g. Amazon outage in 2013 estimated to cost the company >$66,000 per minute (http://www.forbes.com/sites/kellyclay/2013/08/19/ amazon-com-goes-down-loses-66240-per-minute/#44858cd43c2a)
(7) Source: The State of Online Video, Limelight, 2016 (http://img03.en25.com/Web/LLNW/%7Bc02f1632-f615-471f-a79e-354d5cc0244f%7D_2016StateofOnlineVideo.pdf)
(8) Source: The State of the User Experience, Limelight, 2016 (http://img03.en25.com/Web/LLNW/%7B70a00140-3e71-4850-9ab4-69ee4672df9c%7D_StateoftheUserExperience.pdf)
(9) Cisco Visual Networking Index: Forecast and Methodology, 2015-2020 (http://www.cisco.com/c/en/us/solutions/collateral/service-provider/visual-networking-index-vni/complete-white-paper-c11-481360.html)
(11) SSL is the technology used to encrypt the link between a browser and a web server
(12) “Cost of Data Center Outages”, Ponemon Institute, January 2016 (http://www.ponemon.org/blog/2016-cost-of-data-center-outages)
(13) Dynamic streaming protocols like DASH and HLS divide video into small segments called “chunks”. Video clients request these chunks using HTTP.