共用方式為


使用 Azure 建置 Real-World Cloud Apps

作者 :Rick AndersonTom Dykstra

下載修正專案下載電子書

本電子書會引導您完成建置真實世界雲端解決方案的模式型方法。 這些模式適用于開發程式,以及架構和程式碼撰寫做法。

內容是以 Scott Guthrie 所開發的簡報為基礎,由他于 2013 年 6 月 (NDC) (第 1 部分第 2 部分) ,以及 2013 年 9 月的 Microsoft Tech Ed Australia 提供。 其他許多更新 並增強內容,同時將它從影片轉換成寫入的表單。

目標對象

想要開發雲端、考慮移轉至雲端,或不熟悉雲端開發的開發人員,可在這裡找到他們需要知道的最重要概念和做法的精簡概觀。 概念會以具體範例說明,而每個章節會連結至其他資源,以取得更深入的資訊。 其他資源的範例和連結適用于 Microsoft 架構和服務,但說明的原則也適用于其他 Web 開發架構和雲端環境。

已經開發雲端的開發人員可能會在這裡找到可協助他們更成功的構想。 系列中的每個章節都可以獨立閱讀,因此您可以挑選並選擇您感興趣的主題。

觀看 Scott Guthrie 使用 Azure 簡報建置 真實世界雲端應用程式的 任何人,並想要更多詳細資料和更新的資訊,將會在這裡找到。

雲端開發模式

本電子書說明雲端開發的十三種建議模式。 在此使用「模式」來表示建議的作法:如何最能開發、設計和撰寫雲端應用程式程式碼。 這些是關鍵模式,可協助您「進入成功的陷阱」。如果您遵循這些模式。

  • 自動化所有專案

    • 使用腳本將效率最大化,並將重複程式中的錯誤降到最低。
    • 示範:Azure 管理腳本。
  • 原始檔控制

    • 在原始檔控制中設定分支結構,以加速 DevOps 工作流程。
    • 示範:將腳本新增至原始檔控制。
    • 示範:將敏感性資料保留在原始檔控制外。
    • 示範:在 Visual Studio 中使用 Git。
  • 持續整合和傳遞

    • 使用每個原始檔控制簽入自動化建置和部署。
  • Web 開發最佳做法

    • 讓 Web 層保持無狀態。
    • 示範:在 Azure App 服務 中調整和自動調整Web Apps。
    • 避免會話狀態。
    • 當 CDN 無法使用時,請使用具有後援的 CDN。
    • 使用非同步程式設計模型。
    • 示範:ASP.NET MVC 和 Entity Framework 中的非同步。
  • 單一登入

    • Azure Active Directory 簡介。
    • 示範:建立使用 Azure Active Directory 的 ASP.NET 應用程式。
  • 資料儲存體選項

    • 資料存放區的類型。
    • 如何選擇正確的資料存放區。
    • 示範:Azure SQL資料庫。
  • 資料分割策略

    • 垂直、水準或兩者分割資料,以利調整關係資料庫。
  • 非結構化 Blob 儲存體

    • 使用 Blob 服務將檔案儲存在雲端中。
    • 示範:在修正 It 應用程式中使用 Blob 儲存體。
  • 設計以存留失敗

    • 失敗類型。
    • 失敗範圍。
    • 瞭解 SLA。
  • 監視和遙測

    • 為什麼您應該同時購買遙測應用程式,並撰寫您自己的程式碼來檢測您的應用程式。
    • 示範:適用于 Azure 的 New Relic
    • 示範:在 [修正程式碼] 應用程式中記錄程式碼。
    • 示範:修正應用程式中的相依性插入。
    • 示範:Azure 中的內建記錄支援。
  • 暫時性錯誤處理

    • 使用智慧型重試/倒退邏輯來減輕暫時性失敗的影響。
    • 示範:Entity Framework 6 中的重試/輪詢。
  • 分散式快取

    • 使用分散式快取來改善延展性並減少資料庫交易成本。
  • 以佇列為中心的工作模式

    • 透過鬆散結合 Web 和背景工作層來啟用高可用性並改善延展性。
    • 示範:修正應用程式內的 Azure 儲存體佇列。
  • 更多雲端應用程式模式和指引

  • 附錄:Fix It 範例應用程式

    • 已知問題
    • 最佳做法
    • 如何下載、建置、執行及部署。

這些模式適用于所有雲端環境,但我們將使用以 Microsoft 技術和服務為基礎的範例,例如 Visual Studio、Team Foundation Service、ASP.NET 和 Azure。

本章的其餘部分將介紹修正 It 範例應用程式,以及在修正 It 應用程式執行Azure App 服務雲端環境中的Web Apps。

修正範例應用程式

本電子書中顯示的大部分螢幕擷取畫面和程式碼範例都是以 Scott Guthrie 最初開發的修正 It 應用程式為基礎,以示範建議的雲端應用程式開發模式和做法。

修正應用程式首頁

範例應用程式是簡單的工作專案票證系統。 當您需要修正某個專案時,您可以建立票證並指派給某人,而其他人可以登入並查看指派給他們的票證,並在工作完成時將票證標示為已完成。

它是標準 Visual Studio Web 專案。 其建置在 MVC ASP.NET,並使用SQL Server資料庫。 它可以在本機IIS Express中執行,並可部署至 Azure 網站以在雲端中執行。 您可以使用表單驗證和本機資料庫,或使用 Google 之類的社交提供者來登入。 (稍後,我們也會示範如何使用 Active Directory 組織帳戶登入。)

登入頁面

登入後,您可以建立票證、將票證指派給某人,並上傳您想要修正的圖片。

建立修正它工作

修正已建立的工作

您可以追蹤您所建立的工作專案進度、查看指派給您的票證、檢視票證詳細資料,以及將專案標示為已完成。

這是一個非常簡單的應用程式,從功能的觀點來看,但您將瞭解如何建置它,使其可以調整為數百萬個使用者,並能夠復原資料庫失敗和連線終止等專案。 您也將瞭解如何建立自動化和敏捷式開發工作流程,讓您能夠透過有效率且快速地逐一查看開發週期,讓應用程式變得更簡單且更好。

Azure App Service 中的 Web Apps

用於修正 It 應用程式的雲端環境是我們稱為 Web Sites 的 Azure 服務。 此服務可讓您在 Azure 中裝載自己的 Web 應用程式,而不需要建立 VM 並加以更新、安裝和設定 IIS 等等。我們會在 VM 上裝載您的網站,並為您自動提供備份和復原和其他服務。 網站服務適用于 ASP.NET、Node.js、PHP 和 Python。 它可讓您非常快速地使用 Visual Studio、Web Deploy、FTP、Git 或 TFS 進行部署。 它通常只需要幾秒鐘的時間,您開始部署的時間和透過網際網路提供更新的時間。 您隨時都可以開始使用,而且您可以在流量成長時相應增加。

在幕後,Web Apps Azure App 服務提供許多架構元件和功能,如果您要在自己的 VM 上使用 IIS 來裝載網站,則必須自行建置。 其中一個元件是一個部署端點,會自動設定 IIS,並在您想要執行月臺的 VM 上安裝您的應用程式。

部署服務

當使用者叫用網站時,他們不會直接叫用 IIS VM,他們會流覽 應用程式要求路由 (ARR) 負載平衡器。 您可以將這些專案與您自己的伺服器搭配使用,但這裡的優點是它們會自動為您設定。 他們會使用智慧啟發學習法,將會話親和性、IIS 中的佇列深度,以及每部電腦上的 CPU 使用量等因素納入考慮,以將流量導向裝載網站的 VM。

ARR 負載平衡器

如果機器關閉,Azure 會自動從輪替提取它、啟動新的 VM 實例,並開始將流量導向至新的實例,這一切都不會讓應用程式停機。

從電腦失敗自動復原

這一切都會自動進行。 您只需要建立網站,並使用 Windows PowerShell、Visual Studio 或 Azure 管理入口網站將應用程式部署至網站。

如需如何在 Visual Studio 中建立 Web 應用程式的快速簡單逐步教學課程,並將其部署至 Azure 網站,請參閱 開始使用 Azure 和 ASP.NET

總結

本簡介提供本書籍將涵蓋的主題清單、範例應用程式的螢幕擷取畫面,以及Azure App 服務雲端環境中Web Apps的簡短概觀。 在 雲端中開發應用程式的絕佳優點之一,就是輕鬆地將重複的開發工作自動化,例如建立測試環境,並將程式碼部署到其中。 如何執行此動作是 下一章的主旨

資源

如需本章所涵蓋主題的詳細資訊,請參閱下列資源。

文件:

  • Azure App 服務中的Web Apps。 Web Apps相關 Azure 檔的入口網站頁面。
  • Web Apps、雲端服務和 VM:使用時機? 如本章所示的 WAWS 只是您可以在 Azure 中執行 Web 應用程式的三種方式之一。 本文說明這三種方式之間的差異,並提供如何選擇適合您案例的指引。 如同網站,雲端服務是 Azure 的 PaaS 功能。 VM 是 IaaS 功能。 如需 PaaS 與 IaaS 的說明,請參閱 資料選項 一章。

影片: