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