您可以使用 App Engine 彈性環境或 App Engine 標準環境,在 App Engine 中執行應用程式。您也可以選擇讓應用程式同時使用這兩種環境,並允許服務運用每個環境的各自優點。
App Engine 環境
App Engine 非常適合使用微服務架構設計的應用程式,特別是當您決定利用這兩種環境時。請參閱以下部分,瞭解哪個環境最符合應用程式的需求。
選擇標準環境的時機
應用程式執行個體使用以下所列支援程式語言的執行階段環境,在沙箱中執行時。
應用程式需要處理快速資源調度時。
標準環境最適合具有以下特性的應用程式:
- 設計目標為以免費或非常低廉的價格執行,依用量及使用時間付費。例如,如果沒有流量,應用程式會將資源調度降至 0 個執行個體。
- 在突發性的流量尖峰期間,可以立即調度資源。
選擇彈性環境的時機
應用程式執行個體在 Compute Engine 虛擬機器 (VM) 的 Docker 容器中執行時。
應用程式持續接收流量、定期遇到流量波動情形,或者符合逐漸擴充或縮減條件時。
彈性環境最適合具有以下特性的應用程式:
- 在 Docker 容器中執行,其中包含自訂執行階段或以其他程式設計語言撰寫的原始碼。
- 使用或依賴某些架構,包括原生程式碼。
- 存取位於 Compute Engine 網路中的 Google Cloud 專案資源或服務。
比較高階功能
下表大致列出了這兩種環境之間的差異:
功能 | 標準環境 | 彈性環境 |
---|---|---|
執行個體啟動時間 | 秒 | 分鐘 |
要求逾時上限 | 視 執行階段和調度類型而定。 | 60 分鐘 |
背景執行緒 | 有,但有限制 | 有 |
背景程序 | 無 | 有 |
SSH 偵錯 | 無 | 有 |
資源調度 | 手動、基本、自動 | 手動、自動 |
將資源調度降至零 | 有 | 無,最少 1 個執行個體 |
寫入至本機磁碟 |
具備 /tmp 目錄的讀取和寫入權限。
|
支援,但為暫時性操作 (磁碟於每次 VM 啟動時初始化) |
修改執行階段 | 無 | 有 (透過 Dockerfile) |
部署時間 | 秒 | 分鐘 |
自動提供安全性修補程式 | 有 | 有 (容器映像檔執行階段除外) |
存取 Google Cloud API 與服務,例如 Cloud Storage、Cloud SQL、Memorystore、Google Tasks 等。 | 是 | 是 |
WebSocket | 否 | 是 |
支援安裝第三方二進位檔 | 是 | 是 |
位置 | 標準環境的地點 | 彈性環境的地點 |
定價 | 依據執行個體時數 | 依據 vCPU、記憶體與永久磁碟的使用量 |
另請參閱環境比較表。
比較 App Engine 和 Cloud Run
如要比較功能並瞭解如何遷移至 Cloud Run,請參閱「比較 App Engine 和 Cloud Run」。
比較彈性環境與 Compute Engine
App Engine 彈性環境與 Compute Engine 之間存在下列差異:
彈性環境 VM 執行個體每週會重新啟動一次。在重新啟動期間,Google 的管理服務會套用任何必要的作業系統與安全性更新。
您一律擁有 Compute Engine VM 執行個體的根目錄存取權。根據預設,彈性環境會停用對於 VM 執行個體的 SSH 存取權。您可以選擇啟用應用程式 VM 執行個體的根目錄存取權。
使用 Cloud Build 服務建構容器映像檔時,部署程式碼可能需要較長時間。
彈性環境 VM 執行個體的地理區域由您為Google Cloud 專案的 App Engine 應用程式指定的位置決定。Google 的管理服務可以確保共置 VM 執行個體以獲得最佳效能。
從標準環境遷移至彈性環境
如果您的應用程式處於標準環境,可能會想要將某些服務移至彈性環境。如需相關指引,請參閱環境比較中的建議。
如要遷移 Python、Java、Go 和 PHP 的特定服務,請參閱「將服務從標準環境遷移至彈性環境」。
歡迎試用
如果您未曾使用過 Google Cloud,歡迎建立帳戶,親自體驗實際使用 Ruby 標準環境的成效。新客戶可以獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
免費試用 Ruby 標準環境