TOP100案例专访京东高级经理马鑫谈京东618/双11全链路压测的实践之路
Posted 壹佰案例
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TOP100案例专访京东高级经理马鑫谈京东618/双11全链路压测的实践之路相关的知识,希望对你有一定的参考价值。
导读:第七届TOP100全球软件案例研究峰会将于11月30日-12月3日在北京国家会议中心举办,本届峰会以“释放AI生产力 让组织向智能化演进”为开幕式主题,旨在推动企业在趋势下拥抱AI、探索和思考AI带来的力量。十八个主题专场,120个案例为组织形式,意在向参会者解读2018年软件研发设计创新案例。
会前TOP100组委会专访案例分享者京东测试技术提升团队高级经理马鑫老师,他将为我们带来《京东618/双11全链路压测的实践之路》的话题 。本案例围绕京东近几年全链路压测实践过程中遇到的痛点问题,结合自建分布式压测平台的发展路径,讲述面对越来越错综复杂的分布式应用如何行之有效进行压测评估的一种实践方式,以下为采访实录。
马鑫,现测试技术提升团队高级经理。2010年底入职京东,拥有10年以上互联网及传统行业丰富测试经验,主要负责大型项目的压测推动与实施、前沿压测技术的探索与实践,以及带领团队构建适用于京东的分布式压测平台;擅长业务质量测试、自动化测试、性能测试以及持续集成等多个领域。
TOP100组委会:马鑫老师您好,非常高兴能对您进行采访。听闻您一直在互联网行业,从事测试的相关工作,并且一直在京东这个平台发展和成长。面对各行各业、大小公司不同的诱惑,我非常好奇是什么样的力量让您能坚守这三个选择呢?
马鑫:确实有很多公司向我发起过邀请,不过对我而言,我觉得最主要的是清楚自己究竟想要什么吧。之所以选择待在互联网行业,最重要的还是互联网更新速度的吸引力。互联网技术的更新速度、流量增长的更新速度、相匹配知识的更新速度等都是其他行业所不具备的。这种高速的发展、变化可以让自己不停地探索和学习新的技术或事物。
而大家一笔带过的“测试”,其实本身是一个非常庞大的知识体系,其功能、性能、安全、自动化等每个方向展开来说,都可以变成一个庞然大物。我也有幸在功能、自动化、性能这三个方向有所研究与实践。
在京东的8年是伴随京东质量体系共同成长的8年,经历了业务测试由手工到自动化的过程,也经历了压测工具从开源工具到自研平台的蜕变,正是有这样的经历才让我更加愿意与京东一直走下去。它的成长与我的成长齐同并进,所以我想继续坚持下去,希望未来更加精彩!
TOP100组委会:从您的对话中,能感受到这份正能量。据我所知,整个互联网行业正在从单体式系统向分布式服务化平台发展。那么这种变化趋势对测试行业是否有所冲击呢?您觉得对单体式系统的测试和对分布式服务化平台的测试有哪些不同之处呢?
马鑫:现在,互联网行业呈现出数据量暴增、服务复杂化和精细化的趋势。业务开发的这种发展趋势自然对我们测试领域产生了冲击和影响。当然,我们也在不断进化、改变和发展。对这两种架构的测试,其实有很多不同的地方。
如果从业务测试维度来看,单体式、分布式系统的不同之处主要在于测试类型的选择。单体式系统主要关注的是功能的正确性、友好性的验证;而分布式系统则需要进行更多的接口测试来验证功能的完整性与正确性。由于分布式的功能维护粒度拆分更细,所以更适用于自动化测试的实施。
此外,测试数据的构造准备、测试用例或场景的设计、回归测试的维护成本等方面也有很多不同之处;而从性能测试方面讲,其差异就更大了。首先单体式的系统在水平扩展方面非常不灵活,无法针对瓶颈点的功能或模块进行单独的水平扩展,其次如果单体式的系统设计不清晰或不合理的话,会给性能测试评估的问题分析与定位带来非常巨大的成本付出;反过来看分布式服务,由于各服务支持灵活的水平扩展,这样可以针对单个服务进行性能或容量的评估,通过评估结果,并结合线上真实业务流量产生服务间调用的比例关系,对业务链路的服务器资源进行合理的分布调整,达成在服务器资源不变的前提下,能够承担更大流量的目的。
TOP100组委会:既然分布式架构和传统的单体应用测试差别如此之大,那么在做基于分布式架构的整站容量评估与规划方案时,又有哪些方面是需要特别注意的呢?您又是如何做好统筹规划的呢?
马鑫:其实分布式架构整站的容量评估无外乎这几方面:使用的服务范围、业务链路的数量与范围、服务器资源的规模、基础数据的量级、预计的业务流量的量级等,还有就是各服务的基准测试结果。如果没有基准测试的数据,那么可以在项目的压测初期对各服务进行这方面的压测数据积累,为业务链路和整站的容量评估的开展提供数据依据。
最后需要注意的是,在做压测数据的准备时一定要做好调研。尤其注意那些会根据读写流量中的某些字段从分库分表或缓存分片进行获取或写入操作的服务。测试数据一定要考虑压测的时候要让流量尽量均匀的打到各个分片上,否则可能得到的评估结果仅仅是一个或某几个分片的容量结果。统筹安排方面主要是在场景设计与压测实施方面要尽量贴合实际的业务场景进行流量的集中模拟与相关的监控,具体实现方式和工具也有很多,在这就不具体介绍了,有机会可以在TOP100大会现场跟大家交流一下。
TOP100组委会:我们主要关注了测试技术、测试领域的相关发展。其实,测试的目的也是为了对测试对象进行评估、验证,找出其具体问题,并进行解决。您是如何看待测试与业务之间的关系的呢?如何通过测试,并结合实际的业务寻找到链路中的短板系统呢?
马鑫:其实寻找链路中的短板系统还相对容易些。只要能定义好业务链路,准备好脚本与压测数据,通过压测平台进行流量的模拟并持续的加大并发流量就能找到了。但如何结合实际的业务,就需要对定义好的链路进行充分的调研与线上流量分析。比如,业务链路上涉及的系统、服务有哪些?各服务间的调用关系是怎样的?线上业务链路各种流量的比例关系如何等等,这些都会对压测结果产生影响。只有真正的分析出这些关系,才能构造出接近真实情况的模拟流量,以保证准确寻找到链路中的短板系统。
TOP100组委会:看来,测试和业务关系也非常紧密。双方都在发展、也在相互磨合。说到发展,刚才您也讲到,您经历了业务测试由手工到自动化的过程。那么,您对“自动化业务测试”以及现在行业里大家口耳相传的“AIOps”、“DevOps”有什么见解呢?
马鑫:说到自动化压测,我们现在也在进行尝试与实践,其实这方面技术上没有什么难度,主要还是如何基于现有模式构造适合的场景。毕竟为了让评估结果有效,所有的压测都是在线上完成,那么如何做到既完成无人值守的自动化压测又保证不影响线上系统正常运行,是我们要重点关注的。
关于这部分,其实我们是想通过这种无人值守方式的压测执行,一方面及时发现服务的性能问题,另一更重要的方面是想采集更多的基准压测数据,从而结合线上的真实流量数据,通过模型分析和预估出多大的集群规模能抗住什么量级的洪峰流量,并通过京东的弹性系统动态地、合理地调度和分布资源。而所说的“AIOps”、“DevOps“,我觉得其实这只是提炼出概念而已。这是个顺势而为、水到渠成的事情。随着互联网各种技术、场景的变化和发展。这些概念背后的事情也在顺其自然地进行着。
TOP100组委会:您在京东工作已经有8年了,自然对京东整体的业务、链路测试有很深的了解,并有自己的看法和见解。那么,能为我们分享下京东这几年全链路压测实践过程中,有哪些痛点问题,又有哪些经验值得大家借鉴?
马鑫:关于全链路压测实践方面可以在网上搜索【京东全链路压测】的关键字会有比较多的文章分享。这其中包括压测平台的架构、一些全链路压测实践的介绍等。至于痛点问题,其实主要集中在压测流量的识别与隔离、中间件、业务系统的改造升级等方面,具体内容请允许我在这里卖个关子。
TOP100组委会:这是在邀请我们读者聆听您在TOP100summit峰会(第七届)分享的议题《京东618/双11全链路压测的实践之路》的吧?那是否可以透露下本次分享的主要内容呢?
马鑫:本次主题,主要会介绍京东的全链路是怎么做的?如何定义链路的?这几年全链路压测实践遇到什么样的坑?又是怎样一步一步爬出来的,还有就是结合这些实践,相应的技术实现与工具平台是如何一点一点的构建和演变过来的。具体内容我就不在这里说明,有兴趣的同学可以来会场交流!
TOP100组委会:非常期待您的精彩分享!最后一个问题,作为测试行业的老司机、重量级人物,您觉得优秀的质量人员应该具备怎样的专业素质呢?能否给我们测试工程师、高级测试开发人员一些建议呢?
马鑫:我认为最主要的专业素质是:自驱力强、团队意识、职业精神、兴趣、求知欲、探索精神、耐得住寂寞、敏锐的洞察力等。对于成长,其实最重要的是要有正确自我认知,这样才能有效的判断自己能力的优势与缺点,在漫长的职业生涯中不仅要扬长,也要慢慢的补充短板。然后就是坚持,持之以恒的做下去,才能得到自己想要的收获。当觉得遇到瓶颈的时候,试着思考下自己的初心,其实成长的爆发期就在面前,越是这个时候,就越要相信自己,阳光总在风雨后,谁也不知道明天如何,今天永远不是终点,奋斗要永不停息!
感谢马鑫老师百忙之中接受我们的访谈,也预祝他在TOP100summit峰会(第七届)能有精彩表现!本届TOP100大会,质量管理/工具链建设/「大前端」专场部分精彩议题如下:
质量管理/工具链建设/「大前端」
点击“阅读原文”,了解此案例更多详情。现在提交相关信息,还可免费获取大会PPT!
以上是关于TOP100案例专访京东高级经理马鑫谈京东618/双11全链路压测的实践之路的主要内容,如果未能解决你的问题,请参考以下文章