匯出 (0) 列印
全部展開
本主題尚未接受評分 - 為這個主題評分

Windows Azure 雲端服務開發考量

更新日期: 2013年2月

當您考慮將應用程式移轉至 Windows Azure 雲端服務時,我們建議您先了解並學習如何使用 Windows Azure 雲端服務。Windows Azure 簡介一文提供有關 Windows Azure 元件、資料管理和受支援軟體開發套件 (SDK) 的資訊。

此主題旨在提供有關實作 Windows Azure 應用程式的簡介資訊。由於移轉案例各不相同,建議開發人員為其應用程式和使用者選擇最適合的技術和方案。

將現有應用程式移轉至 Windows Azure 包含:

  • 加入 Windows Azure 特定組態以及某些自訂程式碼

  • 重新封裝您現有的應用程式當做 Windows Azure 應用程式

  • 部署應用程式,當做在 Windows Azure 虛擬機器上執行的雲端服務

Windows Azure 雲端服務包含在 Windows Azure 上的應用程式程式碼和其組態設定。當您開發雲端應用程式時,一般架構模式仍然適用,例如開發人員必須設計其應用程式架構,以處理分散式環境中的可用性、延展性、可靠性和安全性。此外,開發人員需要考慮服務等級協定、容量規劃、客戶帳單、稽核、應用程式監視、傳輸分析、管理成本,以及何時向上延展或向下延展。

作者:Selcin Turkarslan
審稿者:Valery Mizonov、Avilay Parekh、Paolo Salvatori、Steve Howard

在 Windows Azure 中建立雲端服務

在傳統的私人資料中心環境中,您負責購買、設定及維護硬體以執行服務。在 Windows Azure,您可以透過配置虛擬資源,設計和建立可視需要延展的應用程式。雖然某些內部部署應用程式幾乎不需要變更,即可在 Windows Azure 中執行,但大部分的應用程式可因為針對雲端設計和架構而實際受惠。為了充分運用 Windows Azure,建議您在移轉至 Windows Azure 之前,使用多個角色修改應用程式。

例如,在舊版資料中心託管的 Web 服務通常在單一應用程式中結合數個功能,而不會妥善延展。它們也會在本機磁碟機上儲存應用程式狀態,這在 Windows Azure 雲端服務環境中無法運作。當從現有 Web 應用程式移轉到 Windows Azure 時,您有兩個選擇:

在 Windows Azure 雲端服務,每個應用程式會以一個或多個角色的方式實作。每個角色包含實現部分應用程式功能所需的程式碼和組態資訊。Web 角色是供直接與 Web 瀏覽器或其他 HTTP 用戶端互動的前端服務和程式碼使用。它是在 IIS (即 Microsoft 的 Web 伺服器) 上執行。背景工作角色通常用於執行背景處理和支援工作,最適用於中間層服務。每個角色可以有多個執行個體。每個執行個體執行專為角色撰寫的相同程式碼時,但是每一個角色執行個體位於 Windows Azure 資料中心的不同虛擬機器。針對每個角色,您可以表示該角色執行個體應該使用的 VM 所需大小。如需詳細資訊,請參閱 MSDN Library 中的<如何設定虛擬機器大小>。除了角色之間的功能差異之外,每一個角色都會當做應用程式的延展單位。換句話說,您可以有 20 個 Web 角色執行個體來服務更多的網路傳輸量,但是只有 5 個背景工作角色執行個體可非同步處理來自 Web 角色的要求。例如,如果您只想要建立簡單的 ASP.NET、PHP、Node.js 應用程式或 WCF 服務,可以只使用 Web 角色。我們建議您在上傳應用程式至生產環境之前,先執行雲端服務的詳細功能和效能測試,決定角色執行個體和 VM 大小的最佳數目。如需有關雲端服務概念的詳細資訊,請參閱<Windows Azure 開發人員中心>。

我們建議您考慮使用 Windows Azure 所提供的可用儲存選項。這有助於簡化應用程式邏輯並提升雲端服務的效能。因此,在規劃應用程式移轉時,了解每一個資料儲存選項的限制,以及深入了解雲端服務使用資料儲存選項的時機,是非常重要的。如需有關 Windows Azure 可用儲存選項的詳細資訊,請參閱 Windows Azure 中的<Windows Azure 資料管理服務的概觀>。此外,您可能會想要使用 Windows Azure 快取服務,為 Windows Azure 應用程式提供以記憶體為基礎的快速儲存。快取可透過暫時儲存來自其他後端來源的資訊來增加效能,也可以減少雲端中與資料庫儲存存取交易相關聯的成本。為了獲得最佳效能結果,請將您的應用程式部署到最接近於您的大多數用戶端的資料中心,以及託管您的儲存體帳戶或 Windows Azure SQL Database 執行個體的資料中心。不過,如果您對資料及其所在位置有某些管轄區或法律顧慮,可以選擇接近您的公司或接近資料的資料中心。如需詳細資訊,請參閱<Windows Azure SQL Database 的效能考量>。

Windows Azure 中的應用程式開發

在您開始實作 Windows Azure 雲端服務之前,必須先取得 Windows Azure 訂用帳戶。如需詳細資訊,請參閱 WindowsAzure.com 網站。然後,您必須準備開發環境。Microsoft 目前提供 .NET、Java、PHP、Node.js 和 Python 語言特有的 SDK。如需有關支援的程式語言和平台的最新資訊,請參閱 WindowsAzure.com 網站。此外,您可以使用 Windows Azure 下載中心,存取所有 Windows Azure 用戶端程式庫、SDK 和命令列工具。

為了讓各種不同平台上執行的用戶端應用程式連接至雲端,Microsoft 選擇 ODBC 做為標準用戶端連接應用程式開發介面,供原生用戶端應用程式連接到 Windows Azure SQL Database (SQL Database)。SQL Server Native Client OLE DB 提供者將最後一次隨附在 SQL Server 2012,並不受 SQL Database 支援。在撰寫 Windows 或 Windows Azure 應用程式時,您應該使用隨附於 SQL Server 2008 R2 或更新版本的 SQL Server Native Client ODBC 驅動程式。建議您在開發新版本和未來版本的應用程式時採用 ODBC。對於使用 OLE DB 的現有應用程式,我們建議您考慮將這些應用程式移轉到 ODBC,做為未來藍圖的一部分。如需有關如何將 OLE DB 應用程式轉換成 ODBC 應用程式的詳細資訊,請參閱<OLE DB 轉換至 ODBC 指引>技術白皮書。從 Windows Azure 預覽版本開始,Windows Azure 為服務提供者提供了新服務:Windows Azure Web Sites。這個新服務可讓開發人員快速建立和部署網站到 Windows Azure。您可以透過這個新服務,直接在 Windows Azure 入口網站開發和發行您的網站。如需詳細資訊,請參閱 WindowsAzure.com 網站上的<Windows Azure 網站>。

如同其他任何應用程式的開發,您必須設計應用程式架構,以處理多租用戶、分散式雲端環境中的可用性、災害復原和安全性。如需詳細資訊,請參閱 Windows Azure 中的<使用 Windows Azure SQL Database 時的高可用性和災害復原考量>和<Windows Azure 的安全性資源>。我們建議您將應用程式載入到 Windows Azure 之前,於軟體開發生命週期一開始先解決安全性要求。如需有關 Windows Azure 應用程式開發的詳細資訊,請參閱<開發 Windows Azure 應用程式>。

Windows Azure 應用程式記錄、測試、診斷及偵錯

因為 Windows Azure 是雲端上的多個租用戶動態可擴充平台,所以您在設計應用程式時,必須考慮雲端特定的監視和診斷技術。我們建議您在軟體開發生命週期一開始就考慮監視和診斷。建議您在應用程式部署到雲端之後,評估現有的監視和診斷技術是否會提供適當服務。例如,產生大量記錄檔的應用程式可能需要調整其診斷和記錄設定。因此,它會產生少量記錄檔,供快速檢查或下載到內部部署環境,做進一步的分析。

下列清單提供一些 Windows Azure 可用的疑難排解工具和技術:

  • Windows Azure 診斷 (WAD):它會從您的 Windows Azure 服務收集作業和診斷資料。Windows Azure 診斷會在固定可設定的間隔,記錄來自各種資料來源的診斷資料,例如 IIS 7.0 記錄檔、Windows 診斷基礎結構記錄檔、Windows 事件記錄檔、效能計數器、損毀傾印和自訂錯誤記錄檔,而且將所收集的資訊保存到 Windows Azure 資料表和 Blob 儲存,做為分析之用。如需詳細資訊,請參閱<Windows Azure 診斷的概觀>。

  • System Center Windows Azure 管理組件 (MP):Windows Azure 監視管理組件讓您監視在 Windows Azure 上執行之應用程式的可用性及效能。如需詳細資訊,請參閱<Windows Azure 應用程式監視組件指南>。建議您同時使用 Windows Azure 診斷和 System Center Windows Azure 管理組件,有效監視 Windows Azure 應用程式的可用性及效能。如需相關影片,請觀看<System Center 2012:跨私人與公用雲端管理應用程式>影片。

  • Windows Azure 儲存體分析:執行記錄並提供儲存體帳戶的度量資料。您可以使用此資料,追蹤要求、分析使用趨勢,以及診斷儲存體帳戶相關的問題。如需詳細資訊,請參閱 MSDN Library 中的<儲存體分析>。

  • SQL Database 連接管理:透過在您的應用程式中實作重試邏輯,來處理錯誤碼。如需詳細資訊,請參閱 TechNet Wiki 中的<SQL Database 連接管理>。

  • Windows Azure PowerShell 指令程式:Windows Azure PowerShell 指令程式可讓您直接從 PowerShell 瀏覽、設定和管理 Windows Azure 雲端和資料管理服務。在開發及測試使用 Windows Azure 服務的應用程式時,這些工具就很有用。如需詳細資訊,請參閱<Windows Azure PowerShell 指令程式>。

如同其他任何應用程式,您的 Windows Azure 雲端服務在上傳到生產環境之前也需要詳細測試,例如功能、端對端執行、效能、延展性、安全性等等。

如需詳細的規範指引,請參閱<開發 Windows Azure 應用程式的疑難排解最佳作法>。如需增補資訊,請參閱 MSDN Library 中的<在 Windows Azure 中監視託管服務和記錄資料>和<測試、管理、監視和最佳化 Windows Azure 應用程式>。

Windows Azure 中的雲端式網路和連接選項

Windows Azure 提供一系列網路功能,可協助您將現有應用程式整合到雲端,以及管理網路流量。Windows Azure 中的主要網路和連接元件如下:

  • Windows Azure 服務匯流排:我們建議您在 Windows Azure 中的任何服務對服務通訊都使用 Windows Azure 服務匯流排,同時保持內部部署伺服器和 Windows Azure 之間的整合。服務匯流排提供應用程式層級的安全傳訊和轉送功能。Windows Azure 服務匯流排提供雲端式基礎結構,支援通用安全訊息服務位在一個具有簡單統一命名空間的公用網路,如 https://myhostname.servicebus.windows.net。服務匯流排支援下列程式設計模型:.NET 應用程式開發介面、REST 應用程式開發介面和 WCF。

  • Windows Azure 存取控制服務:我們建議您使用 Windows Azure 存取控制,為雲端託管的 WCF 與 REST Web 服務以及使用者應用程式,提供同盟、宣告式的存取控制。存取控制是 Windows Azure 服務,可輕鬆驗證需要存取 Web 應用程式和服務的使用者,而不必在程式碼中考量複雜驗證邏輯。此服務也會與 Windows Identity Foundation (WIF) 整合。如需有關 ACS 的詳細資訊,請參閱如何使用 Windows Azure 存取控制服務驗證 Web 使用者

  • Windows Azure Traffic Manager:Traffic Manager 可讓您跨多個 Windows Azure 託管服務,負載平衡連入流量,無論它們是在相同的資料中心或在全球各地不同的資料中心。您可以透過有效管理流量,確保應用程式的高效能、可用性和恢復功能。Windows Azure 流量管理員目前是 Community Technology Preview (CTP),可免費取用。

  • Windows Azure 內容傳遞網路:Windows Azure 內容傳遞網路 (CDN) 提供開發人員在最接近客戶或使用者的位置快取內容的全球方案,以提供最佳應用程式體驗。CDN 會在策略性位置快取 Windows Azure Blob 與計算執行個體的靜態內容輸出,提供最大頻寬以傳遞內容給使用者。您可以使用 Windows Azure 平台管理入口網站,為內容提供者啟用 CDN 傳遞。如需詳細資訊,請參閱<Windows Azure CDN 的概觀>。



  • Windows Azure 虛擬網路:從 Windows Azure 預覽版本開始,Windows Azure 支援這個新服務在內部部署與雲端之間提供安全站台對站台的網路連接。如需詳細資訊,請參閱 MSDN Library 中的<Windows Azure 虛擬機器概觀>。

  • Windows Azure SQL 資料同步 (SQL 資料同步):此服務目前有兩個主要功能。它可讓您在內部部署 SQL Server 資料庫與 Windows Azure SQL Database 資料庫之間同步處理資料,讓內部部署和以雲端為基礎的應用程式能夠運用相同的資料。此外,您可以在兩個或多個 SQL Database 執行個體之間同步處理資料。這些資料庫可以位於相同資料中心、不同資料中心或不同區域。SQL 資料同步通常會搭配 Windows Azure 流量管理員一起使用。警告:SQL 資料同步目前僅供預覽,只是為了收集未來版本的產品回函,不應該用於生產環境。

如需詳細資訊,請參閱<Windows Azure 中的網路和快取>。

Windows Azure 中的應用程式部署和管理

在您完成開發雲端服務或應用程式之後,將它編譯並上傳至 Windows Azure。有四個不同的部署案例:

  • 新部署

  • 組態變更

  • 累加式程式碼升級

  • 主要升級

Windows Azure 可讓您在一個 Windows Azure 帳戶下設定多個訂用帳戶。這可讓您為您的服務建立個別的開發和測試環境。在此狀況下,請考慮先將服務部署至測試訂用帳戶,然後部署至生產訂用帳戶。將雲端服務部署至生產訂用帳戶之後,您可以使用預備環境來進行連續測試。當您準備好讓服務上線時,可以將它移到生產環境。

另請參閱

本文對您有任何幫助嗎?
(剩餘 1500 個字元)
感謝您提供意見

社群新增項目

新增
Microsoft 正展開一份線上問卷調查,了解您對於 MSDN 網站的看法。 如果您選擇參加,您離開 MSDN 網站時即會顯示線上問卷調查。

您是否想要參加?
顯示:
© 2014 Microsoft. 著作權所有,並保留一切權利。