您的位置:首頁 > 資訊 >

全球快消息!一個代碼拼寫錯誤,導致微軟 Azure DevOps 服務在巴西停擺十小時


(相關資料圖)

IT之家 6 月 4 日消息,由于一個簡單的代碼錯誤,微軟 Azure DevOps 在南巴西地區的服務中斷了約十個小時。IT之家注意到,微軟的軟件工程經理 Eric Mattingly 在周五為這次中斷道歉,并揭示了事故的原因:一個拼寫錯誤導致了十七個生產數據庫被刪除。

Azure DevOps 提供一組集成的服務和工具,用于管理軟件項目,從規劃和開發到測試和部署。Mattingly 解釋說,Azure DevOps 的工程師有時會對生產數據庫進行快照(Snapshot),以便調查報告的問題或測試性能改進。他們依賴于一個每天運行的后臺系統,該系統會在一定時間后刪除舊的快照。近日 Azure DevOps 的工程師進行了一次代碼升級,用支持的 Azure.ResourceManager.* NuGet 包替換了已棄用的 Microsoft.Azure.Managment.* 包。這導致了一個大型的拉取請求,其中更換了舊包和新包中的 API 調用。

拼寫錯誤就發生在這個拉取請求中,它將刪除快照數據庫的調用換成了刪除托管數據庫的 Azure SQL Server 的調用。Azure DevOps 有專門的測試來發現這樣的問題,但 Mattingly 說,由于錯誤的代碼只在某些條件下運行,因此現有的測試覆蓋不到。

幾天后,軟件更改被部署到南巴西規模單元(特定角色的服務器集群)的客戶環境。該環境有一個老的快照數據庫,觸發了這個錯誤,導致后臺任務刪除了“整個 Azure SQL Server 和所有十七個生產數據庫”。

所有數據都已經恢復,但花了十多個小時。Mattingly 說,有幾個原因造成這種情況。其中之一是,由于客戶無法自己恢復 Azure SQL Server ,必須由值班的 Azure 工程師來處理,這個過程大約需要一個小時。另一個原因是,數據庫有不同的備份配置:有些配置為區域冗余備份,有些配置為更新的地理區域冗余備份,解決這種不匹配增加了很長的恢復時間。

為了防止問題再次發生,Mattingly 稱微軟已經采取了各種修復和重新配置措施,并再次向所有受此中斷影響的客戶道歉。

標簽:

相關閱讀