您的位置:首頁 > 資訊 >

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


(相關(guān)資料圖)

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

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

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

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

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

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

標(biāo)簽:

相關(guān)閱讀