為工作負載選擇 Compute Engine 部署策略

身為雲端架構師或 IT 管理員,當您規劃在 Compute Engine 中執行應用程式時,需要設計可有效佈建及運作的 VM 拓撲。

Compute Engine 提供多種部署選項,例如您可以部署一組 VM,並將其做為單一實體管理,也可以將 VM 佈建為個別資源並進行管理。每種方法都有各自的優點和限制。如何選擇最佳部署策略?

  1. 首先,請評估應用程式的主要需求。
  2. 查看可用的部署選項和相對優點。
  3. 選取符合您需求的策略,並充分運用 Compute Engine 的功能。

評估工作負載

請使用下列問題分析要部署的工作負載的主要需求。您的答案有助於將各部署選項 (列於下一節) 的功能,對應至工作負載的需求。

  • 應用程式狀態

    • 應用程式是否為有狀態?

      • 有狀態應用程式會儲存特定資料 (例如用戶端或工作階段 ID),直到不再需要這些資料為止。舉例來說,在線上購物應用程式中,購物車服務可能會儲存使用者在繼續購物時新增或移除的商品詳細資料,並在使用者開始結帳程序時保留最終購物車狀態。
      • 無狀態應用程式不需要儲存任何用戶端、交易或工作階段資料。舉例來說,網路伺服器可能會在提供用戶端要求的內容後關閉工作階段。

      如要進一步瞭解有狀態和無狀態應用程式,請參閱「有狀態工作負載與無狀態工作負載的差異」。

    • VM 重新啟動時,或 Compute Engine 重新建立 (自動修復) VM 時,是否應保留任何執行個體專屬中繼資料?

  • 佈建中

    • VM 應使用混合的機器類型或映像檔嗎?舉例來說,是否有些 VM 需要記憶體最佳化機器類型,而其他 VM 則使用一般用途機器類型?
    • 基礎架構是否應根據負載變化自動調度資源,以便在成本和回應時間之間維持最佳平衡?
    • 所有 VM 是否都能在單一可用區、VPC 網路和子網路中執行?
    • 應用程式是否應與特定其他資源位於相同可用區? 舉例來說,應用程式是否需要與資料庫建立低延遲連線?
  • 作業

    • 您是否要將 VM 做為單一群組來管理?舉例來說,您是否想自動在所有 VM 中推出應用程式更新?
    • 您是否需要使用自訂或第三方工具管理 VM?
    • 您是否需要控管處理失敗 VM 的方式?舉例來說,如果 VM 發生故障,您是否希望 VM 保持停止狀態,以便找出故障的根本原因?
    • 您是否需要控管 VM 的啟動、停止、暫停和恢復順序或時間表?舉例來說,您是否打算在週末或特定時段停止執行 VM,以節省費用?
  • 應變能力

    • 應用程式是否需要防範區域故障?換句話說,如果某個可用區停止運作,您是否希望應用程式繼續透過該區域其他可用區的 VM 處理要求?
    • 如果 VM 因任何原因停止或當機,或應用程式未回應要求,Compute Engine 是否應自動重建 VM?
    • 應用程式是否需要主機 VM 的固定內部或外部 IP 位址?

評估完需求後,請瞭解 Compute Engine 提供的部署選項。

查看可用的部署選項

請先瞭解可將工作負載部署至 Compute Engine 的選項,以及這些選項的特色和相對優勢。

獨立 VM
選用這個選項時,您可以為佈建的每部 VM 分別選擇機器類型、映像檔、磁碟和其他屬性。並將 VM 視為個別資源進行管理。
非代管執行個體群組
您可以佈建獨立 VM,並將其新增至執行個體群組。然後,您就可以將非代管執行個體群組做為負載平衡器的後端。
代管執行個體群組 (MIG)

MIG 是一組相同或設定類似的執行個體,您可以使用執行個體範本佈建這些執行個體。

  • 您可以將 MIG 設為有狀態,保留特定磁碟或中繼資料。

  • 如果是無狀態 MIG,您可以啟用自動調度資源功能,並設定調度政策。

  • 建立 MIG 時,您可以選擇在單一區域內部署 VM,也可以將 VM 分散至區域內的多個可用區,以確保高可用性。

下表摘要說明各部署選項的主要功能。

功能 獨立 VM 非管理化執行個體群組 有狀態的 MIG 無狀態 MIG
透過範本佈建一組 VM
混合使用 機器類型映像檔
固定 內部 外部 IP 位址
自動修復失敗的 VM
控制 VM 的 啟動/停止暫停/繼續 作業
將一組 VM 設為負載平衡器後端
保存磁碟與中繼資料,適用於有狀態的工作負載
控管特定 VM 的更新作業
自動對所有 VM 執行滾動式更新
自動 (和預測式) 水平調整資源配置

下圖並列顯示範例部署作業,協助您瞭解主要差異。

獨立 VM 有狀態的 MIG 無狀態 MIG
這個範例顯示個別建立的三部 VM。 這個範例顯示包含三個設定相似 VM 的 MIG,這些 VM 是使用執行個體範本佈建。

這個範例顯示的 MIG 包含三個相同的 VM,這些 VM 是使用執行個體範本佈建而成。

三個獨立 VM
有狀態 MIG,其中包含三個使用執行個體範本建立的 VM
無狀態 MIG,其中包含三個使用執行個體範本建立的 VM
  • 在本範例中,每個 VM 都使用不同的機型、映像檔、磁碟和其他屬性。
  • VM 是個別新增至非代管執行個體群組。
  • 本範例中的 VM 使用執行個體範本中定義的機器類型和映像檔。
  • 有狀態政策可確保連結至所有 VM 的開機磁碟都有狀態。
  • 依據執行個體設定新增必要的有狀態資料磁碟。
  • 在本範例中,VM 會從執行個體範本繼承機器類型和映像檔。
  • 更新或重新建立 VM 時,系統會重新建立磁碟。
  • MIG 會根據自動調度資源設定,自動建立及刪除 VM。

您已評估工作負載、查看 Compute Engine 提供的部署選項,並準備好選擇部署方法。

選取部署策略

本文討論的建議是根據特定工作負載特徵與各項 Compute Engine 部署選項功能的對應關係而來。

請使用下列決策流程。如需視覺化指南,請參閱本文稍後的決策樹

  1. 選擇獨立 VM 或執行個體群組。

    需求條件 建議的部署策略
    您的工作負載至少須符合下列必要條件之一。
    • 應用程式必須在混合使用機器類型或映像檔的 VM 上執行。
    • 應用程式需要主機 VM 的固定內部或外部 IP 位址。
    • 您需要控管處理失敗 VM 的方式。
    • 您需要控管 VM 的啟動/停止或暫停/繼續作業。
    • 您必須使用自訂指令碼或第三方工具,才能佈建及移除 VM。

    選擇獨立 VM。

    如果所有獨立 VM 都能在單一區域、虛擬私有雲網路和子網路中執行,請考慮將 VM 新增至非代管執行個體群組。然後,您可以使用非代管執行個體群組做為負載平衡器的後端。

    略過此決策流程的其餘部分。

    上述任何一項需求都不是您用途的必要條件。

    使用 MIG 設定易於管理、高可用性且可擴充的 Compute Engine 拓撲。

    請繼續執行下一步。

  2. 選擇有狀態或無狀態 MIG。

    需求條件 建議的 MIG 類型
    應用程式需要保留磁碟和中繼資料,也就是應用程式是有狀態的。

    選擇有狀態 MIG,並設定 Compute Engine 應在干擾性事件 (例如重新建立、自動修復及更新 VM) 期間保留的磁碟。

    請繼續執行下一步。

    應用程式並非有狀態。

    選擇無狀態 MIG,並善用自動調度資源功能。在破壞性作業期間,Compute Engine 會根據執行個體範本重新建立磁碟。

    請繼續執行下一步。

  3. 選擇可用區或區域 MIG。

    需求條件 建議的 MIG 類型
    應用程式必須在單一區域中執行,或是不需要防範區域故障。 選擇可用區 MIG。
    即使發生可用區故障,應用程式仍須繼續執行。 選擇區域性 MIG。

決策樹

下圖可協助您瞭解決定 Compute Engine 部署策略時應考量的因素:

選擇 Compute Engine 部署策略的決策樹狀圖

後續步驟