数列科技 CEO 曹学锋:解码全链路压测领域,谈开源背后的意义

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 在刚刚过去的 618 中,整个互联网消费者的购物热情在这场年中大促全面释放,屡次被刷新的电商战绩让我们不得不惊叹“剁手党”的购买力。事实上,在电商大促的活动当天,系统访问量是日常流量的几十倍甚至上百倍,如何保障系统在流量高峰期的稳定性,如何为消费者提供更优质的购物体验也成为了技术人需要面临的大考。

为了保障在重大活动中系统的稳定性,自 2013 年起,行业内各大头部企业便相继开始自研生产环境全链路压测技术。让我们把时间线拉回眼下,生产环境全链路压测这一技术发展到了哪个阶段?作为性能测试工具,它能解决哪些问题?是否只有高流量并发的场景下才有必要进行生产环境全链路压测?带着这些问题,TGO 邀请并专访了数列科技 CEO 曹学锋,为大家系统分析了全链路压测的意义与价值。

独立创业,换一个角度迎接挑战

曹学锋作为国内早期开始探索全链路压测领域的玩家之一,曾是阿里菜鸟的首席架构师及阿里电商中台核心架构师,参与构建菜鸟整个技术体系。谈及创业想法的由来,他表示创业是一个自然而然的转换过程,“在阿里也做了很多与创业相关的工作,无论从业务角度还是职场角度,都需要你做一些有挑战性的事情。”

提到为何投身于全链路压测这一技术领域时,曹学锋表示,在 2017 年 9 月份,他们观察到数据是一个有潜在机会的领域,在跟很多企业合作过程中发现,分布式架构给系统带来了很好的计算和扩展能力,同时也使得系统很脆弱,经常会崩溃,对业务造成影响,全链路压测技术可以非常高效地解决这个问题。它以用最低成本,达成最确定的性能目标的方法,保障业务的连续性,让系统具备反脆弱的能力和快速定位问题能力。

据他介绍,公司早期的核心人员均来自阿里并都完整经历了 2009-2015 年淘宝网五彩石、去 IOE、淘宝双十一等世界级技术体系变革,包括在 2013 年,阿里双十一第一次在生产环境进行全链路压测的方案论证、建设与系统优化,这样的技术背景也为数列科技布局全链路压测产品奠定了坚实的技术基础。

全链路压测技术有哪些实际意义?

关于全链路压测技术存在的意义和价值,在采访过程中,曹学锋为我们打了一个通俗易懂的比方:“就像自己组装一辆车,各个零件都是最好的,但并不能保证整体上能跑过兰博基尼,局部最优并不能保证全局最优,还需要更及时的反馈,不断调试去达成全局最优。”全链路压测就是要以最低的成本,达成全局系统最优,并且问题的定位反馈最快,从而让系统具备非常强的抗击打能力。

他透露:“全链路压测之前,阿里为了保证双十一当天的系统稳定性,会在公司内部发起一个比较大的项目,所有部门的核心人员都会参与,其中研发人数占到了 30%。”从中可以发现两个显而易见的影响:一方面,承接业务需求的研发会被占用,导致业务需求受到阻断;另一方面,即便投入了那么多精力,在线上环境仍然具有不确定性,系统的确定性仍然会有挑战,面临雪崩效应。

在曹学锋看来,业务复杂性和系统复杂性的双重作用,使得保障和维持整个系统的高可用性变得异常困难,同时对研发效率也有较大负面影响。 只有排除了性能问题带来的影响,高流量并发才能带来额外的效能,否则,就成了一件让人提心吊胆的事。

对于全链路压测技术,曹学锋还发表了自己的见解:“我们真正要做得是怎样在真实的环境找问题,而不是在实验室里找问题。”测试环境就相当于一个实验室,在测试环境进行压测产生的结果不具代表性,与在生产环境进行压测会有很大的差别。据他介绍,大部分系统在没有使用生产环境全链路压测工具前,因性能问题引发的故障大约在 30%左右,使用产品后这个数字可以降到 0。

谈及全链路压测技术的意义,曹学锋和他的团队表示这是一个具有里程碑意义的技术,让技术人员拥有一个可以抗击系统脆弱性的武器,快速反馈,精准修复,用更低的成本、更快的时间让系统具备高度的确定性。

哪些企业需要应用全链路压测?

公司不同的业务以及公司所处的不同阶段,对系统稳定性的要求都是不同的。随着企业开始全面布局数字化转型,越来越多的公司将订单的获取、交易以及交付都放到了线上,代码量级正在以翻倍的速度增长,需求改动的次数也在逐级递增,企业系统稳定性必受到一些挑战,对于系统高可用本身的要求也会变得更加严格。

那么,到底哪些企业更需要应用全链路压测工具呢?回到这个核心问题上,曹学锋也为我们总结了以下四大类:

第一类:流量猛涨超过日常流量的场景,比如双十一、618 等常规性电商购物节,企业可以提前进行部署。除此以外,由于在微服务架构系统中,服务之间的调用关系像是一张繁杂的网,所以服务之间的调用非常复杂。在这种情况下,应用全链路压测技术就显得也尤为重要。他告诉 TGO,浙江大学有一款线上授课系统,需要利用全链路压测工具来验证其能否抗住十万人同时在线。虽然“十万”这个量级对于互联网公司来说,它并不是特别高,但浙江大学的系统是由各个供应商提供的系统集合而成的,这种情况下涉及到的问题便会更多。

第二类:数字化转型企业,当客户从线上来,生产协同都要靠系统完成时,系统的不确定性会直接影响公司的业务,甚至直接会阻断业务。

第三类:如果一家企业的 IT 开发人员超过 50 人,那么系统就会比较复杂,系统链路会比较长,这时就需要全链路压测工具来提升系统的确定性,并降低系统的运维管理成本。

第四类:当企业有上云需求时,需要利用全链路压测工具去保证业务的连续性,验证业务上云之后能否稳定运行。

决定开源,让企业把精力专注在业务上

早在 2019 年年底,曹学锋就带领他的团队完成了生产环境全链路压测工具 ForceCop 的产品化,2020 年进入全面推广阶段,目前中国人寿、顺丰科技、希音、中通快递、中国移动、永辉超市、爱库存、浙江大学等 50+头部行业公司都采用了该技术,凭借突出扎实的技术实力收获了一致的正向反馈。直至今年,数列决定将这款产品进行开源,推出全球首款全链路压测开源产品——Takin。

“好的产品值得被更多人看到”曹学锋坦言,决定开源的初衷非常简单,一方面,很多技术人员在工作中遇到问题时,基本都会通过寻找开源产品的方式,来看看其他从业者是否也遇到过;另一方面,它也能帮助企业节省 20%左右的研发工程师,让他们将精力专注在业务上。反之,开源对于自身公司业务的发展也有正向推动作用,一款好产品有更多人去使用,才能帮助产品进入到一个正向反馈循环。

另外,在采访过程中,曹学锋也向 TGO 透露了公司在今后的两大目标:

第一,让全链路压测产品更完善,帮助更多企业提升用户体验及业务的确定性 “希望该产品被广泛使用,让系统的抗击打能力更强,让业务不再被中断”

第二,进一步提升发现问题的速度和效率,“很多公司发现故障的方式基本都是靠人或者靠投诉,基于此,我们会在全链路压测的基础上做一些新的探索,让他们可以在更短时间内就直接定位问题。”

与此同时,曹学锋也表示将生产环境全链路压测产品 Takin 开源,肯定会接触到之前从未遇到过的问题以及产品,如何能为这些产品提供更好的支持,是公司当下面临的最大挑战。“未来任重而道远,我们衷心希望能和业界携手,打造更好用的产品。”

GitHub 开源地址如下:
Takin:https://github.com/shulieTech/Takin
开源社区:https://news.shulie.io/?p=3024(了解详细操作文档)

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
7月前
|
负载均衡 NoSQL 关系型数据库
性能基础之全链路压测知识整理
【2月更文挑战第16天】性能基础之全链路压测知识整理
310 11
|
7月前
|
存储 缓存 中间件
高可用之全链路压测
【2月更文挑战第30天】全链路压测是提升系统可用性的关键方法,它模拟真实流量和业务场景在生产环境中测试,确保性能、容量和稳定性。
|
监控 测试技术 UED
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(1)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(1)
295 0
|
域名解析 网络协议 数据可视化
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(2)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(2)
211 0
|
SQL 监控 关系型数据库
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(3)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(3)
201 0
|
数据可视化 测试技术 定位技术
全链路压测(14):生产全链路压测SOP
从实践经验的角度出发,生产全链路压测在技术实现上没有太多新花样,但要在不同的业务和企业落地,就各有各的实践路径。对于没有太多经验的同学来说,全链路压测的落地,大多还是基于个人的经验和熟悉的领域,即都是在局部作战,缺乏全局的视角和可视化地图。从全局来讲,缺少适用于自己的全链路压测最佳实践。
全链路压测(14):生产全链路压测SOP
|
存储 SQL 缓存
全链路压测(13):高可用和性能优化
业务场景复杂化、海量数据冲击下,发现并解决业务系统的可用性、扩展性以及容错性问题。
全链路压测(13):高可用和性能优化
|
监控 Java 测试技术
全链路压测(12):生产压测必不可少的环节
在生产环境开展全链路压测,相对于测试环境来说风险和成本都是比较大的。因此需要一套严格的流程管控和响应机制,以及高效的团队协同体系。
全链路压测(12):生产压测必不可少的环节
|
SQL 缓存 运维
全链路压测(10):测试要做的准备工作
功能验证环境即用来验证技术组件本身的功能正确性和接入性能损耗的环境,有独立的随时可用的环境最好。如果考虑到成本,也可以用线下性能环境来进行验证。
全链路压测(10):测试要做的准备工作
|
缓存 监控 安全
全链路压测(11):聊聊稳定性预案
从业务角度来讲,无论技术做任何的改动和优化,最终的目的都是为了业务目标的达成。而系统的稳定性,无论从用户体验还是业务目标达成的角度来看,都是不可忽视的一环。