张墨飞
基础架构部高级软件开发工程师
京东技术11.11基础架构峰会讲师
电商大促准备好的第一件事情就是应对高流量,全链路压测无疑成为必不可少的一个环节。全链路压测平台ForceBot(军演机器人)用于模仿用户,通过分布在全国各地的压力节点从公网模拟并制造海量真实业务操作流量,并提供具有参考价值的性能指标监控和计算为全链路压测提供一个灵活可靠且易用的分布式压力测试平台。
张墨飞在京东负责全链路压测平台ForceBot核心功能的设计和研发工作,并深度参与架构设计。今天我们对话张墨飞,解读ForceBot的深度应用案例。
1
ForceBot有哪些具体的应用?
ForceBot是用来支持我们大促前的全链路的压测工作,它作为全链路压测的载体承担着压测流量制造、用户行为模拟和压测数据计算的工作。因为电商在大促的时候会有一段时间的高峰量,各系统需要有一个客观准确的承压能力,我们去模拟用户的真实行为,然后对整个业务系统的链路、调用量进行一些比较客观的评估。全链路压测的优势就是模拟生产环境中的真实业务操作,对系统进行压力负载测试,同时监控被压测的系统负载、性能指标等不同压力情况下的表现,并找出潜在的性能优化点和瓶颈。
而模拟用户行为需要一个比较灵活性的平台,在ForceBot平台上可以非常灵活的编写需要的流程和代码,尽可能的模仿用户在移动端手机、平板电脑、PC端上的操作行为。 全链路压测不仅是为了了解我们的系统能达到什么程度的压力负载值,更是为了在给系统性能评估提供更准确的依据。
各系统在全链路压测中承受的压力来源于对ForceBot平台对用户行为的模拟,系统的负载情况可以与真实业务场景关联,这样在对系统的性能评估和扩容量的评估会更准确,避免评估不准确带来的性能不足或者资源浪费的情况。
2
ForceBot在2017年大促的压测结果如何?
电商黄金购物流程涉及的所有业务系统没有因为突然爆发的流量导致业务瘫痪或是影响用户体验,因为大家都做好了准备。实际上备战时在全链路压测过程中已经使用过比实际流量更高的量进行过测试了。
3
是对京东所有的应用系统进行压力测试吗?
主要是黄金购物流程,一个完整的购物体验:包括登录、首页的访问、搜索、领券、下单、支付……用户的行为路径一般是:一次登录——多次搜素——搜索若干次——再若干次浏览商品的单品店,再到选择一部分商品加入购物车,最终到结算,结算之后再循环进行这个行为。
整个全链路的压测总共分为两个部分,系统改造是一方面,平台开发是另一方面。平台开发是我们需要一个稳定可靠安全的平台来提供服务,系统改造就是对整个环节整个链路上的业务系统进行改造,识别测试容量,以免和真实的用户数据发生冲突。今年“6·18”之前完成了一直到支付的链路改造,到支付之前所有系统都能识别我们测试时使用的量,然后进行相应的处理,不会影响真实的数据。在6·18到11·11之间我们进行了一直到库房的改造协调工作。
4
您能再详细介绍下ForceBot在京东的应用吗?
ForceBot平台目前在京东内部已经普遍使用了,今后也会长期服务整个业务研发的工作中。2017年下半年,我们对架构进行了多次的技术改造与升级,内部核心的功能完全自研。实现对并发的实时控制、数据的实时计算以及以及简洁易用而且高度灵活的脚本引擎。
ForceBot平台因为足够灵活,除支撑大促前的全链路压测行动外,在日常工作中,维持担负了一些日常的应用性能测试的任务。项目的上线、业务系统的迭代、性能测试等等,ForceBot也成为了一个统一的性能测试平台。
接下来希望平台能够实现自动化、智能化,也会在再在利用性上,比如说提升业务方的使用体验。最终减少业务方的使用负担,能够很轻松的就能完成测试任务,同时连同一些其他数据做一些整合性分析,自动化帮助业务系统更准确的定位系统瓶颈。如果解决了可以长期使用的公网资源问题,ForceBot平台甚至可以作为一种开放服务对公众提供服务。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有