什么是功能即服务 (FaaS)?

FaaS 是一种无服务器后端服务,允许开发人员即时编写模块化代码段,以便响应某些事件而执行。

学习目标

阅读本文后,您将能够:

  • 定义 FaaS
  • 探索 FaaS 的优点和缺点
  • 描述为什么大型边缘网络对 FaaS 应用程序性能至关重要

复制文章链接

什么是功能即服务?

功能即服务 (FaaS) 是在边缘执行模块化代码段的无服务器方法。FaaS 使开发人员可以即时编写和更新一段代码,然后在响应事件(例如用户单击 Web 应用程序中的元素)时执行该代码。这使得扩展代码变得容易,并且是实现微服务的一种经济高效的方法。

什么是微服务?

如果说 Web 应用程序是视觉艺术作品,那么使用微服务架构就像制作马赛克拼贴画。艺术家可以轻松地一次添加、更换和修复一小块瓷砖。单体架构就像在一块画布上绘出整个作品。

微服务与单体架构

这种用一组模块化组件构建应用程序的方法称为微服务体系结构。将应用程序划分为微服务对开发人员而言很有吸引力,因为这意味着开发人员可以创建和修改可轻松实施到代码库中的小段代码。这与单体架构相反,在单体架构中,所有代码都交织到一个大型系统中。对于大型的单体系统,即使对应用程序进行很小的更改,也需要繁重的部署过程。FaaS 消除了这种部署复杂性。

使用 FaaS 等无服务器代码,Web 开发人员可以专注于编写应用程序代码,而无服务器提供商则负责服务器分配和后端服务。

使用 FaaS 有什么优势?

提高开发人员速度

使用 FaaS,开发人员可以将更多的时间花在编写应用程序逻辑上,而将更少的时间用于服务器和部署上。这通常意味着开发周期更短。

内置可扩展性

由于 FaaS 代码固有可扩展性,因此开发人员不必担心会因为高流量或大量使用而产生意外情况。无服务器提供商将处理所有扩展问题。

成本效益

与传统的提供商不同,无服务器 FaaS 提供商不会向客户收取空闲计算时间的费用。因此,客户仅需对使用时间支付费用,而无需浪费金钱来过度配置云资源。

FaaS 的缺点是什么?

更少系统控制

由第三方管理基础设施的一部分会使您难以理解整个系统,并增加了调试挑战。

测试的复杂性提高

将 FaaS 代码合并到本地测试环境中可能非常困难,因此对应用程序进行全面测试会成为一项更加繁重的任务。

如何开始使用 FaaS

开发人员必须与无服务器提供商建立关系,方可将 FaaS 功能用于 Web 应用程序。由于 FaaS 集成意味着将从边缘传送一些应用程序代码,因此边缘服务器的可用性和地理分布是一个重要的考虑因素。意大利的用户访问依赖于巴西一个超载数据中心提供的 FaaS 边缘代码的站点时,会遇到导致高跳出率的延迟。Cloudflare Workers 是一个 FaaS 解决方案,它利用 Cloudflare 遍布 330 多个城市的数据中心全球网络,因此成为一个大受欢迎的选择。