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