价值

  1. 降低运营复杂度
  2. 降低运营成本
  3. 缩短产品上市时间
  4. 增强创新能力

框架

  • 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

  1. 函数即服务(Function as a Service, FaaS)

Serverless 架构实现的一个重要基础就是 函数即服务
大多数FaaS平台基于事件驱动(Event Driven)的思想,可以根据预定义的事件触发指定的函数应用逻辑。
相关的业务逻辑拥有事件驱动、资源自动弹性扩展、高可用等特性。
image.png
image.png
fa4fd05c086d754afb2c8300b9efded.jpg
ac4353d225a4512f92431b66e55d563.jpg

  1. 后台即服务(Backend as a service, BaaS)

数据库即服务(Database as a service, DBaaS)

总结

要完成的实现 Serviceless 架构,需要结合 Faas 和 BaaS 的功能,使得应用整体的系统架构实现 Serviceless 化。

Serviceless的技术特点

  1. 按需加载
  2. 事件驱动
  3. 状态非本地持久化
  4. 非会话保持
  5. 自动弹性伸缩
  6. 应用函数化
  7. 依赖服务化

Serviceless的应用场景

  1. Web 应用
  2. 移动互联网
  3. 物联网
  4. 多媒体处理
  5. 数据及事件流处理
  6. 系统集成

Serviceless的局限

  1. 控制力弱
  2. 可移植性低
  3. 安全性低
  4. 性能(应用长时间空闲被卸载之后,首次加载将产生一定的延时)
  5. 执行时长(按需加载的特点,适用于执行时长较短的应用)
  6. 技术成熟度

image.png
FaaS 的灵活度和管理成本介于 PaaS 和 SaaS 之间。

单体到微服务
Serverless 与微服务(Microservice)容器(Container)

Kubernetes 是一个容器编排平台,用户可以实现对容器应用的自动弹性伸缩。
容器架构中最小的运行单元是容器;容器预先部署、持续在线
Serverless 中则是函数;函数按需加载执行。