在 太平洋标準時間(PST) 時間 2013 年 2 月 22 日下午 12:29,所有地區都出現了服務中斷,緻使客戶使用 HTTPS通路Windows Azure 存儲 Blob、Table和Queue時受到影響。全球範圍内的可用性在 PST 時間 2013 年 2 月 23 日淩晨 00:09得到恢複。
我們就此服務中斷向受影響的客戶表示道歉,并主動向這些客戶退回服務費用,大緻措施如下。
我們特此提供有關該中斷所關聯的元件的詳細資訊、中斷的根本原因、恢複過程、我們在此事件中吸取的教訓,以及我們在為客戶提高服務可靠性方面正在進行的工作。
Windows Azure 概述
在剖析該服務中斷的細節之前,為了更好地了解事件背景,我們首先分享一下有關此事件所關聯的Windows Azure 内部元件的一些資訊。
Windows Azure 在全球各個資料中心和地理區域内運作許多雲服務。WindowsAzure 存儲作為一種雲服務在Windows Azure 上運作。每個地理區域包含多個實體存儲服務部署,我們稱之為印章。每個存儲印章有多個存儲節點機架。
Windows AzureFabric Controller是管理硬體的資源配置和管理層,它管理硬體, 并為 Windows Azure 平台上的雲服務提供資源配置設定、部署和更新以及管理功能。
Windows Azure 使用稱為機密存儲的内部服務來安全地管理運作服務所需的證書。該内部管理服務可自動存儲、分發和更新系統中的平台及客戶證書。此外,該内部管理服務還可自動處理系統中的證書,避免微軟員工直接通路機密資訊,進而符合有關規定并確定安全性。
服務中斷的根本原因分析
Windows Azure 存儲使用單獨的安全套接層 (SSL)證書,為每個主要的存儲類型的客戶資料通信提供安全保護:Blob、Table和Queue。利用這些證書,可通過 HTTPS對表示客戶帳戶的所有子域(例如myaccount.blob.core.windows.net)的流量進行加密。内部和外部服務利用這些證書來加密自/到存儲系統的流量。這些證書源自機密存儲,存儲在每個Windows Azure 存儲節點的本地存儲媒體,并且由Fabric Controller部署。用于 Blob、Table和Queue的證書在所有地區和印章的證書都相同。
上周使用的證書的過期時間如下所示:
· *.blob.core.windows.net PST 時間 2013 年 2 月 22 日星期五,下午12:29:53
· *.queue.core.windows.net PST 時間 2013 年 2 月 22 日星期五,下午12:31:22
· *.table.core.windows.net PST時間 2013 年 2 月 22 日星期五,下午12:32:52
到達證書過期時間後,證書變為無效,使用 HTTPS 與存儲伺服器建立的那些連接配接被拒絕。自始至終,HTTP 事務仍正常運作。
盡管證書到期對客戶造成了直接影響,但用于維護和監控這些證書的過程中出現中斷才是根本原因。此外,由于各個地區的證書完全相同并且暫時彼此靠近,它們是存儲系統的單個故障點。
存儲證書未更新的原因詳情
事件背景是,作為機密存儲正常操作的一部分,每周都會對正在管理的證書進行掃描。提前 180 天向管理服務的團隊發送提示即将過期的警報。從此時起,機密存儲将向掌控該證書的團隊發送通知。該團隊收到通知後将更新證書,在計劃用于部署的新内部版本服務中包括更新的證書,并且在機密存儲的資料庫中更新證書。該過程每月會對Windows Azure 中的許多服務定期執行幾百次。
這一次,機密存儲服務通知了Windows Azure 存儲服務團隊上述證書将在指定日期内過期。在 2013 年 1 月 7 日,存儲團隊更新了機密存儲中的三個證書,并将它們包含在以後版本的服務中。但是,該團隊未能将包含證書更新的版本标記為即将釋出的版本。
後來,包含時間關鍵證書更新的存儲服務版本的釋出被延遲到标記為更高優先級的更新之後,并且未在證書過期截止日期之前及時部署。此外,由于已在機密存儲中更新證書,是以未向團隊提供其他警報,這是我們警報系統中的一個缺陷。
恢複存儲服務
該事件在 PST 時間下午 12:44通過正常監控檢測到,并且診斷原因為證書已過期。截止到 PST 時間下午 13:15,工程團隊已對問題進行分級并建立了多個工作流來确定恢複服務的最快路徑。
在正常操作過程中,FabricController會将節點推動到所需的狀态,也稱為“目标狀态”。
服務的服務定義會提供部署的所需狀态,這會使Fabric Controller能夠确定作為部署一部分的節點(伺服器)的目标狀态。服務定義包含角色執行個體及其端點、配置和失敗/更新域,以及對其他項目的參考,例如代碼、虛拟硬碟 (VHD)名稱、證書指紋等。
在正常操作過程中,指定服務将更新其内部版本以包括新證書,然後利用Fabric Controller通過對所有節點系統地運作更新域和部署服務來部署該服務。該過程旨在以能讓外部客戶體驗到無縫更新并且滿足釋出的服務級協定 (SLA)的方式更新軟體。盡管這些工作的一部分可以并行執行,但将更新部署到全局服務的總時間需要好幾個小時。
在此次 HTTPS服務中斷過程中,WindowsAzure 存儲服務仍正常運作并為使用 HTTP 通路其資料的客戶工作,而且一些客戶通過臨時移至 HTTP 快速緩解了其 HTTPS問題。在為其他使用者恢複服務的過程中我們非常謹慎,以便不影響使用 HTTP 的客戶。
在分析了用于恢複 HTTPS服務的多個選項後,選擇了兩種方法:1) 對每個存儲節點上的證書進行更新,以及 2) 完全更新存儲服務。第一種方法經過優化用于盡快恢複客戶服務。
1) 更新證書
開發團隊完成了更新證書以驗證補救方法和恢複服務所需的手動步驟。該過程由于Fabric Controller嘗試将某個節點恢複為目标狀态而變得複雜。在 PST 時間下午 18:22,團隊制定了成功更新證書的過程并進行了測試。汲取從以前中斷獲得的經驗,我們提前花時間對修複進行了充分的測試和驗證,以避免出現影響其他服務的複雜情況或二次中斷。在測試修複的過程中,發現了多個問題,并在對生産部署進行驗證之前進行了更正。
驗證該自動更新過程後,我們于 PST 時間 19:20 将其應用到美國西部資料中心的存儲節點,并成功在 PST 時間晚上 20:50 恢複了該地區的服務。我們随後将其推廣到全球的所有存儲節點。該過程在 PST 時間 22:45 完成,并為大多數客戶恢複了 HTTPS 服務。在 PST 時間 2013 年 2 月 23 日 00:09,其他監控和驗證也已完成,并且 Azure儀表闆标記為綠色。
2) 完成更新
在更新證書的同時,該團隊還做了通過更新的證書對存儲服務進行完全更新的安排,并推廣到全球。
此更新的目的是為所有存儲節點提供最終且正确的目标狀态,并確定系統處于穩定、正常的狀态。該過程自 PST 時間 2 月 22 日夜裡 23:00開始,在 PST 時間 2 月 23 日晚上 19:59按計劃完成,并未影響客戶的可用性 SLA。
改進服務
發生一次事件後,我們始終會花一些時間分析該事件,并尋求方式來改進工程、營運和通信過程。為了了解盡可能多的情況,我們進行了根本原因分析并分析事件的所有方面,以便為我們的客戶改進平台可靠性。
該分析分為四個主要區域,審視事件生命周期的每個部分,以及在其之後的工程過程:
· 檢測 – 如何快速找出失敗原因并優先進行恢複
· 恢複 – 如何減少恢複時間并降低對客戶的影響
· 預防– 系統如何避免、隔離故障并/或從故障中恢複
· 響應 – 如何在事件中為客戶提供支援
檢測
我們将擴充我們的證書過期監控,使其不僅包括機密存儲,還包括生産端點,以確定證書不會在生産期間過期。
恢複
我們的恢複過程正确地發揮了作用,但我們會繼續采取措施來提高部署機制的性能和可靠性。
我們将落實特定機制來執行關鍵的證書更新,并定期履行這些機制,以便再次發生此類事件時提供更快的響應。
預防
我們将改進檢測生産中部署的證書是否即将過期的過程。距離到期日期不足 3 個月的任何生産證書都将産生運作事件,并将被視為服務影響事件來對待和跟蹤。
我們還将自動執行任何關聯的手動過程,以便跟蹤包含證書更新的内部版本服務并正确地設定優先級。在自動化項目完成之前,各團隊已檢查涉及證書的所有手動過程。
我們将檢查我們的證書并尋找機會按服務、地區和時間來劃分證書,使未捕獲的過期不會造成廣泛傳播的全球性事件。此外,我們将繼續檢查系統,并解決任何單個故障點。
響應
Windows Azure 服務儀表闆的多級故障轉移過程按預期發揮作用,并為事件中受影響的客戶提供了關鍵事件處理狀态資訊更新。在事件期間有 59 個事件處理過程相關資訊的更新,但我們将繼續提高我們的能力,進而為問題和更新提供準确的 ETA。
我們盡最大的努力在Windows Azure 儀表闆上實時釋出我們所了解的資訊,并繼續尋求方式來加強客戶交流。
服務信用
我們認識到該服務中斷對受影響的客戶具有重大影響。鑒于該事件的性質和持續時間,我們将為受影響的客戶主動提供 SLA 信用。信用将涵蓋所有受影響的服務。在發生中斷期間正在運作以下受影響服務的客戶,對于受影響計費周期内這些服務相關聯的任何費用都将獲得 25% 的服務退款。
· 存儲
· 移動服務
· 服務總線
· 媒體服務
· 網站
受影響的客戶還将針對任何資料傳輸使用收到 25% 的退款。該退款将根據我們的 SLA 計算,并反映在随後的發票中。有其他問題的客戶可以聯系Windows Azure 支援了解更多資訊。
結論
Windows Azure 團隊在未來幾周内将繼續檢查以上概括的發現結果,并采取一切可能的措施來繼續改進我們的服務。
對于該中斷對客戶造成的影響,我們在此表示誠摯的道歉和遺憾。我們将繼續努力開展工作,提供可用性更高的服務。
-Mike
本問翻譯自: http://blogs.msdn.com/b/windowsazure/archive/2013/03/01/details-of-the-february-22nd-2013-windows-azure-storage-disruption.aspx
轉載于:https://www.cnblogs.com/sesexxoo/archive/2013/04/18/6191189.html