独家揭秘|阿里怎么做双11全链路压测吗?

  

本文是《性能测试在一起》(简称PTT)系列专题分享的第7期,该专题将从性能压测的设计,实现,执行,监控,问题定位和分析,应用场景等多个纬度对性能压测的全过程进行拆解,以帮助大家构建完整的性能压测的理论体系,并提供有例可依的实战。

  

该系列专题分享由阿里巴巴分团队出品,欢迎在文末处加入性能压测交流群,参与该系列的线上分享,点击“阅读原文”了解更多性能压测分相关。

  

本文将从经典电商活动(双11大促)及新业务(钉钉春节红包)两个业务模式,来揭秘阿里是如何系统性地应对洪峰流量重要活动的;期间将着重介绍技术相关内容,并结合主题文章前几期中的环境选取,模式设计,场景设计与实践等内容,做一次串联与深度剖析与分享,呈现一场性能测试的技术盛宴。

  

前言

  

关于性能测试的重要性及必要性已经是个老生常谈的问题了,现分别从技术角度和业务战略角度总结如下:   

  

  独家揭秘|阿里怎么做双11全链路压测?

  

  

  

而性能测试的目的也就是为了解决大型营销活动中洪峰流量引起的系统表现不确定性,一个理想的营销活动周期应该是有如下闭环流程:

  
      <李>压测环境准备:需要复用真实的线上环境,压测结果和问题暴露才都是最真实情况。可通过压测流量全局识别,透传(数据进影子区域)。   <李>基础数据准备:以电商场景为例,构造满足大促场景的核心基础相关数据(如买家,卖家,商品信息),以线上数据为数据源,进行采样,过滤和脱敏,并保持同等量级。   李
  

  独家揭秘|阿里怎么做双11全链路压测?

  

  

  

可以看的出,性能测试通过真实,高效的压测方式进行容量评估/瓶颈定位,解决,最终来保障活动稳定进行;每一个环节的内容都非常重要,以阿里双11活动为例,我们除了技术上的准备,执行,保障之外,还会有一些流程及分工细节。以下将逐一介绍。

  

关于流程及管理

  

阿里巴巴全链路压测从2013年到现在也已经是第7个年头了,在这7年的中间我们不断的积累,总结,优化进步,从开始的200多人参与,通宵压测的大规模全员项目活动到后来仅仅几个6人白天压测,更智能化的压测方式,这样一种大规模的项目活动,离不开有效的流程把控及分工管理。

  

阿里巴巴在多年双十一大促保障,全链路压测项目中,有着严格的流程把控及分工管理模式与经验,总结如下:   
说明:该图中时间点为模拟时间点,仅做先后顺序的参考。   

  

  独家揭秘|阿里怎么做双11全链路压测?

  

  

  

好的流程规划与管理,可以大大提升团队协作效率。叠加上工具平台的智能化功能,可以将参与200人的力通宵压测缩减至10人以内白天压测,有效的方案+充足的准备+靠谱的平台技术产品=成功的压测。   
下面将结合主题系列前几次的文章,介绍下在数据准备,架构改造,流量安全策略(环境及流量隔离),压测实施,问题定位分析这几方面,阿里巴巴在双十一压测这个项目上具体是怎么做的。

  

数据准备

  

大促活动确定之后,会对业务模型进行一次评审,即确定该业务模式对应的技术架构应用有哪些,需要做压测的业务范围有哪些,以及数据量级,数据形式是什么样的,所以数据准备包括准备业务模型数据和压测流量数据两部分。   
数据的准备,主要分为两部分:业务模型的建立和流量基础数据的构造。

  

业务模型数据

  

业务模型数据,即压测的业务模型相关的数据,包括涉及到哪些API,这些API之间的压测量级是什么样的或者有什么样的比例关系等。业务模型的构造准确度,直接影响了压测结果的可参考性。

  

模型设计的目的主要是将业务进行采集并抽象成可执行的压测模型,并对各个子模型中的元素进行预测和设计,最终产生可以执行的压测模型。在双十一大促前,我们会确定好相关的业务,进行场景分类。