Architectures for Multi-CDN Switching
Working Group:
In Collaboration With:
Project Status:
Working
The project is actively being worked on.
Start:
December 1, 2022
Target End:
January 31, 2025
- Home
- Architectures for Multi-CDN Switching
Problem Statement
Issues with CDNs can impact QoE at the player if a specific CDN is performing poorly but still being used to fulfill the requests. The delivery system needs to include business logic and heuristics to be able to switch between CDNs, for whatever reason, and have the requests appropriately modified to reflect the new CDN URL.
Project Description
Multi-CDN delivery has become commonplace in scalable streaming video architectures, but switching to a different CDN in real time to improve QoE is not easy. Many server-side and client-side solutions are available to streaming operators, but there is little consensus on the best way to accomplish it. This project studies several existing and proposed solutions to this problem to understand their merits and scenarios when each can be recommended.
The Load Balancer is a client-side solution proposed in this project. It is a TypeScript library that serves as a client-side multi-CDN switcher for video streaming. For each video segment requested by the player, the Load Balancer determines the best CDN to use and outputs a modified HTTP request identifying that determined CDN. The Load Balancer determines the best CDN by maximizing business rules and QoS scores, with initial values provided by an external interface. Once playback begins, an internal algorithm in the Load Balancer updates the QoS scores with each content delivery network request. The Load Balancer repository also comes with a demo page. The demo page shows lightweight JavaScript integration of the Load Balancer with the open-source Shaka player.
Content steering is a combined client-side and server-side architecture relying on Content steering functions of the HLS and DASH standards. There have been two proposed implementations of such solutions to the project. One includes manifest updates and content steering functions are implemented by a centralized server. The other proposed implementation – Content Steering at Edge – provides an implementation of manifest updaters and steering servers deployable as stateless functions by edge platforms. Example implementations of both conventional server-based and edge-based systems are submitted as SVTA Labs repositories to the project. Both come with deployment scripts and demos. Both operate with dash.js, hls.js and video.js streaming clients.
While studying these solutions, the project seeks inputs on additional and alternative architectures for CDN switching, as well as contributions towards defining a mechanism for coexistence and regulation of usage of different solutions.
Goals and Objectives
The objectives and goals of this project are:
- Identify the different methods of CDN switching
- Study the impact of client-side and server-side CDN switching on the client’s rate-adaptation algorithm
- Identify pros and cons of client-side vs. server-side methods
- Identify opportunities for harmonizing the client-side solution with the server-side ones (such as server-guided steering)
- Develop open-source implementations of both client-side and server-side solutions, including means of ensuring compatibility and enabling their joint usage.
Project Scope
This project WILL:
- Outline different methods for CDN switching and explore the pros and cons of each
- Propose client-side and server-side approaches to CDN switching supported by open-source implementations of such solutions
- Develop means enabling interoperability and joint use of client-side and server-side CDN switching solutions
- Claim that this approach is the best or only method for CDN switching
- Recommend one player versus another beyond using a specific player to test the proposed solution
Contributors
The following members have contributed to this project. Click on their name to visit their profile. If they have not published their profile, the link will redirect to their LinkedIn profile.
Presentations
The following presentations delivered during Players and Playback working group sessions may provide additional information about this project.