匯出 (0) 列印
全部展開

Azure 雲端服務開發考量

更新日期: 2014年6月

作者:Selcin Turkarslan

審稿者:Tim Wieman、Valery Mizonov、Avilay Parekh、Paolo Salvatori、Steve Howard

將您的應用程式移轉至 Microsoft Azure 雲端服務之前,建議您先檢閱服務詳細資訊。Azure 簡介 (英文) 一文提供有關下列各項的資訊:

  • Azure 元件。

  • 執行模型。

  • 管理資料。

  • 網路功能。

  • 支援的程式設計軟體開發套件 (SDK) 等。

此文旨在提供有關使用 Microsoft Azure 雲端服務實作 Microsoft Azure 應用程式的簡介資訊。移轉案例不計其數。因此,建議開發人員為其應用程式和使用者選擇最適當的技術和解決方案。

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

  • 決定最適合您的應用程式的計算執行模型 (例如:雲端服務、網站、虛擬機器 (VM) 等)。請閱讀 Azure 簡介:執行模型 (英文)。

  • 加入 Azure 特定組態和自訂程式碼。

  • 在 Azure 中儲存及管理您的資料。

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

  • 將應用程式部署至 Azure。

已部署至 Microsoft Azure 雲端服務的應用程式包括您的應用程式程式碼、資料管理與其組態設定。當您開發雲端應用程式時,一般架構模式仍然適用。例如,開發人員必須設計其應用程式架構,以處理分散式環境中的可用性、延展性、可靠性和安全性。此外,開發人員需要考慮:

  • 服務等級協定 (SLA)。

  • 容量規劃。

  • 客戶帳單。

  • 稽核。

  • 應用程式監控。

  • 流量分析。

  • 成本管理。

  • 延展 - 何時及如何在雲端應用程式中向上、向下、向外和向內延展。

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

例如,在舊版資料中心託管的 Web 服務和應用程式通常在單一應用程式中結合數個功能。有時候這並未妥善延展。很多 Web 應用程式也會在本機磁碟機上儲存持續性應用程式狀態,這在 Azure 雲端服務環境中無法運作。當從現有 Web 應用程式移轉到 Azure 時,若要充分利用雲端運算的延展性和彈性,您有兩個選擇:

  • 您可以將舊版應用程式程式碼轉換成 Azure Web 角色或背景工作角色。如需 Azure 角色的詳細資訊,請閱讀如何建立及部署雲端服務 (英文)。

  • 您可以使用 Azure 網站佈建 Web 應用程式。

Azure 雲端服務會以一個或多個角色的方式實作每個應用程式。每個角色包含實現部分應用程式功能所需的程式碼和組態資訊。直接與 Web 瀏覽器或其他 HTTP 用戶端互動的前端服務和程式碼屬於 Web 角色。Web 角色會在 Internet Information Services (IIS) (Microsoft 的 Web 伺服器) 上執行。背景工作角色可執行背景處理及支援工作。中間層服務通常為背景工作角色。

每個角色可以有多個執行個體。每個執行個體會執行針對角色撰寫的相同程式碼。不過,每個角色執行個體位於 Azure 資料中心的不同虛擬機器中。針對每個角色,您可以表示該角色執行個體應該使用的 VM 所需大小。如需詳細資訊,請閱讀設定雲端服務的大小

除了角色之間的功能差異之外,每一個角色都會當做應用程式的延展單位。例如,您可以用 20 個 Web 角色執行個體來服務更多的流量。然後只用 5 個背景工作角色執行個體,以非同步的方式處理來自 Web 角色的要求。如果您想要建立簡單的 ASP.NET、PHP 或 Node.js 應用程式或 Web 服務,可以只使用 Web 角色。我們建議您執行雲端服務的詳細功能和效能測試。將應用程式部署至生產環境之前,這些測試將協助您決定角色執行個體和 VM 大小的最佳數目。如需雲端服務概念的詳細資訊,請瀏覽 Azure 開發人員中心Azure 文件中心

請考慮使用 Azure 所提供的可用儲存選項。這麼做有助於簡化應用程式邏輯並提升雲端服務的效能。在規劃應用程式移轉時,了解每個資料儲存選項的限制是非常重要的。您也必須知道如何為雲端服務找出適當的資料儲存選項。如需 Azure 可用儲存選項的詳細資訊,請閱讀 Windows Azure 資料管理服務的概觀

您也可能想要使用 Azure 快取服務,為 Azure 應用程式提供以記憶體為基礎的快速儲存。快取會透過暫時儲存後端來源的資訊來提升效能。快取可以減少雲端中與資料庫儲存存取交易相關聯的成本。為了獲得最佳效能結果,請將您的應用程式部署到符合下列兩個條件的資料中心:

  • 最接近大多數的用戶端。

  • 最接近託管您的儲存體帳戶或 Azure SQL Database 執行個體的資料中心。

不過,您可能會對資料及其所在位置有某些管轄區或法律上的顧慮。在此情況下,請選擇較接近您的公司或較接近資料的資料中心。如需詳細資訊,請閱讀 Windows Azure SQL Database 的效能考量

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

Microsoft Azure 也提供 Azure 網站服務,以便代管網站和 Web 應用程式。Azure 網站是一項受到完整管理的平台即服務 (PaaS) 產品,可讓您在數秒內部署和延展 Web 應用程式。如需詳細資訊,請瀏覽 Azure 網站

為了讓在不同平台上執行的用戶端應用程式能夠連接至關聯式資料來源,Microsoft 選擇 ODBC。這是連接到 Azure SQL Database (SQL Database) 的原生用戶端應用程式適用的標準用戶端連接 API。SQL Server Native Client OLE DB 提供者將最後一次隨附在 SQL Server 2012。SQL Database 將不提供支援。

在 Windows 或 Azure 上撰寫應用程式時,請使用 .NET Data Provider for SQL Server。或者,您可以使用 SQL Server 2008 R2 或更新版本隨附的 SQL Server Native Client ODBC 驅動程式。建議您在開發新版本和未來版本的應用程式時採用 ODBC。對於使用 OLE DB 的現有應用程式,我們建議您未來將這些應用程式移轉到 ODBC。如需如何將 OLE DB 應用程式轉換成 ODBC 應用程式的詳細資訊,請閱讀將 SQL Server 應用程式從 OLE DB 轉換至 ODBC (英文)。如需 ADO.NET 團隊提供的關於 OLE DB 取代的資訊,請閱讀 Microsoft SQL Server OLEDB 提供者取代宣告 (英文)。

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

如需 Azure 應用程式開發的詳細資訊,請閱讀開發 Azure 應用程式Failsafe:具有恢復功能的雲端架構指引

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

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

  • Azure 診斷 (WAD):它會從您的 Azure 服務收集作業和診斷資料。Azure 診斷會記錄各種資料來源的診斷資料,例如:

      • IIS 記錄檔。

      • Windows 診斷基礎結構記錄檔。

      • Windows 事件記錄檔。

      • 效能計數器。

      • 損毀傾印。

      • 自訂錯誤記錄檔。

      您可以設定 Azure 診斷的記錄間隔。收集到的資訊會保存到 Azure 資料表和 Blob 儲存體以供分析。如需詳細資訊,請閱讀使用 Windows Azure 診斷收集記錄資料

  • System Center Azure 管理組件 (MP):Azure 監視管理組件可讓您監視在 Azure 上執行之應用程式的可用性及效能。如需詳細資訊,請閱讀 Azure 應用程式監視組件指南 (英文)。建議您同時使用 Azure 診斷和 System Center Azure 管理組件。如需其他資訊,請觀賞 System Center 2012:Manage Applications Across Private and Public Clouds 網頁 (英文) 上的影片。

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

  • SQL Database 連線管理:它會透過在您的應用程式中實作重試邏輯來處理錯誤碼。如需詳細資訊,請閱讀Azure SQL Database 資源管理

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

  • 雲端服務基本概念參考方案:此應用程式示範如何建置由資料庫支援的 Azure 服務。此示範是以 Microsoft Azure 客戶諮詢團隊 (CAT) 在與實際客戶共事時所學到的經驗為基礎。請了解向外延展 Azure 應用程式的基礎建置組塊,包括在您的應用程式中收集和使用遙測資料。此參考方案位於 Microsoft Azure 的雲端服務基本概念網頁 (英文)。此指南包含 TechNet Wiki (雲端服務基本概念 Wiki) (英文) 和詳細文章。

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

如需詳細的規範指引,請閱讀開發 Azure 應用程式的疑難排解最佳作法 (英文)。如需補充資訊,請閱讀使用 Windows Azure 診斷收集記錄資料測試、管理、監視和最佳化 Azure 應用程式

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

  • Azure 儲存體佇列:Azure 儲存體佇列可用於儲存用戶端可存取的訊息,並且在角色執行個體之間提供可靠的訊息傳遞。如需詳細資訊,請閱讀如何從 .NET 使用佇列儲存體 (英文) 和儲存體

  • Azure 服務匯流排:我們建議您在 Azure 中的任何服務對服務通訊都使用 Azure 服務匯流排。此外,請使用 Azure 服務匯流排來保持內部部署伺服器和 Azure 之間的整合。服務匯流排提供應用程式層級的安全傳訊和轉送功能。Azure 服務匯流排提供雲端式通訊基礎結構,可在公用網路上支援通用安全訊息服務。其提供簡單、統一的命名空間,如 https://myhostname.servicebus.windows.net。服務匯流排支援下列程式設計模型:.NET API、REST API 和 WCF。如需詳細資訊,請閱讀服務匯流排文件網頁 (英文) 和 Azure 佇列和服務匯流排佇列 - 異同比較

  • Azure Active Directory:建議您使用 Azure Active Directory (AD),為雲端託管的 Web 服務及使用者應用程式,提供向外延展、宣告式的存取控制。Azure Active Directory 是一套完整的身分識別和存取管理雲端解決方案。其結合了核心目錄服務、進階身分識別控管、安全性及應用程式存取管理。Azure AD 也提供身分識別管理平台給開發人員使用,以根據集中化原則和規則為其應用程式提供存取控制。此服務也會與 Windows Identity Foundation (WIF) 整合。如需詳細資訊,請閱讀如何使用 Azure Active Directory 存取控制驗證 Web 使用者 (英文) 和 Azure Active Directory 文件網頁 (英文)。

  • Azure 流量管理員:流量管理員可讓您平衡多個託管 Azure 服務間的連入流量負載。您可以對在相同的資料中心或世界各地不同的資料中心內執行的服務進行流量負載平衡。您可以透過有效管理流量,確保應用程式的高效能、可用性和恢復功能。如需詳細資訊,請閱讀流量管理員文件網頁 (英文)。

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

  • Azure 虛擬網路:Azure 虛擬網路可讓您在 Azure 中建立邏輯上隔離的區段。然後您可利用 IPsec 連線安全地將此區段連接到內部部署資料中心或單一用戶端電腦。虛擬網路方便您運用 Azure 可擴充的隨選基礎結構。還提供了連接至內部部署資料和應用程式的能力,包括在 Windows Server、大型主機及 UNIX 上執行的系統。如需詳細資訊,請閱讀虛擬網路文件網頁 (英文)。

  • Azure ExpressRoute:Azure ExpressRoute 可讓您在 Azure 資料中心與內部部署或共置環境中的基礎結構之間建立私人連線。ExpressRoute 連線不會周遊公用網際網路。相較於透過網際網路的一般連線,ExpressRoute 連線更加可靠、速度更快、延遲更少且更為安全。透過 ExpressRoute,您可以在 ExpressRoute 位置 (交換服務提供者設備) 上建立對 Azure 的連線。或者,您可以從現有的 WAN 網路 (如 MPLS VPN) 直接連接至 Azure。如需詳細資訊,請閱讀 ExpressRoute 概觀ExpressRoute 文件網頁 (英文)。

如需詳細資訊,請閱讀網路服務網頁。

在您完成雲端服務或應用程式的開發之後,您即可將它封裝、上傳及部署至 Azure。有四個不同的部署案例:

  • 新部署

  • 組態變更

  • 累加式程式碼升級

  • 主要升級

如需詳細資訊,請閱讀如何管理雲端服務 (英文)、在 Azure 中管理部署管理您的服務

您可以使用一個 Azure 訂用帳戶來設定多個部署,以支援開發、測試、QA、分段執行等。Azure 也可讓您設定一個 Azure 帳戶來存取多個訂用帳戶。因此,您可以為 Azure 應用程式建立個別的開發和測試環境 (擁有其自己的訂用帳戶)。在此狀況下,請考慮先將服務部署至測試訂用帳戶,然後部署至生產訂用帳戶。當您準備好讓服務上線時,可以將它移到生產環境。將雲端服務部署至生產訂用帳戶之後,您可以使用預備環境來進行連續測試。

Azure 可讓您設定應用程式以便自動向上或向下延展,進而符合目前的需求以及將成本降至最低。若要啟用此功能,請使用「自動延展」規則和排程。如需詳細資訊,請閱讀如何延展應用程式 (英文)。

另請參閱

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

您是否想要參加?
顯示:
© 2014 Microsoft