繁体   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