双11备战核武器:全链路压测今年如何升级?

简介:

在刚结束的2017年双11中,阿里巴巴再一次更新了记录:每秒32.5w笔的交易创建峰值、25.6w笔的支付峰值。就是这样一个由上千个不同业务系统和技术组件构建的业务站点,在如此巨大的洪峰流量冲击之下,依旧稳如磐石,创造了一个用户体验丝般顺滑的双11购物狂欢节。这是一个互联网技术上的奇迹,堪称世界级的超级工程,而大促准备阶段的“全链路压测”就是奇迹背后的秘密。

af3c62d074b15271a21be3f69528a6f1c889d2f4

众所周知,阿里巴巴有着非常丰富的业务形态,每一种业务形态背后都由一系列分布式的技术体系提供服务,随着业务的快速发展,特别是在双11等大促营销等活动场景下,准确评估整个业务站点的服务能力成为一大技术难题。

dbc5cd7610527159e3a9e8dd0db7e9e3dc5484e4

早在2011年阿里就开始尝试直接在生产环境进行单系统压力测试,获取单系统服务能力来进行容量规划。生产环境单系统压力测试相对于传统的性能测试虽然在结果准确性上有很大提升,却依旧存在局限性,打个比方,经过生产环境单系统压力测试的站点就好比生产一辆跑车:每一个零件都经过了严密的测试,最终把零件组装成跑车,由于跑车没有经过整体测试验证,直接开上路随时面临抛锚风险。

0e13813bcd7b676d9effc4801caa7803bc388a01

全链路压测的诞生彻底解决了上述难题,通过对整个站点进行全方位的真实业务场景模拟,确保各个环节的性能、容量和稳定性均做到万无一失。双11买买买的场景对用户来说每年就是双11当天一次,而阿里的业务系统在此之前提前模拟经历了好几次。到了双11当天,系统仅仅只是再经历一次已经被反复验证过的场景,再考一遍做“做过的考题”,不出问题也都在意料之中。

71534eddec585d30cb85e31206e91690c4f1d119

全链路压测具备三大核心技术:

1、直接在生产环境进行全业务的压力测试;

2、压测场景贴近真实业务场景;

3、双11峰值用户请求构造能力的压测平台。

在生产环境直接进行压力测试的最大挑战在于,确保压测请求不对正常业务造成污染和干扰。数据隔离是解决这个问题的最佳手段,对数据进行物理或者逻辑的隔离,压测数据被存储到特定的影子区域。所有压测请求的入口带上特定标记,在分布式调用环节,压测标记随着分布式调用通讯协议一直往下传递,追溯到调用链路的完整生命周期,最终通过数据过滤器将压测请求的数据自动路由到影子区域。这一整套数据隔离机制完全通过中间件组件完成,确保对业务系统零侵入。

553b738108207d76f493d84eaad57eeb6267c13c

业务场景匹配度决定压测结果的可靠性。业务场景定义了用户丰富多样化的业务行为,包含上千个业务因子。比如多大规模的用户在站点上进行怎么样的业务操作;来源于PC和无线的流量比例;有多少用户在浏览商品、浏览什么样的商品;有多少用户在下单、买了什么样的商品等等。通过对在线数据结合历史用户行为进行建模、分析和预测,全链路压测的智能化数据引擎可以产出跟真实业务场景非常接近的高仿真压测模型,真正做到压测表现和真实场景的高度一致。

b0477c5bfc92f58adde731b932ac2bb20d000918

在双11零点峰值时刻,全球各地的消费者瞬间涌入,上亿用户每秒发起上千万的业务请求;在一次全链路压测过程中,压测平台充当了模拟上亿消费者业务行为的角色。压测平台由压测控制中心和上千个压测引擎节点组成。压测控制中心作为整个压测平台的大脑,对整个压测体系进行智能化地控制;压测引擎部署在全球各地的CDN节点上,真实地模拟来自于全球各地的用户请求。压测平台提供了10T压测数据实时分发、上亿用户在线连接、千万TPS稳定流量输出等一系列能力,在压测平台上点点鼠标即可轻松完成一次双11的模拟压测。

14b764e871981f84d8e722f627cb0c9d88ff03dd

2017年双11筹备阶段,全链路压测“尖兵计划”对整个压测技术能力进行了一轮升级,结合自动化、智能化技术,提升压测结果的确定性同时,大幅缩减整个压测过程的成本投入。全链路压测将大促备战的各个环节层层打通,从业务因子埋点、监控体系、模型预测、压测数据构造、压测流量发送、弹性容量伸缩和压测结果分析等环节进行自动化串联,大幅缩减压测人员投入和时间周期,往年需要8次全链路压测才能让系统处于就绪状态,今年3次就完成目标。

d181c7815f7cbb0e6b5ef372801ce983348bc89f

全链路压测被誉为大促备战核武器,自诞生以来每年发现数百个潜在系统问题,为大促稳定性保障带来了立竿见影的效果,不仅提升了站点稳定性,还大幅缩减了在容量规划上的人力投入。全链路压测作为大促备战的核心基础设施,正逐步深入到整个双11技术超级工程的稳定性保障体系,打通建站、容量、监控和业务验证等诸多环节,结合自动化和智能化技术将整个大促备战能力提升到一个新台阶。

2017年7月,源于阿里集团内部的全链路压测平台已通过阿里云完成商业化输出,与原有性能压测产品PTS进行融合,形成PTS铂金版。任何对业务压力测试有需求的客户即可借助PTS压测平台轻松完成一次站点性能和容量测试,同时还可以申请“压测专家服务”实施整套全链路压测流程,享受阿里双11稳定性保障级的高可用服务。

正是基于阿里巴巴在基础设施领域,特别是大规模高可用互联网平台上多年的技术积累,越来越多像全链路压测(PTS)、分布式数据库服务(DRDS)和企业级分布式应用服务(EDAS)等技术能力通过云化对外服务,帮助传统企业获得大规模高可用的互联网技术能力,从容应对瞬息万变的市场和业务需求,提高业务效能,让更加便捷使用的基础设施能力成为随处可用、人人可用的社会公共资源,普惠世界。


原文发布时间为:2017-12-11

本文作者:游骥

本文来自云栖社区合作伙伴“阿里技术”,了解相关信息可以关注“阿里技术”微信公众号

相关文章
|
监控 测试技术 数据库连接
RunnerGo API 性能测试实战:从问题到解决的全链路剖析
API性能测试是保障软件系统稳定性与用户体验的关键环节。本文详细探讨了使用RunnerGo全栈测试平台进行API性能测试的全流程,涵盖测试计划创建、场景设计、执行分析及优化改进。通过电商平台促销活动的实际案例,展示了如何设置测试目标、选择压测模式并分析结果。针对发现的性能瓶颈,提出了代码优化、数据库调优、服务器资源配置和缓存策略等解决方案。最终,系统性能显著提升,满足高并发需求。持续关注与优化API性能,对系统稳定运行至关重要。
|
负载均衡 NoSQL 关系型数据库
性能基础之全链路压测知识整理
【2月更文挑战第16天】性能基础之全链路压测知识整理
906 11
|
存储 缓存 中间件
高可用之全链路压测
【2月更文挑战第30天】全链路压测是提升系统可用性的关键方法,它模拟真实流量和业务场景在生产环境中测试,确保性能、容量和稳定性。
|
监控 测试技术 UED
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(1)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(1)
688 0
|
域名解析 网络协议 数据可视化
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(2)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(2)
490 0
|
SQL 监控 关系型数据库
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(3)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(3)
530 0
|
9月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
1872 10
|
11月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1486 23
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
701 59
|
监控 测试技术 开发工具
移动端性能测试工具
移动端性能测试工具
1397 2