善用水平擴充性

Last reviewed 2024-12-30 UTC

Google Cloud Well-Architected Framework 的可靠性支柱中,這項原則提供相關建議,協助您使用水平擴充功能。使用水平擴充功能,有助於確保Google Cloud 中的工作負載能有效擴充並維持效能。

這項原則與可靠性的範圍 焦點領域相關。

原則總覽

將系統重新架構為水平架構。如要因應流量或資料成長,可以新增更多資源。您也可以在資源未使用時移除。

如要瞭解水平擴充的價值,請考量垂直擴充的限制。

垂直擴充的常見情境是使用 MySQL 資料庫做為主要資料庫,儲存重要資料。隨著資料庫用量增加,需要更多 RAM 和 CPU。最終,資料庫會達到主機的記憶體上限,因此需要升級。這個程序可能需要重複幾次。問題在於資料庫的成長幅度有硬性限制。VM 大小並非無限。資料庫可能會達到無法再新增資源的程度。

即使資源不受限制,大型 VM 仍可能成為單一故障點。主要資料庫 VM 的任何問題都可能導致錯誤回應,或造成影響所有使用者的全系統中斷。如「透過資源冗餘建構高可用性系統」一文所述,請避免單點故障。

除了這些擴充限制外,垂直擴充的成本往往也比較高。隨著運算能力和記憶體容量更大的機器問世,成本可能會大幅增加。

相較之下,水平擴展的成本可能較低。在設計為可擴充的系統中,水平擴充的潛力幾乎不受限。

建議

如要從單一 VM 架構轉換為水平多機器架構,您需要仔細規劃並使用適當的工具。如要協助您達成水平擴充,請參考下列小節的建議。

使用代管服務

代管服務可免除手動管理水平擴縮的需要。舉例來說,您可以使用 Compute Engine 代管執行個體群組 (MIG) 新增或移除 VM,以水平調度應用程式資源。對於容器化應用程式,Cloud Run 是無伺服器平台,可根據傳入的流量自動調整無狀態容器的資源配置。

推廣模組化設計

模組化元件和清楚的介面可協助您視需要調整個別元件,而不必調整整個應用程式。詳情請參閱效能最佳化主題中的「推廣模組化設計」。

實作無狀態設計

設計無狀態應用程式,也就是不儲存本機資料。這樣一來,您就能新增或移除例項,不必擔心資料一致性問題。