1. 程式人生 > >阿里2017雙11:常態化智慧化全鏈路壓測

阿里2017雙11:常態化智慧化全鏈路壓測

我們面臨的挑戰

阿里的雙十一已經成為全球的超級工程了,在這個超級工程中,全鏈路壓測是很重要的一個環節。整個集團層面的全鏈路壓測,涉及到的BU和團隊非常多,對於這樣一個涉及多個團隊協作的事項,如何儘量的減少人員的投入,減少全鏈路壓測的次數,同時又能保證壓測能夠達到目標,成為一個必須要去突破的問題。

集團的全鏈路壓測主要涉及交易和導購兩部分。交易的全鏈路啟動比較早,相關的平臺,工具和流程經過幾年的沉澱,已經比較成熟,形成了較為穩定的體系。導購的全鏈路壓測,因為導購業務的特殊性,例如入口流量存在較多的不確定性,系統之間的呼叫錯綜複雜,加上導購的業務,日常態和大促態差異比較明顯等。

阿里雲

以上是經過抽象之後的導購的全鏈路壓測模型,實際的模型,會更復雜,入口的分散,系統之前的互相依賴等,如下圖顯示。

阿里雲

另外導購的全鏈路壓測2016年才啟動,還沒能夠形成體系。針對這些問題和挑戰,2017年,我們通過構建一站式的全鏈路管理平臺。克服了上述的問題,取得了良好的效果。

在2017年導購的全鏈路壓測啟動之前,我們先回顧了過去導購全鏈路壓測經歷過的問題。

1. 壓測的人力消耗已經越來越不可管控,全鏈路壓測導購人力消耗,150人,雙十一當天1000人,如何減少人力已經成為迫在眉睫的事情

2. 應用多,入口分散,每次壓測都需要調整流量模型,頻繁的調整對收口業務的穩定性帶來了較大壓力

3. 無歷史參考資料,換一撥人很多歷史經驗無法沉澱,造成人力的巨大浪費

4. 上下游流量人肉的收集與管控,導購場景相互之間網狀呼叫,造成長期流量評估的巨大誤差

5. 無壓測效能過程管控,研發人員一有效能問題第一反應就是要機器

針對這些問題,我們構建了一站式的全鏈路壓測平臺。以下是平臺核心功能,主要包括壓測構造、壓測執行(偏監控)、分析問題和定位。

壓測構造

導購的全鏈路壓測,壓測需求的構造,是很重要的一個環節,對壓測結果的準確性有很重要的影響,同時也需要不小的工作量。2017年,我們在壓測構造方面提供了以下的豐富的能力

(1)資料工廠:提供快速構建壓測資料,支援多種型別和靈活的引數構建規則,並實現了壓測資料在關聯絡統之間的共享,降低了壓測資料準備的工作量提高了壓測資料的準確性

(2). 壓測流量模型和需求: 導購的流量存在多單元入口,以及入口流量的不確定性,這對壓測需求的構建有一定的影響。2017年,我們通過構建壓測流量模型。並以此作為基礎,直接一鍵構建壓測需求,並支援壓測需求的批量更新,合併,複製,需求內鏈路壓測資料之間的共享等,大大降低了壓測需求構建的工作量。

流量模型梳理

近1000個鏈路場景,系統與系統之間存在互相呼叫,系統流量之間存在千絲萬縷的聯絡,給核心系統的業務評估帶來了巨大的挑戰。評估流量模型的時候很容易產生遺漏,也容易產生評估的偏差。OPM可以實時錄入線上流量,產生流量呼叫比例圖(如上圖所示),當入口流量確定時,可以協助使用者梳理整體流量,為流量的梳理提供幫助

在這個基礎上,我們增加了導購全鏈路壓測的全域性視角,通過提供以下的能力,達到全鏈路壓測的一體化。

1.任務管控:可以管控導購全鏈路壓測的所有應用鏈路,包含壓測需求、壓測鏈路、流量模型、並提供了全域性流量檢視。對導購的全鏈路壓測的全貌,可以實時檢視。達到對整個壓測的視覺化

2. 進度和變更管控:通過和ebay的協作,對全鏈路壓測的時間進度,壓測變更,等進行管控,使得整個壓測的過程,有條不紊的進行。

壓測執行時

導購的全鏈路壓測,涉及到的應用比較多,要關注的點比較多,例如入口流量是否正確,各單元的流量比例是否正確,是否有跨單元呼叫,實際壓測流量和預設值是否一致等等。藉助現有的監控還滿足不了。為此,2017年,我們在壓測執行時的全域性監控方面進行了一些努力。除去集團監控實現的功能外,OPM還提供了以下的全域性檢視。

1. 壓測大盤:實時展現壓測流量,包括入口流量,各單元的流量,壓測流量與預估值的實時對比等,可以全域性監控導購的流量是否符合預期

2. 全域性系統監控大盤:系統指標(cpu、load、網路等)、服務指標(rt、qps、超時等)、上下游呼叫量等,可以很直觀的發現整個全鏈路中,效能瓶頸在哪個應用上。

3. 運維狀態大盤:系統監控、業務監控、預案、限流。

上述的全域性檢視,除了在壓測執行的過程中可以實時檢視,OPM也提供了快照的功能,持久化在平臺中,可以重新進行分析和檢視

分析定位

OPM通過整合集團內的各監控平臺,構建了分析定位效能問題的基礎,

1. 變更分析:全鏈路壓測效能出現問題時,我們首先想回到壓測的那個時刻,瞭解當時執行了什麼變更?推送了什麼配置?當時的效能快照是什麼?OPM提供實時快照能力,實時記錄時間的所有變更,為後續效能的分析提供資料支援。系統變更聚合展示,可以快速定位出效能的變化與系統變化之間的關聯。

2. 效能快照:系統性能快找,通過自定義的效能快照採集和生成,方便事後對過去任意時間系統狀態進行查詢和分析

2017年的新嘗試--構建效能基線

2017年,我們針對導購的核心應用,啟動了構建效能基線的計劃。通過週期性的在隔離環境進行基線壓測,及時發現應用的效能問題,儘早發現,儘早解決,避免了效能問題遺留到大促前,大大降低了系統的效能風險。

隔離環境(強調效能基線) 何在白天不干擾線上業務進行常態化的叢集壓測一直是效能基線的難點,opm提供隔離環境,使線上叢集壓測能夠常態化的進行。

首先系統系統自動化的隔離一堆機器,隔離的環境與線上系統邏輯隔離,壓測流量自動引流至隔離環境。當壓測結束時,隔離機器自動歸還給線上環境,一鍵恢復

效能基線與趨勢: 通過持續的基線壓測和基線管理,可以全域性檢視應用的效能以及變化趨勢,並對基線壓測過程中發現的問題進行跟蹤和解決。使應用的效能瓶頸在日常的基線壓測就發現和解決,避免了再大促全鏈路壓測時才發現,降低了系統的風險。

2017年,我們取得的效果

1. 人力成本:從之前多個人協同負責一個系統壓測,開始轉變成一個人可以慢慢負責一條鏈路的壓測

2. 壓測準備時長:從每次壓測需要提前幾天的準備到隨時隨刻可以進行全鏈路壓測

3. 不確定性到確定性:下游業務每次評估壓測流量從收集資訊,靠猜的不確定性到系統給出結果流量的確定性

適用場景

1.適用壓測模型:入口分散,有統一收口的壓測模型

2. 隔離環境與效能基線:常態化的支撐線上效能壓測

3. 複雜系統的流量模型管控:壓測鏈路上千場景的流量模型管控