微信|你可能不知道 微信的服务器今天才彻底搬到云上

Gmail的第一位产品经理Paul Buchheit说,最好的产品会让人一旦用上,就再无法想象没有它们的生活 。这句话一直贯彻在全球接近20亿用户的Gmail身上,而如果在中国找一个样本,微信再恰当不过 。
一个在中国生活却没有微信帐户的人现在已足够成为一个故事,但一个国民产品的煎熬也在于此 。6月16日上午,微信支付短暂出现异常即上了热搜,在它身上发生的任何闪失都会引发一种集体性的不适 。这种谨慎让微信无法成为一款在功能上嗅觉灵敏的产品 。
但它仍然需要主动求变以跟上这个时代,只是对于微信的开发团队来说,这是一条试错空间极窄的路 。人们无法回到没有微信的时候,而微信最好也不要提醒他们 。
这样的事情在2013年发生过,上海某施工队的一敲让那时候“仅有”的3亿用户在接近5个小时里不能收发信息 。这条底线在2020年的春节前夕又被拉紧过一次,如果2013年那次是被动的意外,两年前的试探则是不得不 。
彼时的微信正在离开物理服务器,处于一切转向虚拟与云的中途 。1月中旬的一场“春节保障”压力测试中,微信团队对虚拟服务器进行扩容后的攻击性测试,结果服务器在同时访问数量才到预计一半的时候就到了极限 。那年的除夕夜是1月24日,这个问题如果在两个星期内解决,意味着新年钟声敲响之前,整个微信可能将会再一次大规模宕机 。
暗涌最终没有浮出水面,现在提起那一天的微信,偶尔会有人记得那天是专属红包封面第一次上线,一切相安无事 。
930变革后,开源协同和自研上云成为腾讯新的战略方向,也同样成为微信上云的契机 。微信是腾讯最谨慎小心的业务,这从它在腾讯内部的上云顺序里就可以看出来——最后一个 。微信在两年时间里完成了用虚拟机对物理机的替代,然后逐渐脱离原来内部自研的云平台系统,转向更具开源属性的K8S 。对于已经降落为生活底色的微信来说,这是一场无法张扬的浩大变革 。直到现在,微信基础架构上云的过程逐渐完成,一条复杂的道路才在身后显现出来 。
微信|你可能不知道 微信的服务器今天才彻底搬到云上
文章图片

物理机,Yard,和那个旧微信
事后看来,2013年这个年份,在微信身上隐隐划出一条界限 。
这年的1月中旬,微信团队在微博上宣布了微信用户数终于突破3亿,这让它成为当时全球下载量和用户量最多的通信软件 。这时候离微信首次上线的两周年时刻甚至还差着几天 。不到两年的时间,附近的人和摇一摇两个功能带着移动互联网最初的燥热感觉给微信带来了最早一批用户,然后就是2012年朋友圈和视频聊天功能的出现 。
2013年之前,除了那个对话框里的橙色信封,我们现在熟悉的那个微信已经基本成型 。
一明一暗,腾讯搜搜在2013年被卖掉 。这款2006年追随谷歌和百度而出的产品最终无疾而终,在七年后被打包注入搜狗 。腾讯的搜索业务暂时停顿下来,其中的迷茫转而成为明星业务上更多的心血 。主导腾讯搜搜整个架构建立,又把它做到卖掉了的工程师文杰,作为骨干力量同一年进入微信技术架构部 。
微信力求简单与用完即走,而百亿级的消息日收发量,数万个的服务器数量,是贯彻这场繁荣背后的另一个故事 。微信的服务器能力需要满足压力上限,而CPU的使用率并不总在高峰,晚上九点是消息收发最高涨的时间段,过了几个小时走到凌晨,CPU的使用率就剩下3%,极限落差有15倍 。绝大多数服务器的运算能力都被浪费了 。
第三个1亿用户,微信只用了不到四个月,一个近在眼前的爆发期已可以预见 。微信内部一个新的资源分发逻辑呼之欲出,文杰和整个技术架构部将会主导这一场变革性的研发 。2013年底,自研云平台系统Yard开始出现在内部讨论中 。
微信|你可能不知道 微信的服务器今天才彻底搬到云上
文章图片

图源:微信官方
Yard是四个英文单词的首字母缩写,分别是Yet,Another,Resource和Dispatcher ,合在一起即“仅仅是另一个资源分发系统” 。或者称之为一套容器管理体系,Yard利用容器技术对微信服务器CPU做了精细化隔离后,可以实现在同一台服务器上分割部署多个功能模块 。
这意味着在线与离线有了更有效率的混布方式,在线上了突发流量需求时,离线任务可以迅速腾出服务器资源,Yard下微信集群CPU资源的使用率达到了40%以上 。


推荐阅读