2. Serverless 发展史:从物理机到容器到 Serverless 的演进

理解 Serverless 的今天,必须回顾基础设施的演进路径。这条路径的核心驱动力是资源利用率与开发效率的持续博弈。我们从物理机时代开始,逐步拆解到容器化,最终抵达 Serverless。

2.1 基础设施演进三阶段

下图展示了从物理机到 Serverless 的核心架构变化,重点关注资源隔离粒度和运维责任边界的转移。

基础设施演进:物理机 → 容器 → Serverless 基础设施演进三阶段 物理机时代 应用直接部署在 OS 上 资源隔离:进程级 扩缩容:小时级 运维:全栈自建 典型代表:IDC 托管 利用率:5% - 15% 容器时代 应用打包为镜像 资源隔离:容器级 扩缩容:分钟级 运维:容器编排 典型代表:Kubernetes 利用率:30% - 50% Serverless 时代 只需关注业务代码 资源隔离:函数级 扩缩容:毫秒级 运维:全托管 典型代表:AWS Lambda 利用率:接近 100% 核心趋势:运维责任左移,开发者聚焦业务逻辑
关键认知:Serverless 并非凭空出现,它是容器化与云原生理念的自然延伸。容器解决了环境一致性问题,Serverless 则进一步解决了资源闲置与运维复杂性问题。

2.2 各阶段核心对比

维度 物理机 虚拟机 (VM) 容器 (Container) Serverless
资源粒度 整机 虚拟 CPU/内存 进程级 函数/请求级
启动时间 分钟级 分钟级 秒级 毫秒级
扩缩容能力 手动,小时级 半自动,分钟级 自动,秒级 自动,毫秒级
运维责任 全部自建 虚拟化层托管 编排层托管 全托管(除代码)
资源利用率 5% - 15% 10% - 30% 30% - 50% 接近 100%
计费模式 包年包月 按实例付费 按实例付费 按调用次数 + 执行时长

2.3 主要云厂商 Serverless 产品矩阵

当前主流云厂商均已构建完整的 Serverless 产品体系,覆盖计算、存储、数据库、网络等核心领域。下表梳理了三大云厂商的核心产品对照。

产品类别 AWS Azure 阿里云
函数计算 AWS Lambda Azure Functions 函数计算 FC
API 网关 API Gateway API Management API 网关
对象存储 S3 Blob Storage OSS
数据库 DynamoDB / Aurora Serverless Cosmos DB Tablestore / PolarDB Serverless
消息队列 SQS / SNS Queue Storage / Event Grid MNS / RocketMQ
工作流编排 Step Functions Logic Apps Serverless Workflow
容器 Serverless Fargate Container Instances ECI (弹性容器实例)
选型建议:如果团队已深度绑定某朵云,优先使用该云的原生 Serverless 产品,以获得最佳集成体验和性能。如果追求多云或开源方案,可关注 Knative、OpenWhisk 等开源 Serverless 框架。

2.4 Serverless 产品架构总览

下图以 AWS 为例,展示 Serverless 应用的核心组件及其协作关系。其他云厂商的产品架构逻辑与此高度相似。

Serverless 产品架构总览(以 AWS 为例) Serverless 产品架构总览(以 AWS 为例) 用户 / 客户端 API Gateway AWS Lambda DynamoDB S3 SQS / SNS 核心流程:用户请求 → API 网关 → 函数计算 → 后端服务 所有组件均按实际使用量计费,无需预置服务器

2.5 演进背后的驱动力

  • 成本压力:物理机时代资源利用率极低,虚拟化与容器化逐步提升了硬件复用率,Serverless 则实现了按需付费,彻底消除闲置成本。
  • 效率诉求:开发团队希望从基础设施运维中解放出来,专注于业务代码。Serverless 将运维责任完全交给云厂商。
  • 弹性需求:互联网应用的流量波动日益剧烈,传统架构难以应对突发峰值。Serverless 的毫秒级弹性成为标配能力。
  • 生态成熟:云厂商提供了丰富的托管服务(数据库、消息队列、监控等),使得全栈 Serverless 成为可能。
避坑提示:Serverless 并非银弹。对于长时间运行、延迟敏感或状态复杂的应用,传统容器化方案可能更合适。选型时需评估业务场景与 Serverless 的匹配度。