网易在9月21日发布了网易云计算战略,以数十亿人民币的首批投入来“解放全国千千万万的程序员”。而在2015年年底,网易云信IM开发服务平台就作为先锋军的一员,杀进了开发服务市场。 IM开发服务最早可以追溯到2009年,在2014年迎来了竞争高潮,多家创业公司都宣称拥有百万用户并发量。网易云信看似赶了个晚集,但这款平台凝聚了网易16年的即时通讯经验,提供从数据传输稳定性、数据安全等特性,以及为不同细分领域量体定制的独家功能。
9月23日,我们采访到了网易云信CTO阙杭宁。他为我们分享了网易云信在网易云战略中承上启下的作用,与市场类似产品的技术差异,以及未来面向开发者的计划。
云信既是服务的纽带也是服务入口
阙杭宁2007年从浙江大学软件工程毕业,随后便加入了一家做SaaS服务的公司。在当时的互联网圈子里,SaaS还是一个超前的概念。他们希望可以通过中国电信的资源和公共服务,为电信的政企客户提供平台式的服务。随后,阙杭宁所在的团队开发了电信翼聊的即时通讯服务端。从2010年起,阙杭宁开始步入即时通讯行业。阙杭宁随后加入的网易杭州研究院通讯基础设施技术组,就是网易云信的前身,小组从事了十几年即时通讯基础研发工作。
阙杭宁表示,在网易云计算战略这盘大棋中,网易云信是一个核心的枢纽,可以结合网易云的各个产品,给开发者提供“n+1”的服务。
从业务层面来讲,即时通讯在“移动为先”的时代是必不可缺的功能。几乎所有产品都有这项功能,即便是最初只提供转账、支付的一些金融类App,也最终加入了聊天功能。在为开发者提供服务时,云信起到了衔接各个产品的作用。
以网易七鱼为例。七鱼是云客服产品,商家与客户的通信就是在网易云信的技术上建立的。另一方面,接入云信的App也会存在其它的功能需求。在这种情况下,开发者会通过网易云信接入其他网易云服务,比如需要连麦互动直播功能的,会用到网易视频云提供作为底层技术的“实时音视频”SDK;需要对聊天信息进行反垃圾管理的,则会得到网易易盾的技术支持。网易云以微服务的形式,把不同的服务打包组合提供给开发者,而云信在其中既是底层技术提供平台之一,也是连接其它技术服务的接入口。
56项技术专利保障传输稳定
目前市场上已经有一些初具规模的即时通讯平台。阙杭宁认为,网易云信不会把自己定义为一个狭义上的社交工具,而是一个以及时通讯切入市场的“管道”,让用户通过云信的管道可以实现任何场景下的链接服务。在提供基础功能的同时,云信具备易用性和稳定性两个特性。他们希望通过开放的云服务把网易十几年的技术经验分享给开发者。网易云信也已经申请了56项专利,目前还在为更多技术方案申请专利。
在稳定性方面,一方面云信做了一个叫自适应水位监控策略,会监控集群的负载均衡情况。云信内部有一个系数,基于单位时间内平台能处理的协议数量和目前已经发生的数量有一个算法,当触发水位告警的时候,通过蜂巢给云信提供的动态伸缩快速部署的API,从而做到分钟级的快速扩容,这样来降低资源竞争。
同时,网易云信还采取了单元化服务域治理措施。假如在聊天室场景下,突发死循环或其它可能造成攻击的行为,我们不能因为这一个应用产生问题而影响到其它用户,这时服务域就会起到作用。云信平台目前有数十几个服务域,其中的服务组成,有些只是纯粹群组服务,有些纯粹是聊天服务,有些是群组+聊天,很多服务的组合组成一个域,应用就在这个服务域里面享受到底层数据层,它们互相隔离。云信的服务域会监测应用的平时调用维度,当它产生较大抖动时,路由的分发就会转到服务包的最低级的服务域,这时候其他的客户是不会受到干扰。
除了被动地保证应用间各自的稳定性,服务域还能为一些特殊需求的客户提供保障。如果有些应用随时可能会发起服务需求,而且不希望其它客户产生并发竞争,云信这时可以给它隔离一个独立使用的服务域,形成隔离保障。
为了保障稳定性和快速响应,云信架构实现理念以选用成熟稳定的技术为主,同时也积极采用新语言特性,来提升服务质量,例如云信引入了Golang这样的语言,它易部署、跨平台、支持高并发。它在处理运算资源和请求应答时不需要占用很长时间。这位一些实时音视频的调度提供很好的响应速度。为了让实时音视频方案更加可靠,云信基于UDP协议也做了一些优化。阙杭宁表示,云信做到了800毫秒的抗抖算法,UDP的缓冲区上面,会根据当时的双方网络情况会动态调整里面的缓冲区的大小来决定你的数据要保留多少,以及做动态的码率和帧率的上面采集。
目前一些实时音视频需要面对弱网环境带来的挑战。对此阙杭宁表示,“首先了保障连接,我们在架构上单独隔了一层连接层,在连接层上面它只做一件事情就是维持跟终端的长连接,包括客户端在连接断了重连上来,维持在这个上面。连接层就会有很多的边缘节点,比如说如果我们把服务器放在杭州,可能比较远的地区,甚至国外的用户,再连接这个服务器要经过很长的链路,数据通过中间器和路由的转发,就会变得不那么可靠。我们会在对应的覆盖区域去增加一个节点的加速,让用户连到离他就近的连接层。我们通过服务器做机房选址,上面用一些专线或者其他的方式,用可靠的服务端到服务端的链路连接,来弥补弱网。”
从场景化出发的云服务——网易云
截止到9月份,网易云信上线10个半月,现在接入的开发者(公司、团队)近10万,间接覆盖了3亿多的用户量。云信的客户来自多个领域,比如母婴、教育、电商、金融等。阙杭宁表示,云信与其它平台不同之处在于,云信不是以功能为出发点,而是围绕不同场景对自身技术进行组合和创新。“网易云提供的不仅仅是能力,我们输出的是一整个知识体系。比如易盾会向行业分享反垃圾上面的算法核心,比如说七鱼会分享如何做好客服等等,抛开了我们所提供的服务本身这个开放的API能力,而是去把这样的细分场景去做好,解决行业在同样的难题面前耗费重复的技术开发耗能,让大家共同形成一个比较好的分享学习氛围来促进技术的快速深入发展、以及帮助有限的开发产能从基础公共服务中解脱从而更专注于解决行业痛点。以优化行业技术资源的产能配置来促进行业生态的健康发展。”