應對多種場景,運維人是如何做好業務活動保障的
作為金融行業的領頭羊,平安集團每年都要面向廣大客戶舉辦多場業務活動,如秒殺、贈險等。業務活動形式不同,對IT系統承載能力的要求也不同。
每一場大規模業務活動都是IT運維人員的“練兵場”,成功承擔高并發訪問的背后,都有集團科技IT團隊專家們利用自己活動保障的豐富經驗、專業的技術水平和夜以繼的辛勤堅守。
那么,平安運維人是如何做好活動保障的呢?
01 梳理IT服務現狀,尋找風險點
知己知彼,方能百戰不殆。規劃業務活動時,IT團隊需對當前服務現狀進行全面梳理,結合核心業務流程,制定有針對性的、有效的應急方案,尋找潛在風險點并優化。
活動場景梳理
了解活動場景是做任何活動支持方案的首要行動項。不同活動形式,如秒殺、免費贈險、辦公簽到等,均有不一樣的用戶表現。不同活動對系統性能的要求也不一樣。
例如,秒殺的用戶行為更多表現為集中時間點登陸,集中訪問特定URL;免費贈險則為某段時間內的持續用戶登陸,但廣告推送、非工作等時間段訪問量會有明顯增量,但相對均衡;辦公簽到等有時效要求的活動,則是在某特定時間段區間內,存在集中峰值。
例如春節期間的直播活動,其帶有辦公簽到的集中上線性質,在該類活動中,需重點保障高峰期間用戶登陸、直播間進出、推拉流等場景。同時,直播間的個性化服務,如送禮物、IM等場景,則需分析其業務場景的核心程度,定義保障等級。
活動場景梳理完成后,需產出但不限于:業務活動形式、活動最高并發用戶及請求量、活動核心業務場景、活動時間區間等內容。
應用架構梳理
活動場景及保障等級梳理完畢后,可以根據提供功能的系統組件逐步梳理出組件上下游調用關系,整理應用架構信息。
在整理應用架構信息時,一方面需關注組件的架構方案是否符合活動形態,如秒殺類活動,不適用對關系型DB進行高頻次操作的架構,應以異步消息、高速緩存等輕架構應對前端高并發流量;
另一方面需關注業務場景實現過程中的調用關系及數據流,需區分業務場景數據流中的“關鍵”與“增值”。“關鍵”即為必須調用鏈,任何情況下均無法做降級服務;“增值”即為體驗鏈,需考慮功能開關、服務降級等措施,可作為應急預案中的有損服務的保障措施考慮點。
需重點提及,很多團隊在做應用架構梳理中,主要關注于應用,往往容易忽略網絡層、機房等基礎資源。網絡層如出入口的流量、CDN服務等;機房架構如多活架構、云平臺底層資源等,均是活動期間的評估維度。
應用架構梳理完成后,需產出但不限于:應用層面架構圖、核心數據流、關鍵服務與非關鍵服務清單、組件集群清單等信息,基礎架構層面如網絡、云平臺、多活策略等信息。
配置信息梳理
應用架構梳理完畢后,通過梳理配置信息,了解應用層各組件CI的配置環境。配置環境包含集群數量、集群上下游調用策略、集群在JVM的配置等(如線程數配置,內存配置等)。
同時需梳理基礎架構領域的網絡帶寬、云主機的最大IO控制、甚至每個集群的對外防火墻策略。
A、應用的日志文件及日志輸出級別是否合理。如常見的nginx日志、tomcat組件的out日志、acclog等,同時還需關注SDK日志。在與第三方服務合作中,常以SDK介質作為系統間的融合方案,SDK若涉及到PC客戶端、移動客戶端,需重點關注SDK的奔潰日志、接口請求日志等,需檢查日志是否有回傳機制,避免在生產發生異常時,無法獲取SDK日志信息作為問題診斷的基礎。
B、 各應用組件的核心URL請求及功能點描述。對于應用服務的核心URL,需有功能點的登記及描述,可作為請求分析的基礎信息輸入。
監控方案檢視及部署
配置信息梳理完畢后,即可對涉及到的所有顯性CI、隱形CI做監控配置的巡查檢視。集團IT團隊在用戶體驗(客戶端/瀏覽器端/小程序端/用戶感知)-服務鏈路-基礎資源-業務趨勢等層面,基于存在性-存活性-可用性-健康與效率等四個方面制定常規監控方案。除此以外,還有不限于以下范圍的特殊監控:
A、應用異常標志性關鍵字監控;
B、 非標組件,需研發配合,實現可衡量服務運行狀態正常的標記接口或日志;
C、 與第三方服務交互的應用場景,需考慮監控需覆蓋第三方服務可用性、容量,甚至在異常現場需提供snapshot、崩潰日志、異常請求返回錯誤代碼號等監控信息。
容量評估及擴容方案
基于業務活動重點場景的當前CI運行狀態數據,預估系統當前可支持并發量,與業務預期并發量進行對比制定初步擴容方案(該評估為初步評估,因業務活動綜合多類場景,無法準確評估容量比例,此評估可作為擴容參考)。其中擴容方案除常規的應用實例擴容外,還需考慮網絡出入口帶寬、CDN帶寬、數據庫容量、存儲容量、信令容量,以及配置類容量(實例的最大連接數、主機的文件打開最大數)等。
在擴容方案中,需注意:
A、在多層架構中,下游系統組件的容量需大于上游系統容量,避免系統容量在上游進來后引起后端的崩潰式堵塞;
B、 擴容策略需與業務場景充分結合,業務場景的降級級別與服務的容量策略需定義關系表,如當某A組件達到CPU資源95%時,某低級別的業務場景的降級服務需可快速配置,避免影響A組件的整體容量異常。
生產壓測及監控分析
使用壓測手段驗證擴容后的效果。結合活動場景、業務服務功能點,按逐步提升并發的方式制定壓測方案。分析壓測報告、監控信息的匯總報告,按照擴容策略分析存在容量資源瓶頸點,但需要警惕:
A、對瓶頸組件擴容后,同時需再做一次“回歸壓測”,觀察其下游服務是否因此出現瓶頸;
B、 壓測所發現的容量或性能瓶頸,并非所有現象均需要通過擴容方式提高保障,有時可通過服務拆解等架構優化、服務接口的代碼優化等方式達成效果。
TOP緩慢SQL/接口分析
TOP緩慢SQL/接口的分析梳理,是提升當前容量及性能的非常有效的手段。緩慢SQL的優化,通過執行計劃、高并發類的SQL轉換為緩存計算等方式,可明顯提升對應服務接口的效率。
每次業務峰值,緩慢SQL、緩慢接口很容易導致服務線程積壓堵塞,甚至占用大量內存。對于緩慢接口可通過threaddump分析,緩慢SQL如ORACLE,則可WAIT_EVENT/longsession/lock/latch_free等維度做分析,并由DBA/研發提供優化方案。
應急預案整理
應急預案通常分為兩大類型,一是業務層面的應急方案,二是IT組件異常應急方案:
A、業務層應急方案,可通過應用服務降級、服務中斷、業務開關等方式進行,同時可以通過業務錯峰等策略,實現高峰均勻;
B、 IT組件異常方案,一方面需以最窘迫情景分析,以每個組件為分析對象,當該組件異常時,是否可以以服務重啟/環境切換/功能開關調整等方式恢復;
另一方面,對于大面積異常時的方案,是否可采用限流、多活切換、有損提供部分功能等方式繼續提供服務,但該類策略需與事先與業務達成一致。
02 做好過程監視,不放過任何細節
不放過波峰細節,了解業務最前線
保留活動過程的現場是IT服務持續優化的最寶貴信息來源。在瞬間波峰時,基礎資源的穩定性、服務層面的性能波動、服務層面的功能報錯率、網絡流量、網絡建聯的上限控制等,需充分分析及記錄相關現象,運用監控時序數據、應用日志、甚至抓包等手段信息,逐步復原。
注意,我們通常會關注波峰時的系統容量、性能,但往往會忽略一點,即業務層面的用戶行為分析。我們為了達到整體穩定目標,對業務核心功能進行重點保障,對非核心功能做有效隔離、錯峰等措施,也能起到很好的效果。
比如在直播活動中,我們最常用到的功能點有直播間的進出、直播視頻的推拉流、送禮物、IM聊天等,但對以上提及的內容,最核心的功能點是直播間的進出、直播視頻的推拉流。在容量扛不住的情況下,可關閉送禮物、IM聊天功能;另外一種場景,直播間的創建與直播的現場是兩個不同場景,但可能會占用同一組件資源。當直播高峰時,可以考慮直播間的創建功能臨時錯峰,避免資源競爭。
全面檢查,尋找不合理的表現
在活動結束后,需安排對業務、應用、平臺等方面進行全面檢視。如對監控數據進行全面數據分析;對活動高峰期間的業務TOP URL/SQL進行分析;應用層面的服務鏈路性能及錯誤的變化現象;從平臺層面檢視帶寬、連接數、云平臺的超負荷狀態等;尋找在資源上、業務行為上、代碼健壯性等層面的異常現象,并逐個形成分析和跟蹤措施,從架構優化、擴縮容、代碼優化等方面安排改進。
03 良好的組織聯動,是成功的關鍵
團結一心,分工明確,聯動溝通
好的組織紀律,明確約定的工作溝通方式,團隊間達成信息透明、主動協作,是保障活動工作有效、高效開展的條件。
業務活動保障,通常是由多個團隊的多個角色臨時組件的團隊負責完成,有運維、業務、產品、架構、開發、測試、平臺、基礎架構等各個技術領域的人員,還可能涉及外部廠商。我們需要采取措施,妥善組織眾多不同背景的人員,避免混亂,讓大家擰成一股繩,共同朝向一個目標努力。
供應商溝通同樣重要
在生產問題診斷中,供應商是常常被忽略的角色,如網絡CDN、ORACLE廠商、網絡設備廠商等。應用層面達到一定的優化程度后,供應商從底層出發協助提供優化方案,往往能夠起到事半功倍的效果。當然,在業務保障過程中,對提供服務的廠商要信息透明,這也是一項基礎要求。
生產變更操作必須評審、記錄、透明
活動保障過程中,一切生產變更必須統一評審后再操作。生產變更歷來屬于風險極高的動作。在業務活動保障工作中,專業團隊常會出現“我發現了某個參數貌似不對”,就默默地調整了參數。
這種做法沒有在保障團隊中做記錄,當參數的調整引發生產問題時,無法回溯變更,無法快速定位異常導致點,常會導致問題定位效率低下。
因此,不管在架構檢視、壓測、擴容、業務峰值后的檢視措施等過程中,涉及到的生產變更方案及計劃,都需要進行評審,記錄,形成有跟蹤措施的變更計劃,信息要透明。
寫在最后
世上本沒有什么歲月安好,只不過有人替你負重前行。疫情前線,醫護人員的忘我奉獻,譜寫著一曲又一曲感人至深的贊歌。互聯網時代,在一場轟轟烈烈,用戶拍手叫好的大規模業務活動的背后,通常也是有無數IT技術專家們夜以繼日的辛勤堅守。
業務活動的保障支持,是一項極高強度的IT事項,需要IT人員具備敏銳的信息收集、分析、應急能力,同時需要各技術領域專家集中貢獻專業能力。只有在每場活動中積累經驗,在技術上不斷尋求創新,我們才能游刃有余,在每場業務活動中突破自己,締造運維人員自己的傳奇!
作者:黃偉星,平安科技運營工具平臺團隊監控規劃及方案實施組,負責平安集團Wiseapm監控產品建設與實施工作。