越来越多的软件,开始采用云服务。
云服务只是一个统称,可以分成三大类。
- IaaS:基础设施服务,Infrastructure-as-a-service
- PaaS:平台服务,Platform-as-a-service
- SaaS:软件服务,Software-as-a-service
它们有什么区别呢?
IBM 的软件架构师 Albert Barron 曾经使用披萨作为比喻,解释这个问题。David Ng 进一步引申,让它变得更准确易懂。
请设想你是一个餐饮业者,打算做披萨生意。
你可以从头到尾,自己生产披萨,但是这样比较麻烦,需要准备的东西多,因此你决定外包一部分工作,采用他人的服务。你有三个方案。
(1)方案一:IaaS
他人提供厨房、炉子、煤气,你使用这些基础设施,来烤你的披萨。
(2)方案二:PaaS
除了基础设施,他人还提供披萨饼皮。
你只要把自己的配料洒在饼皮上,让他帮你烤出来就行了。也就是说,你要做的就是设计披萨的味道(海鲜披萨或者鸡肉披萨),他人提供平台服务,让你把自己的设计实现。
(3)方案三:SaaS
他人直接做好了披萨,不用你的介入,到手的就是一个成品。你要做的就是把它卖出去,最多再包装一下,印上你自己的 Logo。
上面的三种方案,可以总结成下面这张图。
从左到右,自己承担的工作量(上图蓝色部分)越来越少,IaaS > PaaS > SaaS。
对应软件开发,则是下面这张图。
SaaS 是软件的开发、管理、部署都交给第三方,不需要关心技术问题,可以拿来即用。普通用户接触到的互联网服务,几乎都是 SaaS,下面是一些例子。
- 客户管理服务 Salesforce
- 团队协同服务 Google Apps
- 储存服务 Box
- 储存服务 Dropbox
- 社交服务 Facebook / Twitter / Instagram
PaaS 提供软件部署平台(runtime),抽象掉了硬件和操作系统细节,可以无缝地扩展(scaling)。开发者只需要关注自己的业务逻辑,不需要关注底层。下面这些都属于 PaaS。
- Heroku
- Google App Engine
- OpenShift
IaaS 是云服务的最底层,主要提供一些基础资源。它与 PaaS 的区别是,用户需要自己控制底层,实现基础设施的使用逻辑。下面这些都属于 IaaS。
- Amazon EC2
- Digital Ocean
- RackSpace Cloud
微软的 Azure 云服务有一张图,解释这三种模式的差异。
上图中,绿色的部分是云服务商决定的,紫色的部分是用户决定的。可以看到,SaaS 模式下用户没有任何自主权,只能使用给定的应用程序;PaaS 模式下可以自己安装应用程序,但是不能定制操作系统;IaaS 模式下则是云服务商提供(虚拟的)硬件,从操作系统开始都可以自己选择和定制。
参考链接
- SaaS, PaaS and IaaS explained in one graphic, by David Ng
- When to use SaaS, PaaS, and IaaS, by Eamonn Colman
(完)
123456 说:
真形象。
2017年7月23日 13:26 | # | 引用
搅屎棍 说:
没鸟用
2017年7月23日 14:15 | # | 引用
catchOne 说:
懂了
2017年7月23日 15:40 | # | 引用
rossroma 说:
IaaS 怎么读?
2017年7月23日 18:12 | # | 引用
it老家伙 说:
一如既往的好懂
2017年7月23日 19:01 | # | 引用
Bright 说:
学习了,讲的很形象。
2017年7月23日 23:49 | # | 引用
jose 说:
人如其名
2017年7月24日 09:15 | # | 引用
志远 说:
一峰大哥,博客有导航么?如何能快速找到相关分类下的文章呢?
例如我想找JAVASCRIPT相关文章,如何操作~
2017年7月24日 11:06 | # | 引用
ClayIdols 说:
很形象哈~
2017年7月24日 12:05 | # | 引用
jeff 说:
从使用者角度看云产品,比较独特。
2017年7月24日 12:15 | # | 引用
dd 说:
秒懂
2017年7月24日 17:16 | # | 引用
wswang 说:
http://www.ruanyifeng.com/blog/javascript/
2017年7月24日 18:45 | # | 引用
业余草 说:
介绍的很形象。
2017年7月25日 09:20 | # | 引用
Better 说:
清晰
2017年7月25日 17:44 | # | 引用
钊王 说:
很通俗易懂,比很多生硬的名词解释要好理解很多
2017年7月25日 22:01 | # | 引用
史诗在线 说:
现在那种叫 docker 的虚拟机很火,不知道阮老师在上面玩出什么好东西没有。
2017年7月26日 11:11 | # | 引用
杨捷 说:
SaaS,我要做的就是吃,而不是卖。
2017年7月27日 20:16 | # | 引用
杨捷 说:
必胜客就是SaaS
2017年7月27日 20:18 | # | 引用
楚小国 说:
形象生动啊,阮老师...谢谢一直分享
2017年8月 3日 14:11 | # | 引用
yyc 说:
有那么复杂吗?
IAAS就是服务器,也就是硬件
PAAS就是开发工具
SAAS就是码农做出来的网站
2017年8月 7日 23:09 | # | 引用
123 说:
2017年8月21日 18:07 | # | 引用
第一章 说:
是真的,我刚试过!Goolge搜索“阮一峰 javascript”关键字即可
2017年8月28日 10:12 | # | 引用
风头 说:
真的形象生动,看完就懂了
2018年1月31日 15:42 | # | 引用
柴 说:
作者是互联网的相关SAAS人员吗?想请教些问题,可否
2018年4月27日 16:14 | # | 引用
D.M 说:
阮老师,那微信公众号是不是属于云服务中的SaaS呢?什么都做好了,打入自己的LOGO和Slogan就好了。
2018年5月28日 21:14 | # | 引用
斌桑 说:
谢谢 本来非常复杂的东西 用了三分钟都了解了
谢谢啦~~~~
2018年6月23日 10:57 | # | 引用
二狗红烧鸡翅膀 说:
大哥被你一讲反倒复杂了,感觉也不太对,原文挺好的。
2018年6月30日 03:26 | # | 引用
妙音天女 说:
讲的很生动,一直很喜欢看阮一峰的博客,感谢!
2018年8月 8日 18:09 | # | 引用
Hyper 说:
阮一峰的文章真的太棒了,真的大体一目了然,理解了大概思想一切都好理解得多了
2018年10月 5日 14:52 | # | 引用
Bruce 说:
我认为SaaS的说法不对,SaaS是我直接拿来使用,比如fackbook,我是直接用,而不是拿来提供服务给其他人用,pizza as a service,我拿到pizza是用来吃,而不是卖。
2018年11月14日 12:31 | # | 引用
有为小青年 说:
自己做完软件,自己在用吗?肯定是用户要用的
2018年12月10日 10:59 | # | 引用
夏夏 说:
想问一下, 这三种都各有什么优势和劣势呢?实际工作中怎么选择呢
2019年1月 3日 17:30 | # | 引用
FanGhost 说:
还是阮老师的BLOG写的好啊,不是同一个方向的人一下就能理解~~~
2019年1月 5日 13:34 | # | 引用
roolife 说:
给别人用叫SAAS 厂商, 自己用叫SAAS 客户.
2019年1月 7日 13:10 | # | 引用
rootlife 说:
IAAS 的范围小了点, 应加上数据库, 网络, 存储空间 等.
逻辑层次是这么个层次. 三句话也很明白. +1
2019年1月 7日 13:16 | # | 引用
wind315 说:
很喜欢阮一峰老师的文章,不高大上,平易近人,做为我这种水平比较低的也能基本看懂,赞
2019年1月23日 15:49 | # | 引用
leo 说:
还有一种理解:iaas 信息即服务,paas产品即服务,saas服务即服务
2019年3月25日 17:11 | # | 引用
Penrose 说:
数据库是paas级服务
2019年4月17日 10:39 | # | 引用
云谷君 说:
讲的很好,深入浅出,浅显易懂,学习了!
2019年6月10日 16:35 | # | 引用
争蓝 说:
ASAAS就是各种网站拼起来
2019年8月 7日 11:14 | # | 引用
郝姬友 说:
感觉对于PAAS的解释不太准确。应该说PAAS是在IAAS的基础上提供一些底层支撑型的服务供使用,比如Mysql、Redis等配套设施,让用户在此基础上开发自己的SAAS产品,而不是说提供一个部署平台。
2019年10月10日 16:14 | # | 引用
111 说:
微软的这张图不错,Pass就是用户(通常是有开发能力的人)自定义应用和数据结构,很棒。
2019年10月12日 09:20 | # | 引用
阿喵 说:
非常形象好懂~多谢科普啦~
2019年11月 5日 16:55 | # | 引用
Rivalsa 说:
还有一种FaaS,函数即服务。
2020年6月 8日 19:19 | # | 引用
agiler 说:
其实还是第一张图最"形象"
2020年9月28日 15:19 | # | 引用
chan 说:
生动形象!!!
2020年12月 6日 16:33 | # | 引用
四场雨 说:
不举哪个披萨饼的例子会更好理解
2021年2月 3日 09:48 | # | 引用
kktt 说:
将太好了,一下就明白了
2021年2月 3日 22:23 | # | 引用
wenh 说:
阮老师永远滴神
2021年2月 6日 16:31 | # | 引用
星光一点 说:
* SaaS最好理解,就是面向用户的软件服务,开通一个账号用户就可以使用。另外例如给商家使用的餐饮软件、教育软件等都是SaaS。
* PaaS是面向开发者的,你只需要在PaaS提供商上面写代码就可以了,数据你自己存储,软件怎么运行,就交给PaaS提供商了
* IaaS也是面向开发者的,只不过想实体的物理机、网络、存储等都是由IaaS提供商提供的,如亚马逊的ES2、阿里云ECS等都是IaaS。
2021年2月18日 11:23 | # | 引用
sss 说:
iaas ==> (提供)基建的服务
paas ==> (提供)平台的服务
saas ==> (提供)软件的服务
2021年5月12日 11:18 | # | 引用
青岛菜菜子 说:
IaaS = 阿里云
PaaS = 对程序员来说的微信小程序平台 可以借助微信平台开发和实现服务
SaaS = 对微信程序员来说提供给所有人的微信软件,大家拿来直接用
2021年6月 2日 08:59 | # | 引用
Owen 说:
一直都没搞懂,看了阮老师的文章,介绍的很清晰了
2021年7月 2日 10:43 | # | 引用
小白菜 说:
有没有将serverless的文章呀,看别人的文章感觉还是一头雾水
2021年8月12日 11:22 | # | 引用
一个小白 说:
这三者可以理解成包含关系吗??
2022年3月24日 17:19 | # | 引用
TOP 说:
写的简单易懂,整天看解释给我看吐了,到你这里一张披萨就给我整明白了,赞
2024年4月30日 15:49 | # | 引用