无服务器后端是一种云计算模型,开发人员可以在其中构建和部署应用程序,而无需管理底层服务器或基础设施。云提供商(如 AWS、Azure 或 Google Cloud)会自动分配资源来运行代码以响应事件或请求,而不是配置和维护服务器。“无服务器”一词可能具有误导性,因为仍然涉及到服务器,但它们的管理被抽象掉了。开发人员只专注于为特定功能或服务编写代码,这些功能或服务在短暂的无状态环境中执行。例如,无服务器功能可能会处理图像上传、处理 API 请求或触发数据库更新——所有这些都无需开发人员担心服务器正常运行时间、扩展或补丁。
无服务器后端的一个关键特性是事件驱动的执行。函数由特定事件触发,例如 HTTP 请求(通过 API 网关)、数据库中的更改(如 DynamoDB 流)或文件上传到云存储(如 AWS S3)。当事件发生时,云提供商会启动一个容器来运行该函数,处理该任务,并在空闲时关闭该容器。这种按需模型确保您只需为执行期间使用的计算时间付费,而不是为空闲资源付费。例如,电子商务应用程序可能会使用无服务器功能在购买后发送确认电子邮件。该函数仅在发生结帐事件时运行,并在流量高峰期间自动扩展,无需手动干预。
虽然无服务器后端简化了基础设施管理,但它们也带来了一些权衡。冷启动——函数在空闲后初始化时的延迟——会影响延迟敏感型应用程序的性能。执行时间限制(例如 AWS Lambda 上为 15 分钟)使得无服务器不适合长时间运行的任务,如视频编码。供应商锁定是另一个问题,因为函数通常依赖于专有的云服务(例如 AWS Step Functions)。但是,无服务器在 REST API、实时数据处理(调整上传图像的大小)或计划任务(每日报告生成)等用例中表现出色。像 Serverless Framework 或 AWS SAM 这样的工具可以帮助自动化部署,而像 CloudFront 或 API Gateway 这样的服务可以处理路由。通过卸载基础设施问题,开发人员可以更快地迭代,但他们必须围绕无状态、短生命周期流程和分布式系统复杂性进行设计。