携手听云,搜狐千帆直播流畅用户体验背后的APM实践

2016年的直播行业俨然已经成为了互联网领域的现象级风口,有数据指出,截止到2016年6月,中国网络直播用户规模达到3.25亿,占网民总体的45.8%。同时,资本的快速注入给直播产业带来了急速的发展,据不完全统计,国内现在共有规模不同的300多家直播平台。但是从现在看来,虽然直播的风口期依然存在,但是直播内容的高度同质化和用户群的  相同,决定了这个行业势必将迎来一波重新洗牌,因此现在更多的直播平台将竞争更多的集中于各个细分领域,如游戏直播、秀场直播、体育直播等等,各家直播平台也在自己的领域下纷纷布局。

搜狐千帆直播就在这样的市场环境中不断前进,搜狐千帆直播是由搜狐视频的技术团队创建的,继承了搜狐在自媒体视频领域的技术和产品优势,将视频点播业务转化为视频直播模式,使搜狐的娱乐属性和媒体属性在移动互动时代得以加强。

一、直播行业目前的挑战

作为直播业务,用户大体上分为主播和观众两类,良好的用户观看体验是由主播和用户两端共同决定的,假如主播端推流不稳定,用户端网络再好也是无济于事的。因此直播平台对于“用户体验”的要求不同于其他产业,“齐头并进,两头兼顾”是直播平台打造良好用户观看体验的重要方向。考虑到这样的问题存在,千帆直播分别为为主播端和客户端设立了两套不同的问题解决方案:

主播端:

现在是全民直播时代,所以网络主播所处的个人网络环境良莠不齐,无法保证推流稳定性。但是在直播场景中,需要保持良好的视觉和听觉感受,需要保持音视频直播流稳定,减少卡顿次数。一旦推流不成功或者推流过程中出现了异常,主播就无法正常开播。为此千帆直播做了多路上行线路,根据“最佳寻址算法”,找到主播端最优的链路,同时根据“最佳码率算法”,确定最稳定的动态码率和分辨率,以保证直播流上行成功。

直播一定要具有实时性,因此对于主播端所看到的直播间的弹幕、礼物、消息等互动内容要持续保持低延迟高可用。但是在高并发场景下,主播端的信息吞吐量巨大。无论是PC还是APP,都会出现消息堆积、显示不全或者不及时现象,这就需要从产品技术角度减少误差。也因此千帆直播设计了“WebSocket信号保护系统”、“消息均衡算法”以及“多任务归并算法”等等逻辑,保证就算出现井喷式的流量爆发也不至于出现堆积卡死现象。

观众端:

观众需要极致的访问观看速度,在2015年搜狐千帆直播平台初创时,就围绕直播“秒开”做研究,目前基本实现了高速网络下的“秒开”。但是挑战依然继续,就是在弱网环境、窄带环境、高速运动环境下,是否有更加稳定不丢包的直播流传输技术呢,因为每出现一秒的卡顿,都会导致大量用户流失,为此千帆直播做了多CDN策略,以保证CDN的资源稳定。

直播相较于视频点播,观众的存在感是决定性因素之一,换句话说直播就是互动,对观众来说,与主播的互动、与其他观众的互动是他们观看直播的目的之一。因此需要像社交平台一样,在一位用户发出弹幕的时候,要尽可能的减少其他用户看到此条弹幕的延迟,时刻保持高实时性。这就对整个直播平台的技术架构提出了很高的要求,需要保持高可用低延迟,发出去的数据包不能有损耗有丢失,接受到的数据包也不能被劫持被篡改。

二、千帆直播的后台体系建设

千帆直播平台后台体系

这里我们看下搜狐千帆直播的后台架构是如何应对并解决上述挑战的,千帆直播包括五大核心业务:基础业务、视频业务、数据业务、运营业务、监控业务。在千帆直播创立初期秉承的是敏捷开发模式,在设计架构时采用了SOA(面向服务的架构),从而使得各个核心业务以及内部子业务都形成独立服务,并且互不干扰,在开发和部署时,能够保持水平和垂直两个方向都可以扩展。

以刷礼物为例,直播平台如果做一些活动或者大型的直播时,会引来相当多的用户,大量的用户也带来了大量的礼物,大量的礼物特效势必会造成流量通道堵塞,但是如果用户在刷礼物的过程中都得不到良好的体验,结果可想而知。因此,说刷礼物的阶段是直播平台目前最关键的业务流程并不为过。那么面对这样重要的流程,千帆直播做了哪些措施来保障在刷礼物过程中的体验呢?

首先是内部技术优化,为此千帆直播主要做了三方面的措施:一个是推动礼物特效本身的优化,在不删减动画的情况下,通过优化帧数,改变格式等手段缩减size,比如推动Android端把动画从序列帧彻底改为webp;第二个是预加载,在进入APP时,对于高级(付费)用户,根据以往的经验,提前下载礼物动画的更新。第三个是强行内置,比如万圣节活动,礼物就直接给打进包里,省掉下载时间。同时各版本的发包,也会根绝实际情况,把当期热门礼物/动画给打进去。

其次是快速迭代,以iOS为例,5.2版本的崩溃数量相较于5.3版本下降了很多。比如在5.3版本中,千帆直播APP在播放大礼物特效的时候,一直以来都会有一个很小概率的crash问题。这个问题对于一般用户来说无所谓,但是对于高级用户来说,一旦发生那就是个体验很差的问题,从而导致一些付费用户的流失,这肯定是我们不能容忍的。

三、千帆直播的性能优化捷径,与APM的完美融合

搜狐一向有重视用户体验的传统,千帆直播也继承了搜狐集团的这一特点,为了能够加强对直播平台的技术和服务的管理要求以及主播和客户端的性能体验,经过一系列严格的评估和实践,千帆直播决定引入第三方应用性能管理服务—听云来提升内外部的性能质量。这里我们可以从业务的角度,分平台来看。

移动端:

现在移动端的快速发展,直播平台的用户分布也逐渐向移动端倾斜,而且现在的户外直播等新颖的直播方式,都要用到移动端才能进行。因此移动端的重要性越来越突出,但是移动端不像PC端有一个相对稳定的网络环境,移动端的网络是处于不断变化中的。我们上面也有提到过,在弱网环境、窄带环境、高速运动环境下,如何能够保障稳定不丢包的直播流传输,如果在这其中,主播在直播过程中或者是用户在用流量观看直播的过程中出现了崩溃等一系列问题,这样的体验和对产品品牌的影响是极差的。

App崩溃数据汇总

因此千帆直播将听云App提供的SDK集成到自身中来,帮助千帆直播的技术团队及时捕获APP中的崩溃信息、各种卡顿缺陷和网络请求列表,帮助运维和研发人员能够快速定位各种缺陷问题。以Crash崩溃为例,听云后台给出了详细的崩溃轨迹以及统计图表,版本和设备都一一详细的列出来,并且还有详细的程序堆栈,研发人员按照轨迹一步步向上钻取就可以追踪到问题所在。

相较于崩溃,可能卡顿对于直播平台来说一直是个老大难问题,同时直播又是一个具有强交互性的APP,动画、特效、音视频 等等都有可能成为卡顿的元凶。听云的卡顿分析比较详细,可以详细列出每个方法的执行效率和上下文信息,并且结合当时的网络环境、设备硬件环境等外界因素,就可以很容易的定位问题。

浏览器端:

虽然直播平台的移动端用户不断增加,但是PC端的用户仍占有很大比例,同时网页相较于手机,页面显示的内容只多不少,另外在PC浏览器端还要兼容多款浏览器,如何保障用户在使用浏览器观看直播时的体验以及页面的性能成为当前众多直播平台亟待解决的问题之一。

听云Browser页面分析

千帆直播将听云Browser的JS代码集成到PC网页和H5中,帮助千帆直播可以时刻监控各个页面的交互情况。以JavaScript错误为例,开发和QA就算再认真也不可能覆盖所有的设备,而且PC端浏览器版本之多,给错误审查带来了不小的麻烦。

同时听云Browser帮助千帆直播及时监测到页面的完整性,比如是否被运营商劫持了、是否被插入了广告、是否被修改了内容等等,从而减少不必要的损失。通过在后台观察性能特别低下的链接基本就可以发现,也方便前端工程师制定相应的优化策略。

网络端:

听云Network管理系统可以针对性配置全站的关键链接监控,这里包括PC页面、H5的页面以及各路关键接口。

听云Network首屏时间

听云在全国布有几十万个Agent,能很好的模拟出真实用户访问情况。帮助千帆直播按照一定的频率收集全国各地的访问反馈,其中包括页面时间、运营商环境、DNS解析等性能指标以及当时客户端的截图。

有需求才会有市场,市场决定了直播这个行业到底能做多大。并且我们明白,现在的直播行业远不到市场饱和的状态,仍有很多经济风口可以挖,可以预见的是在未来的一段时间,这场围绕直播的战争还将持续下去。直播只是一种工具,目的是拉进人和人之间的距离、人和知识的距离、人和教育、人和各种行业需求之间的距离,在未来发展道路中,听云会与千帆直播携手,共同打造出最具社会意义的价值直播。

关键词: 搜狐 背后 用户