DoNews4月14日消息,據(jù)騰訊云官方公眾號公布,4月8日15點23分,騰訊云團隊收到告警信息,云API服務處于異常狀態(tài);隨即在騰訊云工單、售后服務群以及微博等渠道開始大量出現(xiàn)騰訊云控制臺登錄不上的客戶反饋。
經(jīng)過故障定位發(fā)現(xiàn),客戶登錄不上控制臺正是由云API異常所導致。云API是云上統(tǒng)一的開放接口集合,客戶可以通過API以編程方式管理和操控云端資源,云控制臺通過組合云API提供交互式的網(wǎng)頁功能。
故障發(fā)生后,依賴云API提供產(chǎn)品能力的部分公有云服務,也因為云API的異常出現(xiàn)了無法使用的情況,比如云函數(shù)、文字識別、微服務平臺、音頻內(nèi)容安全、驗證碼等。此次故障一共持續(xù)了近87分鐘,期間共有1957個客戶報障。
據(jù)騰訊云方面公布,此次發(fā)生故障的控制臺和云API是對控制面的影響。這次故障中客戶已經(jīng)配置好的服務器等IaaS資源,包括已經(jīng)部署運行的業(yè)務,沒有受到云API異常的影響。其他以非云 API 方式提供服務的PaaS和SaaS服務,處于正常服務的狀態(tài)。
但是,用API提供的服務類產(chǎn)品(需要“酒店前臺服務“)有不同程度的影響,比如騰訊云存儲服務調(diào)用當天有明顯下滑。期間售后團隊協(xié)助部分客戶做了業(yè)務容災預案的實施,將受影響服務做調(diào)度以快速恢復客戶的業(yè)務服務。
問題復盤
整個處理過程如下:
1. ?15:23,監(jiān)測到故障,立即執(zhí)行服務的恢復,同時進行原因的排查;
2. ?15:47,發(fā)現(xiàn)通過回滾版本沒能完全恢復服務,進一步定位問題;
3. ?15:57,定位出故障根因是配置數(shù)據(jù)出現(xiàn)錯誤,緊急設計數(shù)據(jù)修復方案;
4. ?16:02,對全地域進行數(shù)據(jù)修復工作,API服務逐地域恢復中;
5. ?16:05,觀測到除上海外的地域API服務均已恢復,進一步定位上海地域的恢復問題;
6. ?16:25,定位到上海的技術組件存在API循環(huán)依賴問題,決定通過流量調(diào)度至其他地域來恢復;
7. ?16:45,觀測到上海地域恢復了,此時API和依賴API的PaaS服務徹底恢復,但控制臺流量劇增,按九倍容量進行了擴容;
8. ?16:50,請求量逐漸恢復到正常水平,業(yè)務穩(wěn)定運行,控制臺服務全部恢復;
9. ?17:45,持續(xù)觀察一小時,未發(fā)現(xiàn)問題,按預案處理過程完畢。
故障的原因是云API服務新版本向前兼容性考慮不夠和配置數(shù)據(jù)灰度機制不足的問題。
本次API升級過程中,由于新版本的接口協(xié)議發(fā)生了變化,在后臺發(fā)布新版本之后對于舊版本前端傳來的數(shù)據(jù)處理邏輯異常,導致生成了一條錯誤的配置數(shù)據(jù),由于灰度機制不足導致異常數(shù)據(jù)快速擴散到了全網(wǎng)地域,造成整體API使用異常。
發(fā)生故障后,按照標準回滾方案將服務后臺和配置數(shù)據(jù)同時回滾到舊版本,并重啟API后臺服務,但此時因為承載API服務的容器平臺也依賴API服務才能提供調(diào)度能力,即發(fā)生了循環(huán)依賴,導致服務無法自動拉起。通過運維手工啟動方式才使API服務重啟,完成整個故障恢復。
改進措施
綜合盤點這次故障,最根本的原因是在版本變更過程中,沒有有效執(zhí)行沙箱驗證和預案演練,暴露了在變更管理上的不足,接下來將從以下幾個方面快速進行改進和完善,以減少故障的影響范圍和影響時長。
第一,提升系統(tǒng)韌性
1、定期執(zhí)行預定的變更策略模擬演練,確保在真實故障發(fā)生時,能夠迅速切換到恢復模式,最小化服務中斷時間。
2、優(yōu)化服務部署架構(gòu),通過分層架構(gòu)、代碼審查和監(jiān)控等手段, 避免API服務中潛在的循環(huán)依賴問題。
3、提供API服務逃生通道,當故障發(fā)生時,可供調(diào)用方快速切換。
第二,強化變更管理與保護措施
1、完善自動化測試用例庫,在系統(tǒng)變更前通過沙箱環(huán)境對變更內(nèi)容進行嚴格驗證。
2、實施灰度發(fā)布策略,逐步推廣新功能或配置更改,按集群、可用區(qū)、地域逐步生效,以便在發(fā)現(xiàn)問題時能夠迅速回滾。
3、引入異常自動熔斷機制,當檢測到系統(tǒng)異常時,能夠立即中斷變更過程。
第三,增強故障響應與溝通能力
1、對故障處理流程進行全面升級,確保實時更新故障處理進度和預計恢復時間點,提升故障報告發(fā)布效率。
2、在對外發(fā)布的故障通知中,清晰闡述受影響的業(yè)務范圍、故障根因及預計修復時長,保持透明度。
3、優(yōu)化騰訊云健康狀態(tài)看板(StatusPage)的信息展示邏輯,解除對云API等云服務的依賴,通過引入緩存和容災機制,確保即使在云服務出現(xiàn)故障時,能準確、及時地傳遞故障信息。