如果將工作負載設定為僅依賴單一機型或可用區,在需求量激增時,您可能會無法存取可用資源。如要最佳化運算資源佈建作業,並在需求量暴增時確保工作負載持續運作,您必須設計彈性的 Compute Engine 基礎架構。基礎架構彈性可讓您指定多個可用區、機型或啟動時間,而非單一固定設定。Compute Engine 會自動從偏好選項中選取,協助您盡量提高資源可用性、提升成本效益,並安全採用最新硬體。
本文將說明基礎架構彈性的各個層面、優點,以及如何為工作負載選擇合適的方法。此外,本文也說明瞭相關的 Compute Engine 功能、設計考量事項,以及採用步驟。本文適用於負責設計或管理運算基礎架構的解決方案架構師、基礎架構營運人員和雲端工程師。
基礎架構彈性
您可以從下列三個層面設計基礎架構彈性:
位置彈性 (地點):將 Compute Engine 執行個體分散至區域中的多個可用區,盡可能存取可用資源,或自動選取具有可用容量的單一可用區,以處理對延遲時間敏感的工作負載。
機型彈性 (內容):指定相容機型的排序清單,讓工作負載在需要時使用替代方案。
時間彈性 (何時):排隊要求高需求資源 (例如加速器),而非立即為不需要立即啟動的工作負載佈建資源。
彈性基礎架構的優點
採用彈性的 Compute Engine 基礎架構可帶來下列好處:
在需求高峰期間自動管理容量。工作負載會自動尋找並使用多個機型和可用區的資源。即使偏好的硬體暫時無法使用,這種做法也能確保擴充要求成功。
簡化容量管理。您可以減少手動搜尋可用硬體的作業負擔。Compute Engine 會根據備援偏好設定自動重新導向要求,減少作業瓶頸。
在轉換至最新硬體的過程中,降低容量風險。您可以設定部署作業,優先使用最新一代的硬體,並保留舊代硬體做為備用。這項設定可降低採用最新且需求量高的機器的風險,因為如果最新機器無法使用,部署作業仍可自動要求舊型機器的容量。
針對基準和尖峰流量,盡量降低成本。您只能為已知的基準流量預留容量,並使用機型備援來處理無法預測的尖峰流量。這種做法可減少閒置備份容量的支出。您也可以使用運算彈性承諾使用折扣 (CUD),在機器系列和區域之間維持折扣涵蓋範圍,避免工作負載切換機器系列或區域時,產生以量計價費用。
彈性維度比較
您可以將位置彈性與機型或時間彈性結合。不過,在單一部署中,機型彈性和時間彈性並不相容。您必須選擇硬體備援選項,或在佇列中等待資源可用。
下表比較了各個彈性維度的運作方式,可協助您評估這些選項。如要瞭解哪種方法適合特定用途,請參閱「工作負載適用性和建議」。
| 地點彈性 (地點) | 機型彈性 (內容) | 時間彈性 (何時) | |
|---|---|---|---|
| 如何提升供應情形 | 盡可能存取區域中多個可用區的可用資源。 | 改用相容的替代機器類型,減少發生資源無法使用的錯誤。 | 將要求放入佇列,等待容量可用,以取得高需求資源。 |
| 佈建時間表 | 立即 | 立即 | 已排入佇列 |
| 佈建方法 | 根據所選可用區的可用性,佈建運算執行個體。 | 根據所選機型在各可用區的供應情形,佈建運算執行個體。 | 當所有要求的容量都可用時,佈建運算執行個體。 |
| 支援的機型 | 支援跨可用區的單一或多個機器類型。 | 使用多個機型。 | 僅支援單一機型。 |
工作負載適用性和建議
採用基礎架構彈性取決於工作負載的架構和效能需求。為協助您選擇最佳方法,下表列出一些常見工作負載類型的建議彈性維度和設定。
| 工作負載類型 | 彈性設定建議 |
|---|---|
| 無狀態批次處理、已解除耦合的高處理量運算 (HTC) |
位置和機型彈性:搭配下列其中一種方式使用執行個體彈性政策:
這些方法可讓工作負載跨多個可用區和機型擴充,盡量提高資源可用性。 |
| AI/機器學習訓練、微調及大規模批次工作 | 時間彈性:使用採用 Dynamic Workload Scheduler (DWS) 的佈建模型。這種做法可將要求放入佇列,而非要求立即佈建,因此能改善加速器等高需求資源的存取權。 |
| 微服務和網路前端 | 位置和機型彈性:搭配使用區域性 MIG 與 BALANCED 目標分配型態和執行個體彈性政策。選取 vCPU 和記憶體數量相符的機器類型,確保自動調整功能可預測。此外,請啟用維修時更新,這樣一來,重新建立的運算執行個體就會使用最新的執行個體彈性設定。 |
| 高可用性資料庫 | 位置彈性和機型彈性:
使用區域性 MIG,並搭配 |
| 嚴格限制延遲時間的系統 | 位置彈性:搭配 ANY_SINGLE_ZONE 分配型態使用區域性 MIG。這個形狀會在區域內的所有可用區搜尋足夠的容量,提供位置彈性,同時確保所有執行個體都位於同一個可用區,以維持低延遲。 |
彈性設定可能會導致硬體差異,進而影響應用程式效能。設計彈性系統時,請評估資源可用性最大化與維持一致效能之間的取捨。如需相關指引,請參閱下節「評估及採用彈性基礎架構」。
Compute Engine 的核心彈性功能
如要自動管理容量,您可以在基礎架構的數個層級中導入彈性。Compute Engine 提供多項功能,可彈性選擇位置、機型和時間。您可以單獨設定這些功能,也可以視工作負載需求組合使用。
地點彈性功能
位置彈性功能會將運算執行個體分配到區域中的多個可用區,盡量提高資源可用性。如要盡量享有這項福利,請選取偏好機型在所有可用區都適用的區域。
您可以將位置彈性套用至下列部署類型:
MIG:區域 MIG 會在建立執行個體和維護期間評估即時容量,以便在資源可用的位置佈建運算執行個體。如果可用區在執行個體修復期間容量不足,使用
ANY或BALANCED型態的 MIG 會自動在其他可用區重新建立故障的運算執行個體。為獲得最佳成效,請根據工作負載目標設定目標分配形狀:ANY:建議使用,可確保最高可用性。使用這個形狀可盡量提高資源可用性。這種形狀會將運算執行個體分配至任何有可用容量的可用區,並優先使用未使用的預留項目。BALANCED:建議使用,可確保高可用性。請針對高可用性工作負載使用這個形狀。這項功能會將運算執行個體平均分配至各個可用區,以防可用區服務中斷,同時優先考量資源可用的可用區。ANY_SINGLE_ZONE:建議用於低延遲。如要嚴格限制延遲時間,請使用這個形狀。系統會將 MIG 中的所有運算執行個體分配至資源最充足的單一可用區。
詳情請參閱「關於區域 MIG」一文。
非代管執行個體群組:這類群組原生不支援位置彈性。請改用
regionInstances.bulkInsertAPI 大量建立運算執行個體,最多可佈建 5,000 個獨立運算執行個體,並採用ANY_SINGLE_ZONE目標分配型態。這項要求會在單一可用區中建立運算執行個體,您可以將這些執行個體新增至非代管群組。請注意,如果是獨立運算執行個體,Compute Engine 只會在運算執行個體建立要求期間評估容量,以選取可用區。詳情請參閱「將未受管理的 VM 分組」。
獨立運算執行個體:使用區域大量執行個體建立要求 (
regionInstances.bulkInsertAPI),並設定目標分配形狀 (ANY、BALANCED或ANY_SINGLE_ZONE) 和最低計數。如果沒有足夠的容量,系統會盡可能佈建運算執行個體,而不是完全失敗。如果是獨立運算執行個體,Compute Engine 只會在執行個體建立要求期間評估容量,以選取可用區。詳情請參閱「關於大量建立 VM」。
機型彈性功能
機型彈性功能可讓部署作業使用替代機型的優先順序清單。如果主要選擇無法使用,Compute Engine 會自動改用次要機型。如要設定這項功能,請定義執行個體彈性政策,其中包含單一或多個執行個體選項的排序清單。
您可以將執行個體彈性政策套用至下列部署類型:
MIG:將執行個體彈性政策附加至 MIG,讓群組在需求量暴增時,自動改用替代硬體。如果 MIG 使用 Spot VM,這項政策會自動優先選擇預估正常運作時間較長,且先占風險較低的備援機型。詳情請參閱「關於 MIG 中的執行個體彈性」。
未受管理執行個體群組:這類群組原生不支援執行個體彈性政策,因此您可以使用
regionInstances.bulkInsertAPI 佈建執行個體,然後將其新增至群組。在 API 要求中加入執行個體彈性政策,並指定單一可用區 (locationPolicy.zones.zone) 或使用ANY_SINGLE_ZONE目標分配型態。使用ANY_SINGLE_ZONE形狀可自動選取資源最充足的可用區,因此具有位置彈性的優點。請注意,如果是獨立執行個體,Compute Engine 只會在執行個體建立要求期間套用彈性政策。如要進一步瞭解如何大量建立運算執行個體,請參閱「使用執行個體彈性大量建立 VM」;如要將這些執行個體加入群組,請參閱「將非代管 VM 分組」。
獨立運算執行個體:對於不需要執行個體群組的工作負載 (例如獨立批次處理作業),您可以使用
regionInstances.bulkInsertAPI 和執行個體彈性政策,佈建運算執行個體。請注意,如果是獨立執行個體,Compute Engine 只會在執行個體建立要求期間套用彈性政策。詳情請參閱「大量建立 VM 時的執行個體彈性」。
在不同機器類型之間順暢地調度資源
設定機型彈性時,備援機型的硬體架構或磁碟規格可能不同。如果這些規格與執行個體選取項目中的機型不相容,則佈建作業可能會失敗。
如要使用規格不相容的機型,您必須在執行個體彈性政策中定義屬性覆寫。這些覆寫可確保 Compute Engine 回退至替代機型時,會自動套用該特定硬體所需的正確開機映像檔、磁碟類型或處理器基準。這項功能可讓部署作業在不同機器類型之間順暢擴展,並提高佈建成功率。
詳情請參閱「磁碟和 CPU 平台覆寫的運作方式」。
時間彈性功能
如果工作負載不需要立即啟動,可使用時間彈性功能等待高需求資源 (例如加速器),而不必立即佈建。
如要實作時間彈性,請根據工作負載需求,使用下列採用 DWS 的功能:
如要將容量要求排入佇列,等到資源可用時再處理,請使用彈性啟動佈建模式。
如要預留特定日期和時間的未來容量,請使用日曆模式的未來預留項目。
評估及採用彈性基礎架構
設定位置或機型彈性之前,請務必確認所選位置和機型彼此相容,且符合工作負載需求。為協助您成功設計及導入彈性基礎架構,下列章節提供重要的評估考量,以及逐步採用策略。
評估考量事項
評估彈性基礎架構時,請考量下列幾項要點:
位置彈性:將工作負載分散至多個可用區,可能會影響網路延遲,並增加跨可用區的資料傳輸費用。
詳情請參閱下列文件:
- 如要查看可用區中運算執行個體之間的流量延遲時間資料,請參閱「查看 Google Cloud 延遲時間資訊主頁」。
- 如要計算與可用區間流量相關的資料移轉費用,請參閱 Google Cloud 內部 VM 之間的資料移轉定價 Google Cloud。
機型彈性:改用替代機型可能會導致應用程式效能和費用出現差異。跨世代的機型彈性通常需要您實作磁碟和 CPU 平台覆寫。您必須確認要使用的機型符合應用程式的技術先決條件。
詳情請參閱下列文件:
採用策略
視您要設計新部署作業或遷移現有部署作業,選擇相應策略,如下所示:
新工作負載:如果您要設計新的部署作業,建議在基礎架構設計中採用彈性做法。如要找出工作負載類型適用的彈性維度建議,請按照「工作負載適用性和建議」中的指引操作。然後,選擇最適合工作負載的部署類型。如要進一步瞭解部署類型和彈性設定,請參閱「核心彈性功能」一節。
現有部署項目:如要將使用單一可用區或機型的部署項目遷移至彈性基礎架構,建議逐步採用彈性,盡量降低風險。您可以採用下列漸進式採用策略:
新增地點彈性。使用
BALANCED或ANY分配型態,將可用區工作負載遷移至區域性 MIG。如果您使用EVEN形狀的區域性 MIG,請改為BALANCED。這項變更對於擴充的 MIG 而言非常重要。區域的暫時容量限制不會阻礙擴充作業。或者,如要建立獨立的運算執行個體,請使用regionInstances.bulkInsertAPI。新增架構相同的替代機器類型。附加執行個體彈性政策,指定共用相同 CPU 架構和磁碟支援的機型,例如
n2-standard-8和n2d-standard-8。從不同世代新增替代機型,並調整 CUD。整合最新一代的機器,例如
n4-standard-8,並視需要使用磁碟覆寫。此外,您還能使用 Compute 彈性 CUD,折抵備用用量的折扣。
為確保新部署作業和增量遷移作業都能安全順利地採用新功能,建議您按照下列推出工作流程進行:
驗證並設定基準。在非正式環境中,測試應用程式在所有選取的機器系列、磁碟組合和可用區的運作情形。
投入生產並擴大規模。先將執行個體彈性政策或區域性 MIG 分散型態逐步推出至部分生產機群,再擴展至全球。
監控及最佳化。持續監控備援率、成效指標和費用,以修正機器類型優先順序清單。使用 MIG 時,如要追蹤機器類型和可用區的即時運算執行個體分配情形,請使用 MIG 執行個體分配情形監控資訊主頁。如需操作說明,請參閱「監控 MIG 中的執行個體分配情形」。
最佳做法
如要盡可能提高彈性基礎架構的效率和韌性,請採用下列各節所述的最佳做法。
地點彈性最佳做法
使用可感知容量的區域刊登位置。使用區域性 MIG 或區域性大量 VM 建立功能部署工作負載。選取
BALANCED或ANY分布形狀,因為這些形狀可讓 Compute Engine 評估區域中所有可用區的即時容量,並在資源可用的位置自動放置運算執行個體。選擇在多個可用區支援機型的區域:在所選機型支援所有可用區的區域中部署工作負載。這種做法可確保位置彈性功能有最多替代區域,能在暫時容量限制期間轉送要求。如需區域和可用區清單,請參閱「適用區域及可用區」。
檢查 Spot VM 部署作業的可用性。如果部署作業使用 Spot VM,請檢查多個機型和位置的 Spot VM 即時可用性和預期正常運作時間。選擇可用容量高且正常運作時間符合工作負載需求的區域或可用區,降低搶占風險。詳情請參閱「查看 Spot VM 的可用性 (預先發布版)」。
彈性機型的最佳做法
分散使用不同機器家族。避免政策只因單一系列中的 CPU 核心數而有所不同,例如
n2-standard-4和n2-standard-8。區域容量限制可能會同時影響整個機器系列。為提高可用性,請跨多個機型世代和架構,例如n4-standard-8和n2-standard-8。採用新的機型,並將舊機型做為備援。將最新機器系列與舊系列一併納入執行個體彈性政策,盡可能提高可用性。
設定磁碟和 CPU 平台覆寫。混用不同世代的機型可能會導致磁碟和 CPU 平台有所差異。在彈性政策中定義磁碟和 CPU 平台覆寫,確保基礎架構在不同世代的機器之間順暢擴充。舉例來說,您可以為 N4 執行個體設定 Hyperdisk Balanced,並為 N2 備援設定 Persistent Disk。
優先使用較小的機器類型。視工作負載的適用性而定,使用 vCPU 和記憶體較少的機型。舉例來說,您可以評估工作負載是否能跨四個運算執行個體擴充,每個執行個體都使用
n2-standard-16機型,而不是依賴n2-standard-64等單一機型。一般來說,機型越小,資源可用性越高。選取效能相近的機器類型。指定 vCPU 和記憶體大小相近的替代機型。舉例來說,您可以在例項彈性政策中,合併
n2d-standard-8、n4-standard-8和n4a-standard-8。這種做法可維持應用程式效能,同時提高資源可用性。在 MIG 中啟用修復時更新。根據預設,MIG 會使用原始機型修復失敗的運算執行個體,但如果該硬體暫時無法使用,修復作業可能會失敗。啟用「維修時更新」,這樣維修作業就會自動改用彈性政策中可用的機器類型。詳情請參閱「執行個體彈性和 VM 修復」。
納入備援 Spot VM。如要處理容錯工作負載,請結合 Spot VM 與位置和機型彈性。如果 Compute Engine 先占 Spot VM,這些彈性功能可讓部署作業自動搜尋替代機器類型或可用區。這項策略有助於以低於標準佈建的成本,為工作負載維持資源可用性。
彈性時間的最佳做法
鎖定合適的工作負載。針對開始時間彈性但需要加速器等高需求資源的工作負載,實作時間彈性。包括小型模型預先訓練、模型微調、高效能運算 (HPC) 模擬和批次推論。
為時間軸選取適當的功能。使用彈性啟動佈建模式,將要求加入佇列,執行最多七天的指定時間長度工作。如要取得高需求資源,且使用時間長達 90 天以上,請使用預訂綁定佈建模型。
縮短彈性啟動型 VM 的等待時間。嘗試建立彈性啟動 VM 時,如果工作負載必須在特定可用區中執行,請指定較長的等待時間。等待時間越長,Compute Engine 越有可能佈建您要求的資源。如要建立獨立的彈性啟動 VM,且工作負載可在區域內的任何可用區啟動,請將等待時間指定為零秒。如果資源無法使用而導致建立要求失敗,請立即嘗試在其他可用區提出建立要求。
根據工作負載彈性調整預留項目和折扣
為平衡資源可用性和成本,請根據您為工作負載選擇的容量策略,搭配承諾使用折扣 (CUD):
多個機型用量穩定:如果工作負載支援多個機型,且用量穩定,請設定機型彈性並使用運算彈性 CUD。如果主要選擇的硬體容量不足,機型彈性功能會使用替代硬體,提高佈建成功率。Compute 彈性 CUD 是依支出計算的折扣,適用於符合條件的運算支出,無論 Compute Engine 佈建的特定機器系列為何。
流量高峰期穩定:如果工作負載的基準可預測,但可能會出現無法預測的尖峰,請使用預留資源和依資源計算的 CUD,確保可預測的基準。如要處理流量尖峰,請設定機型彈性,並使用 Compute 彈性 CUD 涵蓋替代備援機器。在執行個體彈性政策中,指派偏好設定,如下所示:
最高優先順序:依資源計算 CUD 的預留機型
較低的偏好設定:替代機型,以及使用彈性運算 CUD
Compute Engine 會先使用依資源計算的承諾使用合約,然後使用彈性運算承諾使用合約,涵蓋剩餘的適用用量。
嚴格固定的硬體工作負載:如果工作負載依賴單一機型,請使用預留項目和依資源計算的 CUD。預留可高度確保特定硬體的容量,因此建議用於重要業務工作負載。依資源計算的 CUD 可為這類穩定且可預測的用量提供折扣。
詳情請參閱「選擇預留類型」和「Compute Engine 承諾使用折扣 (CUD)」。
預訂廣告的設計注意事項
如果策略包含預訂,請查看下列設計考量事項:
優先使用預留的機器類型。如果搭配機型彈性使用預留項目,請在執行個體彈性政策中,將預留的機型設為最高偏好設定。這項設定可協助 Compute Engine 優先使用預留項目,而非隨選容量。
評估預訂範圍。請避免因暫時的容量限制而建立預留項目。如果工作負載使用位置彈性 (例如區域性 MIG),Compute Engine 可能會將執行個體分配到區域中的其他可用區。在這種情況下,嚴格的可用區預留項目可能會導致資源閒置而未獲使用。
限制
設計彈性基礎架構時,請注意下列一般限制。如需瞭解更詳細的限制,請參閱各功能頁面的「限制」一節。
功能不相容:您無法在單一部署作業中,同時結合機型彈性和時間彈性。啟用時間彈性功能時,每個要求只能支援單一機型設定。
初始建立期間的彈性:如果是大量建立的運算執行個體,容量評估和執行個體彈性政策只會在初始運算執行個體建立要求期間套用。大量建立的運算執行個體在維修期間或基礎架構擴充時,不會自動重新導向至替代可用區或機型。
部署至單一可用區:區域 MIG 不支援彈性功能,因此不建議使用。如要為單一可用區設計採用機型彈性,請建立區域性 MIG,並明確選取一個可用區。
後續步驟
- 瞭解如何使用 MIG 將 VM 分散至區域內的多個可用區。
- 瞭解如何在代管執行個體群組中設定執行個體彈性。
- 瞭解如何使用執行個體彈性大量建立 VM。
- 進一步瞭解 Compute Engine 中的 CUD。