`
壹佰案例
  • 浏览: 35613 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

TOP100summit【分享实录-网易】构建云直播分发网络

 
阅读更多

本篇文章内容来自2016年TOP100summit网易视频云、网易杭州研究院服务端技术专家邵峰的案例分享。

编辑:Cynthia

2017年11月9-12日北京国家会议中心第六届TOP100summit,留言评论有机会获得免费体验票。

 

邵峰:网易视频云、网易杭州研究院服务端技术专家

浙江大学计算机专业博士毕业。

自毕业以后从事数据库、分布式存储等领域研究,有十年左右的服务端开发经验。

目前在网易视频云负责产品化研发工作,在服务端开发、存储/数据库开发等方面有丰富的实战经验。

 

导读:在网易视频云直播产品开发中,研发团队遇到了直播卡顿难题。如何提供稳定、流畅、无卡顿的直播服务,是当时迫切需要解决的问题。通过客户端分析、网络统计等手段,定位卡顿问题的根源在于直播分发网络不佳。能否提供一套可靠的直播分发网络,决定了直播是否有卡顿,也最终决定了用户的直播体验。

为了流畅的直播体验,保证基本无卡顿,技术团队采用了一种融合式分发网络架构。通过该融合分发网络,直播云服务基本解决了卡顿问题,保证了流畅的直播体验。本文将介绍网易云直播分发网络架构的构建及优化过程。

 

一、问题的提出

 

直播业务迅猛发展,但其背后的直播技术门槛较高,为了降低技术门槛,让产品开发者迅速开发出直播产品,就出现了直播云服务的概念。直播云服务,为直播提供了端到端的解决方案,包括:直播端采集-编码-播放、网络端转码-分发、播放端解码-播放等。其中每个环节都涵盖大量技术,同时也影响着直播质量的高与低。

网易视频云就是为开发者用户提供这种直播云服务。我们在直播云服务的建设过程中,发现直播网络体验是所有直播产品的痛点,稳定、流畅、无卡顿是所有直播产品的共同诉求。那如何把我们的直播云服务做到体验好、无卡顿呢?起初,我们采用了一系列音视频技术,对主播和播放两端进行了优化,体验未得到实质性改善。分析后,我们把焦点集中于网络端,因此上述问题被转化为:如何优化分发网络,从而保证直播无卡顿、体验好?

在网络分发端,起初我们采用了一个传统第三方CDN网络,但第三方CDN在带宽配置和节点部署上存在诸多限制,而且直播线路调整采用人工手段,因此无法满足我们的优化需求。接着我们自建了一套分发网络,但由于节点数不足,分发性能要求也不甚理想。后续,我们又接入了多家第三方CDN网络,但每一家都不能完全满足我们的“无卡顿、体验好”的要求。最后,我们考虑能否在已有的单CDN分发网络基础上,构建一个融合式直播分发网络,达到稳定流畅要求?因此,我们开始了一趟融合分发网络的构建旅程。

 

二、实践过程

 

我们的云直播分发网络构建,从时间维度分为三阶段:单CDN阶段、多CDN阶段和融合CDN阶段。各阶段是渐进式发展的。

 

2.1 单CDN阶段

 

单CDN-构建阶段

 

 

我们为云直播服务选用了一个传统的第三方CDN分发网络。通过封装调用第三方CDN的分发网络接口,构筑了一套完整的分发网络服务,其基本架构如图1所示。

 

图1.  单CDN分发网络

 

单CDN分发网络的优点是实现简单,能快速封装实现。在我们云服务发展初期,该方案能帮我们迅速实现产品,并且应用于实际场景。

缺点很明显:网络不稳定、卡顿率较高,并且线路调优较为麻烦。

 

单CDN-优化阶段

 

当我们的用户量达到一定规模时,单个CDN的问题就集中体现出来了,首先网络不稳定,经常出现卡顿掉线等情况,而且对国内运营商网络存在差异化支持,例如电信、联通线路较好,而移动线路较差等问题。

 

通过与第三方CDN排查问题,发现其本质原因为:节点覆盖不足、带宽资源提供不足。

 

通过让CDN厂商加节点资源、优化线路,部分解决了卡顿流畅性问题,但是无法从本质上解决网络覆盖等问题。

 

2.2 多CDN阶段

 

多CDN-构建阶段

 

针对第三方CDN的问题,我们考虑采用多CDN方案加以解决。通过对不同的几个CDN厂商进行基调测试后,发现每个CDN厂商都有局部优势和劣势,例如CDN厂商A对移动线路支持较好,而CDN厂商B对电信/联通线路支持较好。针对该特点,我们接入了多家CDN进行节点及线路互补。对于一些特殊区域,例如小运营商、海外节点等情况,我们通过部署自有节点,开发了一套简单的自研CDN进行区域覆盖。最终我们形成了一个多CDN分发网络系统,架构如图2所示。

 

图2. 多CDN分发网络

 

多CDN-优化阶段

 

在多CDN分发网络中,由云管理中心为主播选择分发线路。在卡顿率分析时,我们发现上行推流的稳定性起着决定作用。因此我们根据主播端的IP,查询推流源位置信息,然后选择最佳CDN进行流分发。

 

举例说明,主播A为北京移动线路,我们就选择上行较优的CDNⅡ进行分发;主播B为上海电信线路,选择电信较优的CDNⅠ进行分发。选择策略在云管理中心进行配置。选择策略根据,基调测试结果或线上结果反馈,定期调整。

 

2.3 融合CDN阶段

 

融合CDN构建阶段

 

多CDN分发网络极大地降低了卡顿率,但运行一段时间后,我们发现多CDN分发网络,还存在一些缺陷,例如第三方CDN上行线路无法达到最优化;下行观众端拉流无法选择最佳CDN;直播线路无法临时调优等。

 

为此,我们重构了分发网络,提出了一种融合CDN架构,如图3所示。融合CDN分发网络,在多CDN的基础上,主要增加了两大功能:接流源站和智能云调度中心。

● 通过自建接流源站,我们能最大限度的优化直播上行线路。

● 通过智能云调度中心,我们能自适应网络环境,根据网络变化,动态的调整上下性线路。

 

图3. 融合CDN分发网络

 

融合CDN优化阶段

 

当前我们处于融合CDN使用阶段,但我们还将对该分发网络进行优化。考虑下行线路,第三方CDN厂商无法完全覆盖所有区域,而自研分发网络构建/维护成本过高。因此,考虑对于CDN厂商无法覆盖的下行区域,如果用户访问密度高,我们将在下行边缘做一层服务转发。

 

这样带来的好处有两点:

● 增加边缘覆盖率,同时降低CDN流量成本;

● 路由判断更加精准,避免CDN厂商路由漂移情况。

 

其框架如图4所示,我们正处于该优化阶段的建设过程中。

图4.  融合CDN分发网络-改进

 

 

直播分发网络构建中,融合CDN分发网络的设计/建设最为关键。

 

接下来将具体描述其两大关键模块的设计思路:接流源站、智能调度中心。

 

接流源站

 

在最初的设计中,源站的目的性很明确,用于接收主播的推流,并转发CDN。由于直播流采用rtmp协议,因此源站主要实现了rtmp协议处理。在内部,源站架构分为三层:接口协议层、逻辑处理层和网络分发层。

● 接口层接收解析rtmp流协议;

● 处理层进行流媒体处理;

● 网络分发层进行rtmp转发。

 

需要注意的是:每路推流转发一路给不同的CDN网络,这样观众就能从不同的CDN网络获取流信息。

 

随着云直播业务的扩展,互动直播以及直播连麦等需求也引入到了直播框架中,因此我们对源站进行了扩展,提供了一种多协议源站。引入的协议为RTP类协议,有交互性要求或实时性要求较高的直播形式,都走RTP类协议,其底层走UDP通道。而对广播式要求,我们通过RTMP转封装和混屏处理,无缝对接现有CDN。整体框架如图5所示。

 

图5.  多协议源站

 

源站调度

 

我们在全国二十几个主要区域部署了源站集群,在重要区域,例如北京、上海、广州、杭州等,采用BGP网络。其他区域采用多线。从而保证用户与源站之间网络的高质量。我们通过全局调度中心GSLB进行源站调度。调度中心,通过心跳式探活,感知实时情况。通过配置模块,动态调整源站的配置,如流量限制,黑白名单限制等。主播在推流之前,从调度中心获取源站路由。调度中心会根据推流源地址、策略表,最优选择一个源站。整体框架如图6所示。

 

图6.  源站调度

 

 

调度中心智能调优

 

调度中心是整个分发网络的核心,它统一调度上行接入点和下行拉流点。调度中心内部最重要的是路由规则表的制定。传统的规则表是固定配置规则表,跟实际网络的适配性较差。我们在融合网络中,设计了一套智能调优策略,通过网络实际情况动态调整规则。调优的流程如图7所示,采用五步骤循环模式。

● 步骤1,GSLB调度中心获取/解析用户地址信息;

● 步骤2,调度中心获取已有调度规则;

● 步骤3,调度中心生成路由地址,下发客户端;

● 步骤4,两端上报卡顿信息到云统计中心;

● 步骤5,云统计中心,定时分心数据,触发规则,调整规则库。

图7. 调度中心路由调优

 

通过这些步骤,调度中心实现了统计式自调优。

 

三、效果评价

 

我们在真实环境对上述分发网络进行了一系列对比测试,核心测试点就是卡顿率指标。为增加云直播产品质量,我们在卡顿率指标选择上采用了更为严格的一分钟卡顿率,而未使用常规的时长卡顿率。

 

所谓一分钟卡顿率,就是如果一分钟之内播放器连续卡两次,就视为该一分钟都为卡顿。而时长卡顿率,以每秒钟为间隔,该秒内播放器卡,视该秒为卡顿。播放器卡的定义为:解码线程每隔3ms从播放器缓冲区获取数据,如果缓冲器为空,则定义为播放器卡。一般意义上,一分钟卡顿率 = 4 ~ 15倍 × 时长卡顿率。

 

 

图8. 两周卡顿率比较

 

如图8所示,我们选择了X、Y、Z三个月的前半个月(两周)卡顿率数据进行了比较。其中X月运行了单CDN分发网络;Y月运行了多CDN分发网络;Z月运行了融合CDN分发网络。每天给出一个综合卡顿率数据。各月,云平台环境情况为:网络实际流量分别为日均5TB、12TB和20TB, 98%以上流量运行于国内, 流量无重大区域变化性差异。从图中,可以看出卡顿率有了明显下降,在融合CDN分发网络中,达到了我们预定<5%的指标要求。

 

图9. 卡顿率优化比例

 

如图9所示,给出了单CDN、多CDN和融合CDN的平均卡顿率下降指标。使用多CDN分发网络比用单CDN分发网络两周平均卡顿率下降26%。 使用融合CDN分发网络比用多CDN分发网络两周平均卡顿率下降44%。

 

因此,我们根据统计总结出:融合CDN分发网络,能极大优化网络分发,并把卡顿率指标降到了小于5%的优质范围。接下来,为了达到极致体验,我们将继续改进融合CDN分发网络,在拉流端考虑进一步优化。

 

四、推广建议

● 使用渐进方式,分阶段进行网络优化;

● 网络框架优化前,必须事先分析,寻找关键瓶颈点;

● 网络数据收集很重要,尽可能多收集;

● 必须深挖细节点,每个小模块都能做出大文章;

● 国内网络环境有特殊性,必须考虑运营商和区域性因素;

● 边缘加速很重要,尽量靠近用户;

● 善于使用第三方服务,并能在别人服务基础上进行优化升华。

 

11月9-12日,北京国家会议中心,第六届TOP100全球软件案例研究峰会,网易云通信与视频技术专家刘心坤将分享《网络拥塞控制以及在实时通信领域中的应用》。查看日程

分享到:
评论

相关推荐

    TOP100Summit2018-爆款架构

    《TOP100Summit2018-爆款架构》是2018年TOP100Summit大会上的一个重要专题,主要探讨了如何构建能够应对高并发、大规模用户访问的爆款架构。这一专题针对的是互联网行业中常见的问题,即如何在短时间内处理大量用户...

    TOP100Summit2017 爆款

    【标题】"TOP100Summit2017 爆款"指的是在2017年举办的科技界盛事——TOP100SUMMIT。这个活动每年都会聚焦并表彰100个最具影响力的科技创新与研发管理案例,旨在推动科技行业的进步和发展。 【描述】"TOP100SUMMIT...

    2014top100summit案例征集

    **TOP100 Summit** 是一个致力于挖掘和分享科技创新与研发管理最佳实践的重要平台。该盛会每年在全球范围内筛选出100个具有代表性的技术创新和研发管理案例,旨在通过这些真实案例的分享,为参会者提供宝贵的学习...

    Top100summit产品专场案例PPT汇总

    Top100summit全球软件案例研究峰会12月7-9日在北京九华山庄举行。大会分为5个专场:产品专场、团队专场、测试专场、开发专场、架构专场。大会主题以分享案例为主,从企业的研发管理设计案例出发,引用案例分享企业...

    spark-summit-north-america-2018-06 全部 PPT -part1

    spark-summit-north-america-2018-06 全部 PPT -part1部分。 spark-summit-north-america-2018-06 全部 PPT -part1部分

    2021 Data &amp; Cloud Summit(云-数据-智能峰会)演讲PPT汇总.zip

    2021 Data & Cloud Summit(云-数据-智能峰会)演讲PPT汇总,共19份。 2021 Data & Cloud Summit 是由 Kyligence 主办的年度数据与云行业峰会,本次峰会以「云 · 数据·智能」为主题,面向所有关注大数据、云计算...

    TOP100summit 2013 测试专场

    TOP100SUMMIT是科技界一年一度的案例研究盛会,每年甄选有代表的100个技术创新/研发管理案例,旨在揭幕100件案例背后的思考、长尾价值,为 听众提炼最佳学习路径(或看点),帮助他人的项目或团队获得启示、成长,...

    TOP100summit 2013 架构专场

    TOP100SUMMIT是科技界一年一度的案例研究盛会,每年甄选有代表的100个技术创新/研发管理案例,旨在揭幕100件案例背后的思考、长尾价值,为 听众提炼最佳学习路径(或看点),帮助他人的项目或团队获得启示、成长,...

    Hive-Summit-2011-join.zip_hive

    【标题】:“Hive-Summit-2011-join.zip_hive”指的是一个关于HiveJoin策略的讨论,源自2011年Facebook峰会上的分享。 【描述】:“Hive: Join Strategies. Facebook summit-2011”说明了这个主题集中在Hive的连接...

    TOP100SUMMIT2013 开发专场

    TOP100SUMMIT是科技界一年一度的案例研究盛会,每年甄选有代表的100个技术创新/研发管理案例,旨在揭幕100件案例背后的思考、长尾价值,为 听众提炼最佳学习路径(或看点),帮助他人的项目或团队获得启示、成长,...

    Top100summit开发专场案例PPT汇总

    Top100summit全球软件案例研究峰会12月7-9日在北京九华山庄举行。大会分为5个专场:产品专场、团队专场、测试专场、开发专场、架构专场。大会主题以分享案例为主,从企业的研发管理设计案例出发,引用案例分享企业...

    spark-summit-north-america-2018-06 全部 PPT -part2

    通过下载提供的"spark-summit-201806_iteblog"压缩包,你可以获取到大会的完整PPT资料,深入理解Spark技术的前沿动态。 1. **Apache Spark概述**:Apache Spark是目前最流行的大数据处理框架之一,以其高效、易用和...

    Maggies-Summit-2015---Summit-2015---Build-Enterprise-Apps-in-60-Minutes-Cordova-Light-Forms-App

    标题"Maggies-Summit-2015---Summit-2015---Build-Enterprise-Apps-in-60-Minutes-Cordova-Light-Forms-App"指的是一个在2015年Maggies峰会上展示的议题,主题是“60分钟内构建企业级应用——Cordova轻量级表单应用...

    Top100summit个性化的双11-个性化推荐技术的应用——天猫张奇

    标题与描述均聚焦于“Top100summit个性化的双11-个性化推荐技术的应用”,这明确指出了文章的核心议题在于探讨个性化推荐技术在天猫双11活动中的实际应用,特别是通过张奇(得福)这位天猫推荐算法团队成员的视角...

    AI for good global summit report 2017-171112083625

    ### AI for Good Global Summit Report 2017 #### 背景介绍 《AI for Good Global Summit报告2017》是一份重要的文件,它记录了2017年在瑞士日内瓦国际电信联盟(ITU)举办的全球峰会的相关内容。这次峰会聚集了...

    Android代码-dev-summit-architecture-demo

    Sample Application for The Android Architecture Talk @ Android Dev Summit 2015. video This is a simple social sharing application where users can post text messages and also list other users' messages...

    SUMMIT-1-Final-Test-1-5.zip_Free!_foodfbi_summit

    Prepare for IELTS with our free practice tests and answers. Use these tests to carry out timed practice sessions and develop your test technique.

    ros-melodic-summit-xl-common:ros-melodic-summit-xl-commonAUR软件包

    在本案例中,我们关注的是"ros-melodic-summit-xl-common"软件包,它是ROS Melodic版本针对Summit XL机器人的一组通用工具和资源。 ROS Melodic是ROS的一个发行版,发布于2018年,主要支持Ubuntu 16.04 LTS (Xenial...

    gentaku-summit-cartridge-20050208.175344.jar

    实测可用

    gentaku-summit-cartridge-20050708.211103.jar

    实测可用

Global site tag (gtag.js) - Google Analytics