在 Google Cloud 上托管应用

Google Cloud 提供了各种应用托管方案。查看下列图表,了解哪种方案可满足您的需求。


使用场景

不确定如何入手?查看下面一些常见的场景。
HTTP 服务和后端应用
Web 框架、微服务
示例:
  • Flask
  • Django
  • Express.js
  • Symfony
  • Spring Boot
App Engine 标准环境
  • 从容扩缩以满足突发需求
  • 用多少,付多少
  • 支持 API 端点
Google App Engine 文档
事件驱动型应用及数据处理应用
处理用户生成的数据和事件
示例:
  • 在 Slack 频道上发表评论,以回复 GitHub 提交事件
  • 统计分析
  • 图片缩略图生成
Cloud Functions
  • 专为事件驱动型工作负载而设计
  • 从容扩缩以满足突发需求
  • 只需最低程度的配置
Google Cloud Functions 快速入门
基于容器的应用和服务
面向多云端基础架构的业界标准软件打包方式
示例:
  • 自定义运行时环境,例如 Rust、Kotlin、C++ 和 Bash
  • 使用 Python 2.7、Java 7 等语言版本的旧式 Web 应用
Cloud Run(全代管式)
  • 支持业界标准的 Docker 容器
  • 自动扩缩容器化应用
  • 自定义二进制文件和系统依赖项
  • 支持 API 端点
Cloud Run(全代管式) 快速入门
本地和单体式工作负载
满足现有基础架构要求的裸机计算服务
示例:
  • 关系型数据库、SAP HANA
  • CRM 系统
  • 旧式 ERP 系统
Compute Engine
Google Compute Engine 教程
自行托管的可扩缩基础架构
自行管理的托管方式,具备无服务器可伸缩性
示例:
  • 需要自定义硬件和软件(操作系统和 GPU 等)的容器化应用
  • 现有的容器化无状态应用
  • Kubernetes Engine 上可受益于缩减至零个虚拟机的应用
Cloud Run for Anthos on Google Cloud
  • 业界标准的 Docker 容器封装方式
  • 可针对旧式工作负载和配置,灵活地进行配置
  • 可扩缩以满足需求
Cloud Run for Anthos on GCP 快速入门
Beta 版
Beta 版软件不提供任何服务等级协议 (SLA),可能不适合生产工作负载。

托管方案

许多工作负载都有特定的技术要求。以下平台按抽象化程度排序。
Compute Engine Kubernetes Engine (GKE) Cloud Run for Anthos on Google Cloud Cloud Run(全代管式) App Engine 柔性环境 App Engine 标准环境 Cloud Functions
部署格式
虚拟机映像
集群
容器
容器

应用

容器

应用
函数
自定义网址
缩减至零
~
1
免费层级
Persistent Disk
2
WebSocket
~
3
Beta 版
Beta 版
运行任意语言
请求超时
15 分钟
60 分钟
60 分钟
1 分钟
9 分钟
后台处理
~
4
使用 TPU/GPU
~
3
VPC 连接
1
Cloud Run for Anthos on Google Cloud 可将 Pod 数缩减至零。每个集群的节点数不能缩减至零,且即使没有请求,也会对这些节点收费。
2
GKE 上的容器实例在关停后不会保留数据。不过,Compute Engine 永久性磁盘可以挂接到 GKE 上的容器实例
3
虽然在技术上可以通过 Cloud Run for Anthos on Google Cloud 使用 Websocket 和 TPU/GPU,但它们不受官方支持。
4
App Engine 标准环境支持在基本和手动扩缩模式下执行后台任务。
Beta 版
Beta 版软件不提供任何服务等级协议 (SLA),可能不适合生产工作负载。

关键术语

部署格式

您的代码在部署到给定平台时是如何打包的?

  • 虚拟机映像 - 整个文件系统(包括底层操作系统)的快照。
  • 容器 - 与底层操作系统隔离的可移植的跨平台文件系统。
  • 应用 - 包含在一个目录中,具有一个或多个用例的一项服务。
  • 函数 - 单独的代码段,每个代码段对应一种使用情形。

自定义网址

您是否可以创建多层网址路径(如 /abc/def)且/或使用自己的域名

Persistent Disk

实例关停时是否可以保存磁盘状态,还是必须将长期数据存储在实例外部

缩减至零

此产品是否可以缩减至零实例,避免在无请求期间向我收取费用?

Websocket

此产品是否支持 Websocket 协议?

运行任意语言

此产品是否可以运行以任意编程语言编写的代码?

请求超时

平台等待应用代码响应的最长时间是多少?

后台处理

此产品是否可以在请求期间以外持续运行后台操作?

使用 GPU 和 TPU

此产品是否支持对进行了 GPU/TPU 优化的工作负载执行硬件加速

VPC 连接

此产品是否可以访问 Virtual Private Cloud 内的资源?