IM云服务,网易云信如何做到“毫厘”级360°优化

10月20日,2016 QCon全球软件开发大会上海站在上海举行,来自全球顶尖的互联网科技公司和百位海内外大咖,围绕监控系统、大数据分析及可视化以及最具前景的云服务等热点,分享了各自的技术创新思路和实践经验。会上,网易云信CTO阙杭宁就《即时通讯云服务之路》发表了主题演讲,全方位解读了即时通讯研发所面临的疑难杂症,并首次阐述网易云信针对IM开发痛点做“毫厘”级别的360°优化。

1网易云信CTO 阙杭宁

当前,越来越多的创业者和传统企业都在为争取乘上时代大势的顺风车而纷纷发力和转型,而即时通讯云及其衍生的各种微服务已经逐渐成为这股浪潮中的刚性需求。也因此,近年在互联网科技领域,诞生了一批提供即时通讯云服务的专业平台。这种以帮助客户通过集成客户端SDK和云端OPEN API,实现快速接入即时通讯功能,降低客户人力、物力成本的业务模式,成为了云服务领域又一个新蓝海。

即便业内早已对即时通讯云服务的光明前景有所预见,但刚涉入一年后的网易云信,发展速度令人侧目。从2015年10月13号上线至今,网易云信已成功接入10万+APP开发者,覆盖用户达到惊人的4亿+;在网络和区域上面覆盖了196个国家,567个地区。除此之外,还获得了国内即时通讯云服务领域的首个CSA-STAR和ISO27001认证,并已拥有56项认证专利。

阙杭宁表示,进入移动互联网时代的即时通讯面临着极其复杂的环境因素,譬如移动信号的强弱、连接状态的关注点、移动终端的流量及电量的敏感性,还有不同操作系统平台甚至不同版本的系统ROM造成的运行环境的复杂性,等等。

2

这些外部的错综复杂的因素,这即时通讯研发提出了挑战,主要表现在:技术难度大,整体开发和调优周期较长,即时通讯研发的细节业务较多,对线上环境的维护复杂度越来越高。而且即时通讯云服务不是面向某一个软件,或某一个平台提供服务,而是会有上万甚至更多的软件,接入客户的用户量的增长都会带来用户量级的增长,而且用户分布及其手机环境更是异常复杂。即时通讯云服务商会面对更大的数据量级,要求更全的网络覆盖和更高的兼容性应对,需要处理更复杂的业务,也有更快的扩容速度要求,还包括不同应用之间的隔离。

那么,网易云信是如何以“后来者”的身份在这一领域成为“闯局者”?

阙杭宁说:“要想做好即时通讯研发,就要抓住3个核心关键点:连接管理、业务协议和高并发高可用的需求。在此基础上,作为IM云服务商,云信最关注的核心维度其实是两件事情:第一是稳定;第二是实时性。”

网易云信致力于打造“真正稳定的IM云服务”。资源和竞争是云服务的核心,在资源保障上,云信目前生产环境全部构建在网易云上,通过网易蜂巢的容器技术,可以快速的在生产环境资源上创建新的运行节点和部署服务镜像,做到分钟级的扩容。在容量水位监控下,通过蜂巢API,做了一定容量自动伸缩策略。

在不同应用的资源竞争应对上,一方面是上述的容量水位监控自适应调整算法和自动伸缩机制来确保足够容量来保障竞争的温和,另一方面通过在微服务架构上再演进了一步,通过自适应协议路由来提供单元化服务域。应对不同的业务服务单元需求,通过不同的微服务模块与容量规格配比,组合成独立的服务域,将特殊的应用域进行隔离,一方面可以确保高运维可用率要求的服务不受其他服务干扰,另一方面可以将有意外状况的应用快速隔离至独立的服务域,避免对其他服务的入侵。

3

对于实时性,阙杭宁认为:“这是即时通讯的本质需求,也是其最具有竞争力的一个价值所在”。实时性的技术本质是网络拓扑建设的优化、网络链路调度的优化,以及消息路由投递的效率优化三个方面。

在移动互联网的特殊网络环境下,要确保通信的稳定可靠,消息送达的准确率,乃至音视频通讯的低延迟并非易事。千奇百怪的网络环境下,往往有很多问题,例如不可控的客户端网络无法由单一的网络入口满足,“弱网”条件不可避免,如何保持连接和使用。如何突破重围,阙杭宁分享了网易云信的解决策略:用更可靠的服务端网络代替部分特殊客户网络;优化连接探活和重连效率;精简数据包大小,增强对弱网的支持。

以云信打造“延迟0容忍”的实时互动音视频为例,为保证实时互动业务的低延迟和数据时效性,首先网络调度调优,其次适配不同的网络情况推出自研的抗抖动算法和动态码率,值得一提的是自研的抗抖算法,在借鉴优秀开源算法的基础上进行深入优化与融合,并投入了大量的测试做参数校准,不同丢包、延迟条件下,通过人耳感受流畅程度来获取较优体验下的不同参数规格,可以解决在800ms的网络抖动引起的通话卡顿、与延时累计问题。

而网易云信“无人数上限”的直播聊天室采用了四层分层架构,客户端SDK层:SDK多平台适配、移动弱网络优化、安全加密压缩。网关接入层:长连接管理优化、支持平滑升级、支持跨网络切换、广播分包。路由层:把网关接入层收到的客户端请求,通过路由层来做到后面的具体业务微服务。业务层:来处理具体的聊天室业务请求,并返回结果。

在技术上,网易云信一直坚持强化稳定和实时性核心优势,潜心强化内功,小到一个参数,大到整体的架构设计,对所有细节不断打磨和优化。在过去一年里,云信所取得的成绩与这份“匠心”密不可分。