在刚结束的2017年双11中,阿里巴巴再一次更新了记录:每秒32.5w笔的交易创建峰值、25.6w笔的支付峰值。就是这样一个由上千个不同业务系统和技术组件构建的业务站点,在如此巨大的洪峰流量冲击之下,依旧稳如磐石,创造了一个用户体验丝般顺滑的双11购物狂欢节。这是一个互联网技术上的奇迹,堪称世界级的超级工程,而大促准备阶段的“全链路压测”就是奇迹背后的秘密。
众所周知,阿里巴巴有着非常丰富的业务形态,每一种业务形态背后都由一系列分布式的技术体系提供服务,随着业务的快速发展,特别是在双11等大促营销等活动场景下,准确评估整个业务站点的服务能力成为一大技术难题。
早在2011年阿里就开始尝试直接在生产环境进行单系统压力测试,获取单系统服务能力来进行容量规划。生产环境单系统压力测试相对于传统的性能测试虽然在结果准确性上有很大提升,却依旧存在局限性,打个比方,经过生产环境单系统压力测试的站点就好比生产一辆跑车:每一个零件都经过了严密的测试,最终把零件组装成跑车,由于跑车没有经过整体测试验证,直接开上路随时面临抛锚风险。
全链路压测的诞生彻底解决了上述难题,通过对整个站点进行全方位的真实业务场景模拟,确保各个环节的性能、容量和稳定性均做到万无一失。双11买买买的场景对用户来说每年就是双11当天一次,而阿里的业务系统在此之前提前模拟经历了好几次。到了双11当天,系统仅仅只是再经历一次已经被反复验证过的场景,再考一遍做“做过的考题”,不出问题也都在意料之中。
全链路压测具备三大核心技术:
1、直接在生产环境进行全业务的压力测试;
2、压测场景贴近真实业务场景;
3、双11峰值用户请求构造能力的压测平台。
在生产环境直接进行压力测试的最大挑战在于,确保压测请求不对正常业务造成污染和干扰。数据隔离是解决这个问题的最佳手段,对数据进行物理或者逻辑的隔离,压测数据被存储到特定的影子区域。所有压测请求的入口带上特定标记,在分布式调用环节,压测标记随着分布式调用通讯协议一直往下传递,追溯到调用链路的完整生命周期,最终通过数据过滤器将压测请求的数据自动路由到影子区域。这一整套数据隔离机制完全通过中间件组件完成,确保对业务系统零侵入。
业务场景匹配度决定压测结果的可靠性。业务场景定义了用户丰富多样化的业务行为,包含上千个业务因子。比如多大规模的用户在站点上进行怎么样的业务操作;来源于PC和无线的流量比例;有多少用户在浏览商品、浏览什么样的商品;有多少用户在下单、买了什么样的商品等等。通过对在线数据结合历史用户行为进行建模、分析和预测,全链路压测的智能化数据引擎可以产出跟真实业务场景非常接近的高仿真压测模型,真正做到压测表现和真实场景的高度一致。
在双11零点峰值时刻,全球各地的消费者瞬间涌入,上亿用户每秒发起上千万的业务请求;在一次全链路压测过程中,压测平台充当了模拟上亿消费者业务行为的角色。压测平台由压测控制中心和上千个压测引擎节点组成。压测控制中心作为整个压测平台的大脑,对整个压测体系进行智能化地控制;压测引擎部署在全球各地的CDN节点上,真实地模拟来自于全球各地的用户请求。压测平台提供了10T压测数据实时分发、上亿用户在线连接、千万TPS稳定流量输出等一系列能力,在压测平台上点点鼠标即可轻松完成一次双11的模拟压测。
2017年双11筹备阶段,全链路压测“尖兵计划”对整个压测技术能力进行了一轮升级,结合自动化、智能化技术,提升压测结果的确定性同时,大幅缩减整个压测过程的成本投入。全链路压测将大促备战的各个环节层层打通,从业务因子埋点、监控体系、模型预测、压测数据构造、压测流量发送、弹性容量伸缩和压测结果分析等环节进行自动化串联,大幅缩减压测人员投入和时间周期,往年需要8次全链路压测才能让系统处于就绪状态,今年3次就完成目标。
全链路压测被誉为大促备战核武器,自诞生以来每年发现数百个潜在系统问题,为大促稳定性保障带来了立竿见影的效果,不仅提升了站点稳定性,还大幅缩减了在容量规划上的人力投入。全链路压测作为大促备战的核心基础设施,正逐步深入到整个双11技术超级工程的稳定性保障体系,打通建站、容量、监控和业务验证等诸多环节,结合自动化和智能化技术将整个大促备战能力提升到一个新台阶。
2017年7月,源于阿里集团内部的全链路压测平台已通过阿里云完成商业化输出,与原有性能压测产品PTS进行融合,形成PTS铂金版。任何对业务压力测试有需求的客户即可借助PTS压测平台轻松完成一次站点性能和容量测试,同时还可以申请“压测专家服务”实施整套全链路压测流程,享受阿里双11稳定性保障级的高可用服务。
正是基于阿里巴巴在基础设施领域,特别是大规模高可用互联网平台上多年的技术积累,越来越多像全链路压测(PTS)、分布式数据库服务(DRDS)和企业级分布式应用服务(EDAS)等技术能力通过云化对外服务,帮助传统企业获得大规模高可用的互联网技术能力,从容应对瞬息万变的市场和业务需求,提高业务效能,让更加便捷使用的基础设施能力成为随处可用、人人可用的社会公共资源,普惠世界。
原文发布时间为:2017-12-11
本文作者:游骥