When used correctly, a multi-CDN can provide flexibility, availability, and performance benefits when compared to a single CDN. Understanding multi-CDN begins with understanding the benefits of CDNs in general.
CDNs play a vital role in serving and securing Internet traffic across the globe. By using a CDN, businesses can reduce demand on origin servers, protect against DDoS attacks, and improve performance.
Different CDN providers offer users access to a different network of Points of Presence (PoPs), different underlying network infrastructure, and different sets of specialized features. As a result, different CDN providers may also deliver different performance, security, and cost benefits depending on workload and geographical location. Multi-CDN enables businesses to use “the right CDN for the job” by allocating specific workloads to specific CDNs.
Additionally, any single CDN has a finite capacity and individual PoPs or even entire CDNs may fail. A multi-CDN allows capacity from different to be combined and enables fault tolerance in the event of failure.
How Multi-CDNs work
Multi-CDNs work by selectively routing traffic over different CDNs in the network. The specific criteria around what routing decisions get made varies between multi-CDN implementations. Common multi-CDN strategies include:
- Static DNS– With this approach, static DNS entries are configured for each CDN in the multi-CDN. For example, a user may route highspeedvideo.domain traffic to StackPath’s CDN and static.downloads.domain to another CDN. The static DNS approach is simple, but requires manual intervention for failover. Additionally, multi-CDN that uses static DNS doesn’t take cost or performance variables into account.
- Managed DNS– Managed DNS services add a layer of intelligence to the static DNS approach. Smart routing can take much of the manual work out of the process and improve fault tolerance. Like with static DNS, cost and performance variables don’t impact routing decisions.
- Round-robin– A round-robin approach to multi-CDN simply routes requests to the next CDN in line. For example, in a two CDN configuration, request 1 goes to CDN-A, request 2 goes to CDN-B, request 3 goes to CDN-A, etc. Weighted round-robin enables users to configure traffic to route more frequently to one CDN or another. For example, in a 3 CDN multi-CDN, you could route 50% of traffic to CDN-A, 30% to CDN-B, and 20% to CDN-C.
- Geolocation– Multi-CDN that uses geolocation selects the CDN to use for a request using geographical location. For each request, the CDN with the PoP closest to the user will respond.
- Variable-driven load balancing– Multi-CDNs that enable routing decisions using variables such as cost, performance, location, weights, and other criteria are the most complex to configure, but also offer the most potential upside. By accounting for multiple variables in real-time, variable-driven load balancing can enable a highly cost-effective and performant approach to multi-CDN at scale.
Multi-CDN pros and cons
The pros of multi-CDN strategies are gains in performance, resilience, and flexibility. The most obvious con is increased network complexity. Each new CDN brings with it additional management interfaces & APIs, functionality, and administrative tasks. While some of the complexity can be abstracted away by a multi-CDN broker, the underlying network topology is still more complex with multi-CDN.
We’ve intentionally left cost off our list of pros and cons. It is true that one CDN is cheaper than two if all else is equal. However, there is a valid counterargument that multi-CDN enables better overall vendor management and cost control.
The larger and more sensitive to downtime and/or latency your application is, the more likely the pros of multi-CDN are to outweigh the cons. Similarly, once you decide to use multi-CDN, the choice of how to implement it depends on the same criteria. For some cases, where some manual intervention is acceptable, static DNS entries may be enough. On the other end of the spectrum, a more variable-driven load balancing approach may be worth the upfront cost and complexity.
Example of a Multi-CDN
As the engineering team at Mux, creators of the Mux Video API, demonstrated the StackPath CDN can be an important part of a high-performance multi-CDN. StackPath can also provide the infrastructure to build your own extensible and scalable variable-driven multi-CDN.
For example, users can deploy DNS resolvers using Edge Computing Workloads. Resolver logic is configured to route across CDNs based on custom user-defined logic, and Anycast IP addresses simplify configuration and ensure requests are routed to the nearest StackPath Edge location
- Multi-CDNs are networks of CDNs from different providers
- Multi-CDNs can improve performance and reduce latency
- Multi-CDNs can add resilience, if one provider goes down the rest of the network is still available
- Multi-CDNs allow you to use specific providers for specific use cases