善用彈性

Last reviewed 2024-12-06 UTC

Google Cloud 良好架構架構的效能最佳化支柱中,這項原則提供最佳化建議,協助您納入彈性功能,也就是根據工作負載需求變更動態調整資源的能力。

彈性可讓系統的不同元件獨立調整規模。這種指定的擴充功能可精準地分配資源,不必過度或不足地配置資源,進而提升效能和成本效率。

原則總覽

系統的效能需求會直接影響系統何時及如何進行垂直或水平縮放。您需要評估系統的容量,並判斷系統在基準值下可處理的負載量。接著,您需要決定系統如何回應負載的增加和減少。

負載增加時,系統必須橫向擴充或縱向擴充,或同時進行這兩種擴充。如要水平調度資源,請新增複本節點,確保系統有足夠的整體容量來滿足需求量的增加。若要進行垂直調整,請將應用程式的現有元件替換為容量、記憶體和儲存空間較大的元件。

負載量減少時,系統必須縮減 (水平、垂直或兩者皆是)。

定義系統擴大或縮減的情況。請在流量高峰期間手動擴充系統。使用自動調度資源等工具,回應負載的增減。

建議

如要充分發揮彈性資源的效益,請參考下列各節的建議。

規劃尖峰負載期間

您需要為已知事件 (例如預期的客戶需求增加期間) 規劃有效的調整路徑。

建議您在流量高峰期來臨前,先擴充系統。舉例來說,如果您是零售商,預期在季節性促銷期間需求量會增加。建議您在銷售活動開始前手動擴大或擴充系統,確保系統能立即處理增加的負載,或立即調整現有限制。否則,系統可能需要幾分鐘的時間才能因應即時變更而新增資源。應用程式的容量可能無法快速增加,導致部分使用者發生延遲情形。

針對未知或意外事件 (例如需求或流量突然激增),您可以使用自動調度資源功能,觸發根據指標進行彈性調度的功能。這些指標包括 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 會管理節點、為應用程式建立新節點,以及設定自動升級和修復功能。