价值
- 降低运营复杂度
- 降低运营成本
- 缩短产品上市时间
- 增强创新能力
框架
- AWS Lambda,最早被大众所认可的Serverless实现 (FaaS非常成功的代表)
- Azure Functions,来自微软公有云的Serverless实现
- Open Whisk,Apache社区的开源Serverless框架
- Kubeless,基于Kubernetes架构实现的开源Serverless框架
- Fission,Platform9推出的开源Serverless框架
- OpenFaaS,以容器技术为核心的开源Serverless框架
- Fn,来自Oracle的开源Serverless框架,由原IronFunctions团队开发。
FaaS 和 BaaS
- 函数即服务(Function as a Service, FaaS)
Serverless 架构实现的一个重要基础就是 函数即服务
大多数FaaS平台基于事件驱动(Event Driven)的思想,可以根据预定义的事件触发指定的函数应用逻辑。
相关的业务逻辑拥有事件驱动、资源自动弹性扩展、高可用等特性。
- 后台即服务(Backend as a service, BaaS)
数据库即服务(Database as a service, DBaaS)
总结
要完成的实现 Serviceless 架构,需要结合 Faas 和 BaaS 的功能,使得应用整体的系统架构实现 Serviceless 化。
Serviceless的技术特点
- 按需加载
- 事件驱动
- 状态非本地持久化
- 非会话保持
- 自动弹性伸缩
- 应用函数化
- 依赖服务化
Serviceless的应用场景
- Web 应用
- 移动互联网
- 物联网
- 多媒体处理
- 数据及事件流处理
- 系统集成
Serviceless的局限
- 控制力弱
- 可移植性低
- 安全性低
- 性能(应用长时间空闲被卸载之后,首次加载将产生一定的延时)
- 执行时长(按需加载的特点,适用于执行时长较短的应用)
- 技术成熟度
FaaS 的灵活度和管理成本介于 PaaS 和 SaaS 之间。
单体到微服务
Serverless 与微服务(Microservice)容器(Container)
Kubernetes 是一个容器编排平台,用户可以实现对容器应用的自动弹性伸缩。
容器架构中最小的运行单元是容器;容器预先部署、持续在线
Serverless 中则是函数;函数按需加载执行。