数列科技宣布开源Takin:性能测试3.0时代来临

2021年11月26日 阅读数:2
这篇文章主要向大家介绍数列科技宣布开源Takin:性能测试3.0时代来临,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

6 月 25 日,国内知名的系统高可用专家数列科技宣布开源旗下核心产品能力,对外开放生产全链路压测平台产品的源代码,并正式命名为 Takin。git

目前中国人寿、顺丰科技、希音、中通快递、中国移动、永辉超市、爱库存、浙江大学等 50+行业头部公司都采用了该技术,10 万+探针同时线上运行,天天实时处理数百亿条用户请求,生成数百 TB 链路数据。该项目已在 Github 上发布,做为全球首款开源的全链路压测平台,Takin 的开源将为更多企业提供超低门槛、超低成本、超高效率的性能保障能力。github

 

什么是生产环境全链路压测?

全链路压测是一种使用最低成本,使系统达到最肯定的性能目标的方法,可以保障业务的连续性,让 IT 系统具有反脆弱能力和快速定位问题能力。安全

IT 系统是工程师结合具体的业务场景基于一系列的基础组件进行编码搭建而成的,基础组件自己的局限性,以及代码的不肯定性,会使整个系统存在很大的不肯定性,这种不肯定性会让系统在面临一系列“风险”场景(高峰场景)时,表现得很脆弱,那该如何让系统具有反脆弱能力呢?架构

 

经过生产环境全链路压测,真实模拟“风险”业务行为场景,实时监控系统表现,提早识别和快速定位系统的中的不肯定因素,并对不肯定因素进行处理,优化系统资源配比,使用最低硬件成本,使系统从容面对各类“风险”场景,达到预期的系统性能目标。经过这种方法,在生产环境上落地常态化稳定压测体系,实现 IT 系统的长期性能稳定治理。iphone

 

性能测试经历了从线下到线上演变的四个阶段:分布式

1. 需求驱动压测阶段

需求驱动压测,大多采用简单的工具进行单接口或者单系统压测,也能进行一些简单的性能问题分析,但不少时候都没有专门的测试团队,须要开发进行自主压测。微服务

2.性能回归体系阶段

组建专门的性能测试团队搭建线下性能测试质量平台,具有复杂场景全链路压测能力、性能问题定位能力。工具

 

在这一阶段有三个问题是比较有表明性:性能

(1)不少公司线下作了性能测试,但到了线上仍是存在不少问题,以测试环境的压测结果来评估线上环境,效果不佳。测试

(2) 业务增加、营销活动增长使测试工程师对活动保障内心没底,每逢营销活动问题频发影响公司形象。(3)性能压测效率没法知足增加的性能压测需求,致使部分项目没有性能压测直接上线,线上故障频发。

为了解决测试环境性能压测的不肯定性,性能压测开始向生产环境进行演变,进入生产环境性能压测阶段。

3.生产只读业务压测阶段

在测试环境回归体系阶段上增长了生产只读业务的性能压测,对生产环境压测进行实践,搭建生产环境性能压测回归体系,具有只读业务生产压测的性能问题分析能力。

4.全业务全链路压测阶段

在上一个阶段的基础上增长写入业务的性能压测,进而开展对全业务实行全链路压测,具有全业务的性能压测能力、问题定位能力,作的更好一些还会增长系统防御能力,好比降级、限流、故障演练等。

 

为何要开源?

正如数列科技 CEO 曹学锋在接受 InfoQ 专访时表示“咱们开源 Takin 的初衷其实很简单,就是想让更多的企业用上好的产品,帮助企业提供更好的用户服务体验,释放更多的精力去拓展业务。相信你们的使用反馈对于产品自己的发展迭代也是具备正向做用的,互惠互利实现良性循环。”

目前大多数企业仍在使用传统的性能压测方式,但随着分布式、微服务架构的发展,这种方式已经没法知足系统性能的保障,数列科技决定把这款生产环境全链路压测产品开源出来并正式命名为 Takin。

固然 Takin 要作的不止于此,开源最大的特性在于开放包容与创新。但愿产品开源能以开放的工做方式激发技术创新,吸引更多业界优秀的开发人员加入到生产环境全链路压测技术的共创团队中,让技术更落地,链接不一样的使用场景。

 

什么是 Takin?

Takin 是基于 Java 语言开发的一套生产全链路压测的系统,能够在无业务代码侵入的状况下,嵌入到各个应用程序节点,实现生产环境的全链路性能测试,适用于复杂的微服务架构系统。

 

Takin 架构图

 

Takin 具有如下 4 个特色:

(1)业务代码 0 侵入:在接入、采集和实现逻辑控制时,不须要修改任何业务代码;

(2)数据安全隔离:能够在不污染生产环境业务数据状况下进行全链路性能测试,能够在生产环境对写类型接口进行直接的性能测试;

(3)安全性能压测:在生产环境进行性能压测,对业务不会形成影响;

(4)性能瓶颈快速定位:性能测试结果直接展示业务链路中性能瓶颈的节点。

Takin 界面

 

Takin 开源了哪些内容?

Takin 开源内容主要包括三个部分:Agent 探针、控制台以及大数据模块。在 Java 应用程序中植入探针(Agent),它能收集性能数据、控制测试流量的流向,将数据上报给大数据模块,大数据模块会进行一些实时计算分析并对数据进行存储,控制台则负责这些业务流程的管理和展示。三个部分各司其职,为业务提供无代码侵入的、常态化的生产环境全链路压测服务。

 

GitHub 开源地址以下:

Takin:https://github.com/shulieTech/Takin

开源社区:https://news.shulie.io/?p=3024(了解详细操做文档)

 

将来任重而道远,秉承着帮助企业解决微服务架构治理及性能问题的初心,Takin 能够较大程度地帮助企业下降生产全链路压测平台的开发难度,真正作到为更多企业系统的性能和稳定性提供保障。

数列衷心但愿 Takin 能和业界携手,共建更完整、更标准化的生产全链路压测生态圈。

 

直播预告:

6 月 25 日晚上 7 点半,数列两位创始人震南和平威将在两场直播中为你们答疑解惑,感兴趣的小伙伴能够扫码进群,如今进群开播有提醒,还有 iphone12 等你来领哦!