IaaS、PaaS、SaaS 到底差在哪:买了托管数据库,也不等于不会丢数据

我朋友小美写了十六年代码,最近在琢磨上云的事。她问了我一句特别实在的:这些事是不是买了云,就有人替我管了?

不是。

这一篇专讲这个。先把三个绕口令说清楚,再说服务商到底管到哪儿。

一个租房类比就够

IaaS,基础设施即服务,租毛坯房。 云给你虚拟机,水电通了(机器、网络、存储都有),装修全自己来,装系统、装数据库、部应用。小美她们现在就在这一档。

PaaS,平台即服务,租精装公寓。 数据库、消息队列、Redis 都是配好的托管服务,你拎包入住,只带自己的家具。家具,就是你的业务代码。

SaaS,软件即服务,住酒店。 连软件都是别人的,开个账号直接用。企业微信、钉钉、财务在用的报销系统,全是 SaaS。

判据就一句话。还用不用自己装系统?要装是 IaaS,不装系统但写代码是 PaaS,连代码都不写是 SaaS。

补一句实操的。从 IaaS 往 PaaS 挪,可以一件一件挪,不用一次挪完。先挪最耗人的那个,多数团队是数据库。

那服务商到底管到哪儿

这行有个正式说法叫责任共担,AWS 最早提出来,国内几家云厂商官网上画的是同一张图。厂商负责「云本身」,客户负责「云上的东西」,这条线会随着你买到哪一层往上移。

买 IaaS,厂商管到虚拟机底下,机房、宿主机、物理网络、硬盘坏了换硬盘都归它。再往上全是你的,操作系统打补丁、数据库装成什么样、备份跑没跑、密码给了谁。

买 PaaS,厂商往上多管一层,数据库软件本身、主从切换、备份的执行都归它;但备份留几天、要不要跨可用区、SQL 写得烂不烂、账号权限怎么发,还是你的。

买 SaaS,厂商管到应用,你手里只剩数据和账号。

有一条线到哪层都不动。你的数据、以及谁能访问它,永远是你的责任。

所以「买了托管数据库就不会丢数据」是个误会。厂商保证的是备份这个功能可用,不保证你设了对的备份策略,而这两件事之间差着一次故障。

上云之后,架构师干什么

顺着这条线还能回答另一个更常被问到的问题。机器变成点两下就有的东西以后,装机不再是本事,下面这串决策才是,而它们一件都不在服务商的责任里。

要自己拍的板 不拍的代价
弹性阈值、最小实例数 要么峰值扩不上来,要么半夜自己扩出一堆机器
计费组合,包月做底座、按量扛峰值 全按峰值付月租,闲着也是全价
跨可用区还是单可用区 一个机房出事,整个站陪葬
备份保留期与恢复演练 备份天天在跑,真要恢复那天发现恢复不了
网络与权限边界(VPC、安全组) 数据库开在公网上,这是行业里的常见事故
成本归属与闲置回收 账单只涨不降,没人说得清哪台机器是谁的

政企的变体,公有云、私有云、混合云

做政企项目的读者要皱眉了,我们的数据不让出机房,云跟我们没关系?

关系大了。

上面讲的都是公有云,大家共用云厂商的电网。私有云是把同一套技术搬进你自己或者客户的机房,电厂建在自家院子里,弹性、自助开机器这些好处照样有,数据一步不出门。各地的政务云,就是给政府建的专属版。混合云则是两头占,敏感数据留在私有云,弹性业务放公有云,高峰来了往公有云上顶。

所以「不能上云」这句话在政企场景里多半不成立,成立的是「不能上公有云」。

这一字之差,招标文件里能差出一个项目。

收尾

三个绕口令、一条责任线、一个公私之分,回答的是同一个问题:这件事到底归谁。

云买来的是能力,不是决策。