本文章是由機器翻譯。

Azure 網站

使用 Azure 網站的雲端之架構設計人員

Apurva 喬希
Sunitha Muthukrishna

 

有一點是非常重要,設計雲解決方案時,請牢記 — — 總是失敗的設計。然而,許多應用程式,並不被設計這種方式。這主要原因是認識的缺乏對如何使用是認識的足夠彈性的微軟 Azure 網站體系結構設計。那麼如何構建一個雲計算解決方案,是足夠健壯,能處理故障?這篇文章將討論您可以使用這種系統的設計技術。

單個 Web 網站實例

蔚藍的 Web 網站提供託管計畫上幾個層:免費、 共用、 基本和標準。免費和共用的層提供一個共用的基礎設施,意味著您的網站與其他網站共用資源的網站。在基本和標準層中,你的網站是提供與專用的基礎結構,意思,只有網站或您選擇要與你的計畫關聯的網站將運行在這些資源。

在這些層,您可以配置您的 Web 託管計畫要使用一個或多個虛擬機器 (VM) 實例。這些層可以支援小型、 中型和大型的實例。該提供程式將管理這些虛擬機器以您的名義,意味著你永遠不需要擔心 OS 更新或安全和配置更新。

對於運行生產級 Web 網站在 Azure 的 Web 網站、 基本或標準層建議您應用程式的大小和所用的流量到您的 Web 網站的基礎。瞭解應用程式的要求是一個很好的起點:

  1. 應用程式是否需要什麼元件 — — 資料庫,電子郵件供應商,緩存等等?
  2. 什麼元件處於失敗的風險,需要複製嗎?
  3. 你需要的什麼特點 — — SSL,分期插槽等等?
  4. 您的網站應該能夠管理多少流量嗎?

與這些問題的答案,您可以創建單個 Web 網站和添加到應用程式所需的元件,如資料庫和緩存。在圖 1,你可以看到可能您一個單一的 Web 網站和它的相依元件的建築師。

在單個 Web 網站的情況下,最大需要說明的是中斷的在事件的任何元件 (Web 網站、 資料庫或快取服務) 的服務相關,您的 Web 網站將不可用期間中斷,所以會有您的客戶和您的業務的影響。


圖 1 標準體系結構為單個 Web 網站

這種設計並不考慮的風險涉及雲計算解決方案,也不包括緩解他們一種方式。在雲環境中,你的設計目標應該是要創建一個高度可用的 Web 網站,將減少停機時間和停機期間加速恢復。

目標是高可用性

典型的 Web 應用程式堆疊中 Azure 網站將包括一個 Web 應用程式、 資料庫、 Azure 存儲和某種形式的緩存。所有這些元件都是緊耦合的避免一個單一的實體或元件成為一個單點故障 (SPOF)。這是對架構的任何雲計算解決方案的關鍵設計標準。目標是:

  • 在你的設計中避免單點故障
  • 在你的設計中每個圖層之間的冗余性

蔚藍的 Web 網站提供 SLA 的 99.9%。這意味著你可以期待的每週計畫的部署或升級由 Azure 網站服務進行約 10 分鐘的停機時間。儘管如此,10 分鐘的停機時間可以對您的業務有很大的影響。你的目標應該是影響的設計你的解決方案,以減輕此停機時間,並能服務于你的客戶,因此降低了風險。你應該努力打造一個高度可用的 Web 體系結構,如圖所示的圖 2


圖 2 的一個高度可用的 Web 體系結構示例

Web 應用程式層的高可用性

蔚藍的 Web 網站創建一個無國籍雲解決方案為您的 Web 應用程式。您需要在應用程式級別的高可用性設計時,考慮以下各點:

  1. 使用標準模式,為您的 Web 網站,並將其配置為使用 Web 網站的至少兩個實例。
  2. 基於您的交通模式,類比負載通過各種工具,像Visual Studio和 Apache JMeter 測試 (jmeter.apache.org) 來標識實例的大小和多少個實例將需要為您的 Web 網站來管理實際的交通水準。
  3. 確保使用者和會話資料存儲在一個集中的系統,如資料庫或分散式的緩存層。在 Azure Web 網站、 檔案伺服器共用跨所有的虛擬機器在標準模式下運行時。
  4. 複製在至少兩個區域支援的 Azure 網站 Web 應用程式層。
  5. 使用者內容,如媒體和您的網站上傳或管理的檔應存儲在 Azure 存儲帳戶。確保存儲帳戶是在同一地理區域作為 Web 網站以減少延遲。
  6. 始終遵循安全的編碼實踐,使您的應用程式有彈性的惡意攻擊。

資料庫層的高可用性

資料是什麼真正生成值的任何應用程式,所以你要有效地管理它。為您的應用程式正常運行,以避免單點故障在資料庫層至關重要。蔚藍的 Web 網站支援的 SQL Azure 資料庫和 ClearDB MySQL 的服務。兩者都提供從低範圍到溢價解決方案的選項。

SQL azure 資料庫溢價提供更可預測的性能和更大的容量為雲應用程式使用的 Azure Web 網站。它致力於固定的數量的資料庫,包括其內置的資料庫複製功能的儲備能力。預留的容量是理想的:

  • 高峰值負載:需要大量的 CPU、 記憶體或 I/O 完成其操作的應用程式使用一個溢價資料庫是一個很好的候選人。
  • 很多併發請求:某些資料庫應用程式的服務很多併發請求。正常的 Web 和企業版的 SQL Azure 資料庫有 180 的併發請求的限制。需要更多的連接的應用程式應使用溢價資料庫具有適當的保留大小來處理請求的最大數目。
  • 可預測的延遲:一些應用程式需要保證來自資料庫的回應,在最短的時間。如果給定的存儲的程序呼叫作為更廣泛的客戶操作的一部分,可能要求從該調用中不超過 20 毫秒 99%的時間返回。這種應用程式將受益于一個溢價資料庫,以確保計算能力,獲得。

ClearDB 提供了高可用性 SQL 路由器 (或 CDBRs),是監視這些資料庫群集的定制、 智慧交通管理者。當一個資料庫節點是不健康的時 CDBR 自動重定向到你中學的主人。這有助於確保您的資料庫,並反過來,Web 應用程式的正常執行時間。當樓宇的這種設計,保持那裡的心裡推薦地區 ClearDB 支援這種情況下,如的配對:

  1. 如果你在美國東部中選擇一個資料庫,成對的資料庫應該是在美國西部。
  2. 如果你在歐洲北部中選擇一個資料庫,成對的資料庫應該在歐洲南部。

跨區域的高可用性

目前,Azure 網站支援的多個區域。它正在擴大其基礎設施。使用多個區域的體系結構可以分為主動-主動 Web 網站和主動-被動的 Web 網站。

主動-主動 Web 網站:在主動-主動 Web 架構中,你會跨區域服務相同的應用程式有多個 Web 網站。在這種情況下,交通跨所有 Web 網站託管的因此他們都認為活躍。

主動-被動 Web 網站:在主動-被動結構中,你會有一個單一的 Web 網站,將作為一個主要的 Web 網站。這將提供客戶的所有通信內容。在此網站上的失敗,客戶將被重定向到另一個網站配置和與減輕失敗一個不同的資料中心中的主網站同步。

在設計您的體系結構,跨多個區域運營,有你需要考慮的幾個挑戰:

  • 資料同步:這是指的能力,使跨區域的即時資料庫的副本。任何複雜的系統將會有資料庫、 檔案伺服器、 外部存儲和緩存 — — 只是為了幾個元件的名稱。當設計您的體系結構,您需要確保複製跨多個區域的資料是同步進行,以保持您的 Web 應用程式從打破。這可能需要一些變化到您的應用程式代碼來支援此方案。蔚藍的 Web 網站支援運行一個後臺進程,稱為 Web 的工作,這使您可以構建自訂的工具來管理資料同步。
  • 網路流量:這是跨多區域管理網路流量的能力。天青流量管理器允許您載入平衡的傳入通信跨多個承載的 Web 網站是否他們運行在相同的資料­中心或跨不同的資料中心。通過有效地管理交通,您可以為您的應用程式來確保高性能、 可用性和恢復能力。

您可以使用流量管理器以確保為您的應用程式的高可用性和回應能力。流量管理器提供了三種負載平衡方法:

  1. 容錯移轉中:當您想要使用主終結點為你的交通,但主要或備份的端點變為不可用的情況下提供一個或多個備份的終結點,請使用此方法。
  2. 輪循機制:使用此方法,您可以分發交通同樣跨一組端點在同一資料中心中或跨不同的資料中心。
  3. 性能:此方法允許請求的用戶端/使用者使用最接近終結點,以減少延遲通過提供在不同地理位置的終結點。

緩存層的高可用性

為了改善您的 Web 網站的性能,緩存層是關鍵的。當處理資料與您的應用程式,您需要瞭解如何緩存可能會影響您的資料和應用程式。當選擇您的緩存層,考慮需要保持的資料存儲在快取記憶體實例之間的一致性。為了避免資料不一致,您應該使用一個分散式的緩存機制。一個分散式的緩存可能會使用多個伺服器,因此它是可擴展的存儲應用程式資料駐留在資料庫中通過減少對資料庫的調用次數。

有很多基於雲計算的緩存解決方案可以將集成與 Azure 網站,Azure 緩存和 Memcached Cloud 等。這些都是通過 Azure 存儲 Azure 監管中心中可用。

效能監視

現在,你已經弄的高可用性策略,為您的 Web 網站,你需要評估你監視的選項。蔚藍的 Web 網站提供了兩種類型的監測中 Azure 監管中心:

  1. 監測與 Web 網站的度量標準:每個 Web 網站破折號­板有監視器的網頁。這對於每個網站,如 CPU 使用率,請求,等等由 Web 網站發送的資料的數量提供性能統計資料。
  2. 終結點監測:終結點監測允許您配置 Web 測試從地理分佈的位置,用於 Web Url 的測試回應時間和正常執行時間。每個已配置的位置運行測試每隔五分鐘。正常執行時間被監測與 HTTP 回應代碼。回應時間是以毫秒為單位計算的。正常執行時間被認為是 100%時的回應時間是少於 30 秒,HTTP 狀態碼是小於 400。正常執行時間是 0%時的回應時間是大於 30 秒或 HTTP 狀態碼大於 400。配置終結點監測後,您可以深入到各個終結點在監測區間從每個測試地點查看詳細資訊的回應時間和正常運行狀態。

您可以執行更詳細和更靈活的監測與 Azure 預覽門戶。在這裡,你可以建立一個全面爆發 DevOps 儀表板。圖 3 顯示一個 DevOps 儀表板時運行 Azure 網站上的外觀。


圖 3 典型 DevOps 儀表板

當開發雲應用程式規劃、 開發和測試通常被進行其他地方,如Visual Studio線上。健康的那些應用程式監視和故障排除的問題可以在另一個入口網站,如與應用程式的見解。計費被顯示在一個單獨的頁面上。注意到這裡的模式嗎?

這個新的入口網站帶來的所有雲資源、 團隊成員和您的應用程式的生命週期階段在一起。它給你集中的位置來計畫、 開發、 測試、 提供、 部署、 擴展和監視這些應用程式。這種方法可以説明團隊通過彙集的發展及業務能力的觀點中有意義的方式擁抱 DevOps 文化。你可以學習更多有關這從博客上的帖子"建築夢想 DevOps 儀表板與新 Azure 預覽入口網站,"在 bit.ly/1sYNRtK

恢復選項

有時,倒楣的事情發生在很好的應用程式。Azure 網站可以説明您從應用程式故障中自動復原。通常情況下,當您監測系統檢測到一個問題,它提醒老年退休金計畫在一些時尚的傢伙。老年退休金計畫的傢伙然後不為所動,重新開機 Web 網站以起床的事情和再次運行。

您可以在應用程式中檢測到並採取行動的情況下配置的 web.config 檔。例如,如果 X 的請求數量 Y 花費的時間來執行在 Z 的時間,然後執行操作 ABC (其中可能會重新開機該 Web 網站,一個事件日誌或運行自訂操作)。另一個例子可能是記憶體的如果我過程取 X 量,然後執行操作 ABC。瞭解更多關於恢復過程從微軟 Azure 博客在 bit.ly/LOSEvS

雖然地理冗余的架構提供從基礎設施相關的失敗,功能,如自動的恢復説明生成應用程式層彈性保護。在雲計算的世界中,客戶總是對熱衷恢復第一次相比,Web 網站按下時執行全面診斷程式。另一方面,還有其他的情況下和診斷程式必不可少的情形。

診斷工具

診斷學是類似于剝掉壞的洋蔥。你永遠不知道你需要剝去多少層。蔚藍的 Web 網站是一個完全託管的、 多承租者的平臺即服務 (PaaS) 提供,這樣,不支援遠端診斷中的 VM。這帶來了一套新的挑戰。這裡是一個清單可用的工具和診斷方案,他們是很有用。

預設情況下,此服務提供了各種説明援助疑難排解的日誌記錄。有些日誌包括 Web 服務器日誌記錄,詳細的錯誤日誌記錄,應用程式日誌記錄,失敗請求跟蹤等。瞭解更多在日誌記錄服務 bit.ly/1i0MSou

撚角羚主控台是另一個診斷工具。這多用途的軟體建構管理的端點客戶將頻繁地使用用於診斷目的。後登錄到撚角羚終結點上,你會看到在頂部的功能區中的不同診斷選項 (請參見圖 4)。


圖 4 撚角羚主控台提供的診斷工具

環境選項卡提供了唯讀視圖到您的 Web 網站和虛擬機器系統資訊、 應用程式設定、 連接字串、 環境變數、 系統路徑、 HTTP 標頭和特定的伺服器變數,比如。這總是工程,以及正在進行的調查,與不同的資料點的輔助手段。

調試主控台選項卡使您 CMD-或 Windows PowerShell-­基於遠端執行主控台和檔瀏覽器訪問到您的網站。您可以使用主控台來執行大多數標準主控台操作和任意的外部命令,像 Git 命令導航 UI 資料夾、 下載檔案和資料夾上, 傳的檔和資料夾使用拖和下降、 查看和編輯文本的檔,等等。瞭解更多關於這通過觀看 YouTube 視頻上,"Azure 網站診斷主控台,"在 bit.ly/1h0ZZoR

進程資源管理器選項卡給你的您的應用程式是能夠看到,在 Azure 網站沙箱內部交流的當前活動進程的清單。此視圖將提供你關於進程記憶體和 CPU 使用方式的資訊。你可以也看看有關給定進程的詳細資訊,生成和下載離線診斷,完全記憶體傾印等等。

診斷轉儲選項卡將會給你在要下載的.ZIP 檔案中的記憶體傾印。然後可以使用像 DebugDiag 一樣的轉儲分析儀快速分析記憶體傾印,並得到一些說明性的指導。

日誌流選項卡允許您生活流 HTTP 或直接到主控台的應用程式日誌。這是有用的活動的問題進行故障排除。通過閱讀ScottHanselman 博客瞭解更多關於這張貼,"流診斷跟蹤日誌記錄從蔚藍的命令列 (加上一瞥 !),"在 bit.ly/1jXwy7q

這不是通過任何手段調試工具的綜合清單。微軟計畫建設更複雜的診斷,其中一些最常用的場景將要求只有一個單一的點擊。在那之前,享受建設好耐失敗的應用程式。

Apurva Joshi 是高級專案經理,微軟,Azure 網站團隊。他在 2002 年加入微軟,曾在不同的網路技術,如 IIS 和ASP.NET。

Sunitha Muthukrishna 是在微軟的 Azure 網站團隊的專案經理。她在 2011 年加入微軟,一直致力於 Windows Web 應用程式庫和 Azure 的 Web 網站。以前,她的貢獻幾個社區授權網路和均位於美國華盛頓州西雅圖系統生物學研究所等非營利組織的 IT 專案

感謝以下技術專家對本文的審閱:微軟 Azure 的生產管理團隊