數列科技CEO曹學鋒:百萬級全鏈路壓測產品,今天把它開源了

(原標題:數列科技CEO曹學鋒:百萬級全鏈路壓測產品,今天把它開源了)

6月25日,國內知名的系統高可用專家數列科技宣佈開源旗下核心產品能力,對外開放生產全鏈路壓測平臺產品的源代碼,並正式命名爲Takin。

目前中國人壽順豐科技、希音中通快遞、中國移動永輝超市、愛庫存、浙江大學等50+行業頭部公司都採用了該技術,10萬+探針同時線上運行,每天實時處理數百億條用戶請求,生成數百TB鏈路數據。目前,該項目已在Github上發佈,作爲全球首款開源的全鏈路壓測平臺,Takin的開源將爲更多企業提供超低門檻、超低成本、超高效率性能保障能力。

什麼是生產環境全鏈路壓測?

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

IT系統是工程師結合具體的業務場景基於一系列的基礎組件進行編碼搭建而成的,基礎組件本身的侷限性,以及代碼的不確定性,會使整個系統存在很大的不確定性,這種不確定性會讓系統在面臨一系列“風險”場景(高峰場景)時,表現得很脆弱,那該如何讓系統具備反脆弱能力呢?

通過生產環境全鏈路壓測,真實模擬“風險”業務行爲場景,實時監控系統表現,提前識別和快速定位系統的中的不確定因素,並對不確定因素進行處理,優化系統資源配比,使用最低硬件成本,使系統從容面對各種“風險”場景,達到預期的系統性能目標。通過這種方法,在生產環境上落地常態化穩定壓測體系,實現IT系統的長期性能穩定治理。

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

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。

未來任重而道遠,秉承着幫助企業解決微服務架構治理及性能問題的初心,Takin可以較大程度地幫助企業降低生產全鏈路壓測平臺的開發難度,真正做到爲更多企業系統的性能和穩定性提供保障。

數列衷心希望Takin能和業界攜手,共建更完整、更標準化的生產全鏈路壓測生態圈