IT之家 6 月 4 日消息,由于一個簡單的代碼錯誤,微軟 Azure DevOps 在南巴西地區(qū)的服務中斷了約十個小時。IT之家注意到,微軟的軟件工程經(jīng)理 Eric Mattingly 在周五為這次中斷道歉,并揭示了事故的原因:一個拼寫錯誤導致了十七個生產(chǎn)數(shù)據(jù)庫被刪除。
Azure DevOps 提供一組集成的服務和工具,用于管理軟件項目,從規(guī)劃和開發(fā)到測試和部署。Mattingly 解釋說,Azure DevOps 的工程師有時會對生產(chǎn)數(shù)據(jù)庫進行快照(Snapshot),以便調(diào)查報告的問題或測試性能改進。他們依賴于一個每天運行的后臺系統(tǒng),該系統(tǒng)會在一定時間后刪除舊的快照。近日 Azure DevOps 的工程師進行了一次代碼升級,用支持的 Azure.ResourceManager.* NuGet 包替換了已棄用的 Microsoft.Azure.Managment.* 包。這導致了一個大型的拉取請求,其中更換了舊包和新包中的 API 調(diào)用。
拼寫錯誤就發(fā)生在這個拉取請求中,它將刪除快照數(shù)據(jù)庫的調(diào)用換成了刪除托管數(shù)據(jù)庫的 Azure SQL Server 的調(diào)用。Azure DevOps 有專門的測試來發(fā)現(xiàn)這樣的問題,但 Mattingly 說,由于錯誤的代碼只在某些條件下運行,因此現(xiàn)有的測試覆蓋不到。
幾天后,軟件更改被部署到南巴西規(guī)模單元(特定角色的服務器集群)的客戶環(huán)境。該環(huán)境有一個老的快照數(shù)據(jù)庫,觸發(fā)了這個錯誤,導致后臺任務刪除了“整個 Azure SQL Server 和所有十七個生產(chǎn)數(shù)據(jù)庫”。
所有數(shù)據(jù)都已經(jīng)恢復,但花了十多個小時。Mattingly 說,有幾個原因造成這種情況。其中之一是,由于客戶無法自己恢復 Azure SQL Server ,必須由值班的 Azure 工程師來處理,這個過程大約需要一個小時。另一個原因是,數(shù)據(jù)庫有不同的備份配置:有些配置為區(qū)域冗余備份,有些配置為更新的地理區(qū)域冗余備份,解決這種不匹配增加了很長的恢復時間。
為了防止問題再次發(fā)生,Mattingly 稱微軟已經(jīng)采取了各種修復和重新配置措施,并再次向所有受此中斷影響的客戶道歉。
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。