簡體   English   中英

在 App Engine 和 Compute Engine 中啟動 docker 容器有什么區別?

[英]What's the difference between launching a docker container in App Engine vs Compute Engine?

鑒於您可以將 docker 圖像上傳到應用程序引擎和計算引擎,對於始終將其應用程序包含在 docker 中的人來說,真正的區別是什么?

根據一個類似的問題,區別歸結為 PaaS 與 IaaS,但是使用 docker 文件,您始終指定操作系統和運行時環境。 所以我看到的唯一區別是您可能最終會通過提供容器在 App Engine 上過度指定。

從根本上說,如果您只是希望您的應用程序無需太多輸入即可無縫且快速地擴展,請使用 App Engine Flex。 如果您想要更多的控制權,可以使用其他 Google 產品以不同的方式進行配置,請考慮使用 Compute Engine 的非托管實例組。

一些歷史

值得注意的是,將 Docker 映像添加到 Compute Engine 實例的能力是最近才開發的。 在此之前,App Engine Flexible 是鎮上的新生事物,因為我們過去只有 App Engine 標准,絕對不允許您使用 Docker 作為基礎。

主要區別

以下是我的經驗中的主要區別:

  • App Engine 設計為 PaaS 產品,因此您可以在 app.yaml 中自定義縮放參數,App Engine 會讀取這些參數並接管您。 從技術上講,您確實可以使用 Compute Engine 執行此操作,但它涉及更多配置 - 您需要設置一個實例組、一個后端和一個前端。 使用 App Engine,所有這些都為您處理
  • 您不能在 App Engine 之上設置任何負載平衡器或任何外圍服務或產品。 App Engine Flexible 在為用戶提供更多控制和更多(抱歉)靈活性方面走得更遠。 但是,它不允許不受限制地與其他服務集成。 而使用 Compute Engine,您可以設置 HTTPs 負載均衡器,將您的機器添加到不同的網絡和子網,設置自定義標簽等...

另外請注意,可以在此處找到有關 App Engine 和 Compute Engine 之間差異的更詳細說明。

App Engine是來自 google 的 PaaS 服務和托管服務。 它有動態實例和常駐實例選項來實現縮放。 它為支持的語言預定義了運行時設置,我們只需要執行代碼。 它支持同時執行多個版本的應用程序,因此我們可以為不同的用戶組發布代碼更改。 它本身就支持容器環境,因此不需要提供 Pod 或節點數量等基本細節。 即使對於App Engine 標准,如果沒有負載,節點數減少到零也意味着沒有成本。 App Engine Flexible 至少需要一個 up 實例。 這里的部署可以通過單個命令完成,即gcloud app deploy app.yaml

計算引擎是 IaaS,因此開發人員需要創建一台機器,設置所需的軟件,設置 docker 容器環境。 將沒有縮放、版本管理、流量控制、安全、防火牆、健康監控和修復等。因此使用計算引擎很難實現 App Engine 提供的功能。 更棒的選擇是 Kubernetes Engine。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM