生产环境全链路压测建设历程 15:达成了 99.99%,建设了哪些稳定性产品、工具?
在《生产环境全链路压测建设历程 13:淘宝网稳定性近十年发展历程 2009 年 -2019 年》有提及,从 2011 年开始,已经着手开始建设稳定性产品和工具。
从严格意义来说,生产环境的全链路压测也是属于稳定性产品体系里面的一块,只是全链路压测的意义,堪比核武器,有必要单独拎出来讲。
今天这一篇,讲讲除了生产压测以外的产品。
BCP 业务校验平台
在电商场景里面,有这样的场景:
1.买一个活动商品,赠送两倍积分,积分攒到一定的量,能在后续购物的时候抵扣一定的费用。但由于赠送逻辑比较复杂,有部分用户在赠送积分的时候,从 2 倍变成了 20 倍。这个漏洞被黄牛发现了,疯狂的刷积分。
2.用户领了一张满 300 元-30 元优惠券,但在真正下单的时候,有部分业务逻辑存在 bug,导致部分用户在满 300 的时候,没去扣减 30 元,引发了用户的投诉。
BCP 平台通过事件模式,把业务数据变化触发的消息(如 binlog、MQ 等平台消息)转换为相应业务类型的事件,放入到事件执行队列进行规则检查,BCP 提供了通用的事件监听框架,实现了与 MQ(消息服务)对于数据库的对接,是对于数据变更的日志信息接入到了 BCP 平台中。
对于平台或应用进行服务化后,很难保证所有的应用设计人员都能对每个服务的能力和逻辑准确认识,而且不同业务链路是由不同的人来设计实现的,业务不一致会是此类平台迟早会面临的问题。BCP 平台让整个平台稳定性的能力从技术维度延伸到了业务维度,完善了平台稳定性的覆盖广度,是平台稳定性体系化的一个非常重要的拼图。
BCP Business Check Platform 业务校验平台就是为了统一解决平台服务化后越来越凸显的业务一致性问题,解放业务人员那颗悬着的心。BCP 平台并不仅限于交易类业务,也适合其他对业务稳定性要求比较高的领域。
BCP 的价值真的大吗?
关于这个 BCP 平台,其实也有一段鲜为人知的故事。
这里要引用一段公开的信息,来自于小邪的公开演讲 :“刚开始做 BCP 的时候,我自己觉得意义不是非常大,因为我觉得如果是所有的代码是工程师写的,我认为只要经过测试上线的系统,逻辑肯定是不会出问题。感觉意义不是非常大,但是没有拒绝做这件事情”。
的确,BCP 在刚出现的时候,是基于了一些实际的痛点来进行开发的,也的确能够秒级别准实时的发现很多业务逻辑故障。
但由于 BCP 本身是对业务逻辑的反校验,淘宝网每天的订单量也不少,每天对 1 亿的订单进行校验,本身也需要消耗很多应用服务器。 平常这些机器分摊到各个业务线,其实不起眼。
但有一年为了备战双十一,BCP 平台提前去申请的服务器,机器成本费用,可能你都想不到,
是接近 1 亿元的机器成本 。
虽然平常 BCP 也提前发现了很多问题,也的确有很大的价值,但在真正申报机器预算的时候,大家都比较难去评判这个事情是不是真的值一个亿??
BCP 得到认可
最后这个机器预算,上升到了天猫 CEO 逍遥子那。
在讲到 BCP 能实时计算出双十一的每一笔订单有否正常使用优惠券,能及时发现业务逻辑是否有 bug。
逍遥子马上拍板:“这个 BCP 非常好,能及时发现双十一优惠券有否少用的问题,起到保障用户体验的效果,能让我睡个安稳觉。一个亿,不算贵啊~~”
也的确,一个亿对于逍遥子,真的不算什么钱啊。
参考材料
阿里研究员蒋江伟:双十一背后的分布式技术 https://blog.csdn.net/Mini_Monster/article/details/51184814
版权声明: 本文为 InfoQ 作者【数列科技杨德华】的原创文章。
原文链接:【http://xie.infoq.cn/article/736e536a179dfb073f4168007】。文章转载请联系作者。
评论