您可以使用 App Engine 柔性环境或 App Engine 标准环境在 App Engine 中运行应用。此外,您还可以同时用这两种环境运行您的应用,让您的服务同时利用这两种环境各自的优势。
App Engine 环境
App Engine 非常适合利用微服务架构设计的应用,您决定使用这两种环境时尤其如此。阅读以下部分,学习并了解哪种环境最符合您的应用需求。
何时选择标准环境
应用实例利用下列支持语言的运行时环境,在沙盒中运行。
需要处理快速扩缩的应用。
标准环境适合具有以下特征的应用:
- 运行成本为零或非常低,您只需在需要时为实际所需付费。例如,当没有流量时,应用的实例可以缩减为 0。
- 突遇流量高峰,需要立即调节。
何时选择柔性环境
应用实例在 Compute Engine 虚拟机上的 Docker 容器中运行。
接收的流量一致但流量会定期波动的应用,或者能满足参数逐渐扩充和缩减的应用。
柔性环境适合具有以下特征的应用:
- 在 Docker 容器中运行,其中 Docker 容器包含用其他编程语言编写的自定义运行时或源代码。
- 使用或依赖包含原生代码的框架。
- 访问位于 Compute Engine 网络的 Google Cloud 项目的资源或服务。
比较高级功能
下表总结了两种环境之间的差异:
功能 | 标准环境 | 柔性环境 |
---|---|---|
实例启动时间 | 秒 | 分钟 |
请求超时上限 | 取决于运行时环境和扩缩类型。 | 60 分钟 |
后台线程 | 是,但有限制 | 是 |
后台处理 | 否 | 是 |
SSH 调试 | 否 | 是 |
扩缩 | 手动、基本、自动 | 手动、自动 |
缩减至零 | 是 | 否,最少 1 个实例 |
写入本地磁盘 |
拥有对 /tmp 目录的读写权限。
|
是,临时写入(每个虚拟机启动时初始化的磁盘) |
修改运行时 | 否 | 是(通过 Dockerfile) |
部署时间 | 秒 | 分钟 |
自动就地安装安全补丁 | 是 | 是(不包括容器映像运行时) |
访问 Google Cloud API 和服务,例如 Cloud Storage、Cloud SQL、Memorystore、Google Tasks 等。 | 是 | 是 |
WebSockets | 否 | 是 |
支持安装第三方二进制文件 | 是 | 是 |
位置 | 标准环境的位置 | 柔性环境的位置 |
价格 | 基于实例小时数计费 | 基于 vCPU、内存和永久性磁盘的使用情况计费 |
另请参阅深入的环境比较。
比较 App Engine 和 Cloud Run
如需比较功能并了解如何迁移到 Cloud Run,请参阅比较 App Engine 和 Cloud Run。
比较柔性环境与 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 标准环境