这是indexloc提供的服务,不要输入任何密码

什么是无服务器计算?

无服务器计算是一种云计算执行模型,它根据使用情况分配机器资源。在无服务器模式下,开发者可以构建和运行应用,而无需管理任何服务器,并且只需为实际使用的资源量付费。云服务提供商负责预配、管理和扩缩运行应用代码的云基础设施。

无服务器计算虽然名为“无服务器”,但实际上并未取消服务器。相反,它通过抽象化日常基础设施任务来简化应用开发。这意味着您无需查看、配置、管理或扩缩运行应用的底层机器。从本质上讲,您为服务器提供的服务付费,而不是为服务器本身付费。

从开发角度来看,仿佛完全没有服务器存在:开发者只需编写代码并部署到生产环境,其余由云提供商处理。

了解 Google Cloud 如何让无服务器为您高效发挥作用

无服务器计算的工作原理是什么?

在构建应用时,开发者通常还需执行许多其他服务器管理任务以完成代码部署,例如定义处理与存储资源、安装补丁、配置负载均衡等。所有这些额外项都会造成预配时间延长和运营开销增加,最终减缓开发团队的速度。

无服务器计算会尝试为开发者提供隐形的“无服务器”体验,这样您就无需考虑服务器或应用可能需要运行的任何东西。取而代之,服务提供商会在后台完成所有工作,以确保您拥有执行代码所需的资源并满足要求,而不会因闲置容量而产生费用。

了解无服务器计算

您可以将无服务器想像成给您家供水。您可以自己钻井,测试水质,安装并维护将水引入房屋所需的所有外部管道。或者,您也可以连接自己城市的主要供水系统。只需转动水龙头,即可随时按需获取所需水量,供水公司每月都会向您发送确切的用水量账单。

同样,云服务提供商会自动启动执行无服务器应用所需的基础设施资源和运行时环境,并在执行完毕后自动缩减至零。通常,您需要根据执行期间的资源付费。但是,这可能因服务和供应商而异。

无服务器计算与其他类型云计算的对比

但是等等,其他类型的云计算不是以随用随付的方式按需提供资源吗?诚然,基础设施即服务 (IaaS)平台即服务 (PaaS) 等云服务模式也支持用户按需访问计算资源。

不过,即使您未使用,分配给您的云基础设施仍会保持启用状态。此外,您还要负责扩展服务器容量或配置应用,以便根据用户需求进行扩缩。

另一方面,无服务器架构是事件驱动型的。在这种模式下,提供商仅在事件触发代码运行时才向您提供资源,并且会根据请求即时自动扩缩。

利用 Google Cloud 解决业务难题

新客户可获得 $300 赠金,用于抵扣 Google Cloud 的费用。
与 Google Cloud 销售专员联系,详细讨论您的独特挑战。

云计算模型对比

关键定义:

  • 管理负担:管理和维护底层基础设施所需的工作投入
  • 费用模式:用于计算资源消耗并计费的方法
  • 维护要求:所需的持续维护、修补和更新工作投入
  • 可扩缩性:根据需求变化自动调整资源的能力
  • 状态属性:应用是否在各会话之间存储客户端数据

无服务器

  • 管理负担:极小
  • 费用模式:按用量付费
  • 维护要求:无需维护
  • 可扩缩性:自动且即时
  • 状态属性:通常为无状态

PaaS

  • 管理负担:中等
  • 费用模式:按实例付费
  • 维护要求:
  • 可扩缩性:支持手动或自动扩缩
  • 状态属性:可为无状态,也可为有状态

容器

  • 管理负担:中等到较高
  • 费用模式:按容器付费
  • 维护要求:中等
  • 可扩缩性:支持手动或自动扩缩
  • 状态属性:可为无状态,也可为有状态

虚拟机

  • 管理负担:
  • 费用模式:按虚拟机计费
  • 维护要求:
  • 可扩缩性:支持手动或自动扩缩
  • 状态属性:可为无状态,也可为有状态

无服务器计算类型

在无服务器云计算中,通常有两种类型的服务:函数即服务 (FaaS) 和后端即服务 (BaaS)。

  • FaaS 提供响应请求并执行应用逻辑所需的计算资源。这些逻辑(或函数)在完全由云服务提供商管理的容器中运行。无服务器应用通常被分解为单个函数,这些函数会执行一项操作来响应事件。
  • BaaS 以服务形式提供 Web 或移动应用的完整后端功能,例如身份验证、数据库管理、云存储、推送通知和托管服务。此外,BaaS 也让您无需管理服务器、容器或虚拟机。

在开发中,“无服务器”一词通常用于描述 FaaS 产品。但请务必注意,在技术上,FaaS 是无服务器技术的一个子集。无服务器计算包括使得最终用户无需执行服务器管理、配置、扩缩和结算的任何服务类型。这可能包括数据库、存储空间、事件流、消息传递和 API 网关。

无服务器计算应用场景

以下是一些常见和新兴的无服务器计算示例:

API 和第三方集成

  • 应用场景:在不同业务应用之间无缝同步潜在客户和客户(例如,从 CRM 同步至营销自动化平台)
  • 无服务器解决方案:HTTP 触发的 Cloud Run functions 函数接收来自源系统(例如 Salesforce)的网络钩子,转换数据,并调用目标系统(例如 HubSpot)的 API,通常使用 Secret Manager 来处理凭证
  • Google Cloud 无服务器产品:Cloud Run functions 和 Secret Manager

预设操作与触发器驱动的操作

  • 应用场景:自动生成并分发常规报告
  • 无服务器解决方案:Cloud Scheduler 作业每天通过 Pub/Sub 触发 Cloud Run functions 函数;该函数查询数据仓库(例如 BigQuery),将数据处理为报告,并通过邮件 API 发送报告
  • Google Cloud 无服务器产品:Cloud Scheduler、Pub/Sub、Cloud Run functions 和 BigQuery

IT 流程自动化

  • 应用场景:自动识别和管理空闲计算资源,从而降低云费用
  • 无服务器解决方案:Cloud Scheduler 作业每晚通过 Pub/Sub 触发 Cloud Run functions 函数;该函数使用 Compute Engine API 和 Cloud Monitoring 来识别空闲实例,并自动停止或删除,同时将操作记录到 Cloud Logging 中
  • Google Cloud 无服务器产品:Cloud Scheduler、Pub/Sub、Cloud Run functions、Cloud Monitoring 和 Cloud Logging

实时处理与异步处理

  • 应用场景:处理并丰富大量流式数据(例如用户活动),以便即时获取洞见并采取行动
  • 无服务器解决方案:用户点击流事件被流式传输到 Pub/Sub;Cloud Run functions 函数(或 Cloud Run 服务)消费这些事件,结合来自 Firestore 的数据对事件进行丰富处理,然后将丰富后的数据发布到另一个 Pub/Sub 主题,以便在 BigQuery 中进行实时分析或生成个性化推荐
  • Google Cloud 无服务器产品:Pub/Sub、Cloud Run functions、Cloud Run、Firestore 和 BigQuery

CI/CD 和 DevOps 工作流

  • 应用场景:在代码变更时自动构建、测试和部署微服务
  • 无服务器解决方案:Cloud Build 触发器监控 Git 代码库(如 Cloud Source Repositories);代码提交后,Cloud Build 会运行测试,将容器映像构建至 Artifact Registry,并自动将新版本部署到 Cloud Run
  • Google Cloud 无服务器产品:Cloud Build、Cloud Run、Artifact Registry 和 Cloud Source Repositories

图片/视频处理

  • 应用场景:上传后自动生成优化图片变体(如缩略图、不同格式)
  • 无服务器解决方案:当新图片上传到 Cloud Storage 存储桶时,Cloud Run functions 函数会被激活;该函数处理图片(调整大小、格式转换),将新版本保存回 Cloud Storage,并更新 Firestore 中的元数据
  • Google Cloud 无服务器产品:Cloud Storage、Cloud Run functions 和 Firestore

AI 应用和 AI 智能体

  • 应用场景:使用 Llama 3.1、Gemma 2、Mistral 等大型语言模型 (LLM) 执行实时 AI 推理
  • 无服务器解决方案:Cloud Run 可与 Gemini API、Vertex AI 端点或托管于启用 GPU 的 Cloud Run 服务中的模型集成;它还可作为可扩展的 API 端点,并托管 AI 智能体
  • GCP 无服务器产品: Cloud Run、Cloud Storage、Firestore

无服务器计算的优势

提高开发者的工作效率

采用无服务器技术的开发者专注于编写代码和优化业务逻辑,而无需担心预配、管理或扩缩基础设施。

开箱即用的可伸缩性

无服务器架构本身可以扩缩。与其他类型的云计算中需要微调规则的自动扩缩不同,无服务器自动扩缩是即时的,并且可以缩小到零。

灵活价格

无服务器价格模式通常根据实际用量和执行函数所需的时间收费。您也无需为空闲容量付费,这有助于降低运行和管理您自己的服务器所产生的运营成本。

部署速度更快

无服务器计算可帮助 DevOps 团队在集成、测试、交付和部署过程中减少基础设施定义所带来的阻力。这样一来,他们便可专注于编写代码并直接部署到生产环境。

使用任何语言

无服务器环境支持任何语言或框架,让团队能够使用他们最熟悉的语言或框架(如 Go、Python、Java、Node.js、.NET 等)进行开发。

无服务器计算的缺点

无服务器计算的最大缺点之一是,它仍然是一项相对较新的技术。因此,这种方法还不适合满足所有潜在用例的需要。

同时,随着无服务器计算的不断发展,当前存在的一些弊端将随着时间的推移逐渐解决。具体而言,无服务器的开源实现方面做了大量的工作,并想方设法提高云服务的开放性,使解决方案能够跨不同平台和环境移植。

  • 适用应用场景有限:无服务器架构并不总是适用于具有特定要求的应用,例如需要长时间运行的进程或对延迟要求极低的应用
  • 性能限制:无服务器函数可能会遇到冷启动(初始执行延迟)问题,并可能在执行时间和内存方面存在限制
  • 供应商锁定:由于 API 和配置存在差异,在不同云提供商之间迁移无服务器应用可能较为复杂
  • 服务器可见性降低:开发者对底层基础设施的可见性有限,因此难以排查性能问题或优化资源使用效率
  • 启动缓慢:无服务器函数有时会遇到“冷启动”问题,即调用函数时出现延迟,可能会增加整体响应时延

更进一步

获享 $300 赠金以及 20 多种提供“始终免费”用量的产品,开始在 Google Cloud 上构建项目。