什么是无服务器?

无服务器计算是应用开发领域的一种范式转变,使开发者可以专注于编写代码,而无需操心基础架构。与传统计算相比,它具有众多优势,包括无需管理服务器、无需提前预配、可以自动扩缩,并且只需为使用的资源付费。这些优势使得无服务器模式非常适合无状态 HTTP 应用、Web 应用、移动应用、物联网后端、批量与流式数据处理、聊天机器人等使用场景。


GCP 无服务器计算产品组合

Cloud Functions

无服务器函数和事件

Cloud Functions

事件驱动型计算平台,可轻松连接并扩展 Google 及第三方云服务,以及构建可轻松从零扩容到全球级规模的应用。

了解详情  
App Engine 标准环境

无服务器 HTTP 应用

App Engine 标准环境

适用于 Web 和 API 后端的全代管式无服务器应用平台。使用常用的开发语言,而无需操心基础架构管理。

了解详情  
Cloud Run

无服务器容器

Cloud Run

一个无服务器计算平台,供您运行可通过 HTTP 请求调用的无状态容器。Cloud Run 可作为只按用量付费的全代管式平台使用,也可作为 Anthos 的组件使用。

了解详情  

哪种无服务器计算平台适合您?

无服务器方案

* App Engine 标准环境支持 Node.js、Python、Java、Go、PHP

* Cloud Functions 支持 Node.js、Python、Go

使用场景

Web 应用

Web 应用

App Engine 标准环境适合 Node.js、Python、PHP、Java 和 Go 环境中运行的只需极少运维工作的 Web 应用。您可以使用任何语言库以标准、惯用的方式编写应用。快捷的部署速度以及可扩缩的响应能力,使得 App Engine 标准环境非常适合流量变化较大的工作负载。

异步后端处理

异步后端处理

Cloud Functions 可响应云端数据事件,并执行轻量级处理工作,例如调整上传到 Cloud Storage 的图片大小,或在 Firestore 数据库中的值被修改时对数据进行验证。

移动后端

移动后端

对于移动应用的传统 REST API 后端而言,App Engine 标准环境是一个可监控、更新和扩缩托管环境的应用平台;您只需要编写移动后端服务代码。Firebase 提供了一套功能强大、可直接集成到您移动应用中的后端服务,包括实时 NoSQL 数据库、身份验证、托管、文件存储等。Firebase 可与 Cloud Functions 相集成,这有助于您轻松地连接您的其他 Google Cloud Platform 服务。

API

API

如果您要构建简单的 API(可通过 HTTP 或 Cloud Pub/Sub 访问的一小组函数),建议您使用 Cloud Functions。它专为突发性工作负载而设计,其编程范式(函数)有助于小规模后端代码的良好管理。 如果要构建更复杂的 API(例如,有多种调用途径的 REST API),则建议您使用 App Engine 标准环境,因为它可以更方便地管理众多的函数。如果您要使用 Cloud Endpoints 来进行 API 管理,建议您使用支持 Python 2.7 和 Java 8 的 App Engine 标准环境,因为该环境支持 Cloud Endpoints。

定期操作

定期操作

Cloud Scheduler 可以发送预先安排好的 HTTP 请求,以便按预定的时间表触发操作。它还可以专门定向到 App Engine 或 HTTP 端点(例如 Cloud Functions 和 Cloud Run)。

快速原型设计与 API 拼接

快速原型设计与 API 拼接

对于涉及快速原型设计和/或需要拼接多个 API 和服务的小型项目或“黑客马拉松”项目,建议您使用 Cloud Functions。其编程范式让您可以快速开发小型应用和/或用来拼接现有 API 和服务的“粘合代码”。

运行与提供商无关的容器

运行与提供商无关的容器

Docker 容器是一种行业标准,可在任何云端或本地环境运行。Cloud Run 能够以无服务器请求/响应模式运行容器。建议您使用 Cloud Run;不过,如果您需要 GPU 等自定义硬件或 Kubernetes 集群,则可以在您的 Google Kubernetes Engine 集群中运行 Cloud Run on GKE。

混合运行无服务器工作负载和有状态工作负载

混合运行无服务器工作负载和有状态工作负载

借助 Cloud Run for Anthos,您可以轻松地混合运行无服务器工作负载和有状态工作负载。例如,您可以从 Marketplace 将 MongoDB 部署到 Anthos GKE 集群中,以用作无服务器工作负载的文档存储区。Anthos 可让您灵活地在 Kubernetes 集群中运行任何工作负载,同时您可以使用 Cloud Run for Anthos 来部署无服务器工作负载。

产品比较

App Engine 标准环境 Cloud Functions Cloud Run Cloud Run for Anthos
部署工件 应用 函数 容器 容器
缩减至零 勾选 勾选 勾选 Pod1
免费层级 勾选 勾选 勾选
Websocket 勾选
语言 Java、Node.js、Python、Go、PHP Node.js、Python、Go 不限 不限
访问权限控制 Oauth 2.0、CICP、Firebase 身份验证、Google 登录、Users API 调用方 IAM 权限 调用方 IAM 权限、CICP、Google 登录、Firebase 身份验证 仅限集群,仅限 VPC
HTTP/2 和 gRPC 勾选
自定义网域 勾选 勾选 勾选
请求超时 1 分钟2 9 分钟 15 分钟 15 分钟
GPU 和 TPU 勾选
VPC 连接 勾选 勾选 勾选 勾选

1.Cloud Run on GKE 可将 Pod 数缩减至零。每个集群的节点数不能缩减至零,且即使没有请求,也会对这些节点收费。

2.自动扩缩:HTTP 请求的时限为 60 秒。

高级提示与最佳做法

下面列出了您可能需要考虑的其他一些因素。