导读: 2021年10月21日,「QCon 全球软件开发大会」在上海举办,网易智企技术 VP 陈功作为出品人发起了「AI 时代下的融合通信技术」专场,邀请到网易云信、网易音视频实验室、网易云音乐的技术专家与大家一起分享融合通信技术趋势和演进方向、视频通信关键技术探索及实践、音频 AI 算法在 RTC 中的实践、网易云音乐网络库跨平台化实践等话题。
我们会针对四个演讲专题逐一进行介绍与分享,本期是我们的第四期,网易云音乐网络库跨平台化实践。
嘉宾介绍:陈松茂,2020年底加入网易云音乐,一站式网络解决方案技术负责人,目前从事跨平台网络解决方案相关研究,旨在降低多端网络工作的研发成本,以及多应用间的接入成本,用较低的成本获得持续可观的性能及能效提升。曾就职于阿里,长期从事于 Chromium 相关技术研究和应用,拥有丰富的浏览器开发和内核升级经验。

前言
在做网络优化的过程中,由于系统网络库的差异,你不得不把同一类型的优化,在各端进行适配,你感觉工作量在成倍增长。
正因为多种适配版本的存在,一致性无法完全保证,另外由于系统网络库提供的数据采集能力不同,你很难采集到完全对齐的数据,这意味着服务端需要做一些兼容。
随着移动互联网的崛起,PC 在变得小众化,但这不代表 PC 不需要对应的网络优化或监控服务,但你确实无暇顾及。大厂可以不惜代价,筹建庞大的团队深入协议栈进行重新开发优化,但你希望只投入有限的资源,就可以换来可观的网络性能提升。
不知道这些场景是否有戳中你的痛点,或者你曾经也被困扰过?如果我告诉你,接下来的分享能帮你解决上述所有的问题,你是否有兴趣了解下?如果我告诉你,你可能什么都不需要做,就能轻松让网络的响应时间缩短 30%~40%,你是否更有兴趣了?
本次演讲主题为:网易云音乐网络库跨平台化实践。本文聚焦跨平台化,主要涉及工程化相关思路,分四个部分,分别是背景介绍、方案设计、落地实践及后续规划。
背景介绍
下图是当前云音乐网络库在各端的架构,可以看到上层的网络策略和监控服务等等在各端都有独立的实现,这会带来如下问题:
-
重复造轮子:所有的网络策略、质量监控,每个端都有实现。当你需要加一个新的策略的时候,每个端都得实现一遍,这是严重的人员浪费。
-
缺乏一致性:网络库及人的差异,导致轮子的标准和完成度不一致。
-
资源不对等:移动端研发比较多,但 PC 端研发就很少,这导致 PC 端很多网络策略和质量监控都是残缺的。
-
深度优化难:对网络库来说,要深层次的优化,需要对网络模块有充分的理解。但是这当下,我们可以在 Android 上进入深度的挖掘,但是不可能四个端里面都有做网络的同学来做专门的优化。这导致每个端只做一些浅层次的优化,不会做深层次的挖掘,因为没有人。

通过前面的分析,大家可以清楚的看到,其实每个端都实现一套,是不靠谱的。结合当下面临的一些痛点,自然而然产生了一个共同的诉求:让所有的端都共享一套网络解决方案。再进一步,是不是所有的 App 都能共享一套网络解决方案。
解决上述问题最主要的做法是整体方案跨平台化,但也面临着不少挑战。
-
首先是跨平台性。功能层面上是不是只有策略需要下沉,策略下沉以后,三方 SDK 是否能下沉?另外跨平台方案有很多,可以仅仅是移动端的跨平台化,也可以是移动端加桌面端都跨平台化。
-
其次是能力复用。使用 C++ 重写的网络策略能不能在不同场景下复用,除了重构业务,是不是可以提炼一些框架?这些框架是不是能复用?另外后续新的需求出来了,是不是能在现有的基础上很轻易的扩展上去?
-
最后是后期推广。一开始建立这个项目的时候就明确后期需要进行推广,不仅仅提供给网易云音乐使用。所以,其它 App 在接入网络库时成本怎么样?是不是能很简单的接入?这决定着后期能否顺利推广。另外,每个 App 都有各自的特点,比如网易云音乐有免流功能,但其它 App 可能不需要免流,换句话说,不同的 App 可以根据实际情况进行定制,这也是我们面对的挑战。

最低0.47元/天 解锁文章
49

被折叠的 条评论
为什么被折叠?



