Serverless 架构虽然有很多优势,但也存在一些限制和挑战,需要根据业务场景合理评估:
主要限制:
1. 执行时间限制
- 最大执行时间:AWS Lambda 最大 15 分钟,Azure Functions 10 分钟
- 影响:不适合长时间运行的任务,如视频处理、大数据分析
2. 冷启动延迟
- 首次调用延迟:几百毫秒到几秒不等
- 影响:对延迟敏感的应用(如实时通信、游戏)可能不适用
3. 资源限制
- 内存限制:通常最大 10GB
- 磁盘空间:/tmp 目录通常限制在 512MB-10GB
- 并发限制:账户级别和函数级别的并发限制
4. 状态管理
- 无状态特性:函数实例之间无法共享状态
- 影响:需要依赖外部存储服务管理状态
5. 调试困难
- 本地环境差异:本地开发环境与云端环境可能不一致
- 调试工具限制:无法像传统应用一样设置断点调试
6. 厂商锁定
- 平台依赖:不同云厂商的 Serverless 平台差异较大
- 迁移成本:迁移到其他平台需要重构代码
7. 成本不确定性
- 按需付费:高并发场景下成本可能超出预期
- 难以预测:难以准确预测实际使用量和成本
适用场景:
- 事件驱动应用
- API 服务
- 数据处理流水线
- 微服务架构
- 定时任务
面试者应能根据业务需求,合理评估 Serverless 架构的适用性。