专栏首页腾讯大讲堂的专栏千万人的在线演唱会 ---大型直播平台让你转身【海量服务之道2.0】

千万人的在线演唱会 ---大型直播平台让你转身【海量服务之道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),作者:何春晓

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据分析应学习逻辑思维及分析方法

    逻辑归纳,需要拥有良好的逻辑思维,并结合领域知识形成该领域的分析方法。而领域方法,进一步归纳则能够成为通用了方法论。

    腾讯大讲堂
  • 数据分析:在缓慢变化中寻找跳变——基于缓慢变化维度的用户分群

    引导语 数据分析中,我们常常有下面几种分群方式 基础属性类:年龄、性别、城市、学历、用于首次来源 ·  特点:基本是不变化的,虽然年龄、城市等也会发生变化...

    腾讯大讲堂
  • 八成调查对象乘过“黑车”,呼吁市场放开

    随着上海、北京等地交通部门对各种专车服务进行重点治理,关于“专车”和“黑车”的讨论即成为市场与监管博弈的又一个热点话题。腾讯科技《企鹅智酷》近日对25829名网...

    腾讯大讲堂
  • Buffer cache 的调整与优化(二)

    Buffer cache 实际上细分为多个不同的Buffer cache,如keep pool,recycle pool,default pool,下面描述不...

    Leshami
  • bootstrap源码分析之scrollspy(滚动侦听)

    源码文件: Scrollspy.js 实现功能 1、当滚动区域内设置的hashkey距离顶点到有效位置时,就关联设置其导航上的指定项 2、导航必须是 .nav...

    sam dragon
  • 张溪梦:庙算者多胜-大数据发展战略

    大数据文摘
  • 维护直播系统时的安全和防护问题

    在运营直播平台过程中,运营方最关注的是平台流量的获取,但往往会忽略直播系统自身安全性方面的问题。这里的安全性问题主要有两方面,一个是程序源码的安全防护,另一个是...

    云豹通讯员
  • 直播系统源码常见安全问题及防护措施

    直播系统源码常见安全问题及防护措施在直播平台的现实运营过程中,运营方最关注的是平台流量的获取,以及流量变现收益模式的探索,往往会忽略直播系统自身安全性方面的问题...

    布谷安妮
  • 使用Jmeter测试java请求

    jmeter技术研究
  • PowerBI中的箱型图(box plot)

    当然,不同的箱型图,指标也不尽然全都一样,比如PowerBI中的一个可视化工具Box Whisker chart就是其中的一种,又叫做盒须图。

    陈学谦

扫码关注云+社区

领取腾讯云代金券