摘要: 今年夏天,俄罗斯世界杯召开。在刚刚落幕的重庆云栖飞天技术汇专场中,阿里视频云技术专家裘良科,就世界杯这个话题,跟参会嘉宾一块儿探讨了千万级直播高稳定的挑战和相关实践,本文为演讲全文。 2018年俄罗斯世界杯从6月14日到7月15日,跨度整整一个月,共有64场比赛,优酷成为央视指定的世界杯新媒体官方合做伙伴,做为优酷的同门兄弟,阿里云也一并为世界杯直播的提供技术支持,一同征战世界杯。安全
今年夏天,俄罗斯世界杯召开。在刚刚落幕的重庆云栖飞天技术汇专场中,阿里视频云技术专家裘良科,就世界杯这个话题,跟参会嘉宾一块儿探讨了千万级直播高稳定的挑战和相关实践,本文为演讲全文。网络
2018年俄罗斯世界杯从6月14日到7月15日,跨度整整一个月,共有64场比赛,优酷成为央视指定的世界杯新媒体官方合做伙伴,做为优酷的同门兄弟,阿里云也一并为世界杯直播的提供技术支持,一同征战世界杯。 整个世界杯期间,阿里云的服务是不间断的,要始终保持着稳定与流畅。并且除了支持优酷外,阿里云同时支持着CCTV五、CNTV、咪咕的世界杯直播,支撑了全网世界杯流量的70%。单单优酷的法阿大战单场并发就达到2000W,加上其余的几家客户,足足有数千万的用户并发。这么大规模、持久的赛事,对直播平台也是很大的挑战。架构
那么从技术层面看,世界杯直播的挑战究竟有哪些?
第一个挑战是内容集中。世界杯核心内容就是CCTV5,加上解说频道,多角度频道就10多路直播,假设源站出现问题,那么全部的直播都会出现问题。
第二个挑战是高并发。世界杯高达千万级的并发在线观看用户,且用户量徒增很是明显。假设直播平台出现短暂故障,全部用户可能会从新请求或者请求其余系统,对系统压力也会很是大。
第三个挑战是安全性。世界杯是世界级盛会,假设中间出现安全事故,影响会很是大,平台方也会有不可推卸的责任。
在这样的挑战之下,阿里云要始终保持着世界杯直播的稳定、流畅、安全,背后有一套复杂的方案和逻辑,下面咱们来从稳定性、安全、监控三个部分展开。并发
稳定性
下图是世界杯直播稳定性架构图,分为四大部分,信源生产链路、视频云中心、CDN和客户端。负载均衡
第一部分是信源生产链路,由于最原始的信号颇有可能不被云平台使用,好比很是高码率的信号,不适合传输,因此通常都会有信源生产的链路进行编码,提供一个源站服务。第二部分是视频云中心,整个直播平台架构是中心架构,全部直播所须要的功能,好比转码、截图、录制、水印等功能,都是在中心完成的。第三部分是CDN,CDN是真正承载整个世界杯直播的用户压力的一环,数千万的用户都跑在CDN上。第四个部分是客户端。接下来分各个环节来介绍阿里云如何保障服务稳定。运维
1、信源生产链路
多信号源输入:生产链路环节通常是用户本身搭建,建议用户多信号源输入,由于单信号源输入的状况下,若是信号源中断就会致使业务中断。若是信号源确认只有一个的话,建议用户信号源多链路输入,避免单链路故障而致使信号源没法接收。
主备线下转码器:前面讲到原始信号源是没办法直接使用的,因此会用到一个编码器,咱们通常会要求编码器的主备是实时可以获取多个信号源,并支持实时切换的。切换的模式有两种,第一个是直接主备模式,在同时输出源,只有1台编码器。第二个双备的方式,2台编码器的输出源同时给云平台提供数据源,这样的方式,咱们最终会把转码器的数据经过拉流或者推流的方式同步到视频云中心。若是是拉流的方式,视频云中心会从多个源站同时拉流,保证任何一个源站/编码器出现问题,视频云中心均可以顺利的拿到数据。若是是推流的方式,主动权在用户,用户也最好能多个源站/编码器同时向视频云中心推流。
多出口推/拉流:源站的出口链路通常会要求是多个,由于单出口链路存在网络风险。分布式
2、视频云中心
结合多网络输入,视频云中心也会采用多网络接入。
流合并,多个流来到视频云中心,经过特有的合并组件,把多个流变成一路流。
组件分布式部署,对于重大赛事,所用的机房咱们会采用独立资源专用机房,和其余业务之间互不影响。
全链路自动切换,每个组件的状态都会自动检测,发生问题在10秒钟以内完成切换,保证直播流的连续性。
对于交互相对较少的赛事直播,因此会采用H264直播,进行的优化是,全部的切片输出的H264切片中,切片长度和I帧都是对齐的,好处是当下游想在不一样码率之间切换的时候,画面是连续的,不会有跳跃感。
切片双写,每一路流在进行切片的时候,都是双进程切片,同时切到两个OSS,这样就保证了下游CDN的源是双份的。
考虑到赛事直播的重要性,整套架构在原来的基础上,同时作了中心异地备份。
3、 CDN与客户端
配合OSS双写,CDN也同时支持两个OSS,并根据实时检测把好的切片拼成一路,任何一个OSS写异常、写的慢都不会影响内容的传输。
中心主备与L2灾备,因为CDN自己架构就是分布式的,考虑到世界杯的规模很是大,采用中心主备,若是CDN中心出现问题,会立刻切换为另外一个。另外,每一个地区都会放多个L2节点,若是L2在某一时刻出现问题,会立刻要附近的其余L2接入,不会由于异地影响服务质量。
采用节点内的负载均衡和CDN的调度优化方案,能够确保业务顺畅。
最后,给客户端一个建议,由于客户端不少,当前面的切换出现时,某些客户端可能会出现卡死没法播放等问题,因此客户端须要对CDN请求作一个重试。
安全
世界杯赛事直播护航工做中,内容的安全和稳定一样重要。用户能够经过阿里云云导播台内容审核、源站IP推流和拉流的白名单设置、推流鉴权、拉流HTTPS校验防劫持等几个方案,来保障内容安全。针对相似世界杯赛事的版权内容,阿里云也提供播放鉴权&二次鉴权、DRM对视频自己鉴权、分域名封禁、区域限制等方案来防止盗播盗链。高并发
监控
架构解决了稳定性问题,并在安全方面也作了不少准备以后,直播固然也须要监控,阿里云对于世界杯直播的监控分如下三大部分。优化
第一是技术环境的监控
包括直播中心、CDN每台设备的CPU使用率、内存、网络、磁盘等,若是出现故障状况,就和前面的方案配合进行自动切换;若是出现异常、亚健康的状态,则会经过报警让运维人员快速定位问题和快速处理。阿里云
第二是应用监控
包括每一个程序的进程、端口、QPS压力、直播延迟,与前面环境监控的处理方式同样,若是出现故障,就和切换机制联动,若是出现异常则经过报警来人为处理。
第三是业务监控
包括直播全链路监控,下图是一张比较复杂的直播业务的监控图,绿色表明正常,黄色可能会出现丢帧、丢包等问题出现的异常线路。点开每一条线,就能够看到没路流在当前时间下的状态值,好比说时间戳一小时以内是否连续、递增和跳频,避免客户端兼容性问题引起的很差的用户体验。
对于帧率的监控,在视频云中心进行流合并的时候,咱们实时地把不一样的流合并成一个,来达到抗抖动的效果。下面四幅图是同一时间同一路流的监控,上面三路流合并成下面一路流,毛刺变少,结果更稳定。
除此以外,系统还会针对服务端慢速比、客户端卡顿率等数据,进行实时收集和监控,经过和客户端的联合,实现质量调优。
除了以上高稳定性的服务架构、多维度安全策略以及全链路监控之外,阿里视频云也为用户提供时移直播、智能剪辑、异地容灾、智能调度、秒开、码率控制、50帧极清、高速通道、防盗链、云导播台、广告识别、ET字幕等能力。
相信护航过世界杯直播以后,阿里视频云必定在活动、赛事直播这个场景下沉淀了更多技术,在将来为客户创造更多价值,为用户带来更极致的观看体验。