选择 App Engine 环境

您可以使用 App Engine 柔性环境App Engine 标准环境在 App Engine 中运行应用。此外,您还可以同时用这两种环境运行您的应用,让您的服务同时利用这两种环境各自的优势。

App Engine 环境

App Engine 非常适合利用微服务架构设计的应用,您决定使用这两种环境时尤其如此。阅读以下部分,学习并了解哪种环境最符合您的应用需求。

何时选择标准环境

应用实例利用下列支持语言的运行时环境,在沙盒中运行。

需要处理快速扩缩的应用。

标准环境适合具有以下特征的应用:

  • 运行成本为零或非常低,您只需在需要时为实际所需付费。例如,当没有流量时,应用的实例可以缩减为 0。
  • 突遇流量高峰,需要立即调节。

何时选择柔性环境

应用实例在 Compute Engine 虚拟机上的 Docker 容器中运行。

接收的流量一致但流量会定期波动的应用,或者能满足参数逐渐扩充和缩减的应用。

柔性环境适合具有以下特征的应用:

  • 在 Docker 容器中运行,其中 Docker 容器包含用其他编程语言编写的自定义运行时或源代码。
  • 使用或依赖包含原生代码的框架。
  • 访问位于 Compute Engine 网络的 Google Cloud 项目的资源或服务。

比较高级功能

下表总结了两种环境之间的差异:

功能 标准环境 柔性环境
实例启动时间 数秒 数分钟
请求超时上限 取决于运行时环境和扩缩类型 60 分钟
后台线程 是,但有限制
后台处理
SSH 调试
扩缩 手动、基本、自动 手动、自动
缩减至零 否,最少 1 个实例
写入本地磁盘
  • Java 8、Java 11、Java 17、Node.js、Python 3、PHP 7.X、PHP 8.1、Ruby、Go 1.11 和 Go 1.12+ 具有 /tmp 目录的读写权限。
  • Python 2.7 和 PHP 5.5 没有磁盘的写入权限。
是,临时写入(每个虚拟机启动时的初始化磁盘)
修改运行时 是(通过 Dockerfile)
部署时间 数秒 数分钟
自动就地安装安全补丁 是(不包括容器映像运行时)
访问 Google Cloud API 和服务,例如 Cloud StorageCloud SQLMemorystoreGoogle Tasks 等。
WebSocket 没有
Java 8、Python 2 和 PHP 5 提供专有 Sockets API(测试版),但该 API 在较新的标准运行时环境中不可用。
支持安装第三方二进制文件
  • 对于 Java 8、Java 11、Java 17、Node.js、Python 3、PHP 7.X、PHP 8.1、Ruby、Go 1.11 和 Go 1.12+ 为“是”。
  • 对于 Python 2.7 和 PHP 5.5 为“否”。
位置 标准环境的位置 柔性环境的位置
价格 基于实例小时数计费 基于 vCPU、内存和永久性磁盘的使用情况计费

另请参阅深入的环境比较

比较柔性环境与 Compute Engine

App Engine 柔性环境与 Compute Engine 的不同之处如下:

  • 柔性环境虚拟机实例每周重启一次。在重启期间,Google 的管理服务应用任何必要的操作系统和安全更新。

  • 您始终可以访问 Compute Engine 虚拟机实例的根目录。默认情况下,SSH 对柔性环境中虚拟机实例的访问将停用。您可以视情况启用对应用虚拟机实例的根目录访问权限。

  • 代码部署所需时间可能更长,因为容器映像通过使用 Cloud Build 服务构建。

  • 柔性环境虚拟机实例的地理区域由您为 Google Cloud 项目的 App Engine 应用指定的位置确定。Google 的管理服务确保所有虚拟机实例位于同一位置,以实现最佳性能。

从标准环境迁移到柔性环境

如果您有在标准环境中运行的应用,您可能想将部分服务迁移至柔性环境。如需获取指导,请参阅环境比较中的建议。

如需迁移 Python、Java、Go 和 PHP 的特定服务,请参阅将服务从标准环境迁移至柔性环境

自行试用

如果您是 Google Cloud 新手,可以创建一个账号来评估 Ruby 标准环境在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。

免费试用 Ruby 标准环境