善用彈性

Last reviewed 2024-12-06 UTC

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 會管理節點、為應用程式建立新節點,並設定自動升級和修復功能。