本篇文章内容来自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-爆款架构》是2018年TOP100Summit大会上的一个重要专题,主要探讨了如何构建能够应对高并发、大规模用户访问的爆款架构。这一专题针对的是互联网行业中常见的问题,即如何在短时间内处理大量用户...
【标题】"TOP100Summit2017 爆款"指的是在2017年举办的科技界盛事——TOP100SUMMIT。这个活动每年都会聚焦并表彰100个最具影响力的科技创新与研发管理案例,旨在推动科技行业的进步和发展。 【描述】"TOP100SUMMIT...
**TOP100 Summit** 是一个致力于挖掘和分享科技创新与研发管理最佳实践的重要平台。该盛会每年在全球范围内筛选出100个具有代表性的技术创新和研发管理案例,旨在通过这些真实案例的分享,为参会者提供宝贵的学习...
Top100summit全球软件案例研究峰会12月7-9日在北京九华山庄举行。大会分为5个专场:产品专场、团队专场、测试专场、开发专场、架构专场。大会主题以分享案例为主,从企业的研发管理设计案例出发,引用案例分享企业...
spark-summit-north-america-2018-06 全部 PPT -part1部分。 spark-summit-north-america-2018-06 全部 PPT -part1部分
2021 Data & Cloud Summit(云-数据-智能峰会)演讲PPT汇总,共19份。 2021 Data & Cloud Summit 是由 Kyligence 主办的年度数据与云行业峰会,本次峰会以「云 · 数据·智能」为主题,面向所有关注大数据、云计算...
TOP100SUMMIT是科技界一年一度的案例研究盛会,每年甄选有代表的100个技术创新/研发管理案例,旨在揭幕100件案例背后的思考、长尾价值,为 听众提炼最佳学习路径(或看点),帮助他人的项目或团队获得启示、成长,...
TOP100SUMMIT是科技界一年一度的案例研究盛会,每年甄选有代表的100个技术创新/研发管理案例,旨在揭幕100件案例背后的思考、长尾价值,为 听众提炼最佳学习路径(或看点),帮助他人的项目或团队获得启示、成长,...
【标题】:“Hive-Summit-2011-join.zip_hive”指的是一个关于HiveJoin策略的讨论,源自2011年Facebook峰会上的分享。 【描述】:“Hive: Join Strategies. Facebook summit-2011”说明了这个主题集中在Hive的连接...
TOP100SUMMIT是科技界一年一度的案例研究盛会,每年甄选有代表的100个技术创新/研发管理案例,旨在揭幕100件案例背后的思考、长尾价值,为 听众提炼最佳学习路径(或看点),帮助他人的项目或团队获得启示、成长,...
Top100summit全球软件案例研究峰会12月7-9日在北京九华山庄举行。大会分为5个专场:产品专场、团队专场、测试专场、开发专场、架构专场。大会主题以分享案例为主,从企业的研发管理设计案例出发,引用案例分享企业...
通过下载提供的"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"指的是一个在2015年Maggies峰会上展示的议题,主题是“60分钟内构建企业级应用——Cordova轻量级表单应用...
标题与描述均聚焦于“Top100summit个性化的双11-个性化推荐技术的应用”,这明确指出了文章的核心议题在于探讨个性化推荐技术在天猫双11活动中的实际应用,特别是通过张奇(得福)这位天猫推荐算法团队成员的视角...
### AI for Good Global Summit Report 2017 #### 背景介绍 《AI for Good Global Summit报告2017》是一份重要的文件,它记录了2017年在瑞士日内瓦国际电信联盟(ITU)举办的全球峰会的相关内容。这次峰会聚集了...
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...
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机器人的一组通用工具和资源。 ROS Melodic是ROS的一个发行版,发布于2018年,主要支持Ubuntu 16.04 LTS (Xenial...
实测可用
实测可用