天天看點

數列科技開源全球首款生産環境全鍊路壓測平台 Takin

6月25日,國内知名的系統高可用專家數列科技宣布開源旗下核心産品能力,對外開放生産全鍊路壓測平台産品的源代碼,并正式命名為Takin。

目前,該項目已在Github上釋出,作為全球首款開源的全鍊路壓測平台,Takin的開源将為更多企業提供超低門檻、超低成本、超高效率的性能保障能力。

什麼是生産環境全鍊路壓測?

全鍊路壓測是一種使用最低成本,使系統達到最确定的性能目标的方法,能夠保障業務的連續性,讓IT系統具備反脆弱能力和快速定位問題能力。

IT系統是工程師結合具體的業務場景基于一系列的基礎元件進行編碼搭建而成的,基礎元件本身的局限性,以及代碼的不确定性,會使整個系統存在很大的不确定性,這種不确定性會讓系統在面臨一系列“風險”場景(高峰場景)時,表現得很脆弱,那該如何讓系統具備反脆弱能力呢?通過生産環境全鍊路壓測,真實模拟“風險”業務行為場景,實時監控系統表現,提前識别和快速定位系統的中的不确定因素,并對不确定因素進行處理,優化系統資源配比,使用最低硬體成本,使系統從容面對各種“風險”場景,達到預期的系統性能目标。通過這種方法,在生産環境上落地常态化穩定壓測體系,實作IT系統的長期性能穩定治理。

性能測試經曆了從線下到線上演變的四個階段:

1 需求驅動壓測階段

需求驅動壓測,大多采用簡單的工具進行單接口或者單系統壓測,也能進行一些簡單的性能問題分析,但很多時候都沒有專門的測試團隊,需要開發進行自主壓測。

2 性能回歸體系階段

組建專門的性能測試團隊搭建線下性能測試品質平台,具備複雜場景全鍊路壓測能力、性能問題定位能力。

在這一階段有三個問題比較有代表性:

  • 很多公司線下做了性能測試,但到了線上還是存在很多問題,以測試環境的壓測結果來評估線上環境,效果不佳。
  • 業務增長、營銷活動增加使測試工程師對活動保障心裡沒底,每逢營銷活動問題頻發影響公司形象。
  • 性能壓測效率無法滿足增長的性能壓測需求,導緻部分項目沒有性能壓測直接上線,線上故障頻發。

為了解決測試環境性能壓測的不确定性,性能壓測開始向生産環境進行演變,進入生産環境性能壓測階段。

3 生産隻讀業務壓測階段

在測試環境回歸體系階段上增加了生産隻讀業務的性能壓測,對生産環境壓測進行實踐,搭建生産環境性能壓測回歸體系,具備隻讀業務生産壓測的性能問題分析能力。

4 全業務全鍊路壓測階段

在上一個階段的基礎上增加寫入業務的性能壓測,進而開展對全業務實行全鍊路壓測,具備全業務的性能壓測能力、問題定位能力,做的更好一些還會增加系統防護能力,比如降級、限流、故障演練等。

為什麼要開源?

正如數列科技CEO曹學鋒表示“我們開源Takin的初衷其實很簡單,就是想讓更多的企業用上好的産品,幫助企業提供更好的使用者服務體驗,釋放更多的精力去拓展業務。相信大家的使用回報對于産品本身的發展疊代也是具有正向作用的,互惠互利實作良性循環。”

目前大多數企業仍在使用傳統的性能壓測方式,但随着分布式、微服務架構的發展,這種方式已經無法滿足系統性能的保障,數列科技決定把這款生産環境全鍊路壓測産品開源出來并正式命名為Takin。

當然Takin要做的不止于此,開源最大的特性在于開放包容與創新。希望産品開源能以開放的工作方式激發技術創新,吸引更多業界優秀的開發人員加入到生産環境全鍊路壓測技術的共創團隊中,讓技術更落地,連接配接不同的使用場景。

微服務架構在現代系統架構中已被普遍使用,業務複雜性和系統複雜性雙重作用使得保障和維持整個系統的高可用性變得困難異常,同時對研發效率也有較大負面影響。

為了解決性能瓶頸保證系統的高可用,需要對系統實施性能測試,但傳統的性能測試有仿真性、局部性和黑盒性三大問題。

數列科技開源全球首款生産環境全鍊路壓測平台 Takin

在生産環境進行性能壓測是公認的最優解決方案,但這也是一件極具挑戰性的事情,容易污染現網的資料庫、日志等資料,進行生産環境測試資料清理時操作複雜且危險性高,為此,生産環境全鍊路壓測技術應運而生。

Takin作為首款生産環境全鍊路壓測開源産品,可以較大程度地幫助企業降低生産全鍊路壓測平台的開發複雜度,在無業務代碼侵入的情況下,獲得鍊路治理、資料隔離、性能瓶頸定位等生産壓測核心能力。

什麼是Takin?

Takin是基于Java的開源系統,可以在無業務代碼侵入的情況下,嵌入到各個應用程式節點,實作生産環境的全鍊路性能測試,适用于複雜的微服務架構系統。

數列科技開源全球首款生産環境全鍊路壓測平台 Takin

Takin架構圖

Takin具備以下4個特點:

(1)業務代碼0侵入:在接入、采集和實作邏輯控制時,不需要修改任何業務代碼;

(2)資料隔離:可以在不污染生産環境資料和日志的情況下實施性能測試,可以在生産環境對寫類型接口進行直接的性能測試;

(3)鍊路治理:能夠幫助業務和微服務架構分析業務鍊路,以技術方式獲得功能視角的鍊路資訊;

(4)性能瓶頸定位:性能測試結果可以直接展現整個鍊路中存在性能瓶頸的微服務架構節點。

數列科技開源全球首款生産環境全鍊路壓測平台 Takin

Takin界面

Takin的開源内容

Takin開源内容主要包括三個部分:Agent探針、控制中台以及大資料子產品。在Java應用程式中植入探針(agent),它能收集性能資料、控制測試流量的流向,将資料上報給大資料子產品,大資料子產品會進行一些實時計算并對資料進行存儲,控制台則負責這些業務流程的管理和展現。三個部分各司其職,為業務提供無代碼侵入的、常态化的生産環境全鍊路壓測服務。

數列科技開源全球首款生産環境全鍊路壓測平台 Takin