一、背景&问题:
背景:
历史上公司点播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业务更加稳定可靠。