刚接触云计算时,最常被 IaaS、PaaS、SaaS 这三个词绕晕。其实用「吃披萨」来类比就一目了然。
三种模型,对应三种「省事程度」
- IaaS(基础设施即服务):云厂商给你厨房和烤箱,面粉、配料、烘焙你自己来。对应虚拟机——你管操作系统和应用。代表:EC2 / Compute Engine / Azure VM。
- PaaS(平台即服务):云厂商把披萨胚都做好了,你只管放料烘烤。对应应用托管——你只管代码。代表:App Engine / Elastic Beanstalk / Azure App Service。
- SaaS(软件即服务):直接送一份做好的披萨到家,开盒即食。对应成品软件。代表:Gmail / Microsoft 365。
三大云在各层的具体产品对照
三大云在 IaaS、PaaS、SaaS 三层都有对应产品,下表是最常见的对照:
| 服务层级 | AWS | GCP | Azure |
|---|---|---|---|
| IaaS - 虚拟机 | EC2 | Compute Engine | Virtual Machines |
| IaaS - 对象存储 | S3 | Cloud Storage | Blob Storage |
| IaaS - 虚拟网络 | VPC | VPC | VNet |
| PaaS - 应用托管 | Elastic Beanstalk / AppRunner | App Engine / Cloud Run | App Service / Container Apps |
| PaaS - 托管数据库 | RDS / Aurora | Cloud SQL / AlloyDB | Azure SQL Database |
| PaaS - Serverless | Lambda | Cloud Functions / Cloud Run | Azure Functions |
| SaaS - 办公协作 | WorkMail / Chime | Workspace / Meet | Microsoft 365 / Teams |
| SaaS - BI 分析 | QuickSight | Looker | Power BI |
该选哪一种?
原则很简单:越往 SaaS 走越省心,但可控性越低;越往 IaaS 走越灵活,但要操心的越多。初创团队想快速上线,优先 PaaS;需要精细控制基础设施、做特殊优化时,选 IaaS。
不同企业规模的选型建议
- 1-10 人初创团队:PaaS 优先(App Engine / Cloud Run / App Service),让极少的开发者专注于业务逻辑而非基础设施。数据库用托管版本(Cloud SQL / Aurora Serverless),不需要 DBA。
- 10-100 人成长型企业:核心服务用容器化(EKS / GKE / AKS),弹性任务用 Serverless,数据层用托管数据库 + 对象存储。开始引入基础设施即代码(Terraform)管理。
- 100+ 人企业:IaaS + PaaS 混合架构。核心系统用 IaaS 精细控制,边缘服务用 PaaS 快速迭代。需要专门的 DevOps/SRE 团队管理基础设施,使用多云策略降低供应商锁定风险。
成本对比:同一应用在不同层的花费差异
以一个简单的 Web API 服务(2 vCPU / 4GB 内存 / 月均 100 万次请求)为例,三种层级的大致月成本:
| 服务层级 | AWS 方案 | 大致月成本 | 运维负担 |
|---|---|---|---|
| IaaS | EC2 t3.medium + ALB | $35-50 | 高(需管理 OS、补丁、扩容) |
| PaaS | App Runner / Cloud Run | $20-35 | 低(只需部署容器) |
| Serverless | Lambda + API Gateway | $5-15 | 极低(按调用付费,空闲免费) |
注意:以上是低流量场景的估算。当流量持续增长到一定规模后,IaaS 的固定成本优势会显现——一台 $50/月的 EC2 可以处理远超 Lambda $50 能覆盖的请求量。因此架构选择不是一次性的,而应随业务规模动态调整。
💡 三大云都同时提供这三层服务,差异主要在生态、价格与区域覆盖,而非能力有无。建议在 POC 阶段用 PaaS 快速验证,规模化后评估是否迁移到 IaaS 降低单位成本。
常见问题
Q: IaaS 一定比 PaaS 便宜吗? 不是。低流量时 PaaS/Serverless 更便宜(按使用量计费,空闲免费)。只有当流量稳定且持续时,IaaS 的固定成本才更划算。一般月请求量超过 500-1000 万次后,IaaS 开始有成本优势。
Q: 从 PaaS 迁移到 IaaS 难吗? 如果应用是容器化的(Docker),迁移很简单——从 Cloud Run / App Runner 换到 EKS / GKE 只需改部署配置。如果是 PaaS 特定 API(如 App Engine SDK),则需要解耦 PaaS 特定依赖,工作量较大。