推廣模組化設計

Last reviewed 2024-12-06 UTC

Google Cloud Well-Architected Framework 的效能最佳化支柱中的這項原則,提供有助於推動模組化設計的建議。模組化元件和清楚的介面可實現彈性調度、獨立更新,以及未來元件分離。

原則總覽

瞭解應用程式元件與系統元件之間的依附關係,設計可擴充的系統。

無論最初部署的是單體式或微服務架構,模組化設計都能提供彈性和復原能力。將系統分解為定義明確的獨立模組,並提供清楚的介面,即可擴充個別元件,滿足特定需求。

目標式調整功能可透過下列方式,協助您最佳化資源用量並降低成本:

  • 只為每個元件提供必要資源,並為需求較低的元件分配較少資源。
  • 在流量高峰期增加資源,維持使用者體驗。
  • 移除使用率過低的資源,但不會影響效能。

模組化也有助於提升可維護性。較小的獨立單元更容易瞭解、偵錯及更新,因此可加快開發週期並降低風險。

雖然模組化有顯著優勢,但您必須評估潛在的效能取捨。模組間的通訊量增加可能會導致延遲和負擔。盡量在模組化和效能之間取得平衡。高度模組化的設計可能不適合所有情況。如果效能至關重要,或許適合採用更緊密耦合的方法。系統設計是疊代程序,您會持續審查及修正模組化設計。

建議

如要推廣模組化設計,請參考下列各節的建議。

設計鬆耦合

設計鬆耦合架構。依附元件最少的獨立元件可協助您建構可擴充的彈性應用程式。規劃服務的界線時,請務必考量可用性和擴充性需求。舉例來說,如果某個元件的需求與其他元件不同,您可以將該元件設計為獨立服務。針對不影響主要服務回應時間的次要子程序或服務,實作正常失敗的計畫。

為並行和平行處理設計

設計應用程式時,請確保能同時支援多項工作,例如處理多個使用者要求,或在使用者與系統互動時執行背景工作。將大型工作拆分成多個小任務,讓多個服務執行個體同時處理。工作並行可讓您使用自動調整規模等功能,增加下列產品的資源分配:

平衡模組化,以彈性分配資源

盡可能確保每個元件只使用特定作業所需的資源 (例如記憶體、儲存空間和處理能力)。資源分配過多會導致不必要的費用,而資源分配不足則會影響效能。

使用定義明確的介面

確保模組化元件透過清楚的標準化介面 (例如 API 和訊息佇列) 有效通訊,減少翻譯層或多餘流量造成的負擔。

使用無狀態模型

無狀態模型可確保您能獨立處理每個要求或與服務的互動,不受先前要求影響。這個模型可促進擴充性和復原能力,因為您可以擴充、縮減或重新啟動服務,而不會遺失進行中要求或程序所需的資料。

選擇互補技術

選擇可輔助模組化設計的技術。評估程式設計語言、架構和資料庫的模組化支援程度。

詳情請參閱下列資源: