2017双11-开启智能全链路压测之路

简介: 导读:全链路压测诞生之后,整个阿里集团稳定性得到有力保障,随着集团业务蓬勃发展,新业务和应用不断涌现,为了能让井喷式业务得到稳定性保障的同时降低压测成本,达到“无人化”全链路压测,今年开始对智能压测进行探索。


一  智能压测概述

      智能化压测,通过产品化、服务化、云化,一键完成阿里集团内外全链路压测准备和实施,保障集团内外全链路稳定;同时在常态化压测中,化身特种机器人,挑战系统承压能力,智能调整容量配比,快速定位问题。

      如下图1所示,智能压测主要包含智能压测模型、自动化施压、预热系统化、压测云化、常态化智能压测五个模块。

                                                                     图1 智能压测概述图

  • 智能压测模型:高效提供一套准确的大促零点高峰压测模型
  • 自动化施压:压测实施过程一键搞定,快速执行压测,准确发出目标量级的流量
  • 预热系统化:确保各应用数据&系统预热全面且准确,保障全链路系统在大促峰值处于活跃态
  • 压测云化:压测产品云化,为阿里集团内外各参与大促应用和系统提供压测服务
  • 常态化智能压测:问题解决在平时,提高全链路压测效率

二  智能压测模型
      全链路压测模型是全链路业务的抽象集合,直接模拟大促峰值模型,驱动整体压测。

      智能压测模型,通过智能模块管理整条压测模型产业链,实现模型采集、预测、设计、构建整个过程的一键化智能操作,提升压测模型效率,同时在过程中将业务模型智能划分和计算,转换成可执行的压测模型,保障压测模型准确率。整体流程如下图2所示。

  1.  模型预测:采集往年大促业务数据,制定预测样本,通过预测算法,预测当前大促峰值模型。
  2. 压测模型智能划分和计算:将模型按照不同业务划分为可执行压测模块,统筹计算整体压测指标和各子模块压测业务指标(拆单比、主订单、子订单、购物车:立即购买、商品类型占比等),确保子模块和整体模型的一致性、准确性和完备性。
  3. 压测模型自动化调整:自动化调整压测模型,调整整体数据、业务指标等,达到一次压测验证多套模型的效果。
  4. 模型构建:一体化模型构建,根据模型参数,自动构建压测模型,生成压测流量,构建过程中可自动进行异常校验和模型数据校验,确保最终压测流量准确率。
  5. 压测方案:一键生成多单元多业务压测方案,压测方案可在多环境下执行,并且可根据业务要求,多模型组合执行。
  6. 智能管理模块:控制整体模型生产过程,一键操作,校验和修复异常流,控制模型构建对上下游系统影响,并使整体流程可视。

       智能压测模型支撑大促效果:产出的全链路压测模型准确率达到90%以上,可在一天内完成大促压测方案设计计算和亿级别模型数据输出。

                                                              图2 智能模型图

三    自动化施压
 压测执行过程自动化,提高压测执行过程的准确率和效率,减少人为操作导致的异常和误差。

       如下图3所示,今年在压测执行过程中,预热、预案、限流设置和动态调整、压测资源自动分配、施压整个过程均一键化操作,由系统校验执行结果及其准确性。

       通过智能施压,今年的施压量级达到1600万/s,预案执行准确率100%,预热充分,限流准确。


                                                           图3 自动化施压

四     预热系统化
        大促期间预热必不可少,本地缓存和外部缓存均需要预热到位,避免大促峰值期间缓存被击穿,直接打到DB端产生雪崩效应,导致系统波动。

以往都是各个业务系统自行预热,中间可能会存在疏漏和预热不完善,今年推出智能预热系统,可覆盖核心应用及应用间关联的预热场景,一键实现全链路系统预热,事半功倍的同时也提升了预热的准确性。

通过智能预热系统,已实现亿级别数据的缓存预热、应用预热和DB预热,确保系统在0点峰值时处于活跃状态。


                                                     图4 预热系统化

五     压测云化
        压测云化,通过内部服务和上云实现外部服务,将集团内外的全链路应用全部纳入到压测范围中,即保障平台内部应用系统稳定,也保障关联的外部卖家应用性能稳定,在大促时达到整体稳定和双赢。

内部服务:产品化输出服务,为内部各业务提供可定制模型、容量弹性伸缩等个性化服务。

外部服务:将压测系统产品化上云,为外部商家提供压测服务,可实现数据、场景、模型、压测一键式操作,模型更接近大促峰值模型,压测环境和大促保持一致,压测效果更真实,保障卖家自身系统容量准确可靠。

以往的卖家自身系统压测过程中,是mock集团内部业务,直接模拟最后一步达到其自身系统的请求,同时使用的数据也比较单一,这中间会出现很多业务点覆盖不到,模型不完善,出现很多意想不到的问题;通过压测上云服务,可以为卖家提供真实的模型和丰富的数据,压测直接从最源头发起,把所有业务路径节点均覆盖其中,验证真实业务路径能力,确保各节点性能稳定,为卖家在大促峰值期间提供更可靠的业务能力输出,今年大促峰值期间各外部系统稳定,和集团内部应用交互顺畅,往年出现的问题彻底消除。


                                                      图5 压测服务

六    常态化智能压测
       常态化智能压测,在非大促态下全链路压测系统化身为智能压测机器人,对全链路系统进行固定频率的压测,沉淀全链路性能基线,及时发现系统瓶颈和定位原因,将业务应用瓶颈发现并消灭在平时,下图6展示了常态化智能压测流程。

图6 常态化智能压测流程图

        智能环境:常态化压测在压测环境(也在生产环境中,有独立的一套和线上系统相同的配置)中进行,对线上流量无任何影响,操作时可一键将目标应用集群按比例隔离到压测环境中。

        智能模型:压测模型采用大促模型,按照大促要求设计和执行压测策略。

        智能施压:按照压测模型和策略和图3中的施压流程自动施压。

        弹性容量:压测过程中,可根据当前系统表现进行弹性伸缩,确保在达到目标量级时,各系统按照预期性能指标调整到准确的容量。

        性能基线&智能报告:在达到目标量级后,采集各系统性能指标和容量数据,沉淀性能基线,和以往基线进行对比,快速发现问题,并通过业务埋点监控定位问题可能出现原因,最终将压测数据、对比结果和问题原因自动录入报告并发送给业务方。

        通过以上步骤,可实现无人值守的常态化压测,业务方在收到报告后,自行解决报告中的问题,下次压测再做验证,将全链路系统中的问题消灭在平时。
        
        今年的常态化压测中,整体流程已跑通,中间仍有一些问题需后续改进和修复(如隔离环境的问题等),让真正的无人化智能压测尽快到来。

七    结语

       这个双11,我们已经能做到让机器人去智能压测,我们在项目室里喝着茶,跟机器人一起扛住了双11的峰值。在今年智能压测实施下,模型准确率达到93%以上,整体效率较去年提升2倍以上,为双11全链路压测节省1000人次工程师,同时保障了全链路系统稳定性,使今年双11峰值(32.5万笔交易,25.6万笔支付)如丝般顺滑。这是几年前都不敢想象的事情,但我们现在能做到了。

       今年是智能压测实施第一年,后面智能压测还会继续创新和使用更多智能化方法,让压测更高效更准确,让全链路压测“无人化”更近一步。


2b763c5e769a5660e41ff971a33686493c3278cb

识别图片二维码▲关注「天猫技术」

技术驱动商业变革|做最懂商业的技术人


欢迎大家积极点赞和留言想要听到的技术分享,一起交流分享电商技术,做最懂商业的技术人!我们将通过微信公众账号分享更多的独家技术细节!敬请关注。


qrcode?scene=10000004&size=102&__biz=MzA

微信扫一扫
关注该公众号

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
11月前
|
监控 测试技术 UED
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(1)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(1)
193 0
|
11月前
|
域名解析 网络协议 数据可视化
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(2)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(2)
148 0
|
11月前
|
SQL 监控 关系型数据库
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(3)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(3)
140 0
|
数据可视化 测试技术 定位技术
全链路压测(14):生产全链路压测SOP
从实践经验的角度出发,生产全链路压测在技术实现上没有太多新花样,但要在不同的业务和企业落地,就各有各的实践路径。对于没有太多经验的同学来说,全链路压测的落地,大多还是基于个人的经验和熟悉的领域,即都是在局部作战,缺乏全局的视角和可视化地图。从全局来讲,缺少适用于自己的全链路压测最佳实践。
全链路压测(14):生产全链路压测SOP
|
存储 SQL 缓存
全链路压测(13):高可用和性能优化
业务场景复杂化、海量数据冲击下,发现并解决业务系统的可用性、扩展性以及容错性问题。
全链路压测(13):高可用和性能优化
|
监控 Java 测试技术
全链路压测(12):生产压测必不可少的环节
在生产环境开展全链路压测,相对于测试环境来说风险和成本都是比较大的。因此需要一套严格的流程管控和响应机制,以及高效的团队协同体系。
全链路压测(12):生产压测必不可少的环节
|
缓存 监控 安全
全链路压测(11):聊聊稳定性预案
从业务角度来讲,无论技术做任何的改动和优化,最终的目的都是为了业务目标的达成。而系统的稳定性,无论从用户体验还是业务目标达成的角度来看,都是不可忽视的一环。
|
SQL 缓存 运维
全链路压测(10):测试要做的准备工作
功能验证环境即用来验证技术组件本身的功能正确性和接入性能损耗的环境,有独立的随时可用的环境最好。如果考虑到成本,也可以用线下性能环境来进行验证。
全链路压测(10):测试要做的准备工作
|
运维 监控 安全
全链路压测(9):容量评估和容量规划
容量评估我在之前的文章《性能测试从零开始实施指南——容量评估篇》中已做过详细介绍,这里不多做赘述。关于容量评估,参考下面两张思维导图,更容易理解。
全链路压测(9):容量评估和容量规划
|
缓存 监控 NoSQL
全链路压测(8):构建三大模型
单机单接口的压测,可以通过梯度增加请求的方式,观察随着请求的增加,其性能表现&资源损耗的变化。在目前的微服务架构下,整体链路的性能瓶颈,取决于短板(木桶原理)。因此,单机单链路基准测试的目的,是在全链路压测开始前进行性能摸底,定位排查链路瓶颈。
全链路压测(8):构建三大模型