Delivery Optimizations (WisePath/Multi-CDN)
WisePath is the LightFlow dynamic multi-CDN selection feature. With a multi-CDN strategy the content is hosted by more than one Content Distribution Network (CDN), allowing you to improve QoE and save costs by routing traffic in real time using the CDN that provides the best cost/performance ratio for your business.
CDN Selection
WisePath supports different logic for selecting CDNs:
- Customer defined business rules
- On-the-fly manifest manipulation
Customer defined business rules
Static rules determine which CDN should be selected based on specific: streaming protocols, end user ISP, geographies, time of the day, user agent and metadata.
WisePath features a graphical UI to configure complex multi-CDN custom logic in a very intuitive way:
QoE rules – Dynamic distribution
When configured for Dynamic distribution, WisePath uses real time QoE performance analysis and monitoring to route the streams through the CDN that maximizes quality for end users. The Dynamic distribution mode leverages real time QoE metrics from multiple feeds, including the player. WisePath is currently integrated with following player analytics:
- NPAW Youbora
- Haivision WiseProbe
Multi-CDN switching
WisePath supports two multi-CDN switching methods: API-based and On-the-fly manifest manipulation.
API based
To get the recommended CDNs, send a POST to http://api.lightflow.media/wisepath/, including:
- The IP address of the end user
- The
vodWorkflowId
, that defines the multi-CDN logic to be applied - The output protocol
This is an example of a request to the WisePath API:
curl --location --request POST 'http://api.lightflow.media/wisepath/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
--data-raw '{
"vodWorkflowId": "e875a5e1-7c0b-450e-b021-xxxxxxxxxx",
"protocol": "smooth_streaming",
"ip": "xxx.yyy.www.zzz"
}'
The API will return a list of CDNs with a score (best CDN gets highest score):
{
"selectedCDN": {
"uuid": "53f6a7ac-f1c5-41b7-9e0e-xxxxxxxxxxxx",
"name": "Limelight mss",
"hostname": "prod-mss.limelight.cdn.customer.com",
"score": 33.333333333333336
},
"cdns": [
{
"uuid": "0184ce81-904e-4d65-92a7-xxxxxxxxxxx",
"name": "Verizon mss",
"hostname": "prod-mss.verizon.cdn.customer.com",
"score": 33.333333333333336
},
{
"uuid": "53f6a7ac-f1c5-41b7-9e0e-xxxxxxxxxxxxx",
"name": "Limelight mss",
"hostname": "prod-mss.limelight.cdn.customer.com",
"score": 33.333333333333336
},
{
"uuid": "c8bc1f34-a611-4b39-9a93-xxxxxxxxxxxxxxx",
"name": "Akamai mss",
"hostname": "prod-mss.akamai.cdn.customer.com",
"score": 33.333333333333336
}
On-the-fly manifest manipulation
In this method, the switch from one CDN to another is done by composing the manifest in real-time. Every time the player requests a manifest, LightFlow will fetch the original manifest and rewrite it, feeding it back to the player.
Note
On-the-fly manifest manipulation requires that LightfFlow is also delivering the content to the end users.
Setting up WisePath
Configure the CDNs
To define a CDN, go to the CDNs section of the LightFlow portal, and click on Create New.
To create a new CDN, the following information is required:
- Name: name of the CDN as it will be displayed by LightFlow
- Name in Probe: name of the CDN as reported by the player analytics
- Hostname: CDN hostname
Note that at least 2 different CDNs are needed for implementing a multi-CDN strategy.
Define a delivery logic
WisePath lets you define a logic decision tree to monitor and control the transit of your media across two or more CDNs:
WisePath logic supports a wide range of conditions:
- End user location/geography
- Requested domain (.com…)
- End user ISP
- Time/Day
- Asset metadata
- User agent
- Query string
- Output streaming protocol
It also support the following actions:
- Do not deliver
- Split (define % for each CDN)
- Dynamic distribution (optimizes user QoE)
To define delivery logic do the following:
1. Click Create New.
2. Give your new configuration a Name, then click the Add button to add a condition or output to your delivery logic:
3. Choose a condition or output:
Actions
Conditions