IaaS、PaaS 和 SaaS 的区别
IaaS、PaaS 和 SaaS 到底是什么,本文就用最通俗的语言来说透,这些高大上的概念到底是什么?
“云服务”现在已经快成了一个家喻户晓的词了。如果你不知道 PaaS, IaaS 和 SaaS 的区别,那么也没啥,因为很多人确实不知道。“云”其实是互联网的一个隐喻,“云计算”其实就是使用互联网来接入存储或者运行在远程服务器端的应用,数据,或者服务。任何一个使用基于互联网的方法
任何一个使用基于互联网的方法来计算,存储和开发的公司,都可以从技术上叫做从事云的公司。然而,不是所有的云公司都一样。不是所有人都是 CTO,所以有时候看到云技术背后的一些词可能会比较头疼。
云也是分层的
任何一个在互联网上提供其服务的公司都可以叫做云计算公司。其实云计算分几层的,分别是 Infrastructure(基础设施)-as-a-Service,Platform(平台)-as-a-Service,Software(软件)-as-a-Service。基础设施在最下端,平台在中间,软件在顶端。别的一些“软”的层可以在这些层上面添加。
IaaS: Infrastructure-as-a-Service(基础设施即服务)
第一层叫做 IaaS,有时候也叫做 Hardware-as-a-Service,几年前如果你想在办公室或者公司的网站上运行一些企业应用,你需要去买服务器,或者别的高昂的硬件来控制本地应用,让你的业务运行起来。
但是现在有 IaaS,你可以将硬件外包到别的地方去。IaaS 公司会提供场外服务器,存储和网络硬件,你可以租用。节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用。
一些大的 IaaS 公司包括 Amazon, Microsoft, VMWare, Rackspace 和 Red Hat.不过这些公司又都有自己的专长,比如 Amazon 和微软给你提供的不只是 IaaS,他们还会将其计算能力出租给你来 host 你的网站。
PaaS: Platform-as-a-Service(平台即服务)
第二层就是所谓的 PaaS,某些时候也叫做中间件。你公司所有的开发都可以在这一层进行,节省了时间和资源。
PaaS 公司在网上提供各种开发和分发应用的解决方案,比如虚拟服务器和操作系统。这节省了你在硬件上的费用,也让分散的工作室之间的合作变得更加容易。网页应用管理,应用设计,应用虚拟主机,存储,安全以及应用开发协作工具等。
一些大的 PaaS 提供者有 Google App Engine,Microsoft Azure,Force.com,Heroku,Engine Yard。最近兴起的公司有 AppFog, Mendix 和 Standing Cloud
SaaS: Software-as-a-Service(软件即服务)
第三层也就是所谓 SaaS。这一层是和你的生活每天接触的一层,大多是通过网页浏览器来接入。任何一个远程服务器上的应用都可以通过网络来运行,就是 SaaS 了。
你消费的服务完全是从网页如 Netflix, MOG, Google Apps, Box.net, Dropbox 或者苹果的 iCloud 那里进入这些分类。尽管这些网页服务是用作商务和娱乐或者两者都有,但这也算是云技术的一部分。
一些用作商务的 SaaS 应用包括 Citrix 的 GoToMeeting,Cisco 的 WebEx,Salesforce 的 CRM,ADP,Workday 和 SuccessFactors。
一、定义层面的区别
云计算就是一种按照需求通过 Internet 获取计算资源的形态。这些计算资源被包装成为服务,提供给用户。而提供这些服务的主体,我们称之为云服务供应商(Cloud Service Provider)。按照 NIST (National Institute of Standards and Technology,美国国家标准和技术研究院)的定义,云服务最主要的有三类,就是题主提问的 IaaS、PaaS、SaaS。
IaaS(Infrastructure as a service – 基础设施即服务):用户可以在云服务提供商提供的基础设施上部署和运行任何软件,包括操作系统和应用软件。用户没有权限管理和访问底层的基础设施,如服务器、交换机、硬盘等,但是有权管理操作系统、存储内容,可以安装管理应用程序,甚至是有权管理网络组件。简单的说用户使用 IaaS,有权管理操作系统之上的一切功能。我们常见的 IaaS 服务有虚拟机、虚拟网络、以及存储。
PaaS(Platform as a service – 平台即服务):PaaS 给用户提供的能力是使用由云服务提供商支持的编程语言、库、服务以及开发工具来创建、开发应用程序并部署在相关的基础设施上。用户无需管理底层的基础设施,包括网络、服务器,操作系统或者存储。他们只能控制部署在基础设施中操作系统上的应用程序,配置应用程序所托管的环境的可配置参数。常见的 PaaS 服务有数据库服务、web 应用以及容器服务。成熟的 PaaS 服务会简化开发人员,提供完备的 PC 端和移动端软件开发套件(SDK),拥有丰富的开发环境(Inteli、Eclipse、VS 等),完全可托管的数据库服务,可配置式的应用程序构建,支持多语言的开发,面向应用市场。
SaaS(Software as a Service – 软件即服务):SaaS 给用户提供的能力是使用在云基础架构上运行的云服务提供商的应用程序。可以通过轻量的客户端接口(诸如 web 浏览器(例如,基于 web 的电子邮件))或程序接口从各种客户端设备访问应用程序。 用户无需管理或控制底层云基础架构,包括网络,服务器,操作系统,存储甚至单独的应用程序功能,可能的例外是有限的用户特定应用程序配置设置。类似的服务有:各类的网盘(Dropbox、百度网盘等),JIRA,GitLab 等服务。而这些应用的提供者不仅仅是云服务提供商,还有众多的第三方提供商(ISV: independent software provider)。
这里借用汽车的例子对 IaaS、PaaS、SaaS 的解释进一步阐述三者的区别。假设你需要出去外出使用交通工具,我们有四种的方案:
On-premise 方案:
自己开车,需要维护汽车,是其安全工作。同时需要为车上保险,提供燃料。(服务器 + 操作系统/数据库 + 应用软件)
IaaS:
从租车公司租一辆车,汽车的维修、安检都由租车公司承担。你只需要提供燃料(需要提供操作系统+应用软件)
PaaS:
除了基础设施(汽车),还为你提供司机。类似出租车。只需要提供目的地,汽车的行驶和运行都有司机决定。(只需要提供应用软件)。
SaaS:
类似于做轨道交通, 一切都是由别人控制。只有较少的定制化功能。
目前主流的 IaaS、PaaS 和 SaaS 产品如下图所示:
除此之外,云计算目前主流的部署模式分为三类:
私有云(Private Cloud / On Premise): 私有云是专为单个组织运营的云基础架构,管理的模式有内部管理,第三方管理,亦或是内部或外部托管。简单的讲,私有云就是通过自建或者租用场地的形式建立服务器机房或者数据中心。服务是面向私有网络或者 VPN 专有网络。企业拥有对服务器、数据硬盘的完全控制。因此安全性很高。
公有云(Public Cloud):公有云服务面向公开网络暴露,服务可能也是免费的。由于网络对外公布,因此从安全层面上也是大不相同的。常见的公有云有 AWS,Microsoft Azure,阿里云等。
混合云(Hybrid Cloud):混合云是两个或多个云(私有云,社区云或公共云)的组合,它们保持不同的实体但绑定在一起,提供多个部署模型的好处。 混合云还意味着能够使用云资源连接搭配,托管和/或专用服务。比较常见的例子如数据公司,可能拥有很多数据,而这些数据因为合规性等原因只能放在私有环境,当需要大规模机器学习,对数据进行脱敏后使用公有云进行大规模学习。
版权声明: 本文为 InfoQ 作者【兮动人】的原创文章。
原文链接:【http://xie.infoq.cn/article/6520c4a75000d9a6732b83d29】。文章转载请联系作者。
评论