Serverless 架构的3个特性:

  • 免运维,无服务器(No Ops)

无需预置或维护任何服务器。无需安装、维护或管理任何软件或运行时。

  • 按需计费(Pay as You Go)

计费力度更细,只需要为你的计算消耗的资源付费。

  • 弹性扩缩容(Auto Scaling)

不需要关心实例个数,根据当前的负载自动调整实例个数。

Serverless 架构的要求/限制:

  1. 应用必须是无状态的,通过事件触发;
  2. 内存和磁盘有一定的限制;
    1. 目前 AWS Lambda 内存最大是 3G,磁盘是 500M;
  3. 程序启动时间有要求,为了实现弹性扩所容,程序不能启动太慢;

AWS 的 Lambda 架构:

image.png
从上往下,抽象逐渐上升,目前分成五层:

  • 基础硬件层:云计算厂商会提供最基础的硬件资源,包括网络服务器存储等;
  • 云平台层:虚拟化实现,包括容器,存储, 权限,监控和计费单元;
  • Serverless 层:包括 Baas 和 Faas ,目前来看大部分的 Baas 服务都是云厂商提供的,包括数据库, 搜索引擎,消息系统等;
  • 云厂商会提供 Faas 的基本功能,对于用户来说只需要编写 function 来实现业务逻辑;
  • 应用层:用户只需要关心自己的业务逻辑实现。