IaaS,PaaS,SaaS 的区别

做者: 阮一峰git

日期: 2017年7月23日架构

愈来愈多的软件,开始采用云服务。操作系统

云服务只是一个统称,能够分红三大类。设计

  • IaaS:基础设施服务,Infrastructure-as-a-service
  • PaaS:平台服务,Platform-as-a-service
  • SaaS:软件服务,Software-as-a-service

它们有什么区别呢?3d

IBM 的软件架构师 Albert Barron 曾经使用披萨做为比喻,解释这个问题。David Ng 进一步引伸,让它变得更准确易懂。orm

请设想你是一个餐饮业者,打算作披萨生意。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

参考连接

(完)

相关文章
相关标签/搜索