Google Cloud Well-Architected Framework 效能最佳化支柱中的這項原則提供建議,協助您納入彈性,也就是根據工作負載需求變化,動態調整資源的能力。
彈性可讓系統的不同元件獨立調整資源配置。這種精準擴充方式可將資源分配到最需要的地方,避免資源過度或不足,進而提升效能和成本效益。
原則總覽
系統的效能需求會直接影響系統垂直或水平擴充的時間和方式。您需要評估系統容量,並判斷系統在基準狀態下預期處理的負載。接著,您必須決定系統應如何因應負載增減。
負載增加時,系統必須水平擴展、垂直擴充,或兩者兼具。如要水平調度資源,請新增副本節點,確保系統有足夠的整體容量來因應增加的需求。如要垂直擴充,請將應用程式的現有元件替換為容量、記憶體和儲存空間更大的元件。
負載降低時,系統必須縮減資源 (橫向、縱向或兩者皆是)。
定義系統擴充或縮減資源的情況。如果已知流量會在特定時段激增,請規劃手動擴充系統。使用自動調度資源等工具,因應負載增減。
建議
如要充分發揮彈性,請參考下列各節的建議。
規劃流量高峰期
您需要為已知事件 (例如預期客戶需求增加的期間) 規劃有效率的資源調度路徑。
建議您在已知的高流量時段前,先擴充系統。舉例來說,如果您是零售組織,預期需求會在季節性特賣期間增加。建議您在特賣活動開始前,手動擴充資源或水平擴展系統,確保系統能立即處理增加的負載,或立即調整現有限制。否則,系統可能需要幾分鐘才能新增資源,以因應即時變化。應用程式的容量可能無法快速增加,導致部分使用者遇到延遲。
對於未知或非預期的事件 (例如需求或流量突然激增),您可以使用自動調度資源功能,根據指標觸發彈性調度資源。這些指標包括 CPU 使用率、負載平衡器服務容量、延遲時間,甚至是您在 Cloud Monitoring 中定義的自訂指標。
舉例來說,假設某個應用程式在 Compute Engine 代管執行個體群組 (MIG) 上執行。這個應用程式要求每個執行個體在平均 CPU 使用率達到 75% 之前,都能發揮最佳效能。在這個範例中,您可以定義自動調度資源政策,在 CPU 使用率達到門檻時建立更多執行個體。這些新建立的執行個體有助於吸收負載,確保平均 CPU 使用率維持在最佳速率,直到達到您為 MIG 設定的執行個體數量上限為止。當需求減少時,自動調度資源政策會移除不再需要的執行個體。
在 BigQuery 中規劃資源運算單元預留項目,或使用代管自動配置器調整 Spanner 的自動調度資源設定限制。
使用預測式資源調度功能
如果系統元件包含 Compute Engine,您必須評估預測自動調度資源是否適合您的工作負載。預測式自動調度資源會根據指標的歷來趨勢 (例如 CPU 使用率),預測未來的負載。預測結果每隔幾分鐘就會重新計算,因此自動配置器會根據最近的負載變化快速調整預測結果。如果沒有預測式自動調度資源功能,自動配置器只能根據觀察到的即時負載變化,被動調度群組資源。預測性自動調度資源功能會同時使用即時資料和歷來資料,因應目前和預測的負載。
實作無伺服器架構
建議您使用本身具有彈性的無伺服器服務,實作無伺服器架構,例如:
有別於其他服務 (例如 Compute Engine) 必須依賴微調規則,無伺服器的自動調度資源功能會隨時運作,並能將配置資源縮減至零。
使用 Kubernetes 的 Autopilot 模式
如果複雜的應用程式需要更精細地控管 Kubernetes,建議使用 Google Kubernetes Engine (GKE) 的 Autopilot 模式。Autopilot 模式預設提供自動化和擴充性。GKE 會根據流量自動調度節點和資源。GKE 會管理節點、為應用程式建立新節點,以及設定自動升級和修復功能。