架构风格与模式58 条

Serverless 与函数计算

以事件触发的函数为部署单元,平台负责伸缩与计费;适合突发流量、胶水集成与低频任务,需接受冷启动、执行时长限制与状态外置。

伸缩按请求自动伸缩,无需容量规划
限制执行时长、内存、并发配额与冷启动延迟
状态无状态,状态放对象存储、数据库或缓存
  • 适合:事件驱动胶水、突发流量接口、低频定时任务
  • 不适合:长时程批处理、长连接、依赖本地状态的服务
  • 冷启动缓解:预留并发、精简依赖包、优化初始化路径
  • 状态外置:中间结果放对象存储,会话放外部缓存
  • 部署粒度:单函数职责单一,通过事件与编排串联流程
  • 成本结构:请求次数、执行时长与出网流量分别计费
本地调试SAM CLI、Functions Framework、Functions Core Tools 等模拟器
版本策略别名与版本号配合灰度发布,回滚时切别名指向
函数之间的调用链过长会放大冷启动与超时风险,适合短小、边界清晰的任务。

易错点

  • 把长时间运行的批处理放进函数,触发超时与配额封顶
  • 函数直连数据库导致连接数在突发时打满

数据来源与参考

  • AWS Lambda 官方文档
  • Azure Functions 官方文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌