Google Cloud Well-Architected Framework 的可靠性支柱提供相關建議,協助您運用水平擴充性。使用水平擴充功能,有助於確保Google Cloud 中的工作負載能有效擴充並維持效能。
這項原則與可靠性的範圍 重點領域相關。
原則總覽
將系統重新架構為水平架構。如要因應流量或資料成長,可以新增更多資源。您也可以在資源未使用時移除。
如要瞭解水平擴充的價值,請考量垂直擴充的限制。
垂直擴充的常見情境是使用 MySQL 資料庫做為主要資料庫,儲存重要資料。隨著資料庫用量增加,需要更多 RAM 和 CPU。最終,資料庫會達到主機的記憶體上限,因此需要升級。這個程序可能需要重複幾次。問題在於資料庫的成長幅度有硬性限制,VM 大小並無上限。資料庫可能會達到無法再新增資源的程度。
即使資源不受限制,大型 VM 也可能成為單一故障點。主要資料庫 VM 的任何問題都可能導致錯誤回應,或造成影響所有使用者的全系統中斷。避免單點故障,如「透過資源備援機制建構可用性高的系統」一文所述。
除了這些資源調度限制外,垂直資源調度的費用通常也較高。隨著運算能力和記憶體容量更大的機器問世,成本可能會大幅增加。
相較之下,水平資源調度的成本可能較低。在設計為可擴充的系統中,水平擴充的潛力幾乎不受限。
建議
如要從單一 VM 架構轉換為水平多機器架構,您需要仔細規劃並使用適當的工具。如要協助您達成水平擴充,請參考下列小節的建議。
使用代管服務
代管服務可免除手動管理水平擴縮的需要。舉例來說,您可以使用 Compute Engine 代管執行個體群組 (MIG) 新增或移除 VM,以水平調度應用程式資源。對於容器化應用程式,Cloud Run 是一個無伺服器平台,可根據連入流量自動調整無狀態容器的資源配置。
推廣模組化設計
模組化元件和清楚的介面可協助您視需要調整個別元件,而不必調整整個應用程式。詳情請參閱「推廣模組化設計」一文。
實作無狀態設計
設計無狀態應用程式,也就是不儲存本機資料。這樣一來,您就能新增或移除例項,不必擔心資料一致性問題。