Azure 應用程式架構基本概念
專為雲端裝載工作負載所設計的應用程式可解決解決方案的商務需求,並納入雲端原生元件和功能。 設計良好的雲端應用程式可解決可靠性、安全性、成本、作業和效能考慮。 這些考慮與商務需求以及雲端託管平台的特定特性和提供的功能相一致。
設計雲端工作負載的應用程式不需要任何特定的應用程式樣式,例如微服務。 不過,雲端裝載可讓許多應用程式設計模式比裝載解決方案更輕鬆,這些解決方案不會以原生方式提供各種不同的應用程式選擇,& 數據平臺選項、調整功能、安全性控件和傳訊選項。 為此,雲端工作負載受益於依設計分解為較小、分散式服務的應用程式。 這些服務會透過 API 或使用異步傳訊或事件進行通訊。 應用程式會根據需求進行橫向擴展,隨需要新增實例。
利用雲端的應用程式託管平臺、訊息傳遞功能和解耦服務的應用程式,會面臨分散式系統常見的問題。 應用程式狀態是分佈的。 作業會以平行和異步方式執行。 發生失敗時,應用程式必須具有復原性。 惡意執行者會持續以應用程式為目標。 部署必須自動化且可預測。 監視和遙測對於深入了解系統而言非常重要。
一般內部部署設計
- 整合型和共置的功能和數據
- 專為可預測的規模或過度布建而設計
- 關係資料庫
- 同步處理
- 避免失敗的設計 (MTBF)
- 透過IT功能提供的資源
- 雪花和寵物伺服器
一般雲端設計
- 分解的和分散式的功能性與數據
- 專為彈性擴展而設計
- 多語持久性(儲存技術混合)
- 異步處理
- 設計平均故障間隔時間(MTBF)和設計平均修復時間(MTTR)
- 根據需要以基礎結構即代碼的方式布建資源
- 不可變且可取代的基礎結構
設計適用於 Azure 的應用程式
應用程式必須由雲端架構設計人員設計,以特別利用雲端託管,並做出策略性的取捨決策。 Azure 特別提供資源,以協助架構設計人員在實作中達成良好的設計並引導開發小組。 若要達成工作負載和應用程式設計,架構設計人員必須:
- 符合組織雲端採用標準
- 遵循 Azure Well-Architected Framework 設計
- 瞭解典型的 架構樣式、工作負載和 最佳做法
- 使用設計模式來解決常見問題,並引入策略性取捨
- 做出明智的技術選擇
- 評估參考架構
- 檢閱服務特定指南
Azure 可用來裝載和重新裝載未特別針對雲端設計的應用程式。 雖然工作負載應用程式可以調整為利用雲端功能,但重新遷移為固定資源和規模設計的應用程式不被視為雲端原生部署。
符合組織雲端採用標準
您的應用程式是可能受限於組織標準和治理的工作負載的一部分。 任何大小和雲端成熟度的組織都可以使用適用於 Azure 的
貴組織的 Azure 採用策略不應影響您的架構樣式選擇,但它可能會對技術選擇或安全性界限造成限制。
依據 Azure Well-Architected Framework 進行設計
所有工作負載都可以透過各種鏡頭在設計和實作中進行評估。 Azure 提供 Azure Well-Architected 架構框架,協助工作負載架構師評估並調整其決策,以符合五個主要架構支柱的設計原則。
一般而言,遵循這些原則並評估這些架構要素之間的取捨,會產生符合商務需求的設計,且在 Azure 中執行時已足夠持久、可維護、安全、成本優化。 這些決策應該會影響您的架構樣式選擇,並將限制放在技術選擇或安全性界限上,因為這與特定工作負載的需求有關。
您的小組或組織可能有其他設計原則,也可以從中評估您的工作負載,例如 永續性 和道德。
瞭解一般架構樣式
一旦您了解您的應用程式所處的組織環境,並擁有來自 Azure Well-Architected Framework 的良好架構設計基礎,通常第一個決策點便是:您要建置的架構 的 類型是什麼? 這可能是微服務架構、較傳統的多層式應用程式或巨量數據解決方案。 這些是適合差異結果的不同架構樣式。 在評估架構樣式時,您也會選取數據存放區模型來處理狀態管理。 這些決策有好處和挑戰。
Azure Well-Architected Framework 中的工作負載
Well-Architected Framework 有一個專門用來區分工作負載分類或類型的區段,稱為 Azure Well-Architected Framework 工作負載。 您可以在本節中找到涵蓋 任務關鍵性、人工智慧和機器學習的文章,或 軟體即服務(SaaS) 工作負載的文章。 這些針對特定工作負載的文章採用 Well-Architected Framework 的五大核心支柱,並將其應用到特定領域。 如果您的應用程式是符合其中一個記載模式的工作負載的一部分,請檢閱個別的指引,以透過遵循一組工作負載特定的設計原則和建議,在常見的設計領域,例如應用程式平臺、數據平臺、網路等等,協助您接近您的設計。 某些工作負載類型可能受益於選取特定的架構樣式或數據存放區模型。
最佳做法
請檢閱雲端應用程式中的 最佳做法 文章,以瞭解各種設計考慮,包括 API 設計、自動調整、數據分割、快取等等。 請檢閱這些專案,並套用適合您應用程式的最佳做法。
使用設計模式來解決常見問題並引入策略取捨
您的應用程式具有獨特的商務需求、目標和成功量值。 架構設計人員會將這些功能和非功能需求分解成離散活動,以共同運作,以達成您和使用者滿意的解決方案。 這些活動通常很常見,因為它們已建立跨軟體產業使用的模式。 這些軟體設計模式是已命名並可重複使用的方法,這些方法應用於處理或數據存儲,可以解決具有既定取捨的特定問題。
Azure 的雲端設計模式 目錄, 解決分散式系統中的特定挑戰。
做出明智的技術選擇
決定您要建置的架構類型,以及您預期要使用的設計模式之後,您可以開始選擇架構的主要技術部分。 下列技術選擇至關重要:
計算 是指應用程式運行所依賴的計算資源(應用程式平台)的託管模型。 如需詳細資訊,請參閱 選擇計算服務。
- Azure 也提供某些特定應用程式平臺的特製化指引,例如 選擇 Azure 容器服務 和 Azure 混合式選項。
資料存放區 包含資料庫,但也包括檔案儲存空間、快取、記錄檔,以及應用程式可能保存至存儲的任何其他項目。 如需詳細資訊,請參閱 選擇 Azure 中的數據存放區,檢閱記憶體選項。
消息傳遞 技術可支援系統元件之間的異步訊息傳遞。 如需詳細資訊,請參閱 選擇傳訊服務。
人工智慧(AI) 技術可解決在傳統應用程式程式代碼中實作的計算複雜問題。 若要協助引導這些選擇,請參閱 選擇 Azure AI 服務技術。
您可能會在過程中做出其他技術選擇,但這四個元素(計算、數據、傳訊和 AI)是大部分雲端應用程式的核心,並決定設計的許多層面。
評估參考架構
Azure 架構中心是解決方案構想、範例工作負載和參考架構的首頁。 這些文章通常包含與 Azure Well-Architected Framework 一致的常見元件和考慮清單。 其中一些文章包含裝載於 GitHub 上的可部署解決方案。 雖然這些案例不太可能正是您正在建置的內容,但它們可能是一個很好的起點,可讓您根據特定需求來調整指引。
在 Azure 架構中心瀏覽 架構的 目錄。
查閱服務特定指南
選取核心技術並參考架構之後,請務必存取架構中服務專屬的檔和指引。 使用下列資源來取得服務特定指引。
Azure Well-Architected Framework 服務指南:Well-Architected 架構有涵蓋 Azure 中許多服務的文章,其中架構的五大要素會特別套用至該服務。
尋找並閱讀服務指南, 針對在考慮納入應用程式設計的所有資源。
Azure 可靠性指南:Azure 可靠性中樞有深入的文章,專門解決許多 Azure 服務的可靠性特性。 這些文章記載了一些最重要的可靠性主題,例如可用性區域支援,以及不同類型的中斷期間的預期行為。
尋找並閱讀所有將被考慮作為應用程式設計一部分的資源的 可靠性指南。
來自另一個雲端?
如果您熟悉在其他雲端平台上設計應用程式,許多相同的基本概念都可以應用。 例如,架構樣式和雲端設計模式在概念上與雲端無關。 瀏覽相關的服務映射和架構指南。
- 適用於 AWS 專業人員的 Azure
- 針對 Google Cloud 專業人士的 Azure