直播类业务云化建设

作者:肖世广

一、 背景:直播类行业发展与压力

1. 直播类行业爆发式发展

直播类业务是基于影音形态, 以信息传递为目标的服务方式 ,其发展空间依赖于两种基础能力:技术与资源,进而基于产品能力进行放大。

基于终端解码能力、移动3/4G普及和产品维度的进步,从PC端“体育赛事+综艺”的直播点播形态,扩张到移动时代的游戏直播、个人直播以及细分垂直直播。直播类业务迅速成长成为一个独立行业,规模庞大,分工精细。

2. 视频云平台已承载业务

当前直播类业务已经进入万花筒式的发展阶段,从当前视频云平台的承载业务来看,内部业务有“全民K歌”、“企鹅电竞”等为代表的个人直播与游戏直播,外部业务更有“斗鱼”“龙球”“CNTV”“全民TV”等众多需求。

视频云平台当前承载的业务体量大,业务数量多,已经是一个成长迅速的服务平台,那如此繁复的服务需求,带来的规划增长是什么情况呢?

3. 视频云平台面临的压力

第一个挑战点 - 资源:业务快速增长对视频云系统提出了持续扩大的资源运营压力。

以近一年的业务增长情况来看:

a) 设备量增长:超过300%,越过万台规模量级;

b) 客户量增长:超过400%,越过3000接入业务规模;

c) 带宽增长:更是超过800%,达到T级线后持续海量攀升。

如此海量的服务压力,对视频平台提出了更高的要求,仅就服务能力目标来说,大容量、低成本、高质量的直播平台就是当前主要述求。

而基于腾讯云所规划的IaaS的基础服务能力能力,云所具有的更大弹性Buffer,更集中的资源管理能力,全球化的部署策略,在资源供给方面具备强大优势,可以提升交付速度、容量空间与全球服务的基础需求。视频云上云是一个使直播类业务,更具发展空间的战略方向。而视频云平台在进行云化建设之前,已经成长为一个成熟的复杂巨系统。接下来可以看一下这个巨系统上云,我们将会面临的挑战。

二、 挑战:视频云上云难点

1. 难点分类

核心原因:涉及多平台多部门,且机房基础环境差异大。

a) 平台间依赖

由于平台功能定位的不同,三大平台的主诉求与服务目标也各不相同:

互动直播:以双向传输、实时交互为需求,实时视频通信。互动直播在需要大量扩散时,多数用户仅观看,为单向传输,复用直播下行扩散能力,依赖直播平台。

直播平台:以单向传输、高扩散比为需求,有延时直播。直播内容存在点播需求,此部分业务由点播平台承载,故依赖点播平台。

点播平台:以预存储视频、按需回放为需求,非实时播放。

按上述三个平台的规划目标, 其依赖情况如下:

互动直播依赖直播:互动直播内容在需要大量扩散时,多数用户仅观看不互动,为单向传输,复用直播下行扩散能力,依赖直播平台。

互动直播、直播依赖点播:两种直播的内容,均有点播回放需求,需要依赖点播平台。

所以三大平台上云顺序由依赖顺序决定,点播->直播->互动直播,其中互动直播在扩散需求不大时,可与直播平台同步进行。

b) 自研机房与云机房环境差异大

从上述三个方面看,基础环境上的差异,对于系统架构,特别是灰度上云方案的过渡期(自研-云机房-第三方机房并存、且流量需互通),提出了巨大的挑战。

c) 支撑系统上云能力

支撑系统原有设计运行环境为自研机房,且均以内网服务形态支撑各类业务,相关部分模块不具备外网服务能力。当面临云上建设时,具体矛盾凸显出来:

外网通信需求:第三方机房等环境下,需要打通统一运营平台,即面临需由外网通信条件下,进行支撑系统汇总管理(独立部署无法实现汇总)。原支撑系统部分业务,仅支持内网通信,需解决。

外网通信加密、加速需求:灰度上云过程中,信令需经外网穿越各机房间,需要进行加密处理,同时要保证通信效率,确保不会影响业务能力,需保障。

内网模块跨网管理需求:部分业务模块(如转码),其上下游模块均由内网通信,在第三方环境下,需经外网与国内支撑系统server打通。此类模块无外网Ip,且不应有外网ip,需应对。

三、 应对:视频云上云详细方案

1. 直播平台上云方案

视频云平台的服务目标是全球用户,所以直播平台必须具备全球同步能力,以此保证全球用户均可享受同样服务内容。

而且直播平台云上建设中,突出的风险是灰度过程,所以直播平台需先规划并建设全球跨云运营方案。然后依此方案,解决在灰度过程中的质量控制与调度需求。

跨云交互方案核心点说明:

a) 调度中心交互

主播上行流,只会推送上图三大区中的一个区域,但其观众可能横跨三个区域,所以调度中心需要完成流数据互换,以保证各区均拥有同样流数据,服务拉流模块,进而提供全球服务。

在这个环节,流数据的同步速度与稳定性,就是保证服务质量的前提。此处通过多种方式提升外网通信条件下的通信质量:

双capip(腾讯自有Ip):打通云支撑-自研通路,通过此配置方案,腾讯云机房与自研机房间,可由腾讯专线进行流量交互,避免形成外网穿越。(实现原理:网平交换平面识别到目标为自有IP,则绕行内网专线)

权限放通:打通云支撑-公有云通咱,通过安全审核后,由网平进行放通策略配置,使两方可由内网进行直接通信,避免形成外网穿越。(实现原理:物理网互通,但需要对软隔离网络,进行打通配置操作)

b) DC源回源交互

当主播与观众同同区接入时,需要跨区拉流,在调度中心的管理下,各区DC均可通过访问本区调度中心,寻找指定流所在流处理模块的位置(IP/域名),并进行拉流服务,提供下行服务。

以此解决灰度过程中,三区共存情况下,流在全球环境下的播放需求。

2. 互动直播平台上云方案

互动直播同时依赖点播与直播,所以需要分阶段上云,以适配整体上云节奏。如不按此流程进行,则可能出现业务流在云机房与自研机房间的多次穿越。

a) 依赖前置:直播点播上云

直播接流模块上云:直播平台需要为互动直播提供下行扩散服务,此处需直播平台先上云,使互动直播流上云后,即可在云上完成扩散服务。

点播存储模块上云:点播平台需要为互动直播提供录制文件存储能力,以提供对应点播服务。此处需点播平台先上云,使互动直播录制文件上云后,直接落存储,提供点播服务。

在这个阶段,由proxy代理上云,完成下一阶段上云的准备工作。

b) 阶段上云:互动直播部分上云(转码推流、录制截图、鉴黄)

转码推汉与录制模块上云后,可以依托云机房的资源能力,迅速放大服务能力。同时由于access等模块由于接入点需求(超过10个扩展接入点,云机房暂无此能力),所以此环节以中间模块为上云目标。

方案关键点:

增加媒体适配层 – IP收敛:未使用普通代理或IP直出,原因是录制模块拥有自治能力,模块内有调度与执行两部分组成。如果使录制模块直出IP,与access等尚处自研模块通信,需配置录制模块外网Ip,投放1000+三网IP,安全与资源两方面均无法满足。媒体适配层可区分信令流与业务流,使用少量IP即可完成接流,同时适配录制模块调度策略,按路由要求,按Ip将业务流投放到指定录制设备上。

增加access_proxy – 质量保证:proxy通过配置capip,结合媒体适配层同样配置capip,解决IP收敛问题后,使流量由腾讯专线上云,保证了通信质量。

c) 完成上云:互动直播完成上云(其它模块上云)

最终环节为解决access的众多用户就近接入点等问题后,完成涉及模块上云。最终完成上云工作。

3. 点播平台上云方案

点播平台由自研的FTN存储形态,改为云机房的COS存储形态,通过COS分区域集中部署,改善服务能力,实现点播2.0的服务目标。

方案关键点:

a) 增加上传代理 – 灰度过渡

点播流上云,需解决原有内网模块跨云通信问题,此处通过proxy解决灰度过渡问题,避免相关模块改造后,上云完成又废弃外网功能,造成开发资源浪费。

b) 改造COS接入 – 适配COS

COS是云机房提供的统一存储服务,性能优于FTN,但接口更丰富,点播2.0专门开发此模块进行适配。

c) 分区集中存储 – 各区独立

COS以广州云机房为国内首批上云承载点,以新加坡为海外首批上云承载点。后续将投放天津、上海点,并扩建海外点。

4. 跨云Proxy方案与效果

a) Proxy架构分类

视频云为了减少业务模块的过渡性改造工作,使用了大量proxy解决跨云通信问题,同时应对灰度与全球通信需求。

方案关键点:

  • 4层代理 – 互动直播流上云proxy互动直播为了优化双人互动视频,使用了私有协议进行服务,此类流无法使用7层代理,需定制开发,以配置方式决策路由出口落点,实现代理功能。
  • 4层复合代理 – 流媒体适配层

互动直播录制模块,按上文所说,为进行IP收敛,进行了定制开发,不但适配私有协议,同时扩展支持信令交互,具体基础代理以外的录制策略路由及流调度能力。

  • 7层代理 – 点播文件上云点播2.0为支持第三方上传服务,使用了http协议上传,所以此处以nginx代理方式实现业务流出自研机房上云动作,云机房侧由点播upload接流后,存入COS。
  • 7层复合代理 – 织云桥头堡

织云做为运营平台,与设备稳定通信并传输业务包是质量评估点之一,由于海外业务网络远,但统一管理平台需集中部署(国内),这里基于“指定路由+https协议”进行加密通信,同时提供信令传输与文件分发能力,提高运营效率。

b) Proxy优化效果

多种proxy均是为了减少短期开发,提高跨云质量,从对比图来看,直接走外网进行跨云通信(图上),云机房(跨云服务)卡顿率不稳定,且高于自研机房质量。而经过proxy优化后,云机房(跨云服务)卡顿率与自研机房基本一致。

此处涉及的典型代理有四种:

  • DC同运营商 – 跨云拉流DC原有自研机房拉流方式为内网通信,而出外网跨云拉流时不区分运营商拉流,导致质量下降,经改造(主动向control调度模块上报IP,请求分配同运营商流处理proxy),实现同运营商拉流,提升拉流质量。
  • 调度数据缓冲层 – 全球同步

流数据在全球有同步需求,当前核心CDB部署在广州云,全球control直接访问CDB效率低(容易发生抢占锁,及网络不稳引起的通信失败),增加本地缓冲层,实时同步核心CDB数据,提升响应服务效率。

  • 录制文件上传 – 通道收敛录制模块为内网模块(1000+台),如独立配置外网Ip通信,不但需要改造,且由于1000+外网Ip使运营复杂。这里增加流媒体适配层,通过capip绕行内网专线,提升稳定性,改善服务能力。
  • 基于Q调的加速通道

跨国拉流时,由于路线长,其间外网路由不可控,质量无法何证。这里基于Q调系统,寻找实时最优线路,由代理加速器进行代理通信,提高流传输稳定性,进行提升服务质量。

5. 上云灰度放量方案与质量对比

上云分为两个环节:灰度与质量验证,这里分别说明一下:

a) 灰度

Q调接入 – 依赖客户端SDK:使用腾讯SDK的客户,可以通过Q调系统,引导使用最优上行接入点。这里的灰度需对Q调返回引导地址,进行更换,按服务端配置文件指定百分比,按比例将客户端引向云机房接入点。这里不直接将云机房接入点引入Q调系统的原因,是由于Q调按质量引导,一旦混用,则无法控制灰度量级,所以必须使用配置文件引导。

域名接入 – 依赖DNS:未使用腾讯SDK的客户,导由域名访问视频云接入点,这里按平台、省份、运营商多个维度,进行域名管理,通过DNS轮询机制,增加云机房接入点IP,进行引导灰度。

两相比较,Q调灰度灵活、生效快,但依赖SDK;域名灰度比例难以调度,回滚时间略长,但无依赖,具有广泛适用性。整体评估,视频云的灰度,由使用Q调的自有业务入手,验证能力后,进而实施域名调度。

b) 质量验证

质量验证方式需要统一,当前效果最好的验证方式,就是使用Q调进行对比评估。将同一路流,同时推送云机房与自研机房,并从两区域分别拉流,以Q调数据验证质量。

以上节所述评估方式,结合实际客户端播放情况进行评估,云机房由于基础环境更新,云机房质量与自研质量持平或更优。

四、 步履:直播类业务云化之路

原有直播平台的服务目标为内部业务,改造空间和适配性有限,所以进行了前置的重构工作,重构并切换完成后,上云工作正式展开。

2016.9.14:新系统上线切换完成,正式启动上云工作。

2016.10.27:云上完成全模块部署,并进行业务流测试,测试正常,具体上云基础环境。

2016.12.12:结合业务情况与灰度方向,确定灰度方案,直播由自研业务-企鹅电竞启动,互动直播由大智慧启动,点播业务由录制类小业务进行。

2016.12.21:自研-云机房互联测试(DC拉流优化、点播proxy测试等)完成,灰度工作准备启动。

2016.12.28:点播平台首先启动灰度上云。

后续节点:

2017.3.28:当前点播业务流98%流量已经上云,预计3.28完成点播上云。(但自研已有存量点播文件,需待过期后删除下线)

2017.5.25:预计直播平台完成上云。

2017.6.25:预计互动直播平台完成上云。

五、 出海:视频云海外建设

1. 海外分布能力

当前视频云在全球已有多个服务点,具体分布如上图所示,其颜色分类说明如下:

a) 独立SET部署点

红色节点:视频云独立SET部署点,单set具备完整直播服务能力。

b) 独立SET待部署点

橙色节点:视频云规划中的独立SET部署点。

c) 接入点

紫色节点:视频云接入点,但无独立服务能力。

2. 流数据全球同步与统一调度

流数据全球同步能力,是统一调度的基础。若所有访问均直接请求核心CDB(大量跨国访问),服务质量无法保证,这里增加数据中转服务模块。

方案说明:

a) 数据中转广州模块

具备读写核心CDB能力,同时拥有本地缓存,是所有数据中转模块的同步数据源。

b) 数据中转中国香港模块

定制加密通信隧道,提升与广州通信质量,向广州模块提交中国香港数据流信息;同时做为海外其它中转模块的代理,提供数据同步服务。

c) 数据中转其它模块

向中国香港模块提交流数据信息,同时由中国香港模块,获取广州模块提供的所有流数据信息。

d) Control模块

调度模块,需要高速处理调度信息,所有流数据原始信息,均由control发往本地数据中转模块,并由中转模块查询全球流数据信息。

3. 海外统一存储方案

视频云当前的海外节点正在持续建设,服务规模还在发展中,考虑到COS为腾讯云基础能力,设备投放量大,基础成本起点高,当前按存储量进行规划后,以新加坡为统一COS存储落地点,提供点播存储服务。

方案关键点:

a) 海外统一存储

当前海外主要服务目标为东南亚,当前复用新加坡COS为统一存储结点,后续按业务增长潜力进行多点容灾规划。

b) 录制解耦外网通信

为保证录制模块功能统一,解耦外网路由能力,由proxy统一进行录制文件代理上传功能,实现海外录制文件的存储落地能力。使得录制在纯内网环境下可以简化逻辑,不因涉及海外路由优化,而被动改造。

4. 运营环境全球解决方案

织云统一管理的基础是自研机房已建设的平台集群。为了统一管理,不再单独建设各点织云系统,这里面临的问题,就是如何在全球分布的视频云平台上,进行透明化管理。

方案关键点:

a) 织云核心集群 – 保留在自研

织云不只支持视频云,还有大量自研业务,需要具备全环境服务能力,留在自研改造灰度风险低。

b) 中国香港代理 – 海外加速

海外到国内的网络质量不稳定,而中国香港是海外接入质量最好的点(拥有专线),由中国香港作为海外代理接入点,进行提速。

c) 桥头堡代理 – 加密分发

桥头堡代理提供加密通信与跨机房路由功能,同时提供本地文件分发能力,减少文件重复传输,提供透明访问代理。

5. 海外上行加速

海外上行接入点网络复杂,直接就近接入,未必是最佳选择,这里分别使用Q调的全球质量分析能力,优化接入。

方案关键点:

a) Q调 – 采集分析

采集所有接入点在各地的接入质量数据。

b) 客户端 – 寻路请求

客户端由Q调获取网络质量最优的上行接入点。

c) 客户端 – 接入上行

客户端按路由接入,获取最优服务能力。

6. 海外下行加速

视频云除了上行接入部分进行了优化,下行部分也规划了优化方案。

方案关键点:

a) POP专线 – 跨洲优化

通过网平POP专线的能力,提供跨洲情况下的下行加速,北美的流需要在东南亚播放时,该视频流将由POP专线到达东南亚SET后,再进行扩散下行。

b) 并行加速 – 跨SET扩大通路

SET间建立多信道,解决单一信道容量有限的问题,扩大通路能力。

c) 多连接 – 单路视频流加速

使用类trunk方式,在多信道同时传输数据,提高单路视频传输能力。

d) Tcp转udp – 协议优化

tcp依赖可靠联接,长途通信时,转为udp包进行跨set传输,更有灵活性及更大吞吐能力。

六、 平台:视频云平台运营规划

视频云需要海量资源搭建服务基础,同时提供丰富的服务能力,所以使用了三层结构,提供平台服务能力:

1. 腾讯云Iaas – 基础资源

基于腾讯云提供的基础资源能力,视频云可以选择不同能力的组件完成架构工作。实体机(支撑环境)、TVM(自研过渡)、CVM(云机房虚拟化能力)、CDB(关系型数据库)、Redis(Nosql数据库)、COS(云统一存储)、CMQ(消息队列)、VPCGW(管理网关)、V**GW(出口加密网关)等等。后续将依此基础资源能力,在优化性能(GPU设备等),扩大覆盖(海外新节点等),优化资源交付(快速供给与上线)等数个方面,进行扩展,发挥腾讯云的资源优势,扩大服务范围。

2. 视频云PaaS – 业务能力

视频云业务基础,组成部分由客户端SDK开始,接业务流流向,覆盖所有业务模块。当前模块分布于多个部门与机房,后续基于资源与业务需求,提升模块性能(架构技术),适配业务需求(P2P等定制需求),提升服务能力。

3. 运维SaaS – 运营管理

运营优化的核心层,通过顶层封装,提供多方面的全球服务能力,如自动化运维(基础监控与视频云运维),快速交付(容量管理与场景化工具),容灾(调度与柔性),成本优化(资源负载),数据挖掘(日志与业务数据)、质量响应(多维监控、舆情与告警)

七、 小结

直播类业务云化建设,本质上是一个将自研已有的“复杂巨系统”向全球化扩展的上云之路,各方面团队共同面对,并解决了诸多环境差异与业务适配需求的难点,在保证业务能力与服务质量的大前提下,做了很多辛劳工作,保障了上云之路持续扩展。但路漫漫其修远兮,视频业务方兴未艾,未来更有成为基础服务的潜力,其上有更大的服务空间可以探索。

相关推荐

视频云解决方案