点播CDN回源标准化策略

一、背景&问题:


  • 背景:

  • 历史上公司点播CDN接入的厂商就比较多

  • 厂商之间回源的方式存在细节上的差异

  • 不同的厂商之间专线大小存在差异

  • 厂商之间的定位不同,有全镜像存储厂商,作为源站资源副本永久存储,也有镜像存储厂商

  • 问题:

  • 在有新的流量做调度切换或者专线异常恢复的时候,专线和UPOS源站的压力较大

  • 厂商回源策略有黑盒,在出现问题的时候定位难度较大,处理效率比较低


二、点播回源架构的策略变化和演变:


1、点播回源故障具体案例和反思


多厂商专线在某次故障期间和专线恢复时存在专线带宽突发的情况


事后我们分析,专线上涨是由于厂商专线下面不同类型回源影响到的,而在故障当下,我们因为缺失细粒度的专线监控,而且我们也不能做CDN切量的操作,因为会担心流量有雪崩的风险,所以定位和止损的效率不高


 2、回源架构分析


为了解决以上的问题,提升CDN厂商回源稳定性、保障源站安全,在出现问题时能快速定位并且及时止损,减少因为回源问题导致CDN质量受损的情况。在调研前期发现对接的各家商业CDN的回源策略发现主要存在以下两种常见的回源情况:

  • 一种是用户分片请求后,要等待整文件回源完成之后再返回分片,这样容易引起用户的播放延迟增大

  • 一种是分片回源时,对分片所属的整文件进行同步拉取,这会极大的放大回源带宽,给源站造成压力


3、回源优化方案


在分析了厂商回源架构后,基于公司的点播业务特性提出了一个回源标准化方案,主要的逻辑如下:

  • 首先让同步分片回源优先响应,降低用户播放延迟

  • 其次根据分片回源请求的频次统计,对视频文件的冷热进行判断

  • 判定为热文件时,整文件同步拉取,以此来降低这部分热资源分片再次请求时的回源带宽

  • 判定为冷文件的情况下,放入整文件回源对列,等待流量低峰时错峰下载落存储,避免流量高峰时段影响源站

  • 然后对整文件下载的逻辑进行流控限速,避免大幅放大回源带宽

  • 最后在极端情况专线中断时,停止异步整文件回源和主动分发拉取,保障用户同步分片回源正常走公网,降低业务影响


4、  监控依赖优化


实时厂商点播回源策略和分类回源带宽监控数据设计


这样带来的收益有:

  • 首先在回源带宽出现异常时快速定位异常回源类型

  • 其次是厂商回源策略不再黑盒,可以依据回源策略调整控制厂商的回源带宽,避免对源站产生压力

  • 最后是能快速确认因回源导致的CDN质量问题


5、  商业CDN存储分桶方案


在执行点播回源标准化方案过程中因点播CDN和存储解耦的架构演进,从CDN资源运营的角度看,会有两个收益

  • 首先是可以依赖专线和网关能力上限最大程度实现CDN故障时的厂商间切换

  • 其次在商务成本有优化的前提下,能提高切量的效率,缩短收益获取的时间

同时在回源侧也会带来更复杂的环境

因此我们在回源侧做了改进

  • 首先是对全镜像厂商适配分桶方案,将不同的回源类型进行拆分,分别做不同优先级和策略保障,并且兼容到了CDN回源标准化的实施中

  • 其次是CDN和存储解耦后进行资源需求测算,测算单位CDN接入带宽所对应的专线容量、临时存储大小、两侧网关需求

  • 最后配合采购、网络推动CDN厂商以及存储业务方做对应的资源扩容

优化后的架构方案如下:


6、  回源安全优化


为了保障源站安全,回源标准化方案引入了OSIG鉴权

因为CDN和源站公网鉴权都采用UPSIG鉴权方案,源站公网地址如果泄漏,用户可以通过更换源站域名方式访问,对源站安全带来不可控的风险

因此引出了OSIG的鉴权方案,厂商CDN回源时额外新增OSIG签名,隔离CDN和源站的鉴权逻辑,从而达到保护源站安全的目的


三、总结和展望:


回源标准化的过程持续了大半年,虽然遇到了各种各样的问题,方案也在逐步演进,好在方案得以初步实现,向着符合预期的方向前进,总体上完成了大部分的功能,接下来我们将会继续站在资源运营的角度上优化各类资源,让点播的CDN业务更加稳定可靠。


-End-

作者丨振涛



这是一个从 https://www.bilibili.com/read/cv35992195/ 下的原始话题分离的讨论话题