千万人的在线演唱会 ---大型直播平台让你转身【海量服务之道2.0】

从Twitter到Twitter pic,再到Vine, 从Facebook到Instagram,再到Instagram短视频,从微信朋友圈图片到小视频,互联网消息载体经历了诸多转变。在这个飞速发展的时代,人们对于信息的追求是永无止境的。

也许有更加精彩的方式让我们感受生活,探索世界。足不出户,在家中享受大洋对岸的NBA战火;随时随地,在periscope上追寻他人的世界;看周董和王校长一起LOL开黑…直播作为更实时,更有参与感的信息载体,迅速的占领了生活的众多角落。

再来看腾讯的业务,全年不断的LiveMusic演唱会直播,重金买断五年独家版权的NBA,火爆异常的LOL赛事,周董加盟的中国好声音第四季,还有万众瞩目的春晚、阅兵等众多的直播节目,直播业务也成为了腾讯的重头业务。数百万的同时在线数,数T的带宽,高码率的超清蓝光流,无论从规模,还是体验的角度来看,都对我们的直播平台提出了重大挑战。如何在支持海量用户访问的同时,提供给用户极速的访问体验,且听我们慢慢道来。

回到2015年7月17号的晚上,中国好声音第四季正式开播。第一期收视率5.308%,成为中国电视史上首播收视率最高的综艺节目。第二期收视率继续攀升至5.455%,创造中国好声音四季以来的第二高收视,四期海选全部破5,这也创造了中国好声音四季以来最好成绩。

腾讯视频作为今年的独家网络版权方,也开始一场持续三个月的大战。首播就达到了近千万人观看,网络播放量3亿+。三个月累计49亿的播放量,创造了最新的记录。

我们的直播平台作为业务的”后腰”,支撑了每个刷新纪录的数字。三个月里,和业务同事无数次的讨论、开发和持续的运营关注,保障了中国好声音的完美旅程。

那么问题来了……从好声音现场到用户的手机、电脑、电视,我们的系统是如何把实时、高清的画面送到千家万户,让千万人一起流畅的欣赏中国好声音?

用户在电脑或者在移动端设备上观看一场直播,一般需要经历下面流程。

  • 现场转播团队人员用摄像机拍摄视频,剪辑画面,然后通过卫星信号上传。
  • 腾讯视频天津演播室卫星接收机获取信号,经过硬编码、播控平台,传输信号到IDC。
  • IDC编码平台进行直播编码,输出多码率、多协议的直播流。
  • 调度平台根据用户地域、运营商、网络和终端类型等信息,分配用户最优的接入点。
  • 用户通过手机、电脑和电视等终端访问最优的机房节点,开始观看直播。

和千万人一起看中国好声音:

需求

  1. 千万人同时在线直播如中国好声音,我们面临了很多挑战:
  2. 百万用户瞬间涌入,如何让用户获取最快的访问体验?
  3. 千万用户同时观看,需要数T的突发带宽资源,如何容纳更多的用户?
  4. 超清的蓝光流给付费用户完美视听盛筵,如何让用户顺畅得享受大餐?
  5. 如何保障直播流顺畅无阻的穿越国内复杂的网络环境,到达遍布全国的数千台机器,提供用户服务?

解决方案

1天下武功,唯快不破–让用户拿到最快的地址

从开始直播时百万人瞬间涌入,到用户访问直播服务器,对用户最重要的只有一个字,快!

如何让用户得到最快的访问地址,是直播圣经中的第一名言。

首先,我们使用用户ip调度,直出服务器ip的方式替换了域名访问。一方面避免了local dns配置不准导致的域名解析问题,另一面规避了使用域名解析时,用户调度不够实时的问题。最重要的是我们有了调度神器-视频直通车,方便了我们后续的一系列优化;

刚来腾讯的时候,在公司学习平台看到的过载案例就是QQ tips,全国的QQ用户瞬间涌入时,服务器承受了数倍的瞬间压力,如何在这种时刻提供用户正常的服务?在直播业务中,这种问题更加凸显。

我们无法针对用户做分区控制,用户都想在第一时刻看到比赛;然后我们需要调度用户到就近的机房,全国数百个机房,既要确保机房带宽在可用带宽范围内,又要保证用户的就近接入;此外直播访问是超长链接的,用户通常在线数十分钟甚至一个多小时,已接入用户会持续占用带宽,单纯按请求用户来调度通常会导致机房带宽跑超;

因此我们做了如下优化:

  • 准实时机房数据采集:

以前我们依赖应用层程序统计上报流量数据,但应用层上报会有统计、多维度汇总计算延时,短短2-5分钟的延时,足以让百万用户都涌入进来。延时过大的带宽导致调度系统无法准确的控制机房带宽,很容易出现部分机房流量跑超情况,然后机房丢包,用户投诉……

所以我们需要实时的带宽数据,经过多个方案的分析,我们决定使用SNMP协议采集交换机流量,将延时降低到20秒钟。对于大部分场景,直通车可以完全掌控数百个机房的带宽。

当然交换机带宽也存在问题,我们区分不了业务维度的数据。于是我们结合了交换机带宽和应用层业务数据统计,实时带宽作为机房带宽数据,然后通过业务层历史带宽比例,当前请求数比例,实现分业务的带宽调度和过载控制。两个独立通道的数据上报也增强了直通车的健壮性,单路数据的丢失不会影响调度的准确性;

预调度功能

由于直播业务的特性,大部分请求都是超长连接,会产生一定时长的持续流量,因此在真正带宽跑满后再进行调度,会产生一个比较持久的超可用带宽流量高峰段。

当前的决策仅仅采用比例模式,该模式会导致在流量高峰来临过后,流量回迁速度很慢。因此我们需要提前预估当前请求在某个时间点后产生的带宽,避免机房带宽跑超。

我们考虑采用最小二乘法拟合请求数据,根据梯度推算出带宽超可用线的时间点,并提前进行分流,以保证带宽平稳达到可用线。

2海纳百川– 利用一切可利用的资源服务更多用户

千万人一起看直播,最恐怖的事情莫过于服务器带宽消耗了。如何在保证服务质量的同时尽可能容纳更多的用户?

团结一切可能团结力量,利用一切可能利用的力量。个人的力量是有限的,团队的力量是无限的。单业务资源有限,我们需要统一调度,动态复用一切可能获取的资源。

架构平台部提供了腾讯众多业务的加速平台,静态内容、下载、流媒体点播、直播等;

我们在调度平台整合了全平台的资源利用情况,直播中国好声音时可以动态获取静态下载、点播等其它平台可用资源,将用户就近调度到静态、下载平台的节点;

当整体自建平台满负载时,开始将部分用户就近调度到外包。

如此尽可能充分利用资源,既保障了业务有充足资源使用,同时提高了整个平台的资源利用率。

3会员包房– 提供付费用户的差异化服务

上面一点提到,在资源有限的情况下,我们会充分利用各个平台的资源。但对于用户来讲,不同接入点的访问体验是有差异的,这时候我们需要做出取舍,针对不同用户提供差异化的服务。好莱坞会员?腾讯体育会员?广告商重点目标用户/区域?没问题!我们会提供他们最优质的资源。

或者另外一种场景,多场直播同时进行,随着业务的发展,这种场景在最近一年频繁出现。优质资源是有限的,我们是否需要根据节目重要程度提供不同级别的服务。答案是肯定的,我们的直播平台也支持按节目优先级的差异化服务。

还有一种场景,诸位开发、产品都会比较熟悉了,后端过载了怎么办?我们同样会采用差异化的服务,付费用户优先提供服务,普通用户提供柔性服务,或者排队等。

针对这些需求,我们提供了优先级服务,保障了重点用户、节目的良好体验。按节目和用户,采用分级策略。对重点节目采用重点覆盖,优先用优质的节点提供服务。

优质的节点满后,普通节目只能调度到一些资源池的资源,如大容量加速点。整体资源满负载后,针对普通用户采取柔性、排队等策略。

4直通天下 -可靠、高效的直播网络

直播平台在全国有500+用户接入加速点,数个中间源和IDC源,通过外网传输数据。

为了保证直播流高效、可靠的传输,我们需要考虑多级回源链路中的网络质量,网络故障的影响,即时发现并动态绕过异常点,让用户无感知的流畅观看直播。

简单的说就像线上的顺丰,不过我们送的不是快递。

首先我们要建设内部的“高速公路”,天津、上海、深圳多运营商出口和全国500+的加速点构成了我们强大的高速公路网。

其次我们要在高速公路网上寻找最优的路径,像导航一样,有道路维修,道路拥堵的情况,我们需要即时调整“包裹”的路线,让“包裹”快速到达末端服务器。

我们有tcp测速系统周期性探测机房直接回源网络的联通性和质量,根据测速的结果,动态更新调度系统的配置,让直播流运行在质量最优的链路上。

这里特别要提到的是小运营商,相信不少人都用过天威、长宽的网络,公开数据表明当前小运营商的用户已占总体宽带用户10%多,但是小运营商网络间的连通质量很差。

这里可能不存在高速公路,只有国道,我们需要实时探测统计国道的速度,来寻找最快速的路线。有部分小运营商可以直接接入BGP,还存在部分到BGP质量较差,或者BGP没有对应线路接入。

这时就需要通过测速确定小运营商到三大运营商或者BGP的最优链路;最后,我们还需要完成最后一公里的加速,我们的快递服务器如何高效的把直播流送给用户?

我们通过架平自研的TCPA内核,提升了用户到服务器的传输速度。在用户对清晰度要求越来越高,120寸电视也开始走入家庭的时代, 3M+码率的蓝光流已经成为了业务的标配,最后一公里的加速不仅仅代表用户体验的提升,也为业务在付费用户、超清直播领域的口碑树立打下基础。

总结

通过一系列的优化措施,我们的直播平台顺利完成了中国好声音三个月的挑战。

但这只是我们面临无数挑战中的一部分,在服务中国好声音的同时,我们还提供了LOL游戏直播、NBA、LiveMusic,阅兵、春晚等众多重要的直播服务。

2015年6月到现在,直播平台承载了百场T级带宽规模的大型直播,峰值直播带宽达到近10T,业务侧体验评测得分也有了显著提升,保持了无事故正常运行。

未来

前面讲了目前直播平台针对大型直播在调度、资源和用户体验方面的一些优化,但是我们还有很大的优化空间,从H265编码优化到直播流无缝切换,一系列更深层次的技术方案已经在热火朝天的进行了。

1.众多的直播节目对清晰度、带宽的需求越来越多,我们还在进行众多前沿技术的研究储备,在提升清晰度的同时降低码率。联合业务推广H265编码流,相同的质量可以降低40%的带宽。既可以提升直播流的清晰度,又能节省带宽资源,承载更多用户的接入。目前我们已经在QT LOL赛事中应用推广。

2.大型直播节目日益增多,未来我们将针对大型赛事,提供多路编码容灾,无缝切流等技术,保障大型直播节目的顺畅体验。此外针对用户量过多,导致资源不足的情况,也会和业务侧一起提供多种形式的降级服务,并增强前后台的联动提示,让用户有更明确的感知。

3.移动端用户的比例日益增加,大部分直播节目的主流用户已经集中在移动端,后续我们将针对移动端用户,实施动态自适应码率,动态切流,让用户体验流畅播放。

结语

中国好声音第4季完美收宫,我们联合腾讯视频一起将后台技术重任扛住优化,实现千万人一起观看直播。

但是中国好声音只是一个插曲,NBA,LOL都已经在路上,大型直播的梦想才刚刚开始,随着移动网络的发展,客厅视频产品的进入,在线直播内容的日益丰富,大型网络直播将迈向一个新的时代。你是否会转身,和我们一起迎接直播时代的到来,跨越直播,感受世界。

何春晓 腾讯TEG架构平台部 高级工程师

架构平台部隶属于腾讯TEG技术工程事业群, 承载了腾讯主要的存储、接入和虚拟化业务,包括了微信、QQ、腾讯视频、QQ音乐、应用宝、Qzone等产品,提供了EB级的海量存储服务,10T级的就近接入加速服务和数十万台的虚拟机服务。

原文发布于微信公众号 - 腾讯大讲堂(TX_DJT)

原文发表时间:2016-01-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据文摘

谷歌历史上18项失败的产品

22112
来自专栏罗超频道

小程序上线在即,App不会死,但移动互联网却会变天

张小龙在2017微信公开课Pro上发布的小程序即将在1月9日正式上线。在张小龙发布小程序之后,有两家来自杭州的创业者称,它们的估值均上涨了10倍——吸引眼球的成...

2986
来自专栏Java帮帮-微信公众号-技术文章全总结

【大牛经验】给新人程序员一些经验

给新人程序员一些经验 熟业务,精一块,在扩展 最近总有些断断续续的思考,想想从我入行以来,我到底学会了什么,做成过什么,以后要做什么,如何提升自己·······...

3958
来自专栏直播系统源码

短视频APP开发带飞你的创业梦

创业的本质就是找到风口,顺势而为,就像罗永浩说的那样,只要站在风口上,猪都能起飞。

2232
来自专栏新智元

下一代语音界面:从亚马逊 Echo 看未来的人机交互

【新智元导读】作为Web 2.0概念的提出者之一,著名科技媒体O'Reilly出版社的 CEO Tim O'Reilly 在本文中谈了他对下一代用户界面的思考:...

3384
来自专栏程序员互动联盟

【专业技术】啥叫云计算?

云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的...

48710
来自专栏即时通讯技术

腾讯技术分享:微信小程序音视频技术背后的故事

微信小程序自2017年1月9日正式对外公布以来,越来越受到关注和重视,小程序上的各种技术体验也越来越丰富。而音视频作为高速移动网络时代下增长最快的应用形式之一,...

3492
来自专栏疯狂的小程序

小程序火爆的因素

几天前,我重新翻阅了2017年5月写的一篇关于小程序的文章,文章虽青涩但还算精确,文中阐述了三个观点:

22610
来自专栏IT技术精选文摘

数据中心基础与服务探讨

主要分享三个内容: 数据中心简介 —— 了解 IDC 的架构; 运维服务与人员配置探讨; 案例讨论,外包服务怎样才能更好的做到双赢? 数据中心基础架构 ? 谈到...

3776
来自专栏互联网高可用架构

从点线面体谈开发到架构师的转型【完整版】

1515

扫码关注云+社区

领取腾讯云代金券