Module 03 · Serverless Overview
Introduction to Serverless Computing无服务器计算简介
Serverless 的定义与概念
无服务器计算(Serverless Computing)是云原生计算基金会(CNCF)定义的一种概念。
定义
"构建和运行不需要服务器管理的应用程序的概念。"
📌 本质: 它描述了一种更细粒度的部署模型,其中应用程序被捆绑为一个或多个函数,上传到平台,然后根据即时需求进行执行、伸缩和计费。
核心理念
Serverless Computing 将基础设施管理的责任转嫁给云提供商,使开发人员能够专注于应用程序的业务逻辑。
Serverless Computing 可以视为以下两者的结合 :
- 功能即服务(FaaS, Function-as-a-Service)平台: 用于运行函数。
- 后端即服务(BaaS, Backend-as-a-Service)服务: 代表后端云服务,例如云数据库、对象存储服务和消息队列。

IT 计算模型的演变
IT 计算的历史展示了一个从传统计算到 Serverless Computing 的渐进趋势,带来了更快的部署、更短的生命周期和更高的生产力。
| 演进阶段 | 基础设施类型 | 部署时间 | 生命周期 | 特点 |
|---|---|---|---|---|
| 传统计算 | 物理机 | 数周或数月 | 数年 | 受到前期投资和容量规划的限制。 |
| 虚拟化/云计算 | 虚拟机(VMs) | 数分钟 | 数天或数周 | 实现更快的置备、高伸缩性和可用性。 |
| 容器 | 容器(基于 OS 虚拟化) | 数秒 | 数分钟或数小时 | 基于操作系统虚拟化。 |
| 无服务器函数 | Serverless 架构/核心代码 | 毫秒 | 数秒 | 开发者只需关注核心代码。 |
Serverless 作为架构风格
- 它是标准云计算的进步,抽象化了基础设施和软件环境。
- 代码运行:代码使用云平台运行。
- 云提供商的责任:云提供商管理硬件和软件设置、安全性、伸缩性等。
- 计费模式:客户端仅按使用量计费,而非 CPU 空闲时间。
- 开发者焦点:开发人员只需以函数的形式关注其应用程序代码。
Serverless Computing 的关键特征
Serverless Computing 具有以下特点:
- 无主机(Hostless):开发人员无需采购、管理和维护服务器。
- 弹性(Elastic):自动伸缩(Autoscaling)是即时且固有的。
- 自动负载均衡:自动将传入流量分配到多个后端系统。
- 无状态(Stateless):带来更快的性能和更高的可伸缩性。
- 事件驱动(Event Driven):函数仅在事件发生时才会被触发。
- 高可用性(High Availability):无需额外努力或成本即可提供高可用性。
- 按使用量计费:基于使用的细粒度计费(granular billing)。
函数的工作原理
- 创建函数:开发人员使用云提供商支持的语言(如 Python, Java, Node.js 等)编写代码,创建函数。
- 上传函数:开发人员将函数上传到云端。
- 定义事件:定义触发函数的事件(例如:用户点击)。
- 执行:事件发生时,触发器被调用,云提供商运行该函数(表现为容器对象)。
开发者收益
开发者可以花更多时间创建高质量和优化的应用程序,从而:
- 使用任何流行的编程语言构建函数。
- 通过添加附加功能来扩展应用功能。
- 由于函数一次只执行一项任务,因此可以进行更好的测试。
- 优化应用和函数,并改善用户体验。
云提供商的运维责任
为了实现零运营考虑的目标,云提供商负责日常基础设施管理和维护任务,例如:
- 最大化计算、内存和网络利用率,同时最小化成本。
- 提供服务器管理(包括 OS 更新和安全补丁)。
- 启用自动伸缩。
- 维护高可用性。
- 实施安全性。
- 配置高性能/低延迟。
- 设置监控和日志记录。
云服务模型责任对比
此图比较了不同云服务模型下的责任划分,特别是 Serverless 模型 。

| 服务模型 | 用户负责的层级 | 云提供商负责的层级 | 开发者焦点 |
|---|---|---|---|
| 传统(On-Premise) | 整个堆栈 | 无 | 应用程序、数据到硬件 |
| IaaS | 从 OS 到顶层(Runtime, Middleware, Data, Application) | 硬件、存储、网络、虚拟化 | 操作系统和应用 |
| PaaS | 应用和数据 | OS, Runtime, Middleware, 下层基础设施 | 应用和数据 |
| Serverless | 仅应用 | 除应用外所有层 | 仅应用代码(函数) |
| SaaS | 无(整个堆栈由云提供商管理) | 整个堆栈 | 消费服务 |
总结
- Serverless 是构建和运行不需要服务器管理的应用程序的概念。
- Serverless Computing 使用 BaaS 服务和 FaaS 平台。
- IT 计算历史显示从传统计算到 Serverless Computing 的生产力趋势不断提高。
- 在 Serverless Computing 中,云提供商负责基础设施管理(如服务器管理、OS 更新、安全补丁和监控)。
- Serverless Computing 使开发人员能够专注于应用程序和代码。
- 用户仅按使用量计费,而不是按 CPU 空闲时间计费。