ArchSummit全球架构师峰会门票9折倒计时中~ 了解详情
写点什么

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

  • 2021 年 6 月 25 日
  • 本文字数:2898 字

    阅读完需:约 10 分钟

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

在刚刚过去的 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(了解详细操作文档)

2021 年 6 月 25 日 09:386499

评论

发布
暂无评论
发现更多内容

<<架构师训练营>>第一周作业

R20114

极客大学架构师训练营

Android 无埋点从入门到放弃:了解 Java 字节码

GrowingIO技术专栏

架构师训练营第一周学习总结

R20114

架构第一课学习总结

师哥

游戏夜读 | 如何成长为游戏人?

game1night

钟离昧的第一张架构设计图之旅

X中倪

可视化算法网站汇总,从此简单学算法!(附动图)

王磊

Java 算法

【写作群星榜】6.5~6.11写作平台优秀作者&文章排名

InfoQ写作社区官方

写作平台 排行榜 热门活动

架构师训练营--第1周总结感想

芥菜

使用VSCode连接到IBM Cloud区块链网络

程序那些事

智能合约 hyperledger fabric ibm cloud

LocalDateTime和Date的比较与区别

彭阿三

时间格式化 LocalDateTime Date

系统/子系统/模块/组件/框架/架构

gen_jin

钟离昧的一梭子架构师之旅

X中倪

极客大学架构师训练营 听课总结 - 架构视图,设计文档 -- 第二课

John(易筋)

极客时间 极客大学 架构设计 极客大学架构师训练营 架构文档

数据同步,应该如何设计

迹_Jason

搭建websocket消息推送服务,必须要考虑的几个问题

GoEasy消息推送

websocket 消息推送 即时通讯

架构师训练营-Week1-作业2

车小勺的男神

小师妹学JavaIO之:NIO中Channel的妙用

程序那些事

io nio 小师妹 buffer channel

玄姐公开课总结【构建基于ServiceMesh的普适业务中台架构】

魔曦

架构 Service Mesh

30岁,就被大厂抛弃了

J.Smile

求职

Intellij IDEA 右击没有run

程李文华

你并不理解i++和++i

flyhero

Java 程序员 JVM i++

关于UML、4+1视图、系统架构的思考

吴建中

2020年6月11日 高性能MySQL

瑞克与莫迪

量子技术到底有哪些突破值得重点关注?

蔡芳芳

数据库周刊27丨6月最新国产数据库排行;OB成立新公司奥星贝斯;腾讯云发布图数据库TGDB;Oracle坏块修复;MySQL故障排查导图;经典SQL语句大全...

墨天轮

数据库

02-kubernetes自建CA及双向TLS认证

绿星雪碧

Kubernetes TLS CA证书

独立开发者为什么不需要运营也能月薪几万,甚至几十万?

非著名程序员

程序员 独立开发者 副业赚钱 程序人生 提升认知

非结构化数据可视化 —— 现在与未来

做技术BP的文案Gou

人工智能 大数据 数据可视化 非结构化数据

让独立思考成为习惯

Neco.W

学习 深度思考 思考

SpringBoot分布式任务中间件开发 附视频讲解 (手把手教你开发和使用中间件)

小傅哥

小傅哥 中间件 springboot 分布式任务

AI在游戏反外挂中的应用与实践

AI在游戏反外挂中的应用与实践

数列科技CEO曹学锋:解码全链路压测领域,谈开源背后的意义_技术管理_郑思宇_InfoQ精选文章