當前位置:
首頁 > 最新 > 故障周第二彈:谷歌雲平台全局負載均衡服務發生中斷

故障周第二彈:谷歌雲平台全局負載均衡服務發生中斷

編輯 | 無明,張嬋

本周故障頻發,前腳亞馬遜Prime Day出了點問題,後腳谷歌雲平台發生網路事故。

美國當地時間 7 月 17 日中午 12 點 17 分,谷歌雲平台遭遇服務故障,全局負載距衡器 (Global Load Balancer,GLB) 返回 502 狀態碼,Google Cloud, App Engine 以及 Stackdriver 等依賴雲 HTTP 負載均衡的服務均受到影響。Snapchat,Pokemon Go 和 Spotify 等使用谷歌雲服務的流行應用程序和站點也受到影響。

在事故發生約 28 分鐘,谷歌工程團隊找到了事故原因,並開始部署修復程序。在 12:55,服務已經完全恢復。截止 13:05,問題已經解決,所有受影響的用戶服務都恢復了正常。

7 月 19 日,谷歌雲平台官方發布了事故分析報告,闡述了問題始末和事故原因,用戶補償以及預防措施。以下是谷歌雲平台的分析報告:

問題概要

本周二,也就是 2018 年 7 月 17 日,谷歌雲應用引擎(Google Cloud App Engine)、谷歌 HTTP(S) 負載均衡器或 TCP/SSL 代理負載均衡器的用戶經歷了長達 32 分鐘的故障,他們分別收到了 33%至 87%不等的錯誤率。用戶可以看到 502 狀態碼或連接被重置的錯誤。對於在此次事件中服務或業務受到影響的用戶,我們深表歉意。與此同時,我們正在採取措施改善平台的性能和可用性。我們也將為受該事件影響的用戶提供 SLA 補償。

事件細節

太平洋時間 2018 年 7 月 17 日 12 點 17 分到 12 點 49 分,一些發送到谷歌雲 HTTP(s) 負載均衡器的請求返回了 502 狀態碼。在此期間,返回的 502 狀態碼的比例從 33%到 87%不等。自動監控系統在 12 點 19 分向谷歌工程團隊發出告警。12 點 44 分,工程團隊找到了可能的根本原因,並部署了修復程序。12 點 49 分,修復生效,502 錯誤率迅速恢復到正常水平。伴隨著流量回升和緩存逐漸起效,服務經歷了幾分鐘的降級延遲。12 點 55 分,服務完全恢復,與雲 TCP/SSL 代理負載均衡器的連接被重置。依賴雲 HTTP 負載均衡的雲服務(如谷歌雲應用引擎應用程序服務、谷歌雲 Function、Stackdriver Web UI、Dialogflow 和 Cloud Support Portal/API)在事件期間均受到影響。

由於位於雲 HTTP(s) 負載均衡器後面的服務對雲 CDN URL 的引用減少,以及無法更新過時的緩存條目或在緩存未命中時插入新的內容,雲 CDN 緩存的命中率下降了 70%。於是,運行在谷歌 Kubernetes 引擎上並使用 Ingress 資源的服務返回了 502 狀態碼。通過雲負載均衡器提供服務的谷歌雲存儲的流量也受到了影響。

其他的谷歌雲平台服務未受影響。例如,直接使用 VM 或網路負載均衡的應用程序和服務不受影響。

根本原因

谷歌的全局負載均衡器是基於雙層架構的谷歌前端(Google Front End,GFE)而構建的。GFE 的第一層負責響應就近用戶的請求,以便在建立連接期間最大限度地提高性能。這些 GFE 將請求路由到距離目標服務最近的第二層 GFE。這種架構可以降低客戶端的連接延遲,同時可以利用谷歌的全球網路將請求發送給後端,不管它們位於哪個區域。

GFE 開發團隊正在為 GFE 添加新的特性,用以提升安全性和性能。這些特性已經被引入到第二層 GFE 的代碼庫中,但尚未投入使用。其中有一個特性包含了一個會導致 GFE 重啟的 bug,這個 bug 在測試和首次部署中未被檢測出來。在事件剛發生時,生產環境中的一個配置變更會間歇性地觸發這個 bug,導致受影響的 GFE 反覆重啟。由於重啟無法在瞬間完成,第二層 GFE 的可用容量就減少了。雖然一部分請求得到了正確的響應,但也有一部分請求被中斷(連接被重置)或由於等待 GFE 重新上線而被拒絕服務。

補救和預防

谷歌工程師在 3 分鐘內收到告警,並立即著手調查原因。太平洋夏令時間 12 點 44 分,工程團隊發現了根本原因,並迅速回滾了配置變更,受影響的 GFE 停止了重啟。隨著所有 GFE 恢復服務,流量也恢復到正常水平。

除了修復問題之外,我們還將通過以下幾項措施來防止和減少此類故障的影響:

我們正在添加額外的安全措施來禁用不在使用中的功能。

我們計劃加強 GFE 的測試棧,降低二進位文件中可能包含會導致任務重啟的 bug 的風險。

我們還將對 GFE 池的不同分片進行額外的隔離,以減少故障的影響範圍。

最後,為了加快診斷速度,我們計劃為 GFE 池創建配置變更儀錶盤,讓工程師可以更輕鬆、更快地查看、關聯和識別有問題的系統變更。

對於此次事件對用戶及其業務造成的影響,我們再次深表歉意。對於影響服務可用性和可靠性的事件,我們都非常重視,尤其是跨地區的事故。我們正在對事件進行徹底的調查,並將調查結果作為 GCP 工程的首要參考。

有網友說,谷歌出問題幾乎等於互聯網癱瘓,這很有趣,也很可怕。的確,在雲計算時代,我們能以更低廉的成本更靈活地利用雲中的各種資源,但是一旦「雲」出了故障,就會牽一髮而動全身,造成大範圍的影響。對於故障,只能盡量降低發生率,誰又能完全避免出現故障呢?

活動推薦


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 高效開發運維 的精彩文章:

觀察之道:帶你走進可觀察性
VMware推出VMware Kubernetes Engine:市場威脅下的防衛舉措?

TAG:高效開發運維 |