1. serverless 是什么意思
1.1. serverless 的含义
狭义 Serverless 是指: Serverless computing 架构 = FaaS 架构 = Trigger(事件驱动)+FaaS(Function as a Service, 函数即服务)+BaaS(Backend as a Service, 后端即服务, 持久化或第三方服务) = FaaS + BaaS。
广义 Serverless 是指服务端免运维, 也就是具有 Serverless 特性的云服务。要想达到 NoOps, 需要具备:
- 无需用户关心服务端的事情(容错、容灾、安全验证、自动扩缩容、日志调试)
- 按使用量(调用次数、时长等)付费, 低费用和高性能并行, 大多数场景下节省开支。
- 快速迭代&试错能力(多版本控制、灰度、CI&CD 等等)。
1.2. serverless 的价值
- 免运维: 无需管理基础设施, 可以专注业务开发
- 按量计费: 闲时不计费, 降低成本
- 弹性伸缩: 峰时自动扩容, 无需考虑可用性问题
1.3. 什么是 BaaS
Baas 的英文翻译成中文的含义: 后端即服务, 它的应用架构由大量第三方云服务器和 API 组成的, 使应用中关于服务器的逻辑和状态都由服务提供方来管理的。比如我们的典型的单页应用 SPA 和移动 APP 富客户端应用, 前后端交互主要是以 RestAPI 调用为主。只需要调用服务提供方的 API 即可完成相应的功能, 比如常见的身份验证, 云端数据/文件存储, 消息推送, 应用数据分析等。
1.4. 什么是 FaaS?
FaaS 可以被叫做: 函数即服务。开发者可以直接将服务业务逻辑代码部署, 运行在第三方提供的无状态计算容器中, 开发者只需要编写业务代码即可, 无需关注服务器, 并且代码的执行它是由事件触发的。其中 AWS Lambda 是目前最佳的 FaaS 实现之一。
Serverless 的应用架构是将 BaaS 和 FaaS 组合在一起的应用, 用户只需要关注应用的业务逻辑代码, 编写函数为粒度将其运行在 FaaS 平台上, 并且和 BaaS 第三方服务整合在一起, 最后就搭建了一个完整的系统。整个系统过程中完全无需关注服务器。