11

我们用4行代码节省了100万 记录与阿里云PCDN相遇全过程

 2 years ago
source link: http://www.androidchina.net/7559.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
我们用4行代码节省了100万 记录与阿里云PCDN相遇全过程 – Android开发中文站
你的位置:Android开发中文站 > 热点资讯 > 我们用4行代码节省了100万 记录与阿里云PCDN相遇全过程

我们公司主要做视频在线点播,还有少量视频下载。比较关心网络加速,首先就是价格,其次是首播时间、流畅率这几个核心性能指标。目前使用阿里云PCDN也有几个月了,整体结果是超预期、值得安利的。写这篇文章,希望能通过选型对比、接入过程、效果实现几个方面的真实感受,给还在犹豫的同行们一些启发,希望文章内容对你们有所帮助。

废话少说,先直接说效果:每月的CDN费用比以前少了近50%,首播时间、流畅率略优于使用中的2家CDN。这个结果真是让人喜大普奔,原以为PCDN价格比CDN低这么多,性能会不好,没想到这货不仅价格低,性能比CDN还只好不差,一年能给老板省将近100万,妈妈再也不用担心我的年终奖啦。这个羊毛究竟该怎么薅,请听我一一道来。

先说选型阶段,是什么原因让我们选择了阿里云PCDN

上半年公司花大力气推广,我们的视频点播业务量增长挺快。业务量大了,不仅带宽成本有压力,我们也同样压力山大,怕产品服务不稳定,怕出各种问题。于是乎,我们一方面找目前使用的CDN公司申请价格折扣,申请服务质量保障;另一方面,也在不断寻找其他质优价廉的CDN产品。

现在CDN各家公司竞争也很激烈,基本都能爽快的给一定的折扣,但价格还是不够理想。找来找去,最后目光落在了P2P上。这玩意虽然价格低,但性能指标能得到保障吗?在网上查了P2P CDN的产品资料后,似乎跟我之前印象中的P2P不太一样,觉得还像那么回事。但深入了解之后,问题来了。要使用P2P CDN,各家都是要在客户端上集成SDK,SDK集成难度、SDK大小、SDK出bug后是否影响到主APP等各类因素都会可能造成影响。另外,从P2P原理上看,要有一定的P2P分享率,可能需要在终端上传流量。我们的视频点播业务在OTT盒子和移动端上都有,一旦在终端上传流量,不仅会占用带宽影响用户体验,而且还要在终端划一块存储空间用于缓存内容,频繁读写T卡/ROM也将影响到终端的寿命。这些问题对我们都很致命,如果这些问题真的存在,即使P2P CDN成本低,我们也没法使用。

细了解下来发现,现在不光CDN竞争激烈,连P2P的竞争也是异常激烈。期间各家P2P CDN公司轮番来宣讲产品,吹的天花乱坠。但外行看热闹,内行看门道,任你把牛皮吹破,我们有自己关心的点,达不到要求的话,再怎么吹也不会用。下面分别说说吧:

1、腾讯云P2P CDN:腾讯云目前在大力推广他家的CDN,价格比较低,性能上还不好说。他家的CDN商业化时间不长,用到的P2P技术还不能公开申请,应该还处于公测阶段吧。主要问题是,如果要使用P2P,必须要终端上传,这个是无法接受的,只能放弃。

2、星域CDN:星域CDN其实是迅雷下面的一家做云计算的公司,P2P技术来自于迅雷。星域CDN做了赚钱宝这样的硬件终端,用于收集用户的家庭出口带宽。由于有一些这样的硬件P2P终端节点的存在,使得客户端APP可以不用上传流量即可有P2P分享率。SDK大小适中,可以接受。但是他们缺乏视频点播业务的客户案例,并且他们来介绍产品的人,对于星域CDN在视频点播上的性能表现,看起来也没有很大的信心。这让我们比较担心,我们业务体量在快速增长,我们可不愿意当小白鼠,一旦出问题,这锅我们背不起。

3、阿里云PCDN:和星域CDN类似,阿里云也在全国各地发展了很多终端硬件设备,用户贡献带宽获得一定的收益,像优酷路由宝就是他家自有的设备,所以也不需要在设备上传流量就有P2P效果。而和星域比起来,阿里云对各种业务场景的支持比较全面,视频点播和下载业务领域已经有不少成熟的案例,并且优酷全站都使用了PCDN,这重燃了我们的信心。另外, 它的SDK不仅对接很快,而且大小在100KB左右,集成SDK后几乎不增大APP体积。SDK中跑具体业务的内核可以远程升级,如果出了问题,可以直接停用或者远程升级,APP不用发版,这个很炫。

4、云帆加速:云帆其实是想卖他们的CDN,通过把P2P免费给我们用,从而把CDN价格做的偏高。云帆的P2P必须要在终端设备上传流量才会有P2P效果,这个没法接受。云帆目前还是个创业公司,他们目前还做了很多其他业务,对于创业公司而言,人少而业务摊的太多,产品不一定能做精,资源也不能得到很好的保障。我们还是希望跟成熟稳定的大公司合作。

最终,我们决定使用阿里云PCDN测试看看效果。

随之而来的就是非常关键的一步——接入,这是最能考验服务质量和易用性的一步了。

首先在阿里云官网找到PCDN产品,申请开通。PCDN开通后,还要提供阿里云CDN域名和url给他们后台,说是要匹配规则,然后就把SDK和对接文档发给我们了。阿里云的人专门拉了钉钉群来支持我们的SDK集成和测试,他们的产品技术同学都在里面,响应的还挺及时,碰到问题都能很快解决,这要赞一个。

他们的SDK整体还比较简单,就三个接口:启动、停止和地址转换。SDK对接照着他们给的文档进行就可以了,APP的业务逻辑也不需要更改。从开始对接到集成成功,一共就花了不到一个小时,我数了数,总共也就4行核心代码,这有点颠覆我以前对SDK集成的认知,没想到这么简单。给你们看看我是怎么做到的吧。

和大多数SDK一样,启动APP时启动SDK,传入阿里云分配给我们的token,这样就把PCDN服务启动起来了。

需要播放视频时,播放器拿到云端提供的播放url地址后,增加一步调用SDK获取PCDN播放地址,然后使用PCDN提供的本地地址播放即可。

最后再退出应用程序时停止PCDN服务即可。

我们在APP上做了埋点监测,比对了首播时间、流畅度等指标,PCDN的指标略优于我们使用的CDN,这些关键指标测试下来,效果还是比较满意的。另外,阿里云PCDN有两点是超出了我们预期的。

第一个就是PCDN支持下载限速,我们大部分的业务是点播,有少部分的视频是要下载的,下载都是后台进行,要求下载的同时还能够流畅的播放视频,同时也希望尽量限制在带宽高峰期下载的速度。这就要求对下载进行限速了,还好阿里云PCDN已经支持了下载限速这个功能,下载速度可以由我们灵活控制,这个功能很好的解决了我们的问题。

第二个就是解决视频被劫持的问题。之前时不时有用户反映视频没法播放,经过分析基本都是域名被运营商劫持造成的,这种情况尤其在一些小地方小运营商中出现,比较头疼。给我们提供服务的CDN公司也能解决域名劫持的问题,但需要在APP上集成SDK,我们是不大愿意单纯为了这一个功能去集成SDK的。刚好阿里云PCDN SDK自带了HTTPDNS功能,保证了域名解析的正确性,避免域名被劫持的情况,并且HTTPDNS还免费给我们用,简直太方便太贴心了有木有。

成功接入后,我们就要看看效果了,毕竟老板们对数字指标是相当关心啊。

我们内部测试验证了一周左右。从测试情况看,产品稳定性不错,各方面性能指标也都达到了要求。但这毕竟只是实验室几个测试同学的测试,要真正反映产品表现,还是要大量数据来说话。阿里云PCDN的同学建议我们控制渠道灰度发布,有较多的用户使用才会体现出P2P效果来。经过跟老板商量,我们挑了个渠道,灰度发布了版本。几个小时后,就有几千的安装量,几千个用户对于验证PCDN效果也足够了。

接着又是一周时间,我们持续观察了各方面的数据,首播时间跟CDN不相上下,流畅度方面,使用CDN时流畅度98%左右,使用PCDN时流畅度98.5%左右,下载稳定性和完成率也符合要求,整体的表现还是很不错的。老板看到测试数据比较满意,同时,阿里云PCDN的同学对我们的问题的响应和支持都比较及时,老板果断决定正式上线PCDN产品,在各个渠道逐步全量发布。

现在,我们使用PCDN有几个月时间了,新版本的覆盖率已经很高了。产品还是很稳定的,即使偶尔有问题也能很快得到解决,这是我们非常看重的一点,省了很多麻烦。虽然业务增长,带宽量也在增长。但使用PCDN后,每月的带宽支出却实实在在的省了不少。照这个情况看,每年就能省将近100万的带宽费用了。而这所有的一切,只是花了不到一个小时集成阿里云PCDN SDK,增加了4行核心代码带来的成果,真是相见恨晚。

总结下整体的感受:接口简单服务给力,测试性能稳定优秀,阿里云有这么大的羊毛,不赶紧来薅,还等什么呢?

转载请注明:Android开发中文站 » 我们用4行代码节省了100万 记录与阿里云PCDN相遇全过程


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK