Serverless 架构的3个特性:
- 免运维,无服务器(No Ops)
无需预置或维护任何服务器。无需安装、维护或管理任何软件或运行时。
- 按需计费(Pay as You Go)
计费力度更细,只需要为你的计算消耗的资源付费。
- 弹性扩缩容(Auto Scaling)
不需要关心实例个数,根据当前的负载自动调整实例个数。
Serverless 架构的要求/限制:
- 应用必须是无状态的,通过事件触发;
- 内存和磁盘有一定的限制;
- 目前 AWS Lambda 内存最大是 3G,磁盘是 500M;
- 程序启动时间有要求,为了实现弹性扩所容,程序不能启动太慢;
AWS 的 Lambda 架构:
从上往下,抽象逐渐上升,目前分成五层:
- 基础硬件层:云计算厂商会提供最基础的硬件资源,包括网络服务器存储等;
- 云平台层:虚拟化实现,包括容器,存储, 权限,监控和计费单元;
- Serverless 层:包括 Baas 和 Faas ,目前来看大部分的 Baas 服务都是云厂商提供的,包括数据库, 搜索引擎,消息系统等;
- 云厂商会提供 Faas 的基本功能,对于用户来说只需要编写 function 来实现业务逻辑;
- 应用层:用户只需要关心自己的业务逻辑实现。