一种完全无侵入式生产线上的全链路压力测试技术_陈皓.pdf
《一种完全无侵入式生产线上的全链路压力测试技术_陈皓.pdf》由会员分享,可在线阅读,更多相关《一种完全无侵入式生产线上的全链路压力测试技术_陈皓.pdf(4页珍藏版)》请在咨信网上搜索。
1、2023 年 6 月 10 日第 7 卷 第 11 期现代信息科技Modern Information TechnologyJun.2023 Vol.7 No.1169692023.062023.06收稿日期:2023-04-23一种完全无侵入式生产线上的全链路压力测试技术陈皓,张博民(北京重载智子科技有限公司,北京 100025)摘 要:随着硬件性能的提升、网络带宽的增加和数据量的急剧增长,传统的单机应用已无法满足现代企业的需求,取而代之的是基于分布式的软件系统。这些软件系统在提供强大计算能力的同时,也引入了复杂性。文章介绍一种新型的基于云原生架构的生产线上全链路压力测试方法Shadow S
2、ervice,通过实现业务一致性、数据一致性、资源一致性和各种隔离性,保证了测试结果的准确性和生产系统的安全性。同时,详细介绍了如何在一个简化后的订单支付场景中使用 Shadow Service 实现压力测试。关键词:生产环境;压力测试;影子服务;服务网格;云原生中图分类号:TP311.5 文献标识码:A 文章编号:2096-4706(2023)11-0069-04An End-to-End Pressure Testing Technology for a Completely Invasive Production LineCHEN Hao,ZHANG Bomin(MegaEase Inc
3、.,Beijing 100025,China)Abstract:With the improvement of hardware performance,the big increment in network bandwidth,and the rapid growth of data volume,traditional stand-alone applications can no longer meet the needs of modern enterprises.Instead,distributed-based software systems have emerged.Thes
4、e software systems provide powerful computing capabilities while introducing complexity.This paper introduces a novel cloud-native architecture-based end-to-end pressure testing method for production linesShadow Service.By ensuring business consistency,data consistency,resource consistency,and vario
5、us isolation levels,the accuracy of test results and the security of production systems are guaranteed.At the same time,it details how to use Shadow Service to achieve pressure testing in a simplified order payment scenario.Keywords:production environment;pressure testing;shadow service;service grid
6、;cloud native0 引 言在网络时代,一个大型的互联网应用需要承受数以亿计的访问量,这需要我们对应用中所有的服务进行全面完整的全链路压力测试,但这面临着巨大的挑战,传统测试方法不仅成本高昂且无法保证准确性,还需要巨大的工作量并存在破坏生产系统的风险。为了应对这些问题,MegaEase 提出了 Shadow Service 技术,基于云原生的流量调度和 Service Mesh 技术,实现了业务一致、数据一致、资源一致以及业务隔离、数据隔离、流量隔离和资源隔离。这种方法不需要修改任何代码,成本低,能够保证业务逻辑与生产环境的一致性,同时可以使用生产数据进行测试,保证测试结果的准确性,且
7、安全可靠。因此,Shadow Service 成为网络时代全站压力测试的理想选择。1 背景介绍随着硬件性能越来越强,带宽越来越高,数据越来越多,传统的单机应用已经无法满足用户需求,取而代之的是由各种组件基于网络而构成的软件系统。但这种软件系统,在带来更强大的计算能力的同时,也DOI:10.19850/ki.2096-4706.2023.11.016引入了单机时代所不具有的复杂性。今天,一个完整的软件系统,模块数量少则几十,多则成千上万。并且,为了提高开发上线速度,这些模块会由不同的团队使用不同的语言开发,这也让模块间的通信变得更加复杂。同时,今天的业务模式相比过去也发生了很大的变化,类似双十一
8、的促销活动,会让系统承受数倍、数十倍于日常的压力。所以,压力测试变得日益重要,但传统的测试方法也变得越来越无法适应业务需求。2 问题和难点2.1 专用测试环境的问题在单机时代,使用“1:1”的测试环境,是非常好的压力测试方法。但到了网络时代,这种做法却可能非常不切实际。1)成本问题。要测试单机软件,即使是独立开发者,绝大多数情况下也可以轻松地购买一台独立的测试用计算机;但今天的系统所需的资源太多了,要想 1:1 的按照生产系统搭建一套测试系统,单是服务器成本就会高的让大多数公司难以承受,更不用说还可能有带宽、电力、机房等费用。2)环境问题。即使我们在成本上没有问题,但是真的“1:1”建起测试环
9、境,保持这个测试环境与生产环境的软件、70702023.062023.06第 11期现代信息科技数据完全一致也充满挑战。在实际工作中,测试环境与生产环境的差异会随着时间的推移越来越大,最终导致测试结果失真。3)数据问题。我们还会面对测试数据的问题,如果不能保证测试环境的数据与生产环境接近甚至相同,测试结果就不可信。比如一个类似微博的系统,像作者这种普通用户一般只有几十或几百人关注,所以我发一条消息,随便怎么做都可以很容易地通知所有关注者。但对一个千万大 V,情况就会截然不同。所以,我们不能简单地使用模拟数据进行测试。4)安全问题。为了让测试结果真实可靠,最好能够把完整的生产数据导入到测试环境。
10、乍看上去,这只需要简单地备份恢复下数据库,但生产环境包含大量敏感数据,随意复制到测试环境无疑会极大地增加数据泄露的风险。2.2 在生产环境进行测试的问题因为使用测试环境进行压测存在诸多困难,人们就把目光转向了生产环境,尝试直接利用生产环境上的压力低谷时段,比如凌晨,进行测试。但这是一种侵入式的解决方案,涉及修改甚至重新定义业务逻辑,所以同样面临巨大挑战。假设我们要修改的是一个网购系统,那么用户购物下订单的流程应该会涉及用户、订单、支付等一系列的模块。1)如果我们要修改用户模块,那么我们需要用代码判断过来的请求是应该走测试逻辑还是生产逻辑。比较常见的方法是预先指定一个用户 ID 的范围,如果是这
11、个范围的用户,就走测试逻辑,否则走生产逻辑。2)用户模块之后,逻辑走到了订单模块,这时,我们可能仍然希望通过用户 ID 来判断是否应该走测试逻辑,但实际情况却可能是:经过一系列的复杂处理流程,订单模块根本看不到用户信息,所以此路不通。3)为了让订单模块能区分出正常订单和测试订单,就必须在用户模块增加一些处理逻辑,比如给订单号加上特殊标记等。但是,在一个复杂的系统里,用户模块并不容易知道后续流程要经过的所有模块,所以,为了不影响正常的生产逻辑,仅仅保证测试状态的正常传递就需要付出不小的努力,更不用说还要考虑是否要访问不同的数据集,是否要模拟第三方服务等各种情况。很明显,这种业务逻辑的修改,所需的
12、工作量与功能点数量成正比。但除了巨大的工作量,更严重的问题是,在辛苦的修改之后,有谁能保证所有需要做的修改都改了,并且改对了?而万一有遗漏或错误,就有可能破坏生产系统,这个风险实在是太大了,我们很难承受。3 解决之道3.1 一致性和隔离性从前面的分析可以看出,传统的测试方法或者成本高昂且得不到准确的数据,或者工作量巨大且存在破坏生产系统的风险。因此,MegaEase 认为,要解决网络时代的全站压力测试问题,必须使用一种全新的方法,而这种方法的关键在于“三一致”和“四隔离”。“三一致”是指业务一致、数据一致和资源一致。也就是说,测试系统和生产系统应该完全相同,只有这样,才能得到准确的测试数据。现
13、实地说,100%的一致并不容易做到,比如,我们通常无法要求第三方配合我们进行测试,所以,只能使用模拟的方法替换掉部分第三方依赖。但我们仍然需要尽最大可能保证两个系统的一致性。“四隔离”是指业务隔离、数据隔离、流量隔离和资源隔离。这些隔离,都是为了将生产系统和测试系统完全分开,避免它们相互影响。很显然,三一致解决的是测试结果的准确性问题,而四隔离则保证了测试过程不会影响生产系统。基于上面的定义,我们可以使用一种叫 Shadow Service的技术,其主要利用云原生中的 SideCar 和 Service Mesh 技术。通过 Shadow Service,我们可以非常容易地为系统中的所有的应用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一种 完全 侵入 生产 线上 全链路 压力 测试 技术 陈皓
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。