谷歌公布了近期的一個事件的根本原因分析結果,該事件影響了谷歌的部分云服務,并在大約32分鐘的時間內將錯誤率提高了33%至87%,后續他們將采取措施改善平臺性能和可用性。
該事件影響了很多依賴 Google HTTP(S)負載均衡器 的谷歌服務的客戶,包括Google Kubernetes Engine、Google App Engine、Google Cloud Functions、Stackdriver Web UI、Dialogflow和Cloud Support Portal/API。客戶在大約32分鐘的時間內隨機收到502錯誤碼或連接被重置的錯誤,這是從谷歌工程師接收到監控系統發出故障率警報的那一刻開始到部署修復程序的時間。
Google HTTP(S)負載均衡旨在均衡多個后端實例和多個區域的HTTP和HTTPS流量。它的一個好處是云應用程序可以使用單個全局IP地址,極大地簡化了DNS設置。為了在連接設置期間實現最佳性能,該服務利用第一層谷歌前端(GFE)就近接收用戶請求,VPS,并將請求轉發到第二層GFE。第二層GFE構成全局服務器網絡,將請求發送到相應的后端,而不管它們位于哪個區域。
事件的根本原因是,為了提高第二個GFE層的安全性和性能而添加的新功能中包含未檢測到的錯誤。該錯誤是由生產環境中的一個配置變更引發的,它會導致GFE隨機重啟,而在重啟過程中,服務容量丟失。
所幸的是,包含該錯誤的功能尚未投入使用,因此谷歌工程師通過恢復配置變更來部署修復程序,服務在幾分鐘后恢復其正常行為,在緩存熱身后故障率也恢復正常。
為了預防事件再次發生,香港服務器租用,除了改進GFE測試棧并添加更多安全措施以防止未在使用中的功能被錯誤投入使用外,Google Cloud團隊還計劃改善GFE池不同分片之間的隔離,以縮小故障范圍,并為GFE池的配置變更創建儀表盤,讓工程師更容易識別有問題的系統變更。