嚴選電子面單穩定性治理實踐





穩定性治理是系統演進過程當中一個不容忽視的重要命題,這個命題每每須要持續性的投入,如何讓持續性的治理工做有目標、過程可跟進、結果能檢驗?本文結合嚴選供應鏈技術團隊在穩定性治理上的實踐,對治理工做中的可用性、監控告警和線上應急三個方面作了一些思考與總結。web



1. 什麼是穩定性治理
緩存

穩定性治理是個比較複雜的命題,業界沒有統一的定義。系統「穩定性」是指系統要素在外界影響下表現出的某種穩定狀態,但事實上,複雜系統中潛伏着大量影響穩定狀態的故障組合,那麼「穩定性治理」的核心用一個詞來歸納的話,「故障管理」應該比較合適,故障管理領域下面細分爲故障防範、故障感知、故障觸達、故障止損和故障覆盤5個子領域。穩定性治理的主要工做範圍涵蓋了可用性、監控告警以及線上應急。安全

接下來以嚴選電子面單服務的穩定性專項治理爲例,進一步說明在服務器倉庫部署 和外部服務商等不可控因素下如何保障穩定性。性能優化

2. 嚴選電子面單介紹服務器

嚴選電子面單亦稱爲一體化面單或者標準化面單,是指嚴選配送中心提供一整套能夠適配全部倉庫的面單服務,包括面單生成、面單打印、面單管理、服務監控等功能,是供應鏈環節賦能的基礎產品和服務。微信

電子面單服務因爲特殊的項目條件和歷史包袱,發展至今仍存在一些痛點問題,例如:app

  • 定位問題比較運維

面單打印發生異常時,須要聯繫倉庫服務商提供日誌用於定位問題,受響應時間和配合程度影響,解決異常的耗時每每被拉長。異步

  • 面單生產感知工具

嚴選側不瞭解倉內生產面單的狀態(是否打印、是否分包、打印成功/失敗等狀態),對履約鏈路中重要一環缺乏數據信息。

  • 總體流程監控

對倉內生產操做沒有總體的可視化監控界面和預警,面單服務中的異常沒法及時感知。

  • 面單打印反饋

倉內操做人員反饋打印慢時,沒法準確瞭解打印耗時、打印機、主機等數據信息。

  • 安全性信任度

電子面單服務中的面單打印SDK是嵌入倉庫服務商的倉庫管理系統(WMS),所以安全性備受關注。

3. 穩定性治理總體思路

3.1 總體策略與方向

有了痛點就有具體的策略和實施,實施策略覆蓋了事前、事中和過後3個階段,且造成了閉環。

(1)故障防範:若是新系統從設計、實現到運營就充分考慮穩定性,例如採用防護性設計,規範化操做和標準化運營等,通常能規避大部分故障風險。但對於存在歷史包袱的老系統來講,除了服務治理和優化外,還能夠藉助生產環境的按期演練來發現系統「穩定性」「魯棒性」「自動恢復性」上的問題。此外,與外部系統交互的過程當中,服務安全性是容易被忽略但倒是影響穩定性的重要因素之一。

(2)故障感知:除了對常規的「系統數據」「應用數據」收集外,還須要感知和識別生產過程當中的異常,從而須要進一步收集生產環境的「業務數據」

(3)故障觸達:基於第二環節故障感知的數據基礎上,創建相應的機器監控,應用監控和業務監控,最終實現「監控分層」「告警互補」,經過監控告警來觸達相應的技術人員、運維人員和業務人員,從而達到快速感知異常、快速輔助定位的效果。

(4)故障止損:前三個環節能夠理解爲事前操做,那麼此環節是故障發生時應該第一時間採起的動做,須要沉澱一整套驗證過的故障響應預案,覆蓋可能出現故障的「核心場景」「定位方法」「應對策略」,最終達到能應急響應、故障定位和快速恢復。

(5)故障覆盤:這一環節屬於過後操做了,覆盤源於圍棋術語,故障覆盤與圍棋對局後的復演類似,都是檢查對局中招法的優劣與得失,讓出現過的故障處於「發展可控」「範圍收斂」的狀態,同時從出現的故障中提煉出一些流程和經驗,以免後續出現一樣或同類的故障。

基於上述的閉環策略,穩定性專項治理實施的主要範圍包含「可用性」「監控告警」「線上應急」三大塊,發力的方向是達到「可預防」「可感知」「可快速處理」

3.2 案例實施與分析

3.2.1 可用性建設

電子面單服務專項治理在可用性上的主要工做分爲三個方面:「服務治理」「動態演練」「安全升級」

(1)服務治理從服務自己和上下游關係出發

在服務上下游關係上須要完成強弱依賴接口的治理,首先梳理出依賴關係、流量大小以及依賴強弱,在此基礎上去除沒有必要或者不合理的依賴,同時把一些不影響業務核心功能的依賴變成弱依賴,創建合理的系統拓撲。強弱依賴治理的成果能夠應用於系統改造、性能優化、限流降級、故障定位、容量評估等場景。

服務自己性能優化是一個持續的過程,也是提供服務方和服務使用方共同優化的過程,常見的技術手段包括業務場景的合理兜底、利用緩存提升系統的吞吐率,慢SQL治理,線程池調優、異步削峯、歷史數據的定時備份和清理、打印流程優化等等。

(2)生產環境的動態演練常態化

動態演練能夠理解爲消防演習,是驗證故障應對措施的有力手段。咱們創建了生產環境的按期動態演練計劃,覆蓋的維度從面單服務單臺機器故障、單條鏈路故障到整個面單服務故障的演練。

(3)服務安全升級及認證

因爲電子面單服務中的一部分是嵌入倉庫服務商的倉庫管理系統(WMS)中使用,所以安全性受到嚴選和服務商的共同關注。在電子面單服務安全的建設上,咱們前後完成了兩個方面的工做:

一方面咱們完善了面單服務的鑑權校驗,以及面單相關的敏感信息(商品信息、收件人信息等)隔離和隱私化;

另一方面是聯合第三方部門完成面單打印SDK的安全測試,得到服務商的承認,也方便後續的推廣和使用。

3.2.2 監控告警建設

監控告警的建設目標是完善監控能力和有效告警觸達,而建設的過程當中實現監控分層是爲了能達到有效監控和報警互補的效果,同時監控分層能促進每一個層次監控的深度和覆蓋面,防止建設失控。

在電子面單服務的監控告警建設上,咱們分爲兩步走,第一步完成了關鍵信息的遠程實時收集,覆蓋的範圍包括系統層面、應用層面、業務層面的數據。

基於第一步的結構化和非結構化的數據基礎,完善了面單服務鏈路的監控,包括倉內服務器監控,倉內生產監控,面單打印監控。

3.2.3 線上應急建設

        線上應急是故障發生時的行動指南,能有效下降故障定位和止損的時間,提高團隊內外的協做效率。在電子面單服務的線上應急建設上,咱們準備了三板斧:「場景」「工具」「預案」

(1)關於場景,首先是對核心系統的核心鏈路進行梳理,而後完成核心鏈路的日誌治理,最後對常見的單個異常場景和緊急批量異常場景進行分別梳理。

(2)關於工具,須要借力現有的成熟工具,好比嚴選預案平臺、嚴選壓測平臺、運維工具等,應用於全鏈路性能測試和異常場景處理,同時充分考慮外部依賴的不可控因素,創建相應的服務商緊急溝通羣。

(3)關於預案,針對高頻的單個異常,創建常規的處理SOP,從技術、產品和業務角度考慮優化或者工具化;針對批量異常場景,創建上下游團隊緊急處理和協做機制;最後採用按期的動態演練來驗證預案的可執行性和有效性,從而造成預案產出、驗證、優化的正向閉環。

4. 穩定性思考與拓展

穩定性治理的思考準備從兩個角度來談,一個角度是從穩定性治理的人出發,關鍵詞是「階段工做」「角色轉變」;另一個角度是從穩定性工做自己出發,關鍵詞是「持久戰」

對於穩定性治理的人來講,穩定性治理能夠當作是由衆多階段性工做組成,隨着治理的過程,治理的人逐漸發生角色上的轉變。一開始咱們都是被動方,被動的接收問題和處理問題;後來咱們開始考慮主動作些什麼,可以主動挑戰和測試核心鏈路,好比按期的梳理,動態演練和壓測;隨着治理經驗的積累和落地,咱們都會在下一個新的場景和故事裏轉變成前置主動方。

對於穩定性工做自己來講,穩定性工做不只僅是大促時的保障和平時的穩定性輪值,而應該是有目標、過程可跟進、結果能檢驗的體系化工做。穩定性治理是穩定性工做中的較爲複雜的部分,不是某個時間點的某個動做就能完全完成,而是一場很硬的持久戰,這裏面既包含歷史包袱,又有新的問題場景,現有的不少系統均會逐步經歷原始階段、部分具有、基本覆蓋、能力完善以及全面提高的階段,當前嚴選電子面單服務的穩定性治理正處於基本覆蓋到能力完善階段,除了這個服務外,有不少系統都將在這段進程中被推進着前進。



做者簡介

東晨雨,高級服務端研發工程師,參與嚴選供應鏈倉配系統建設,目前主要負責快遞配送業務、幹線物流業務以及倉儲相關業務,致力於爲嚴選用戶提供優質的物流服務。


招聘信息

網易嚴選供應鏈技術團隊正在招聘高級/資深JAVA開發工程師,歡迎各位小夥伴加入,一塊兒探索如何將技術運用到供應鏈倉儲、配送等領域,共同面對產品質量、系統穩定性、效率瓶頸等挑戰,助力業務快速創新迭代和研發效能提高。

👇點擊左下「閱讀原文」,查看團隊詳細招聘信息。



本文由做者受權嚴選技術產品團隊發佈




本文分享自微信公衆號 - 嚴選技術產品團隊(YanxuanTechProd)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索