什么是无服务器计算?

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

虽然该名称可能会误导用户,但无服务器并不意味着“没有服务器”。相反,无服务器应用消除了与应用开发相关的日常基础设施工作。您无法查看运行应用的机器,无法对其进行配置,也不必管理或扩缩它们。也就是说,您只需为服务器的服务付费,而不是为服务器本身付费。

从开发角度来看,这就好像完全没有服务器:开发者编写代码,将其部署到生产环境,云服务提供商会处理其余工作。

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

在构建应用时,开发者通常需要执行许多其他服务器管理任务才能部署代码,例如定义处理和存储资源、修补、负载均衡等。所有这些额外内容都会导致预配时间较长,增加运营开销,最终降低开发团队的工作效率。

无服务器计算旨在为开发者提供不可见的“无服务器”体验,让开发者无需考虑服务器或应用可能需要运行的任何内容。服务提供商会在后台完成所有工作,确保您有足够的资源来执行代码并满足相关要求,而无需为闲置容量付费。

下面用一个简单的类比的方式,帮助您更轻松地理解无服务器计算的工作原理

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

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

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

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

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

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

无服务器计算示例和使用场景

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

FaaS 提供执行应用逻辑以响应请求所需的计算资源。这些逻辑片段(或函数)在完全由云服务提供商管理的容器中运行。无服务器应用通常拆分为单个函数,执行一项操作来响应某个事件。

BaaS 提供 Web 应用或移动应用即服务的完整后端功能,例如身份验证服务、数据库管理、云端存储、推送通知和托管。有了 BaaS,您再也无需管理服务器、容器或虚拟机。

在开发阶段,“无服务器”这一术语通常用于描述 FaaS 产品。但请务必注意,从技术上讲,FaaS 是无服务器技术的一部分。无服务器计算包括任何类型的服务,这些服务无需最终用户管理服务器、配置、扩缩和结算。可能包括数据库、存储、事件流、消息传递和 API 网关。

一般情况下,无服务器计算仍然主要用于简单的短期任务。最常见的一些无服务器计算示例包括:

  • 与第三方服务和 API 集成
  • 运行计划任务(例如每日报告、备份或业务逻辑)
  • IT 流程自动化,例如自动移除访问权限、启动合规性安全检查或发送批准
  • 针对结构化和非结构化数据进行实时数据处理
  • 自动执行持续集成和持续交付 (CI/CD) 流水线
  • REST API 后端
  • 基于触发器的操作或运行计划任务(例如每日报告、备份或业务逻辑)
  • 异步处理
  • 实时通知或定时通知

无服务器计算的优势

提高开发者的工作效率

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

开箱即用的可伸缩性

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

灵活价格

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

部署速度更快

借助无服务器技术,DevOps 团队无需花费时间来定义集成、测试、交付或部署代码所需的任何基础设施。只需编写代码并将其部署到生产环境中即可。

使用任意语言

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

无服务器计算的缺点

无服务器计算的最大缺点之一是它仍然是一项相对较新的技术。因此,它尚不适合所有潜在用例。

此外,无服务器的短暂性质及其缩减至零的能力使其不适合某些类型的应用。它并非用于长时间执行代码,并且无法始终为具有严格低延迟要求的应用提供服务,例如金融服务应用。

最后但同样重要的一点是,将对所有计算资源的管理工作移交给第三方提供商的优势可能也会带来一些不利因素。虽然这样可以腾出时间来专注于编写代码,但迁移到新的云服务提供商可能也会非常困难。此外,您也无法了解自己的服务的运行位置或方式,并且对扩缩方式、运行何种类型的硬件代码以及灾难恢复情况的控制也有限。

尽管如此,无服务器计算仍有很多值得期待的方面,尤其是对于那些希望帮助开发者提高工作效率并寻找更简单、更经济高效的方式来构建云端应用的组织。

此外,随着无服务器计算的不断发展,当前存在的一些弱点也将逐渐得到解决。特别是,在无服务器的开源实现方面做了大量工作,并寻找方法来使云服务更加开放,使解决方案可移植到不同的平台和环境。

利用 Google Cloud 解决业务难题

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

更进一步

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

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
控制台