最近几年全链路压测无疑成为了一个热门话题,在各个技术峰会上都可以看到它的身影。一些大型的互联网公司,比如阿里巴巴、京东、滴滴等,都已将全链路压测应用到了生产环境。
笔者曾有幸深度参与到阿里巴巴全链路压测体系的建设,以及与阿里内部其他技术团队、物流、社交电商、品牌企业等CTO或者CIO技术交流之后,关于如何保障企业数字化过程中的性能稳定方面,有了一个共识:全链路压测是建立IT性能管理体系的抓手和必选项。
1、什么样的公司需要全链路压测?
既然全链路压测功能这么强大,那如何确定自己的公司是否需要做全链路压测呢?如果你的企业遇到过以下问题之一,就可以考虑引入全链路压测:(1) 压力测试一直在做,但是每到大促活动,各种问题依然频繁发生;(2) 需求正常迭代完成,并测试通过,上线后又出现各种各样的系统故障 ;(3) 无法正确评估需要的机器资源,只能“重要的多给点,不重要的少给点”的经验之谈;(4) 性能团队尽职尽责,但是性能问题依然层出不穷;(5) 每次压测完的报告,看似内容详尽,但很多无法针对性的查出问题并给出解决方案。
也可以从场景层面来考虑是否需要做全链路压测:
1.1 新系统上线场景:准确探知系统承载能力,防止刚上线被用户流量冲垮。新系统上线一般会遇到以下两个问题:(1) 新系统能够支持多大的并发流量访问,是否需要增加机器来满足用户流量(2) 新系统性能是否满足预期,是否影响用户体验
这两个问题如果没有很好的解决会造成严重的影响,举个例子:某知名电商双十一推出一款网红产品的秒杀业务,想通过秒杀来吸引一波流量,结果双十一当天功能刚上线就系统宕机,消费者各种投诉、网上各种舆论,至此这家电商到现在在没搞过此类秒杀业务。
1.2 峰值业务稳定场景:流量激增情况下,比如像双十一这样的大促,系统如果没有做好相关的准备,很容易被用户流量冲垮,导致公司业务受损,目前业内普遍通过全链路压测提前模拟流量激增场景,来增强系统的承载能力。
1.3 系统容量规划场景:成本优化,对系统进行精细化的容量规划。无论是新系统上线还是大促场景,都会遇到容量规划的问题,目前容量规划更多是结合平常系统性能表现以及预计用户流量按照经验去规划,但这种规划一般无法做到精准容量评估,一种是评估多了,造成机器浪费,一种是评估少了造成线上故障,对业务造成影响。
1.4 系统可用性探测场景:探测系统的可用性,提升系统的整体服务能力和吞吐量。全链路压测另外一个典型用场景就是通过模拟真实的用户流量压力,去探知系统的性能瓶颈,从而提升系统的整体服务能力和吞吐量,提升用户体验。
2、全链路压测可以给企业带来什么价值
2.1 保障重大活动的系统稳定性避免公司业务和声誉因为技术故障受到损失,为技术团队赢得业务团队的尊重。
2.2精准的容量评估帮助公司用最