云服务”如今已经快成了一个家喻户晓的词了。若是你不知道PaaS, IaaS 和SaaS的区别,那么也没啥,由于不少人确实不知道。
“云”实际上是互联网的一个隐喻,“云计算”其实就是使用互联网来接入存储或者运行在远程服务器端的应用,数据,或者服务。
任何一个使用基于互联网的方法来计算,存储和开发的公司,均可以从技术上叫作从事云的公司。然而,不是全部的云公司都同样。不是全部人都是CTO,因此有时候看到云技术背后的一些词可能会比较头疼。node
云也是分层的web
任何一个在互联网上提供其服务的公司均可以叫作云计算公司。其实云计算分几层的,分别是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 Cloudapp
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。工具
Iaas和Paas之间的比较学习
PaaS的主要做用是将一个开发和运行平台做为服务提供给用户,而IaaS的主要做用是提供虚拟机或者其余资源做为服务提供给用户。接下来,将在七个方面对PaaS和IaaS进行比较:
1) 开发环境:PaaS基本都会给开发者提供一整套包括IDE在内的开发和测试环境,而IaaS方面用户主要仍是沿用以前比较熟悉那套开发环境,可是由于以前那套开发环境在和云的整合方面比较欠缺,因此使用起来不是很方便。
2) 支持的应用:由于IaaS主要是提供虚拟机,并且普通的虚拟机能支持多种操做系统,因此IaaS支持的应用的范围是很是普遍的。但若是要让一个应用能跑在某个PaaS平台不是一件轻松的事,由于不只须要确保这个应用是基于这个平台所支持的语言,并且也要确保这个应用只能调用这个平台所支持的API,若是这个应用调用了平台所不支持的API,那么就须要对这个应用进行修改。
3) 开放标准:虽然不少IaaS平台都存在必定的私有功能,可是因为OVF等协议的存在,使得IaaS在跨平台和避免被供应商锁定这两面是稳步前进的。而PaaS平台的状况则不容乐观,由于不管是Google的App Engine,仍是Salesforce的Force.com都存在必定的私有API。
4) 可伸缩性:PaaS平台会自动调整资源来帮助运行于其上的应用更好地应对突发流量。而IaaS平台则须要开发人员手动对资源进行调整才能应对。
5) 整合率和经济性: PaaS平台整合率是很是高,好比PaaS的表明Google App Engine能在一台服务器上承载成千上万的应用,而普通的IaaS平台的整合率最多也不会超过100,并且广泛在10左右,使得IaaS的经济性不如PaaS。
6) 计费和监管:由于PaaS平台在计费和监管这两方面不只达到了IaaS平台所能企及的操做系统层面,好比,CPU和内存的使用量等,并且还能作到应用层面,好比,应用的反应时间(Response Time)或者应用所消耗的事务多少等,这将提升计费和管理的精确性。
7) 学习难度:由于在IaaS上面开发和管理应用和现有的方式比较接近,而PaaS上面开发则有可能须要学一门新的语言或者新的框架,因此IaaS学习难度更低。
PaaS | IaaS | |
开发环境 | 完善 | 普通 |
支持的应用 | 有限 | 广 |
通用性 | 欠缺 | 稍好 |
可伸缩性 | 自动伸缩 | 手动伸缩 |
整合率和经济性 | 高整合率,更经济 | 低整合率 |
计费和监管 | 精细 | 简单 |
学习难度 | 略难 | 低 |
表1. PaaS和IaaS之间的比较
将来的PK
在当今云计算环境当中,IaaS是很是主流的,不管是Amazon EC2仍是Linode或者Joyent等,都占有一席之地,可是随着Google的App Engine,Salesforce的Force.com仍是微软的Windows Azure等PaaS平台的推出,使得PaaS也开始崭露头角。谈到这二者的将来,特别是这二者之间的竞争关系,我我的认为,短时间而言,由于IaaS模式在支持的应用和学习难度这两方面的优点,使得IaaS将会在短时间以内会成为开发者的首选,可是从长期而言,由于PaaS模式的高整合率所带来经济型使得若是PaaS能解决诸如通用性和支持的应用等方面的挑战,它将会替代IaaS成为开发者的“新宠”。
它们之间的关系主要能够从两个角度进行分析:其一是用户体验角度,从这个角度而言,它们之间关系是独立的,由于它们面对不一样类型的用户。其二是技术角度,从这个角度而言,它们并非简单的继承关系(Saa.....
三种服务模式
根据如今最经常使用,也是比较权威的NIST(National Institute of Standards and Technology,美国国家标准技术研究院)定义,云计算主要分为三种服务模式,并且这个三层的分法重要是从用户体验的角度出发的:
Software as a Service,软件即服务,简称SaaS,这层的做用是将应用做为服务提供给客户。
Platform as a Service,平台即服务,简称PaaS,这层的做用是将一个开发平台做为服务提供给用户。
Infrastructure as a Service, 基础设施即服务,简称IaaS,这层的做用是提供虚拟机或者其余资源做为服务提供给用户。
<注:此图不是原文配图>
1、SaaS模式
做用
经过SaaS这种模式,用户只要接上网络,并经过浏览器,就能直接使用在云端上运行的应用,而不须要顾虑相似安装等杂事,而且免去初期高昂的软硬件投入。SaaS主要面对的是普通的用户。
产品
主要产品包括:Salesforce Sales Cloud,Google Apps,Zimbra,Zoho和IBM Lotus Live等。
功能
谈到SaaS的功能,也能够认为是要实现SaaS服务,供应商须要完成那些功能?主要有四个方面:
随时随地访问:在任什么时候候或者任何地点,只要接上网络,用户就能访问这个SaaS服务。
支持公开协议:经过支持公开协议(好比HTML4/5),可以方便用户使用。
安全保障:SaaS供应商须要提供必定的安全机制,不只要使存储在云端的用户数据处于绝对安全的境地,并且也要在客户端实施必定的安全机制(好比HTTPS)来保护用户。
多住户(Multi-Tenant)机制:经过多住户机制,不只能更经济地支撑庞大的用户规模,并且能提供必定的可定制性以知足用户的特殊需求。
2、PaaS模式
做用
经过PaaS这种模式,用户能够在一个包括SDK,文档和测试环境等在内的开发平台上很是方便地编写应用,并且不管是在部署,或者在运行的时候,用户都无需为服务器,操做系统,网络和存储等资源的管理操心,这些繁琐的工做都由PaaS供应商负责处理,并且PaaS在整合率上面很是惊人,好比一台运行Google App Engine的服务器可以支撑成千上万的应用,也就是说,PaaS是很是经济的。PaaS主要的用户是开发人员。
产品
主要产品包括:Google App Engine,force.com,heroku和Windows Azure Platform等。
功能
为了支撑着整个PaaS平台的运行,供应商须要提供那么功能?主要有四大功能:
友好的开发环境:经过提供SDK和IDE等工具来让用户能在本地方便地进行应用的开发和测试。
丰富的服务:PaaS平台会以API的形式将各类各样的服务提供给上层的应用。
自动的资源调度:也就是可伸缩这个特性,它将不只能优化系统资源,并且能自动调整资源来帮助运行于其上的应用更好地应对突发流量。
精细的管理和监控:经过PaaS可以提供应用层的管理和监控,好比,可以观察应用运行的状况和具体数值(好比,吞吐量和反映时间)来更好地衡量应用的运行状态,还有可以经过精确计量应用使用所消耗的资源来更好地计费。
3、IaaS模式
做用
经过IaaS这种模式,用户能够从供应商那里得到他所须要的虚拟机或者存储等资源来装载相关的应用,同时这些基础设施的繁琐的管理工做将由IaaS供应商来处理。IaaS能经过它上面对虚拟机支持众多的应用。IaaS主要的用户是系统管理员。
产品
主要产品包括:Amazon EC2,Linode,Joyent,Rackspace,IBM Blue Cloud和Cisco UCS等。
功能
IaaS供应商须要在那些方面对基础设施进行管理以给用户提供资源?或者说IaaS云有那些功能?在《虚拟化与云计算》中列出了IaaS的七个基本功能:
资源抽象:使用资源抽象的方法(好比,资源池)能更好地调度和管理物理资源。
资源监控:经过对资源的监控,可以保证基础实施高效率的运行。
负载管理:经过负载管理,不只能使部署在基础设施上的应用运能更好地应对突发状况,并且还能更好地利用系统资源。
数据管理:对云计算而言,数据的完整性,可靠性和可管理性是对IaaS的基本要求。
资源部署:也就是将整个资源从建立到使用的流程自动化。
安全管理:IaaS的安全管理的主要目标是保证基础设施和其提供的资源能被合法地访问和使用。
计费管理:经过细致的计费管理能使用户更灵活地使用资源。
接下来,稍微给你们介绍一下云的三种形式和云计算好处。
三种模式之间的关系
它们之间的关系主要能够从两个角度进行分析:其一是用户体验角度,从这个角度而言,它们之间关系是独立的,由于它们面对不一样类型的用户。其二是技术角度,从这个角度而言,它们并非简单的继承关系(SaaS基于PaaS,而PaaS基于IaaS),由于首先SaaS能够是基于PaaS或者直接部署于IaaS之上,其次PaaS能够构建于IaaS之上,也能够直接构建在物理资源之上。