数列科技开源全球首款生产环境全链路压测平台 Takin

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 数列科技开源全球首款生产环境全链路压测平台 Takin

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

目前,该项目已在Github上发布,作为全球首款开源的全链路压测平台,Takin的开源将为更多企业提供超低门槛、超低成本、超高效率的性能保障能力。

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

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

IT系统是工程师结合具体的业务场景基于一系列的基础组件进行编码搭建而成的,基础组件本身的局限性,以及代码的不确定性,会使整个系统存在很大的不确定性,这种不确定性会让系统在面临一系列“风险”场景(高峰场景)时,表现得很脆弱,那该如何让系统具备反脆弱能力呢?通过生产环境全链路压测,真实模拟“风险”业务行为场景,实时监控系统表现,提前识别和快速定位系统的中的不确定因素,并对不确定因素进行处理,优化系统资源配比,使用最低硬件成本,使系统从容面对各种“风险”场景,达到预期的系统性能目标。通过这种方法,在生产环境上落地常态化稳定压测体系,实现IT系统的长期性能稳定治理。


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

1 需求驱动压测阶段

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

2 性能回归体系阶段

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


在这一阶段有三个问题比较有代表性:

  • 很多公司线下做了性能测试,但到了线上还是存在很多问题,以测试环境的压测结果来评估线上环境,效果不佳。
  • 业务增长、营销活动增加使测试工程师对活动保障心里没底,每逢营销活动问题频发影响公司形象。
  • 性能压测效率无法满足增长的性能压测需求,导致部分项目没有性能压测直接上线,线上故障频发。

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


3 生产只读业务压测阶段

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


4 全业务全链路压测阶段

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


为什么要开源?

正如数列科技CEO曹学锋表示“我们开源Takin的初衷其实很简单,就是想让更多的企业用上好的产品,帮助企业提供更好的用户服务体验,释放更多的精力去拓展业务。相信大家的使用反馈对于产品本身的发展迭代也是具有正向作用的,互惠互利实现良性循环。

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

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

微服务架构在现代系统架构中已被普遍使用,业务复杂性和系统复杂性双重作用使得保障和维持整个系统的高可用性变得困难异常,同时对研发效率也有较大负面影响。

为了解决性能瓶颈保证系统的高可用,需要对系统实施性能测试,但传统的性能测试有仿真性、局部性和黑盒性三大问题。

yy.png

在生产环境进行性能压测是公认的最优解决方案,但这也是一件极具挑战性的事情,容易污染现网的数据库、日志等数据,进行生产环境测试数据清理时操作复杂且危险性高,为此,生产环境全链路压测技术应运而生。

Takin作为首款生产环境全链路压测开源产品,可以较大程度地帮助企业降低生产全链路压测平台的开发复杂度,在无业务代码侵入的情况下,获得链路治理、数据隔离、性能瓶颈定位等生产压测核心能力。


什么是Takin?

Takin是基于Java的开源系统,可以在无业务代码侵入的情况下,嵌入到各个应用程序节点,实现生产环境的全链路性能测试,适用于复杂的微服务架构系统。yy.png

Takin架构图


Takin具备以下4个特点:

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

(2)数据隔离:可以在不污染生产环境数据和日志的情况下实施性能测试,可以在生产环境对写类型接口进行直接的性能测试;

(3)链路治理:能够帮助业务和微服务架构分析业务链路,以技术方式获得功能视角的链路信息;

(4)性能瓶颈定位:性能测试结果可以直接展现整个链路中存在性能瓶颈的微服务架构节点。

yy.png

Takin界面

Takin的开源内容

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

yy.png

            </div>
相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
5月前
|
传感器 存储 数据采集
LabVIEW阀性能测试平台
LabVIEW阀性能测试平台
56 0
|
7月前
|
运维 数据可视化 测试技术
Lag-Llama:第一个时间序列预测的开源基础模型介绍和性能测试
2023年10月,我们发表了一篇关于TimeGPT的文章,TimeGPT是时间序列预测的第一个基础模型之一,具有零样本推理、异常检测和共形预测能力。 虽然TimeGPT是一个专有模型,只能通过API访问。但是它还是引发了对时间序列基础模型的更多研究。到了2024年2月,已经有了一个用于时间序列预测的开源基础模型:laglllama。
380 2
|
7月前
|
负载均衡 NoSQL 关系型数据库
性能基础之全链路压测知识整理
【2月更文挑战第16天】性能基础之全链路压测知识整理
317 11
|
7月前
|
存储 缓存 中间件
高可用之全链路压测
【2月更文挑战第30天】全链路压测是提升系统可用性的关键方法,它模拟真实流量和业务场景在生产环境中测试,确保性能、容量和稳定性。
|
JSON 测试技术 API
【测试平台系列】第一章 手撸压力机(十一)-初步实现性能测试
上一章节我们组合了场景,它是一个list结构。今天我们实现性能测试计划的数据结构及其方法.
|
JSON 监控 测试技术
性能测试--InfluxDB+Grafana+Jmeter搭建性能监控平台 (二)
性能测试--InfluxDB+Grafana+Jmeter搭建性能监控平台
|
监控 测试技术 时序数据库
性能测试--InfluxDB+Grafana+Jmeter搭建性能监控平台 (一)
性能测试--InfluxDB+Grafana+Jmeter搭建性能监控平台
|
监控 测试技术 UED
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(1)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(1)
301 0
|
2月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
164 3
|
3月前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
122 2
下一篇
DataWorks