閱讀698 返回首頁    go 技術社區[雲棲]


性能測試 PTS 鉑金版來襲!阿裏雲發布T級數據壓測的終極秘笈

無限接近真實流量的全鏈路壓測,具備超高並發能力,多維動態支持壓測場景下的多變環境,1分鍾即可設置簡單壓測場景……這個神奇的壓測“黑科技”就是PTS鉑金版!

有別於PTS企業版,PTS鉑金版具有完全不同的出身,說起它,不得不從阿裏巴巴每年的全球剁手黨狂歡-雙11說起。因為和其他APM服務商不同,阿裏雲的壓測解決方案-性能測試服務 PTS 脫胎於阿裏巴巴內部平台,而這個內部平台堪稱雙11保障的核武器。在經過超高峰值、超高複雜度的千錘百煉後,PTS鉑金版正式對外輸出,讓廣大企業級用戶能用最低的投入,享受阿裏雙11保障級的性能測試服務。

來看下我們需要麵對的挑戰,以2016年雙11前30分鍾為例,每秒交易峰值17.5W筆,每秒支付峰值12W筆,相關鏈路光核心係統上百個,還有龐大的底層基礎設施(網絡、IDC、硬件、虛擬化、調度、彈性能力等),以及所有的中間件服務、數據庫、存儲,我們保障雙11的需求分層依次是確保沒有瓶頸短板、合理規劃容量配比降低成本、根據壓測模型動態調配容量配比。但是線下壓測(沒有參考價值)、單機類型壓測+估算模型(無法識別全局瓶頸)、單鏈路壓測(無法識別真實業務場景下多鏈路衝擊下的短板)都顯然遠遠無法滿足需求,為了讓最真實的情況能夠提前預演,我們最終采用了這套模擬全球幾億用戶一起購物狂歡的方案-全鏈路壓測平台。而它從2013年到2016年的4個年頭裏已經發展到3.0版本。

下圖是這幾年主要完成的工作。

其中一些關鍵點做下說明:

關於業務改造

涉及業務點100多個,交易鏈路幾十條,相關研發同學幾百號人,隻要是寫相關接口肯定需要改造,壓測設計的原則是業務係統的代碼盡可能的不做修改、通用的技術通過基礎設施和中間件來處理,比如壓測流量的標識怎麼在整個請求生命周期中一直傳遞下去、怎麼樣來對非法的請求做攔截處理。

關於數據構造

數據構造有兩個關鍵點:
1、由於參與雙11的買家、賣家、商品數量都非常龐大,需要構造同數量級的龐大業務數據;
2、同時業務數據的模型要盡可能貼近雙11當天0點的真實場景;
以上兩個關鍵點必須同時做到,否則全鏈路壓測結果的誤差會比較大,參考的價值將會大打折扣。我們為此專門搭建了全鏈路壓測的數據構造平台,構建業務模型,同時完成海量業務數據的自動化準備。

其實關於數據的模型應該是怎麼樣的問題。我們借助了BI工具結合預測算法對數據進行篩選建模,並結合每一年雙11的業務玩法進行修訂,產出一份最終的業務模型。業務模型的因子牽涉幾百個業務指標,包含買家數、買家類型、賣家數、賣家類型、優惠種類、優惠比例、購物車商品數、bc比例、無線pc比例,業務的量級等等。

關於數據隔離

比如直接把測試數據和正常數據寫到一起,通過特殊的標識能夠區分開,出於對線上的數據的安全性和完整性不能被破壞的考量,這個方案很快就被放棄了。然後有人提出了另一個方案,在所有寫數據的地方做mock,並不真的寫進去,這個方案不會對線上產生汙染,但也還是放棄了:mock對壓測結果的準確性會產生幹擾,而我們需要一個最貼近實際行為的壓測結果。經過反複的討論,最終找到了一個既不汙染線上、又能保障壓測結果準確性的方案:所有寫數據的地方對壓測流量進行識別,判斷一旦是壓測流量的寫,就寫到隔離的位置,包括存儲、緩存、搜索引擎等等。

關於流量構造

雙11當天0點的峰值流量是平時高峰的幾百倍,每秒鍾幾百萬次的請求如何構造同樣成了壓測的大難題。瀏覽器引擎或者一些開源壓測工具來模擬用戶請求的做法經過實際測試,要製作出雙11規模的用戶流量需要準備幾十萬台服務器的規模,成本是無法接受的,並且在集群控製、請求定製上存在不少限製。既然沒有現成的工具可以使用,隻好選擇自己研發一套全鏈路壓測的流量平台。

而隨著集團業務需求越來越多,急需將全鏈路壓測朝著平台化推進和實施,做到壓測能力開放、業務方自主壓測,讓更多業務方能夠享受到全鏈路壓測的優勢和便利。平台化上線之後大幅提升了全鏈路壓測平台的服務能力,比如2015年大促備戰的3個月內,壓測平台總共受理近600多個壓測需求(比14年提升20倍),執行壓測任務3000多次(比14年提升30倍),最重要的,這也為阿裏雲即將推出的性能測試PTS鉑金版做了很好的基礎建設。

生態化

2016年在三地五單元混合雲部署架構下,電商一半以上的資源都部署在雲上。如何能夠在最短的時間內完成一個單元的搭建和容量準備成為擺在我們麵前的一道難題。“大促容量彈性交付產品”在年初的時候立項,旨在減少甚至釋放活動場景的容量交付中人工投入,將大促容量交付的運維能力沉澱到係統中,使全鏈路容量具備“自動化”調整的能力。我們又提出了大促自動化備戰的想法,將大促容量準備的各環節進行係統層麵的打通,從業務因子埋點、監控體係、模型預測、壓測數據構造、壓測流量發送、壓測結果分析、壓測報表進行自動化的串聯,大幅縮減了我們在大促容量準備階段的人員投入和時間周期。圍繞全鏈路壓測的核心基礎設施,全鏈路壓測的周邊生態逐步建立起來,打通建站、容量、監控等配套技術體係。

所以,PTS鉑金版目前已經將異常強大的流量構造能力和簡易友好的數據輸入方式提供出來。阿裏雲希望幫助企業騰出更多時間和成本去關注業務,而不再需要投入大量資源去研究壓測的引擎、改造並讓它適應業務特性,也不需要搭建龐大的壓測集群以支持業務的高並發度,甚至不需要專門的性能測試人員或者具備相當的測試專業知識的人員,以上這些會讓企業投入大量的人力成本、機器成本,性價比較低。PTS鉑金版提供了簡潔、高效、優質和高性價比的方案,它的優勢和特點是:

  1. 無限接近真實的流量:覆蓋到三四線城市的節點能真正模擬高並發和發起點分散的用戶行為,端到端之間的網絡瓶頸也能暴露無遺;

  2. 超高並發能力:低成本構造千萬TPS級的壓測流量,多協議支持(HTTP、HTTPS、TCP、UDP 等);

  3. 壓測能力多維度動態支持:同時支持並發和TPS兩個維度設置,免除設置和換算的煩惱,壓測目標設置一步到位。壓測過程中還可以根據各種情況任意調整並發/TPS,靈活應對壓測場景下的多變環境;

  4. 使用零門檻:完全麵向開發的交互設計,開發自測試,貼心的提供快捷壓測功能,1分鍾即可設置一個簡單壓測場景,快速熟悉產品功能;

  5. 複雜場景輕鬆應對:即使是電商交易類複雜場景,依舊可以方便的通過腳本拚裝,完全模擬用戶真實行為;

  6. 豐富的展現形式:壓測過程中重要指標實時展現,配合阿裏雲互聯網中間件的業務實時監控ARMS、分布式應用服務EDAS,可提供更全麵、細致的性能指標,快速識別性能瓶頸;

是不是想趕緊看看這個核武器——PTS鉑金版長啥樣?

沒問題,免費試用的傳送門已經打開。

最後更新:2017-08-13 22:29:28

  上一篇:go  博客啟動第一天
  下一篇:go  如何使用ARMS配置tengine的日誌監控