无服务器架构是一种云计算模型,开发者无需管理底层服务器即可构建和运行应用程序。与预置或维护物理或虚拟机不同,云提供商(如 AWS、Azure 或 Google Cloud)会动态分配资源以响应事件或请求来执行代码。“无服务器”一词可能具有误导性——服务器仍然存在,但其管理被抽象化了。开发者部署函数或服务,提供商会自动处理扩展、可用性和基础设施维护。这种模型通常用于事件驱动型工作负载,例如 API、文件处理或计划任务。
一个常见的例子是无服务器函数,它由 HTTP 请求或文件上传到云存储触发。例如,当用户将图像上传到 S3 存储桶时,AWS Lambda 可以自动调整其大小,而无需专用服务器。函数只在需要时运行,您只需为执行期间消耗的计算时间付费。这与服务器持续运行、即使在空闲时也会产生费用的传统设置形成对比。无服务器平台还与其他托管服务(如数据库或消息队列)集成,简化了后端开发。然而,函数在设计上是无状态的,因此持久性数据必须存储在外部。
无服务器最适合流量不可预测、生命周期短、可扩展的任务。例如,一个使用频率不定的天气 API 可以高效地在无服务器基础设施上运行,在不使用时缩放到零。然而,它不太适合需要持久连接的长时间运行进程或应用程序,如实时游戏。冷启动——函数在非活动后初始化时的延迟——也可能影响性能。开发者必须围绕这些限制进行设计,例如使用预置并发或优化代码以加快启动速度。虽然无服务器降低了运维开销,但它带来了对特定提供商工具的依赖,并限制了低层控制,因此在采用前应评估权衡。