性能壓測,是保障服務可用性和穩定性過程當中,不可或缺的一環,可是有關性能壓測的體系化分享並很少。從本期開始,咱們將推出《Performance Test Together》(簡稱PTT)的系列專題分享,從性能壓測的設計、實現、執行、監控、問題定位和分析、應用場景等多個緯度對性能壓測的全過程進行拆解,以幫助你們構建完整的性能壓測的理論體系,並提供有例可依的實戰經驗。web
第一期:《壓測環境的設計和搭建》,專題出品人| 阿里巴巴 PTS 團隊算法
通常來講,保證執行性能壓測的環境和生產環境高度一致是執行一次有效性能壓測的首要原則。有時候,即算是壓測環境和生產環境有很細微的差異,都有可能致使整個壓測活動評測出來的結果不許確。數據庫
1. 系統邏輯架構服務器
系統邏輯架構,即組成系統的組建,應用之間的結構,交互關係的抽象。最簡單最基本的就是三層架構。
三層邏輯結構圖網絡
更復雜的邏輯結構架構
如下是說明:併發
2. 物理架構
物理架構負載均衡
3. 硬件、軟件和網絡運維
軟件中對系統使用到的中間件有一個瞭解,不只能夠幫助設計更仿真的壓測環境,也有助於在壓測過程當中,加快瓶頸,問題的定位和解決。分佈式
對比表格
壓測環境方案 | 適用場景 | 優勢 | 缺點 | 成本 | 阿里及阿里雲客戶應用狀況 |
---|---|---|---|---|---|
生產環境子集,少許服務器,低配置 | 項目開發交付初期,對應用自己進行性能問題探測 | 1.基於已有的測試環境搭建,相對難度小 2.成本較低 | 1.不徹底仿真,沒法壓到全鏈路的問題,基礎設施的瓶頸問題 | 低 | 阿里內部有一套獨立完整的線下性能壓測環境,與應用發佈管理系統打通,被大量應用於項目開發前期的性能瓶頸探測場景 |
生產環境子集,少許服務器,同配置 | 服務器規模按照生產環境規模縮放,適用於容量探測 | 相比第一種壓測結果更可信 | 1.按比例縮放的環境,壓測結果也不能徹底可信 2.底層基礎設施的問題可能遺漏 | 較低 | 阿里內部智能容量規劃系統所依賴的環境就是這種,按比例縮放的同配置壓測環境 |
生產環境徹底複製版 | 最理想的壓測環境 | 1.壓測效果可以保證 2.不受時間限制,隨時可壓 3.徹底不影響生產環境的數據以及用戶訪問 | 1.成本相對高 2.單憑壓測人員搭建,複雜度高 3.存在後續維護成本 | 高 | 阿里雲上,PTS已有客戶使用該複製環境進行全仿真的性能壓測。阿里雲上快速複製系統同樣的環境用於壓測,操做簡單快捷 |
生產環境 | 評測生產環境性能的最直接真實的 | 1.壓測結果易於被承認。2.節約成本 3.壓測基礎設施易於部署 | 1.影響線上真實的用戶訪問,因此須要在業務低谷進行 2.數據寫入須要想辦法進行隔離 | 較低 | 電商系的全鏈路壓測,基於真實的線上生產環境進行 |
無論哪一種壓測環境方案,在落地成本,知足需求程度上都有區別,接下來對幾種壓測環境結合在阿里的應用進行介紹。
既然是低配環境,壓出來的數據彷佛徹底不能用做生產環境運行的參考,但實際上,這種環境下的壓測,也是很是重要的一環。主要體如今項目研發階段的價值上。
方案價值
存在的問題
構建低配環境,能夠是普通的測試環境,跟線上徹底隔離。可是要解決如下問題
如何解決
阿里內部有一套完整的系統用於支撐阿里內部每日成千上萬的研發階段的性能壓測需求。
方案的挑戰
存在的問題
容量規劃不是直接在生產環境進行的,由於生產環境的最終容量配比,是參考自容量規劃產出的數據。在生產環境進行的壓測,是最後的驗收階段,在容量規劃完成以後。
提供一套獨立的的生產環境子集-隔離環境,用於容量規劃要解決的問題:
解決方案
想詳細瞭解,阿里容量規劃的技術演進可參考這裏。
如今隔離環境就是最新容量規劃生態中的重要基礎。隔離環境的支持,才能支撐常態化的容量規劃運行,持續不斷的改進。
固然這裏面的涉及的技術細節還有不少:
面臨的挑戰
生產環境複製版面臨的挑戰很是多:
其中,若是要對生產環境進行徹底的複製,將要面臨如下挑戰
存在的問題
對於傳統時代的壓測工程師來講,這樣一系列的操做,就是新搭建一套「影子系統」了,看起來有點像不可能完成的任務。要完成上述任務,壓測工程師面臨巨大的挑戰:
因此咱們不多看到有公司進行這樣的「生產環境複製」操做。小型公司可能沒那麼多人力實現,大中型公司,成本就更加難以接受了。可是如今雲化趨勢的潮流中,這種方案開始體現出優其越性了。
解決方案
咱們先看一下阿里雲的產品架構圖
產品服務很是豐富,可是不太利於咱們理解和複製線上環境用於壓測這個主題。具體到某一個場景的系統在阿里雲的落地:
圖片出處:https://rensanning.iteye.com/blog/2303440
搭建一個雲上應用的最小集應該須要用到:
若是要在阿里雲上覆制以上線上系統。
step1 購買跟線上集羣同規模同配置的ECS,部署應用;
step2 複製線上RDS;
step3 SLB配置新入口,指向複製環境;
step4 開始線上壓測;
在阿里雲進行生產環境複製有如下優點:
談分佈式性能壓測,就離不開全鏈路壓測技術。目前,也有很多互聯網企業開始構建本身的全鏈路壓測體系,咱們將阿里的實踐濃縮成一張全鏈路壓測模型圖。
更多實踐,能夠點擊這裏
本文做者:
襄玲(花名):阿里巴巴技術專家,PTS 研發,近期主導整理和推進雲時代性能壓測的思想和標準,雲計算性能測試國標項目組成員,內部穩定性保障系統之預熱系統負責人。
本文做者:中間件小哥
本文爲雲棲社區原創內容,未經容許不得轉載。