性能利器 Takin 來了!首個生產環境全鏈路壓測平台正式開源


性能利器Takin來了!首個生產環境全鏈路壓測平台正式開源

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:https://github.com/shulieTech/Takin

開源社區:https://news.shulie.io/?p=3024(了解詳細操作文檔)

 

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

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

 

直播預告:

6 月 25 日晚上 7 點半,數列兩位創始人震南和平威將在兩場直播中為大家答疑解惑,感興趣的小伙伴可以掃碼進群,現在進群開播有提醒,還有 iphone12 等你來領哦!

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM