今年夏天,俄罗斯世界杯召开。在刚刚落幕的重庆云栖飞天技术汇专场中,阿里视频云技术专家裘良科,就世界杯这个话题,跟参会嘉宾一起探讨了千万级直播高稳定的挑战和相关实践,本文为演讲全文。

2018年俄罗斯世界杯从6月14日到7月15日,跨度整整一个月,共有64场比赛,优酷成为央视指定的世界杯新媒体官方合作伙伴,作为优酷的同门兄弟,阿里云也一并为世界杯直播的提供技术支持,一同征战世界杯。 整个世界杯期间,阿里云的服务是不间断的,要始终保持着稳定与流畅。而且除了支持优酷外,阿里云同时支持着CCTV5、CNTV、咪咕的世界杯直播,支撑了全网世界杯流量的70%。单单优酷的法阿大战单场并发就达到2000W,加上其他的几家客户,足足有数千万的用户并发。这么大规模、持久的赛事,对直播平台也是很大的挑战。

那么从技术层面看,世界杯直播的挑战究竟有哪些?

  • 第一个挑战是内容集中。世界杯核心内容就是CCTV5,加上解说频道,多角度频道就10多路直播,假设源站出现问题,那么所有的直播都会出现问题。
  • 第二个挑战是高并发。世界杯高达千万级的并发在线观看用户,且用户量徒增非常明显。假设直播平台出现短暂故障,所有用户可能会重新请求或者请求其他系统,对系统压力也会非常大。
  • 第三个挑战是安全性。世界杯是世界级盛会,假设中间出现安全事故,影响会非常大,平台方也会有不可推卸的责任。

在这样的挑战之下,阿里云要始终保持着世界杯直播的稳定、流畅、安全,背后有一套复杂的方案和逻辑,下面我们来从稳定性、安全、监控三个部分展开。

稳定性

下图是世界杯直播稳定性架构图,分为四大部分,信源生产链路、视频云中心、CDN和客户端。

第一部分是信源生产链路,因为最原始的信号很有可能不被云平台使用,比如非常高码率的信号,不适合传输,所以一般都会有信源生产的链路进行编码,提供一个源站服务。第二部分是视频云中心,整个直播平台架构是中心架构,所有直播所需要的功能,比如转码、截图、录制、水印等功能,都是在中心完成的。第三部分是CDN,CDN是真正承载整个世界杯直播的用户压力的一环,数千万的用户都跑在CDN上。第四个部分是客户端。接下来分各个环节来介绍阿里云如何保障服务稳定。

一、信源生产链路

  • 多信号源输入:生产链路环节一般是用户自己搭建,建议用户多信号源输入,因为单信号源输入的情况下,如果信号源中断就会导致业务中断。如果信号源确认只有一个的话,建议用户信号源多链路输入,避免单链路故障而导致信号源无法接收。
  • 主备线下转码器:前面讲到原始信号源是没办法直接使用的,所以会用到一个编码器,我们一般会要求编码器的主备是实时能够获取多个信号源,并支持实时切换的。切换的模式有两种,第一个是直接主备模式,在同时输出源,只有1台编码器。第二个双备的方式,2台编码器的输出源同时给云平台提供数据源,这样的方式,我们最终会把转码器的数据通过拉流或者推流的方式同步到视频云中心。如果是拉流的方式,视频云中心会从多个源站同时拉流,保证任何一个源站/编码器出现问题,视频云中心都可以顺利的拿到数据。如果是推流的方式,主动权在用户,用户也最好能多个源站/编码器同时向视频云中心推流。
  • 多出口推/拉流:源站的出口链路一般会要求是多个,因为单出口链路存在网络风险。

二、视频云中心

  1. 结合多网络输入,视频云中心也会采用多网络接入。
  2. 流合并,多个流来到视频云中心,通过特有的合并组件,把多个流变成一路流。
  3. 组件分布式部署,对于重大赛事,所用的机房我们会采用独立资源专用机房,和其他业务之间互不影响。
  4. 全链路自动切换,每一个组件的状态都会自动检测,发生问题在10秒钟之内完成切换,保证直播流的连续性。
  5. 对于交互相对较少的赛事直播,所以会采用H264直播,进行的优化是,所有的切片输出的H264切片中,切片长度和I帧都是对齐的,好处是当下游想在不同码率之间切换的时候,画面是连续的,不会有跳跃感。
  6. 切片双写,每一路流在进行切片的时候,都是双进程切片,同时切到两个OSS,这样就保证了下游CDN的源是双份的。
  7. 考虑到赛事直播的重要性,整套架构在原来的基础上,同时做了中心异地备份。

三、 CDN与客户端

  1. 配合OSS双写,CDN也同时支持两个OSS,并根据实时检测把好的切片拼成一路,任何一个OSS写异常、写的慢都不会影响内容的传输。
  2. 中心主备与L2灾备,由于CDN本身架构就是分布式的,考虑到世界杯的规模非常大,采用中心主备,如果CDN中心出现问题,会马上切换为另一个。另外,每个地区都会放多个L2节点,如果L2在某一时刻出现问题,会马上要附近的其他L2接入,不会因为异地影响服务质量。
  3. 采用节点内的负载均衡和CDN的调度优化方案,可以确保业务顺畅。
  4. 最后,给客户端一个建议,因为客户端很多,当前面的切换出现时,某些客户端可能会出现卡死无法播放等问题,所以客户端需要对CDN请求做一个重试。

安全

世界杯赛事直播护航工作中,内容的安全和稳定同样重要。用户可以通过阿里云云导播台内容审核、源站IP推流和拉流的白名单设置、推流鉴权、拉流HTTPS校验防劫持等几个方案,来保障内容安全。针对类似世界杯赛事的版权内容,阿里云也提供播放鉴权&二次鉴权、DRM对视频本身鉴权、分域名封禁、区域限制等方案来防止盗播盗链。

监控

架构解决了稳定性问题,并在安全方面也做了很多准备之后,直播当然也需要监控,阿里云对于世界杯直播的监控分以下三大部分。

第一是技术环境的监控

包括直播中心、CDN每台设备的CPU使用率、内存、网络、磁盘等,如果出现故障情况,就和前面的方案配合进行自动切换;如果出现异常、亚健康的状态,则会通过报警让运维人员快速定位问题和快速处理。

第二是应用监控

包括每个程序的进程、端口、QPS压力、直播延迟,与前面环境监控的处理方式一样,如果出现故障,就和切换机制联动,如果出现异常则通过报警来人为处理。

第三是业务监控

包括直播全链路监控,下图是一张比较复杂的直播业务的监控图,绿色代表正常,黄色可能会出现丢帧、丢包等问题出现的异常线路。点开每一条线,就可以看到没路流在当前时间下的状态值,比如说时间戳一小时之内是否连续、递增和跳频,避免客户端兼容性问题引发的不好的用户体验。

对于帧率的监控,在视频云中心进行流合并的时候,我们实时地把不同的流合并成一个,来达到抗抖动的效果。下面四幅图是同一时间同一路流的监控,上面三路流合并成下面一路流,毛刺变少,结果更稳定。

除此之外,系统还会针对服务端慢速比、客户端卡顿率等数据,进行实时收集和监控,通过和客户端的联合,实现质量调优。

除了以上高稳定性的服务架构、多维度安全策略以及全链路监控以外,阿里视频云也为用户提供时移直播、智能剪辑、异地容灾、智能调度、秒开、码率控制、50帧极清、高速通道、防盗链、云导播台、广告识别、ET字幕等能力。

相信护航过世界杯直播之后,阿里视频云一定在活动、赛事直播这个场景下沉淀了更多技术,在未来为客户创造更多价值,为用户带来更极致的观看体验。

原文链接
本文为云栖社区原创内容,未经允许不得转载。

世界杯千万级直播高稳定的挑战和实践相关推荐

  1. 浅谈千万级高性能高并发网站架构

    浅谈千万级PV/IP规模高性能高并发网站架构 高并发访问的核心原则其实就一句话"把所有的用户访问请求都尽量往前推". 如果把来访用户比作来犯的"敌人",我们一定 ...

  2. 千万级高德服务单元化方案和架构实践

    来自:高德技术 导读:本文主要介绍了高德在服务单元化建设方面的一些实践经验,服务单元化建设面临很多共性问题,如请求路由.单元封闭.数据同步,有的有成熟方案可以借鉴和使用,但不同公司的业务不尽相同,要尽 ...

  3. 网易实践|千万级在线直播弹幕方案

    导读:8月22日,TFBOYS「日光旅行」七周年演唱会落下帷幕,顶级流量的在线直播,海量弹幕.礼物刷爆屏幕,网易云信为这场直播活动提供直播弹幕技术方案.本文将围绕千万级在线场景阐述直播弹幕的设计方案. ...

  4. 快手EB级HDFS挑战与实践

    分享嘉宾:徐增强 快手 高级研发工程师 编辑整理:Frank 出品平台:DataFunTalk 导读:作为快手内部数据规模和机器规模最大的分布式文件存储系统,HDFS一直伴随着快手业务的飞速发展而快速 ...

  5. PaaS 平台学习(开源力量OSF)构建千万级大规模、高可靠PaaS平台的技术挑战 学习笔记

    感谢许志强老师的辛苦付出.2015年1月13日 参加云通讯PaaS平台学习,特作此记录. 大纲: 选择Paas平台的考量(我的企业是否适合选PaaS平台,我应该选怎么样的PaaS平台) 基于PaaS平 ...

  6. 某宝千万级规模高性能、高并发的网络架构

    架构以及我理解中架构的本质 在开始谈我对架构本质的理解之前,先谈谈个人见解,千万级规模的网站感觉数量级是非常大的,对这个数量级我们战略上 要重 视 它 , 战术上又 要 藐 视 它.先举个例子感受一下 ...

  7. 如何保障一场千万级大型直播?

    导读:TFBOYS"日光旅行"七周年演唱会近日成功举办,最高同时在线人数达78.6万,口碑票房双丰收.网易云信的大型直播解决方案全程支撑了网易云音乐的这场活动,本篇文章将和大家分享 ...

  8. 亿级用户体量,千万级日活用户,《王者荣耀》高并发背后的故事!

    堪称中国最火爆的手机游戏"王者荣耀",拥有亿级用户体量,千万级日活用户,如何快速.低成本地保障业务突发?本文从该问题出发,论述了问题对应的解决方案,并对其效果做出总结. 作者:黎斌 ...

  9. 千万级规模高性能、高并发的网络架构经验分享--转

    原文地址:http://mp.weixin.qq.com/s?__biz=MzA3MzYwNjQ3NA==&mid=401628413&idx=1&sn=91abfbad4c7 ...

最新文章

  1. 微型计算机系统外文,微型计算机控系统(单片机控制系统) 毕业论文外文翻译.doc...
  2. 3、假设有一个对象数组,想根据某个对象属性对数组进行排序时
  3. idea tomcat乱码_Tomcat新手常见问题
  4. [Hei-Ocelot-Gateway ].Net Core Api网关Ocelot的开箱即用版本
  5. 虚拟化物理服务器参数,浅谈部署VMware物理系统虚拟化技术P2V(Physical to Virtual)
  6. 《重构》-重新组织函数
  7. SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理...
  8. 《算法图解》第八章之贪婪算法
  9. fortran快速入门
  10. 一般纳税人和小规模纳税人哪个好?哪个更划算?
  11. 关于日期格式你必须知道的坑( yyyy-MM-dd HH:mm:ss SSS)
  12. margin: 0 auto;的作用
  13. 这一周 火火火 的 GitHub 项目
  14. 岳阳长沙深圳市区中考和高考难度对比
  15. go-stat-reporter(1):golang开发通用报表展示系统,设计数据结构
  16. 文本三剑客之AWK详解
  17. 文件在线预览功能(office文件)
  18. Oracle EBS AP发票类型SQL
  19. SAP 面试题 训练
  20. 在少儿编程中使用easygui(5):ynbox/boolbox/ccbox

热门文章

  1. php 类常量用法,php类常量用法实例分析
  2. dnf如何快速拾取物品_DNF手游泰拉该如何获取,游戏蜂窝辅助托管快速获取泰拉...
  3. php 本站已运行了多少天,本站已运行了多少天”代码(js版+php版)
  4. 从中师到博士,我用了22年...
  5. AAAI 2019 四个杰出论文奖论文揭晓
  6. “光纤之父”高锟辞世!但他的诺奖演讲辞, 青年不可不读!
  7. 巴克沙里手稿——历史性的突破可能比内容本身更加珍贵
  8. 二维码原来可以这样玩
  9. python 实现 CRC 冗余码的方法
  10. java排序算法原理_排序算法原理与实现(java)