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

32次阅读

共计 2406 个字符,预计需要花费 7 分钟才能阅读完成。

6 月 25 日,国内出名的零碎高可用专家数列科技发表开源旗下外围产品能力,对外开放生产全链路压测平台产品的源代码,并正式命名为 Takin。

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

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

全链路压测是一种应用最低老本,使零碎达到最确定的性能指标的办法,可能保障业务的连续性,让 IT 零碎具备反软弱能力和疾速定位问题能力。

IT 零碎是工程师联合具体的业务场景基于一系列的根底组件进行编码搭建而成的,根底组件自身的局限性,以及代码的不确定性,会使整个零碎存在很大的不确定性,这种不确定性会让零碎在面临一系列“危险”场景(顶峰场景)时,体现得很软弱,那该如何让零碎具备反软弱能力呢?

通过生产环境全链路压测,实在模仿“危险”业务行为场景,实时监控零碎体现,提前辨认和疾速定位系统的中的不确定因素,并对不确定因素进行解决,优化系统资源配比,应用最低硬件老本,使零碎从容面对各种“危险”场景,达到预期的零碎性能指标。通过这种办法,在生产环境上落地常态化稳固压测体系,实现 IT 零碎的长期性能稳固治理。

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

1 需要驱动压测阶段

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

2 性能回归体系阶段

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

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

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

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

3 生产只读业务压测阶段

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

4 全业务全链路压测阶段

在上一个阶段的根底上减少写入业务的性能压测,进而发展对全业务履行全链路压测,具备全业务的性能压测能力、问题定位能力,做的更好一些还会减少零碎防护能力,比方降级、限流、故障演练等。

为什么要开源?

正如数列科技 CEO 曹学锋示意“ 咱们开源 Takin 的初衷其实很简略,就是想让更多的企业用上好的产品,帮忙企业提供更好的用户服务体验,开释更多的精力去拓展业务。置信大家的应用反馈对于产品自身的倒退迭代也是具备正向作用的,互惠互利实现良性循环。

目前大多数企业仍在应用传统的性能压测形式,但随着分布式、微服务架构的倒退,这种形式曾经无奈满足零碎性能的保障,数列科技决定把这款生产环境全链路压测产品开源进去并正式命名为 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(理解具体操作文档)

对于数列 : 数列科技成立于 2016 年,是国内当先的零碎高可用专家,由多名阿里巴巴资深专家发动成立。旨在以解决微服务架构治理及性能问题为外围,为企业零碎的性能和稳定性提供全方位保障,构建了笼罩全链路压测、E2E 巡检、故障演练等多模块的残缺产品矩阵,致力于帮忙企业将零碎可用性晋升至 99.99%。

正文完
 0