什麼是生産環境全鍊路壓測?
全鍊路壓測是一種使用最低成本,使系統達到最确定的性能目标的方法,能夠保障業務的連續性,讓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。