共用方式為


Azure 應用程式的設計原則

本節中的設計原則文章提供基礎,協助您建置雲端應用程式,以承受失敗、隨需求擴展,以及隨著業務需求而發展。 無論您是要設計新系統、現代化舊版應用程式,還是規劃生產工作負載,這些互連原則都可以幫助您就可靠性、效能和可維護性做出明智的決策。 它們共同構成了一種全面的雲端原生應用程式設計方法,平衡了卓越技術與商業價值。

若要讓您的應用程式更具可擴展性、彈性和可管理性,請遵循以下設計原則。

核心原則

  • 自我修復設計。 設計您的應用程式以偵測失敗、正常回應並自動復原。 在分散式系統中,故障是不可避免的。 若要隔離失敗並維護系統可用性,請實作重試邏輯、健康端點監控、斷路器和艙壁模式。

  • 讓所有的東西變得多餘。 在您的應用程式中建立備援以避免單點故障。 使用負載平衡器、多個執行個體、資料庫複本,以及多區域或多區域部署。 針對符合您的業務需求和風險承受能力的備援層級進行設計。

  • 盡量減少協調。 將應用程式服務之間的協調降至最低,以達到延展性。 使用非同步通訊的解耦元件,在適當的情況下擁抱最終一致性,並套用網域事件來同步狀態,而無需緊密耦合。

  • 設計為能夠橫向擴展。根據需求變化,設計您的應用程式以新增或移除執行個體。 避免工作階段黏性、識別瓶頸、透過擴展需求來分解工作負載,以及使用基於即時指標的自動擴展來有效處理可變負載。

  • 圍繞限制進行分區。 使用數據分割來處理資料庫、網路和計算限制。 將資料水平、垂直或功能性地分區,並設計分區索引鍵以避免熱點。 請考慮在多個層級進行分割,包括資料庫、佇列和運算資源。

操作原則

  • 為營運而設計。 設計您的應用程式,為營運團隊提供部署、監控和事件回應所需的工具。 實施全面的日誌記錄、分散式追蹤、標準化指標並自動化管理任務,以實現有效的營運監督。

  • 使用受管服務。 使用平台即服務 (PaaS) ,而不是基礎結構即服務 (IaaS)。 受管服務可減少營運開銷、提供內建擴展功能、並讓團隊專注於應用程式邏輯,而不是基礎設施維護。

  • 使用身分識別服務。 使用受控識別平台,例如 Microsoft Entra ID,而不是建置或操作您自己的身分識別系統。 受管解決方案提供憑證儲存、驗證功能、聯合功能,並符合業界標準。

戰略原則

  • 進化而設計。 為持續創新而設計,因為所有成功的應用程式都會隨著時間的推移而變化。 強制執行鬆散耦合、封裝領域知識、使用非同步傳訊,以及公開定義良好的 API,其中包括適當的版本控制,以實現獨立的服務演進。

  • 業務需求而構建。 根據業務需求做出設計決策。 定義明確的目標,例如復原時間目標 (RTO)、文件服務等級協定 (SLA) 和服務等級目標 (SLO)、圍繞業務領域建立應用程式模型,並在平衡功能和非功能需求的同時規劃成長。

  • 執行服務的故障模式分析。 系統地識別系統中的潛在故障點並規劃復原策略。 若要從一開始就建立可靠性,請在架構和設計階段進行故障模式分析 (FMA)。 按風險和影響對每種故障模式進行評級,然後確定適當的響應和恢復機制。

應用這些原則

這些原則共同作用,以建立彈性、可擴展的應用程式:

  • 業務需求開始,瞭解您要建置的內容和原因。

  • 透過實作自我修復功能和備援來設計以因應故障。

  • 透過水平擴展、分割和最小協調來規劃擴展

  • 使用 Azure 服務 來降低作業複雜度,並專注於商務邏輯。

  • 透過適當的監控、日誌記錄和自動化來支援營運

  • 針對變更而建置 ,以確保您的應用程式可以隨著業務需求而發展。