作者:胡济麟
互联网视频直播是一种消息媒介形态,提供时产时消的内容,经过多年,已经发展出秀场、游戏、电商、体育等多种业务形态。主要特点是:内容实时产生实时消费,对时效性要求更高;流媒体内容占用带宽大,对网络质量要求更苛刻;一人生产、多人消费,带宽规模大。直播 CDN 目前是解决这种大规模分发场景最有效的技术途径,主要特点是就近接入以提供良好的接入网环境,多层汇聚以降低中心资源的分发压力,以此达到直播业务规模化和时效性的要求。
由于直播业务本身对于质量和时效性的要求,CDN 就需要在短时间内要找到并建立一条完整可靠的传输链路,对于链路稳定性有一定的要求。传统依赖于旁路更新的、基于链路质量的策略,寻路算法简单,不消耗太多时间,时效性有保障。但随着成本压力越来越大和可用性的要求越来越高,基于链路质量的策略的缺点就逐渐体现出来:
一个是这种旁路策略第一策略时效性上存在一定的延迟,延迟大约 2-3 分钟,对于偶发性的质量恶化或资源偏压无法快速做出相应的策略调整;
第二是基于一套统一的链路质量数据,无法兼顾资源能效,对于一些能效低的内容无法基于成本考虑做出相应的寻路策略调整,对浮动成本的控制不够精确。
基于资源信息、链路状态、流媒体信息等多维度数据,精确计算每一路流的分发效能,将计算粒度精确到流一级。通过对能效、质量的综合计算,为每一路流动态计算接入和回源策略是解决困难的关键。
图 1. 干系方
调度系统通过收集、结合资源信息、链路状态、流媒体信息等,对直播接入和寻路进行控制,快速精确的调整策略,提供质量优先、成本优先、质量成本平衡等多种策略,对于在质量指标评价体系下提升分发系统的可用性和能效比提供更加精准和细粒度的控制。
延迟不超过 50ms,考虑到公网的网络本身的传输延迟,基本上不会有多余的时间进行其他系统调用和计算,需要预先准备好响应的策略,并且调度接入位置要尽量靠近调用侧。设计了策略推送、策略缓存、异步更新三种功能。
由于流媒体信息同步延迟要求 100ms,考虑公网网络传输的延迟,定时采集上报的方式无法满足延迟要求,采用事件触发实时 API 上报的方式同步数据。设备信息、节点信息为接口调用方式取回,对于时效性要求不高,采用任务分派机制,防止数据重复取回。
隔离
用户隔离
业务隔离
限流
当系统负载过高时,保护系统服务,提升系统恢复速度,降低系统负载,需要对系统业务流量进行限制。
熔断
并发熔断
失败率熔断
无法在进行接入和询源调度服务时,需要退化为默认兜底策略,接入退化为 DNS 解析方式,询源退化为 CDN 固定询源策略,不再依赖调度系统做策略选择。
图 2. 业务架构
调度系统分为统一接入、运管平台、资源调度、信息采集、日志系统五个部分。
图 3. 信息采集系统业务架构
信息采集系统作为调度系统的数据底座,主要功能是从运维系统收集设备资源情况、从业务系统收集流媒体信息,经过数据整合之后提供给资源调度使用。
信息采集系统通过主动定时调用运维系统接口采集设备运行数据,包括 CPU 使用率、内存使用率、磁盘 IO、网络 IO 等信息,用于评价设备的服务能力。采集节点带宽用量等信息,用于评价节点承载能力。
通过主动定时调用监控系统接口采集链路质量数据,包括 RTT,丢包率等信息,用于评价网络质量。
通过被动等待 CDN 业务实例上报流媒体资源位置、下行并发、卡顿率等信息,用于评价服务质量和服务收益。
这些信息被收集上来之后通过分类整合,按照节点、地区、运营商、业务形式等不同维度,形成服务能力、服务质量、服务收益的聚合数据。
聚合数据最终会通过查询接口提供给资源调度系统。
图 4. 资源调度系统业务架构
资源调度作为调度系统核心业务模块,主要从信息采集收取必要调度依据,通过一套调度策略,输出调度计划提供给接入和询源业务。
资源调度系统主要通过运管平台将个性化调度配置信息落到资源调度系统。通过查询信息采集接口,查询所需要的服务能力、服务质量、服务收益等信息。通过匹配不同的调度策略,生成静态调度计划。
通过查询信息采集接口,查询流媒体资源位置及描述信息。通过匹配调度策略,生成动态调度计划。
最终调度计划会以接口方式提供给业务方使用。
图 5. 技术架构
图 6. 部署方案