功能即服务 (FaaS) 是一种在边缘执行模块化代码的无服务器方式。FaaS 让开发人员可以即时编写和更新一段代码,然后可以执行该代码以响应事件,例如用户单击 Web 应用程序中的元素。这使得扩展代码变得容易,并且是实现微服务的一种经济高效的方式。
什么是微服务?
如果一个 Web 应用程序是一件视觉艺术作品,那么使用微服务架构就像用一组马赛克瓷砖制作艺术一样。艺术家可以轻松地一次添加、更换和修复一块瓷砖。单体建筑就像在一张画布上绘制整个作品。
这种从一组模块化组件构建应用程序的方法称为微服务架构。将应用程序划分为微服务对开发人员很有吸引力,因为这意味着他们可以创建和修改可以轻松实现到他们的代码库中的小段代码。这与单体架构形成对比,在单体架构中,所有代码都交织在一个大型系统中。对于大型单体系统,即使是对应用程序的微小更改也需要大量的部署过程。FaaS 消除了这种部署复杂性。
使用 FaaS 等无服务器代码,Web 开发人员可以专注于编写应用程序代码,而无服务器提供商负责服务器分配和后端服务。
使用 FaaS 的优势是什么?
提高开发者速度
借助 FaaS,开发人员可以花更多时间编写应用程序逻辑,而不必花时间担心服务器和部署。这通常意味着更快的开发周转。
内置可扩展性
由于 FaaS 代码本质上是可扩展的,因此开发人员不必担心为高流量或大量使用创建意外事件。无服务器提供商将处理所有扩展问题。
成本效益
与传统的云提供商不同,无服务器 FaaS 提供商不会向客户收取空闲计算时间的费用。正因为如此,客户只需为他们使用的计算时间付费,并且不需要浪费金钱过度配置云资源。
FaaS 的缺点是什么?
更少的系统控制
让第三方管理部分基础设施使得理解整个系统变得很困难,并增加了调试挑战。
测试需要更多复杂性
将 FaaS 代码合并到本地测试环境中可能非常困难,这使得对应用程序的彻底测试成为一项更加密集的任务。
如何开始使用 FaaS
开发人员必须与无服务器提供商建立关系,才能为 Web 应用程序启用 FaaS 功能。由于 FaaS 集成意味着一些应用程序代码将从边缘交付,边缘服务器的可用性和地理分布是一个重要的考虑因素。意大利用户访问依赖于巴西超载数据中心提供的 FaaS 边缘代码的站点时,会遇到导致高跳出率的延迟。