概述
變更是指對線上系統的任何操作(如:發布、增加、修改或移除等),或其他對生產業務可能有影響的任何操作。基于阿里巴巴的歷史經驗,有一半以上的重大故障皆為變更觸發,因此,變更過程的風險防御顯得尤為重要,會直接關乎業務的穩定性。
變更系統是指承載任何對線上生產環境變更操作的系統或工具。例如擁有控制臺的白屏化系統/工具、壓測/演練平臺、黑屏腳本、開放出來的可觸發變更操作的API、不以變更為主要功能和目標的平臺/系統,如具備了對生產環境實施變更的功能,則相應的變更功能部分也視同變更系統對待等。
變更風控首先是一個業務理念,是穩定性領域內指導變更操作的一套標準,同時規范經濟體變更系統的能力建設。其次變更風控是一套技術體系,通過技術手段干預變更的整個生命周期,在變更前進行準入檢測,變更中約束漸進式的執行過程,并通過宏觀的觀測手段驗證變更的階段結果,及時發現問題進行回滾止血,同時在變更后,通過影響面的拓撲提供變更數據的應用,輔助故障定位和問題排查。
變更風控主要有三個目的:
收斂因變更觸發的重大故障;
規范業務團隊的變更操作,沉淀通用變更能力和執行標準;
幫助變更系統建設風控能力,護航業務變更執行。
標準的變更過程一般可分為:計劃、執行、結束三個部分,其中:
計劃階段:該階段主要包含變更申請,以及申請的準入審批。變更申請需要明確變更計劃、窗口期、潛在影響以及回滾方案。
執行階段:首先對變更行為進行二次校驗,如確定變更環境是否滿足要求,業務流量已按預期停止等。變更過程建議先在測試環境驗證后,再進入生產環境變更階段,同時灰度、分批進行。每批次間設定一定間隔時間,并進行觀察記錄至少一項可反應核心業務健康狀態的指標(業務監控項、日志文件名等),同時須具備回滾能力。
結束階段:通過監控、日志等數據驗證業務是否正常,并記錄上報相關數據。
對線上系統的任何操作(如:發布、增加、修改或移除等),或其他對生產業務可能有影響的任何操作時,都需要滿足變更風險防控的三原則“可觀測、可灰度、可回滾”。