← 返回
IT技术

IaaS、PaaS、SaaS 三种云服务模式怎么选

✍️ zhirenhun 📅 2026/10/30 👁 25 阅读 ⏱ 23 分钟
IaaS、PaaS、SaaS 三种云服务模式怎么选

你很可能每天都在使用云服务。查 Gmail、参加 Zoom 会议、在 Slack 上给团队发消息,用的都是云端托管的软件。

但你并不需要管理它运行所在的服务器,也不用维护底层基础设施。登录进去就能开始工作。这就是软件即服务(SaaS),很多人用了好多年都不知道这个术语。

SaaS 只是三大云服务模型之一。另外两个是基础设施即服务(IaaS)和平台即服务(PaaS),它们让你对底层基础设施和自己构建的软件拥有不同程度的控制权。弄清这几种模型的区别,有助于你理解云工程的相关概念,并为自己的项目选对方案。

本文将逐一拆解 IaaS、PaaS 和 SaaS,说明每种模型下你需要管理什么、云服务商负责什么,并教你如何为实际项目做出选择。

你将学到什么

读完本文,你将能够:

目录

前置知识

阅读本文不需要任何云相关经验。只要你知道计算机、服务器和互联网是什么,就足够了。

如果你刚接触云,建议先读我的文章什么是云与云计算?。那篇文章解释了云是什么、它与自建硬件有何不同,本文则在此基础上展开。

什么是云计算?

云计算是一种模型,让你通过互联网按需使用计算资源,比如服务器、存储和网络。用多少付多少。

这些资源放在云服务提供商(简称CSP)拥有并运营的数据中心里。最知名的CSP有Amazon Web Services(AWS)、Microsoft Azure和Google Cloud。

这里只是简单回顾,确保你理解关键概念。如果需要更多信息,我上面的文章有完整介绍。

本地部署是什么意思?

在云出现之前,大多数组织采用本地部署运行系统。本地部署意味着硬件放在组织拥有或租用的大楼里,可能是办公室的服务器机房,由自己的员工负责维护。

这种模式下,所有事情都得自己管:购买服务器、搭建网络、安装和更新软件,还要保证机房供电和散热。

比如一家小企业想开网店,就得买服务器、装软件,还要花钱请人维护。如果业务增长超出预期,还得添置更多硬件。

迁移到云上有什么变化?

云把其中一部分工作交给了提供商。物理服务器依然存在,但由别人拥有和维护,你按需租用。

不同云服务的区别在于提供商替你承担了多少工作。云服务模型就是描述这一点的,主要有三种:

所以,云服务模型描述的是工作如何在客户和提供商之间划分,也就是系统的哪些部分由你管理,哪些部分由提供商替你管理。

责任共担模型

责任共担模型定义了云系统中哪些部分由提供商管理,哪些部分由你(客户)管理。要理解它,首先得了解一个运行中的应用由哪些部分组成。

计算栈的层次

计算栈是协同运行一个应用所需的各层集合,每一层都依赖其下层。自底向上依次为:

各模型中谁负责什么

AWS把这种分工描述为云“本身”的安全与云“中”的安全。提供商负责云本身的安全,涵盖数据中心、物理硬件、物理网络和虚拟化层。

但云中的安全是客户的责任,涵盖你放入云中的内容以及如何配置。这包括你的数据、你的用户及其权限,还有你所使用服务的各项设置。

基础设施即服务(IaaS)

基础设施即服务是一种云模型,提供商为你提供计算的基础构件,包括虚拟服务器、存储和网络。

IaaS如何运作

使用IaaS时,你向提供商申请一台虚拟机,自行选择CPU数量、内存大小、运行的操作系统以及连接的网络。几分钟内VM就能运行起来,你可以直接连接上去。

从那一刻起,这台服务器就归你管理。你需要安装软件、应用操作系统更新、配置防火墙,并保证应用持续运行。

在IaaS出现之前,要获得一台新服务器意味着订购硬件,再等上几周才能安装完成。有了IaaS,同样的服务器几分钟就能就绪,不再需要时还可以直接删除。

但要记住:IaaS卸下了硬件负担,却没有卸下服务器负担。

使用 IaaS 时,通常按服务器运行的每小时或每秒计费,再加上存储费用和出站数据传输费用。

真实案例包括:

这些服务都为你提供虚拟机,并与其他 IaaS 基础组件配合使用,例如虚拟磁盘(Amazon EBS)、文件和备份存储(Amazon S3)以及私有网络(Amazon VPC)。

何时使用 IaaS

当你需要掌控操作系统及其上的一切时,IaaS 是合适的选择,尤其适用于以下情况:

权衡取舍

与任何系统一样,选择这种模式前,有一些取舍需要了解。

首先,操作系统由你管理。打补丁、安全更新和备份都要自己处理,漏掉一次更新就可能留下安全缺口。

你还需要规划扩展。云厂商提供了自动添加服务器的工具,但配置和测试得由你完成。

此外,你可能需要掌握一些新技能。要管好服务器,需要具备 Linux 或 Windows 管理、网络和安全方面的知识。

而且空闲时间也要付费。服务器整夜空转、没有流量,照样产生费用。

平台即服务(PaaS)

平台即服务是一种云模式,云厂商为你提供现成环境来运行代码。服务器、操作系统、中间件和运行时都由厂商管理,客户只需提供应用代码和数据。

PaaS 如何工作

使用 IaaS 时,应用运行前你仍需准备服务器,包括更新操作系统、搭建 Web 服务器、安装正确的语言版本,并持续维护。

PaaS 免去了这些负担。使用 PaaS 时,你只需告诉平台应用使用哪种语言,然后提交代码,通常通过推送到 Git 或上传软件包完成。平台会构建应用,在托管服务器上运行,并给你一个网址。流量增长时,平台可以按你设定的规则运行更多应用副本。

你仍然可以决定应用分配多少内存、使用哪些设置,以及谁能部署它。只是不必再登录服务器去修补和维护了。

使用 PaaS 时,你通常按应用实际使用的资源付费,比如运行实例的规格和数量,按小时或按月计费。

真实案例包括:

有些产品介于不同类别之间。比如 Google 的 Firebase 常被称为 PaaS,但更准确地说,它是后端即服务(BaaS)。BaaS 提供现成的后端功能,比如数据库、用户认证流程和文件存储,供应用直接调用。你不需要像在 Heroku 上那样部署整个应用。

另一个例子是 Amazon RDS(关系型数据库服务),它是一种托管数据库。AWS 负责运行数据库软件和备份,你负责管理表、数据和访问权限。它的运作方式类似 PaaS,只不过针对的是数据库。

何时使用 PaaS

权衡取舍

首先是控制权更少。你不能随意安装任何软件,也不能更改操作系统设置。另外,如果平台不支持某项功能,你只能想办法绕过。

还有供应商锁定的风险。供应商锁定意味着迁移到其他提供商变得困难,因为你的应用依赖只有某一家平台才提供的功能。

此外,规模扩大后成本可能更高。随着流量增长,PaaS 的费用可能超过在自管服务器上运行同样的工作负载,因为你是在为便利付费。

而且你必须在平台限制内运作,比如最大请求时间或支持的语言版本。

最后,代码安全仍然由你负责,包括它使用的第三方库(以及随之而来的所有风险)。

软件即服务(SaaS)

软件即服务是一种云模型,提供商通过互联网交付完整应用。你通过浏览器或应用访问,运行所需的一切都由提供商管理。

SaaS 如何运作

在SaaS出现之前,使用商业软件意味着购买许可证、在每台电脑上安装,并且每有新版本都要逐台更新。举例来说,如果一个组织想要自己的邮件系统,就得自建邮件服务器、安排专人运维,还要准备备份方案。

SaaS则完全不同。服务商在自己的基础设施上运行应用,所有客户共用同一个集中更新的版本。你只需创建账户、添加用户,就能开始工作。新功能和安全补丁会自动送达,无需你安装任何东西。

你的工作重心从运行软件转向配置软件。你决定谁拥有账户、每个人能访问什么、文件如何共享。

使用SaaS,通常按用户按月或按年付费,往往还分档,档位越高功能越多。

真实案例包括:

何时使用SaaS

举个例子,假设一个拥有二十名员工的非政府组织需要专业邮件、共享文档和视频通话,但没有IT团队。借助Google Workspace或Microsoft 365,一名管理员一天之内就能为所有员工设置好账户,而服务器、更新和垃圾邮件过滤都由服务商负责。

权衡取舍

选择这一方案,你的控制权最少。你只能用服务商提供的功能,如果需要它没有的东西,要么等待,要么另寻他处。

此外,你的数据存放在服务商那里。你依赖他们的安全措施,因此需要了解数据存储在哪里,以及离开时如何导出。

成本也很容易随团队规模增长。

而且,你还依赖网络连接。连接不稳定时,基于浏览器的工具可能在你最需要的时候无法使用。

定制选项也有限。将工具接入其他系统,取决于服务商允许什么。

三大模型之外:CaaS、FaaS与Serverless

IaaS、PaaS和SaaS是主要模型,但还有CaaS、FaaS和Serverless等选项。下面来看看它们各自意味着什么、如何运作。

容器即服务(CaaS)

容器把应用和运行所需的一切打包在一起,包括运行时、库和配置。因为所有东西都在包里,容器在笔记本电脑上和在云端服务器上运行效果完全一致。Docker 是构建容器最常用的工具。

容器即服务(CaaS)是一种由服务商替你运行和管理容器的模式。你提交容器镜像,服务商负责启动、故障重启,并把容器分散到多台服务器上。做这些决策的软件叫容器编排器,Kubernetes 是使用最广泛的一种。

CaaS 介于 IaaS 和 PaaS 之间。相比 PaaS,你的控制权更大,因为每个容器里放什么由你决定;但运行容器的大量工作由服务商承担。

常见例子包括:

使用 ECS 和 EKS 时,容器所运行的虚拟机可能仍需你自己管理,除非使用 AWS Fargate——它让你无需管理任何服务器就能运行容器。

函数即服务(FaaS)

函数即服务(FaaS)是一种你上传小块代码(称为函数)、服务商仅在事件触发时运行对应函数的模式。事件指发生的某件事,比如收到 Web 请求、上传文件或到达预定时间。

你不需要让服务器一直运行着等待任务。事件发生时,服务商启动函数、执行、然后停止。你按请求次数和每次运行消耗的计算时间付费,没有任务时就不产生计算费用。

举个例子:某网店需要在卖家每次上传商品照片时生成一张小缩略图。用 IaaS,你得让服务器全天运行来监视上传,哪怕凌晨 3 点没人上传也照跑不误。用 FaaS,上传动作本身触发一个函数生成缩略图,你只为它运行的几秒钟付费。

常见例子包括:

FaaS 也有取舍。每次运行都有时间限制,空闲函数启动时可能稍慢一些,这叫冷启动。

Serverless 的定位

Serverless 指这样一类云服务:你无需搭建或管理服务器,服务随需求自动伸缩,并且只为实际用量付费,而不是为闲置容量付费。

Serverless 并不是云服务栈上的第四种模型。它描述的是服务的运维和计费方式,而不是你负责管理哪些层。FaaS 属于 Serverless,但许多其他托管服务同样如此,比如用于文件存储的 Amazon S3、用于数据库的 Amazon DynamoDB,以及用于容器的 AWS Fargate。

Google Cloud Run functions 属于 CaaS,也归入 Serverless 范畴。

如何选择合适的服务模型

没有哪一种模型适合所有项目。正确的选择取决于你要构建什么、由谁来构建,以及你需要多少控制权。

为帮你做出决定,可以按顺序思考以下问题:

从满足需求的最托管化模型起步,只有当你有了明确理由时,才向栈的下层移动。

大多数生产系统会组合多种云服务模型,各自承担不同用途。

总结

每种服务模型都在栈上的不同位置划出你与提供商之间的分工界线。IaaS 给你虚拟基础设施,你负责管理操作系统及其上的一切。PaaS 给你一个平台,你负责管理代码和数据。SaaS 给你一个成品应用,你负责管理用户、数据和设置。

CaaS 和 FaaS 介于这些模型之间,而 Serverless 描述的是你如何运维和付费。无论哪种模型,你(客户)始终要对数据以及谁可以访问数据负责。

感谢阅读!

——

广告 广告
🧑‍💻

zhirenhun

一个热爱技术的程序员,喜欢分享前沿AI知识和开发经验。