如果您是雲端架構師或 IT 管理員,並打算在 Compute Engine 中執行應用程式,則必須設計運算執行個體拓撲,以便有效率地佈建及操作。
Compute Engine 提供多種部署選項,例如,您可以部署一組運算執行個體,並以單一實體的形式管理,也可以將執行個體佈建及管理為個別資源。每種方法各有優缺點。如何選擇最佳部署策略?
- 首先,請評估應用程式的主要需求。
- 查看可用的部署選項和相對優點。
- 請選取符合您需求,且能充分運用 Compute Engine 功能的策略。
評估工作負載
請思考下列問題,分析要部署的工作負載有哪些主要需求。您的答案將有助於將各個部署選項的功能 (列於下一節) 對應至工作負載的需求。如要透過互動式 AI 輔助功能替代這項決策流程,您可以在 Cloud de Confiance 控制台提示 Gemini 您的專案目標,取得量身打造的部署建議。詳情請參閱「使用 Compute Advisor 設計運算基礎架構」。
應用程式狀態
應用程式是否為有狀態?
- 「有狀態」應用程式會儲存特定資料 (例如用戶端或工作階段 ID),直到不再需要該資料為止。舉例來說,在線上購物應用程式中,購物車服務可能會儲存使用者在購物時新增或移除的商品詳細資料,並在使用者開始結帳程序時,保留最終的購物車狀態。
- 「無狀態」應用程式不需要儲存任何用戶端、交易或工作階段資料。舉例來說,網路伺服器可能會在提供用戶端要求的內容後關閉工作階段。
如要進一步瞭解有狀態和無狀態應用程式,請參閱「有狀態工作負載與無狀態工作負載的差異」。
運算執行個體重新啟動,或 Compute Engine 重新建立 (自動修復) 執行個體時,是否應保留任何執行個體專屬中繼資料?
佈建中
- 運算執行個體是否應使用多種機器類型或映像檔?舉例來說,是否有些執行個體需要記憶體最佳化機型,而其他執行個體則使用一般用途機型?
- 基礎架構是否應根據負載變化自動調整資源配置,在成本和回應時間之間取得最佳平衡?
- 所有運算執行個體是否都能在單一可用區、虛擬私有雲網路和子網路中運作?
- 應用程式是否應與其他特定資源在相同可用區中執行?例如,應用程式是否需要與資料庫建立低延遲連線?
作業
- 您是否要將運算執行個體視為單一群組來管理?舉例來說,您是否想自動在所有執行個體中推出應用程式更新?
- 您是否需要使用自訂或第三方工具來管理運算執行個體?
- 您是否需要控管故障運算執行個體的處理方式?舉例來說,如果 VM 故障,您是否希望在找出故障根本原因時,VM 仍維持停止狀態?
- 您是否需要控管運算執行個體的啟動、停止、暫停、恢復順序或排程?例如,為了節省成本,您是否打算在週末或一天中的特定時段停止執行個體?
韌性
- 應用程式是否需要防範可用區故障?換句話說,如果某個可用區故障,您是否希望應用程式繼續透過該區域其他可用區的運算執行個體提供服務?
- 如果運算執行個體因任何原因停止或異常終止,或者應用程式未回應要求,Compute Engine 是否應自動重新建立執行個體?
- 應用程式是否需要主機運算執行個體的固定內部或外部 IP 位址?
評估需求後,請瞭解 Compute Engine 提供的部署選項。
查看可用的部署選項
查看並瞭解將工作負載部署至 Compute Engine 時,可考慮的選項功能和相對優勢。
- 獨立運算執行個體
- 如果選擇這個選項,您必須為佈建的每個運算執行個體,分別選擇機型、映像檔、磁碟和其他屬性。您必須將執行個體視為獨立資源管理。
- 運算執行個體叢集
- 這個選項可讓您建立一組運算執行個體,這些執行個體在實體上彼此靠近,可為高效能運算 (HPC) 和人工智慧 (AI) 工作負載提供低延遲、高頻寬的網路連線。
- 如果是 CPU 工作負載,您可以使用 C2、C2D、H3 和 H4D 機型建立叢集。詳情請參閱「在 Compute Engine 上建立 HPC 叢集」。
- 如要瞭解以 GPU 為基礎的工作負載,請參閱「AI Hypercomputer」。
- 非代管執行個體群組
- 您可以佈建獨立運算執行個體,並將其新增至執行個體群組。接著,您可以使用非代管執行個體群組做為負載平衡器的後端。
- 代管執行個體群組 (MIG)
MIG 是指您使用執行個體範本佈建的一組相同或設定相似的執行個體。
您可以將 MIG 設為有狀態,保留特定磁碟或中繼資料。
如果是無狀態 MIG,您可以啟用自動調度資源功能,並設定調度政策。
建立 MIG 時,您可以選擇在單一可用區中部署運算執行個體,或將執行個體分散到區域內的多個可用區,以提高高可用性。
下表摘要說明各項部署選項的主要功能。
| 功能 | 獨立運算執行個體 | 非管理化執行個體群組 | 有狀態 MIG | 無狀態 MIG |
|---|---|---|---|---|
| 依據範本佈建一組運算執行個體 | ||||
| 混合機器類型和映像檔 | ||||
| 固定的內部或外部 IP 位址 | ||||
| 自動修復失敗的運算執行個體 | ||||
| 控管運算執行個體的啟動/停止和暫停/繼續作業 | ||||
| 將一組運算執行個體設為負載平衡器後端 | ||||
| 保存磁碟與中繼資料,適用於有狀態工作負載 | ||||
| 控管特定運算執行個體的更新作業 | ||||
| 自動滾動式更新所有運算執行個體 | ||||
| 自動 (和預測式) 水平調整資源配置 |
下圖並列顯示部署範例,協助您瞭解主要差異。
| 獨立運算執行個體 | 有狀態 MIG | 無狀態 MIG |
|---|---|---|
| 這個範例顯示個別建立的三個運算執行個體。 | 這個範例顯示一個 MIG,其中包含三個設定相似的運算執行個體,這些執行個體是使用執行個體範本佈建。 |
這個範例顯示的 MIG 包含三個相同的運算執行個體,這些執行個體是使用執行個體範本佈建。 |
|
|
|
|
|
|
|
您已評估工作負載,並查看 Compute Engine 提供的部署選項,現在可以選擇部署方式了。
選取部署策略
本文討論的建議是根據特定工作負載特性與各 Compute Engine 部署選項功能的對應關係。
請按照下列決策流程操作。如果您偏好視覺化指南,請參閱本文稍後的決策樹。
選擇獨立運算執行個體、運算執行個體叢集和執行個體群組。
需求條件 建議的部署策略 應用程式是高效能運算 (HPC) 或人工智慧 (AI) 工作負載,需要運算執行個體之間具備低延遲、高頻寬的網路連線。 選擇運算執行個體叢集。
略過這項決策流程的其餘部分。
您的工作負載必須符合下列至少一項需求。 - 應用程式必須在混合使用機器類型或映像檔的運算執行個體上執行。
- 應用程式需要主機運算執行個體的固定內部或外部 IP 位址。
- 您需要控管故障運算執行個體的處理方式。
- 您需要控管運算執行個體的啟動/停止或暫停/繼續作業。
- 您必須使用自訂指令碼或第三方工具,才能佈建及移除運算執行個體。
選擇獨立運算執行個體。
如果所有獨立運算執行個體都能在單一可用區、虛擬私有雲網路和子網路中運作,建議您將運算執行個體新增至非代管執行個體群組。接著,您可以使用非代管執行個體群組做為負載平衡器的後端。
略過這項決策流程的其餘部分。
這些需求條件對您的用途來說都不是必要條件。 使用 MIG 設定高可用性且可擴充的 Compute Engine 拓撲。
前往下一個步驟。
選擇有狀態或無狀態 MIG。
需求條件 建議的 MIG 類型 應用程式需要保存磁碟和中繼資料,也就是說,應用程式是有狀態的。 選擇有狀態的 MIG,並設定 Compute Engine 應在干擾性事件 (例如重新建立、自動修復及更新運算執行個體) 發生期間保留的磁碟。
前往下一個步驟。
應用程式不具狀態。 選擇無狀態 MIG,並善用自動調度資源功能。在干擾性作業期間,Compute Engine 會根據執行個體範本重新建立磁碟。
前往下一個步驟。
選擇可用區或區域 MIG。
需求條件 建議的 MIG 類型 應用程式必須在單一可用區中執行,或是不需要防範可用區故障。 選擇可用區 MIG。 即使發生可用區故障,應用程式也必須繼續執行。 選擇區域性 MIG。
決策樹
下圖引導您瞭解決定 Compute Engine 部署策略時應考量的因素:
後續步驟
- 進一步瞭解執行個體範本。
- 瞭解有狀態 MIG 的運作方式。
- 進一步瞭解區域 MIG。
- 建立 MIG。
- 自動調度執行個體群組資源。
- 將現有工作負載遷移至有狀態 MIG。