愈来愈多的软件,开始采用云服务。html
云服务只是一个统称,能够分红三大类。git
IaaS:基础设施服务,Infrastructure-as-a-service架构
PaaS:平台服务,Platform-as-a-serviceide
SaaS:软件服务,Software-as-a-service操作系统
它们有什么区别呢?设计
IBM 的软件架构师 Albert Barron 曾经使用披萨做为比喻,解释这个问题。David Ng 进一步引伸,让它变得更准确易懂。orm
请设想你是一个餐饮业者,打算作披萨生意。htm
你能够从头至尾,本身生产披萨,可是这样比较麻烦,须要准备的东西多,所以你决定外包一部分工做,采用他人的服务。你有三个方案。blog
(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
参考连接
SaaS, PaaS and IaaS explained in one graphic, by David Ng
When to use SaaS, PaaS, and IaaS, by Eamonn Colman
(完)
本文转载自:http://www.ruanyifeng.com/blog/2017/07/iaas-paas-saas.html,原做者:阮一峰,若有侵权,请联系删除 ,谢谢。