生产环境全链路压测建设历程之八 生产全链路压测和传统压测的差异点
上一篇是写到《生产环境全链路压测建设历程之七: 淘宝网 2012 年双十一库存超卖问题的本质》
描述库存超卖问题的本质的时候,有部分提及到全链路压测和传统压测的差异点,这一篇内容,计划是围绕全链路压测和传统压测的差异点来展开讲。
关于全链路压测的名字由来
在开始讲两者的差异点之前,想从“全链路压测”这个词语是怎么出来的说起。
在2013年7月份的时候,其实淘宝网内部对这样的压测方式,是称之为《集群读写压测技术方案》。
但在13年8月初的某一次会议,大家觉得叫全链路压测这个名字更为妥贴。
当然了,在那时候,因为我们那时候都是默认要在淘宝网的生产环境上面搞全链路压测,大家也不会单独强调这是在生产环境,所以喊着喊着,就简单称之为全链路压测。
但这样的简称,在慢慢扩散到淘宝网之外的时候,会有一些业务人员或者采购人员,认为测试环境和生产环境的全链路压测都是同一个东西。
生产环境全链路压测和传统压测的区别
第一点区别,是两者达到的效果完全不一样。
单模块的压力测试,完全是单点的。
而生产环境全链路压测,是一环扣一环的紧密关联。
第二点区别,生产环境全链路压测,不仅仅是一个有难度的技术项目,更是一个有难度组织协调的项目。
对于单模块的线下压测,大家各个角色分别搞搞就好了。比如DBA自己用sysbench来压数据库。应用研发、运维、测试用jmeter在测试环境进行接口压测。
生产环境全链路压测,一开始看着是一个技术项目,其实当等到真正实施的时候,会发现这是一个组织协调的项目。
生产全链路压测,涉及的角色众多。首先得让技术一把手认同搞这个事情,接着是各个角色(DBA、PE、网络部门、研发部门、测试部门、架构部门)都要过一遍。大家都要认可了才可以。
这里面,尤其以DBA比较难搞(在后面的文章里面,我会把这块的故事专门拆开来讲)
而生产环境的全链路压测,在传统的金融行业,如银行和保险,是很难说服他们去搞这个事情的。
原因是有银监会,还有保监会有一些相关的规定,不允许在生产环境做测试的事情。另外一点是银行和保险,核心还是求稳。
但话也不能完全写死,也要看对应的机构是否有足够的痛点和动力去做了。
比如中国银联、蚂蚁支付宝、网商银行、微信支付,也都是在生产环境上面做压测。因为他们有大流量突增的场景,如果不做生产压测,天天故障天天写故障分析报告也是扛不住。
蚂蚁支付宝起初也是求稳,在2014年才有动力去做,比淘宝2013年晚了一年,蚂蚁支付宝这块,在做生产压测的时候,已经是有了淘宝的最佳实践和最佳踩坑来参考和学习。
评论