全链路压测体系建设方案的思考与实践

在阿里淘宝 双11 的过程中,长期以来都是在生产环节做全链路压测的,通过实践我们发现在生产环境中做压测,实际上会和一个 IT 组织的结构、成熟度、流程等紧密相关,所以我们把全链路压测从简单的制作范围内脱离出来,变成整个业务连续性的方案。

本文分四个方面为大家阐述:第一,整个全链路压测的意义,为什么要在生产环节上做全链路压测;第二,关于落地的技术点和解决方案;第三,生产过程中做全链路压测流程上的建议,考虑到每个组织的承受度不一样,给大家提供一些建议;第四,如何在第三方实现整个在生产环境中做业务连续性包括压测的结果。

全链路压测的意义 

ALIWARE


上图显示了三个问题,实际上是不同的 IT 组织在和测试交流的时候,这三个问题是比较有代表性的。

1. 很多测试同行说他们线下也做过性能测试,但是到了线上之后还是存在很多问题,因为不太可能会在线下模拟一个跟线上 1:1 的环境。在有很多第三方接口的情况下,大家也很少会去模拟线上整个场景。因此我们在线下做了很多测试工作后,总结出了为什么很多从线下容量推导到线上容量的公司却最终效果不是很好,就是这样的原因。

2. 现在所有的 IT 组织都在搞 DevOps,我们的功能从一个月迭代一次到现在一周迭代一次,留给测试的时间越来越短。功能测试时间从之前的一周、两周缩短到现在三四天、两三天的时间,那性能测试就没有办法按时上线,很有可能会出现各种各样的性能问题,这会直接影响到企业的品牌影响力。

3. 平时线上水位比较低,很少达到高峰期,但是会出现一些突发情况。比如像去年的疫情使得很多公司的业务变成在线业务。比如教育行业,之前是课堂上老师面对面的教育,现在选择线上在线平台来做,这类突发的情况会使测试工程师,包括开发运维团队受到很大的困扰。在这之前我先介绍一个概念,这个概念是由《黑天鹅》的原作者 Nassim Nicholas Taleb 提出,概念中心是脆弱与反脆弱

什么是脆弱?脆弱就像玻璃,大家知道玻璃很脆易碎。脆弱的反义词是什么?不是强韧也不是坚韧,可能是反脆弱。什么是反脆弱呢?比如乒乓球,大家知道乒乓球在地上不用很大的力就可以破坏掉,踩一脚就破坏掉了,但是高速运动的情况下,乒乓球我们施加的力度越大,它的反弹力度越大,说明乒乓球在运动过程中有反脆弱的特性。

我们的 IT 系统实际上也是这样的。不管什么代码都不能保证是完全没有问题的,我们的基础设施可能也是脆弱的,像服务器、数据库等总会有局限。我们的框架也总是脆弱的,将这些问题综合在一起,我们希望通过某些手段,比如通过预案、风险的识别,或者通过一些熔断的手段,最终把这些东西组合在一起,让整个 IT 系统有反脆弱的特性。总之,我们希望通过一些手段使得 IT 系统有足够的冗余,而且有足够多的预案应对突发的不确定性风险。

如何打造 IT 系统反脆弱能力呢?我们希望通过一些手段,比如说像线上的压测能力,提供不确定的因素,接着通过在这个过程中实时监控,包括预案的能力,最终把这些不确定性的因素识别出来,并且在线上生产压测过程中对它做一些处理,更多可能会通过事后复盘等方式,做到对不确定性因素的识别。接着我们可能会在生产环境中通过之前的手段,在生产环境上做一个稳定性的常态化压测,实现长期稳定的场景,最终我们可能达到反脆弱能力所需要的整体监控的能力、运营防护能力,以及管控路由能力,这会让整个 IT 系统具备反脆弱的特性。

全链路压测解决方案

ALIWARE

如何在生产环境上做全链路压测?它需要用到哪些技术手段?

1

压测进程演变

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值