
熊普江老师是腾讯架构师,2016年被评为运维工匠,负责腾讯业务资源规划与技术架构评审。熊普江老师2012年加入腾讯,提出精细化运维,2014年通过设备资源的精细化运营,减少服务器采购9000台,节省采购费用1.8亿;2016年开展带宽资源的精细化运营,最高节省带宽6T/月,减少带宽成本14亿。
截止到2017年8月,微信月活用户9.6亿,日均收发消息5千亿条,这是让所有互联网人羡慕的产品数据,同时也带来非常高的运维成本。海量用户所带来的对服务器和带宽的要求产生巨额运维成本,不仅是微信,节约成本已经成为很多技术运维人的一个发展方向。
那么,微信是如何通过精细化运维节省服务器和带宽的运维费用的呢?
以微信最基础的功能:收发消息来说,一条消息从发出去到接收到要经过接入处理、账号状况信息处理、发送消息序列号、消息组合发送、存储到对方索引、收到新消息等多个步骤,如果发1亿条消息要用2万台服务器,那么发10亿条消息就要20万台服务器,这不管是从设备采购成本还是运维技术及运维成本等角度来说,都是不能接受的。
微信对收发消息的精细化运维
通过对运维数据的分析发现,收发消息不均匀,落在每台服务器上的处理量存在很大的差异。一般我们对每台服务器进行扩容的时候都是按照峰值扩容,处理量差异导致很多资源的浪费。面对这种情况,首先使所有请求平均分配到每台服务器上,根据服务器能力均衡分配,再通过合并请求也提升了服务器性能。
另外在应对新功能的服务器部署的时候,并不会在刚开始时就为新业务准备多少设备,防止因业务使用人数少而造成设备浪费。而是为新业务设立专区,当请求量或调用量达到一个程度时才会单独进行部署。
微信对带宽的精细化运维首先会把带宽进行拆分,拆到每个最小的业务模块上,建立与带宽相匹配的业务资源模型,用公式或函数来表达这个模型。
对带宽进行拆分并匹配模型后,对带宽进行优化,优化后再进行数据分析来评判优化的是否合理,反复发现问题解决问题。
以GIF图片的精细化运维来说,动图对带宽的需求更高,但是很多动图看过之后就不一定再看。一般情况下GIF动图需要一次性全部下载后再自动播放,但是通过数据实验发现,用户点击GIF动图的欲望比例只有8%,将GIF动图做成只拉第一帧,如果用户想看点一下可以继续播放。
只单独对动图的加载优化这个措施相比原来可以节省85%的带宽。另外,通过减少帧数、减少色彩像素等方式对加载动图的带宽资源减少都很有效。
除了优化技术方式,对产品运营策略的改变也很必要。比如微信的小视频,最开始微信小视频的视频尺寸小,但是随着手机设备硬件提升,视频画面越来越大,像素越来越高,对带宽与存储空间的压力都在加大。
最开始小视频可以自动播放,这样对用户体验很有好处,但是会浪费带宽。所以现在朋友圈里的小视频需要点击才能播放,节省带宽的同时,也减少了一些小视频对用户的打扰。
稳定、高效、安全是传统运维观念,保障程序运行。而产品、开发、架构等技术细分领域都在变化,运维也要不断变化才能变得越来越有用。
精细化运维是在保障稳定、高效、安全的前提下对运维工作提出的新要求,合理利用设备资源,在不降低用户体验的前提下优化原本的技术浪费,节省运维成本,这是运维工作价值的直接体现。
熊普江老师主讲的《微信产品体验及成本优化》案例已入选第六届TOP100软件案例研究峰会榜单,TOP100大会将于11月9日-12日在北京国家会议中心举办,在现场通过对案例的复盘总结,分享成功者背后的经验和方法。
大会开幕式单天体验票免费入口。