函数即服务 (FaaS) 是一种云计算模型,它允许开发者部署单个函数或代码片段,而无需管理底层基础设施。这些函数由特定事件触发,例如 HTTP 请求、数据库更改或文件上传,云提供商会自动处理伸缩、服务器预置和资源分配。示例包括 AWS Lambda、Azure Functions 和 Google Cloud Functions。使用 FaaS,开发者只需专注于编写离散任务的代码,而平台负责管理执行、运行时环境和可用性。
FaaS 的工作原理是将应用程序拆分成小的、无状态的函数,这些函数在短暂存在的容器中运行。当事件发生时——例如 API 请求或队列中的消息——云提供商会启动一个容器来执行该函数,任务完成后即关闭容器。例如,当文件上传到存储桶时,某个函数可以负责调整图片大小。其主要优势在于自动伸缩:如果同时到达数千个请求,平台会启动函数的多个实例来处理负载。这消除了预先分配服务器或担心容量的需要。成本通常基于执行时间和内存使用量,这使得它对于零星工作负载而言非常经济。
FaaS 最适合事件驱动的、短暂运行的任务。常见的用例包括处理数据流、处理 Webhook 或构建微服务。例如,移动应用的后端可以使用 FaaS 来验证用户输入、更新数据库或发送通知。然而,FaaS 也有局限性。函数是无状态的,因此持久化数据必须存储在外部;冷启动(函数最近未使用时出现的延迟)可能会影响性能。开发者还必须设计运行快速的函数,因为大多数平台会强制执行时间限制(例如 15 分钟)。尽管存在这些限制,FaaS 简化了部署并降低了运维开销,使团队能够更快地对特定功能进行迭代,而无需管理服务器。