云计算介绍-1.2,IaaS\PaaS\SaaS比较

五、IaaS、PaaS比较

IaaSPaaS
开发者的视图虚拟机、存储、带宽资源,可能需要自己安装OS。开发和运行平台,类似J2EE、WEB服务器等运行环境
开发环境传统桌面或服务器开发环境,需要手工部署应用到云上包括IDE在内的开发和测试环境,自动部署到云
开发流程传统的开发、测试和版本管理流程。可以充分利用虚拟机硬件资源、OS特性。依靠PaaS平台提供的开发、测试和版本管理方案。不需配置硬件,不与OS接口,必须利用PaaS平台API。
支持的应用传统应用。传统应用移植到PaaS平台,需要克服编程语言、新的API等困难。目前的PaaS主要针对WEB服务器应用于
可伸缩性IaaS平台依靠开发者手工调整资源来应对,可能提供了代码中动态调用资源的手段。PaaS平台自动调整资源来帮助应用应对突发流量
整合率和经济性IaaS平台基于虚拟机来划分资源,手工处理伸缩性导致经济性较差。即资源复用是基于虚拟机的。PaaS平台整合率是非常高,比如GAE能在一台服务器上承载成千上万的应用。平台自动处理伸缩性,有统计复用功能。
计费和监管IaaS平台只能做到OS层面(CPU、内存、存储空间、带宽)PaaS平台能做到应用层面,如反应时间、调用某个服务的次数。
学习难度如果不考虑分布性,IaaS的开发与传统桌面、服务器开发类似。但一般禁止读写本地文件。但在分式布系统中则要使用IaaS平台提供的API来控制节点PaaS开发需要适应新的框架、受限于特定编程语言、私有API
资源使用方法-CPU分布系统中,要考虑:虚拟节点协同工作,节点管理方法、节点间通信API、节点容灾等。PaaS 自身负责资源的动态扩展和容错管理。应用不必过多考虑:动态申请节点、节点间的配合问题
资源使用方法-存储使用云存储,应用可使用云文件系统(禁止读写本地文件)、数据库,这两个层面都会自动的备份、恢复。应用只能利用平台API来使用数据库。数据库层面有容错措施。
应用部署开发者处理,但IaaS提供批量部署、动态生成快照与回滚、动态创建VPN、动态控制节点间的负载均衡等。开发者不关心部署,应用间的多租户功能由平台处理。
多租户功能完全由开发者自己控制。应用间隔离:PaaS平台自动处理。用户间隔离:开发者处理,平台可能提供API。
适用客户特点大公司更愿意保留原业务流程(如C开发的软件),原软件可直接移植到虚拟机。愿意由自己控制部署过程。小公司节省软硬件费用,复用平台组件,且部署方便。
开放标准OVF协议,主要供应商已加入各供应商都有私有API

对普通用户而言,他们主要面对的是SaaS这种服务模式,但是对普通的开发者而言,云计算对他们而言,却有两种服务模式可供选择,PaaS和IaaS,而且这两种模式有很多的不同,而且它们之间还存在一定程度的竞争。
PaaS的主要作用是将一个开发和运行平台作为服务提供给用户,而IaaS的主要作用是提供虚拟机或者其他资源作为服务提供给用户。
传统的WEB应用运行环境,传统的Web应用平台,包括:IIS、应用容器、J2EE容器、Web Service(如IBM的WebSphere、Microsoft的.Net平台 等传统的分布式应用平台、SOA软件平台),有时也称为中间件。
传统的Web应用平台 包括了以下功能:
1,开发测试环境: 提供一套API,作为一个开发平台,有自己的应用模型:编程语言、元数据模型、应用打包发布格式。
2,运行时环境:应用的上线、升级和卸载。统计计费功能。
那么,PaaS与传统的Web应用平台 有什么区别呢?
1,ACE基于云计算基础架构(应该是指运行的硬件+操作系统基于云服务器),属于软硬件托管(指应用运行的硬件、应用平台都托管在数据中心),而以前的电子商务网站则在企业本身的数据中心上运行与管理,以前的软件虽然也可以部署在服务器集群上,但必须要自己去维护管理,还要处理负载平衡等高级特性,而在ACE中则作为底层特性实现。
2,多个企业同享同一套PaaS环境,对企业来说,无需投资硬件、也无需投资于Web服务器平台软件。平台支持多租户技术。
应用间隔离:包括业务、数据的处理。平台提供访问控制。
用户间隔离:一个应用内,不同用户间的业务数据的隔离。或不同用户自定义配置。利用 多租户技术 实现用户间隔离。
3,充分利用了云计算的基础设施,不仅限于虚拟服务器,还包括:云存储、云数据库,支持弹性伸缩。比如: ACE中应用不能读写本地文件,而是使用云存储服务。
应用的处理、存储、带宽根据负载、业务规模的变化而变化。
应用可以扩展,可以分配更多资源,但资源并非无限。PaaS通过统计复用方法来利用资源。
当然对企业来说,软件平台的迁移,对于应用代码有较大的改动。负载均衡、可靠性机制、安全连接、数据库连接、消息传递、网络目录访问、分布式事务处理、电子邮件处理 都得基于平台提供的新机制、逻辑与接口。
开发者可能不需要关心底层的资源分配,即需要使用多少个虚拟机由平台管理,平台自动化的动态分配虚拟机,自动进行负荷分担。另外开发者必须使用平台指定的数据库接口,但分布式存储的细节被屏蔽了。
所以PaaS的好处是开发者不需要关心分布式计算、存储的细节。
有了IaaS,之所以还需要PaaS,是因为原来在单机上,除了直接基于操作系统运行的软件之外,还有大量的应用软件运行在应用平台上,比如J2EE平台、.Net平台、ASP平台。PaaS让这些软件更方便的移植到云上。
IaaS与PaaS比较的话,开发特性更像传统软件开发模式。而PaaS则像Web软件开发。
六、Iaas->PaaS->SaaS:通用->专用
IaaS 将硬件设备等基础资源封装成服务供用户使用。
IaaS的命名(Infrastructure-as-a- Service),很直观的说明了:IaaS提供的服务是硬件设备等基础资源(一般是主机、存储)。如亚马逊云计算 AWS(Amazon Web Services)的弹性计算云 EC2 和简单存储服务 S3。
在 IaaS 环境中,用户相当于在使用裸机和磁盘,既可以让它运行 Windows,也可以让它运行 Linux,因而几乎可以做任何想做的事情,但用户必须考虑如何才能让多台机器协同工作起来。
AWS 提供了在节点之间互通消息的接口简单队列服务 SQS(Simple Queue Service)。IaaS 最大的优势在于它允许用户动态申请或释放节点,按使用量计费。运行 IaaS 的服务器规模达到几十万台之多,用户因而可以认为能够申请的资源几乎是无限的。同时,IaaS 是由公众共享的,因而具有更高的资源使用效率。
PaaS 对资源的抽象层次更进一步,它提供用户应用程序的运行环境,典型的如Google App Engine。微软的云计算操作系统 Microsoft Windows Azure 也可大致归入这一类。PaaS 自身负责资源的动态扩展和容错管理,用户应用程 序不必过多考虑节点间的配合问题。但与此同时,用户的自主权降低,必须使用特定的编程环境并遵照特定的编程模型。这有点像在高性能集群计算机里进行 MPI 编程,只适用于解决某些特定的计算问题。例如,Google App Engine 只允许使用 Python 和 Java语言、基于称为 Django 的 Web应用框架、调用 Google App Engine SDK来开发在线应用服务。
典型应用:Google Doc,Saleforce.com,Oracle CRM OnDemand,Office Live WorkSpace
SaaS 的针对性更强,它将某些特定应用软件功能封装成服务,如 Salesforce 公司提供的在线客户关系管理 CRM(Client Relationship Management)服务。SaaS 既不像 PaaS 一样提供计算或存储资源类型的服务,也不像 IaaS 一样提供运行用户自定义应用程序的环境,它只提供某些专门用途的服务供应用调用。
典型应用:Google AppEngine,Force.com,Microsoft Azure服务平台
PaaS供应商不但提供按需硬件和操作系统服务,而且还提供应用程序平台和解决方案堆栈。PaaS 服务可将与应用程序部署关联的大多数 IT 管理方面自动化,包括资源配置、分段和测试、负载平衡、数据库访问以及访问平台库。PaaS 的关键功能是多组织体系结构:即多个不相关的应用程序可运行在相同的硬件和软件基础设施上,从而节约成本以及更有效地利用计算资源。开发人员只需关注应用程序本身,而不需要关注部署和 IT 问题。
J2EE就已经有PaaS的概念,可视为PaaS 的前身。
七、阿里云与传统开发技术的区别
云计算也是基于虚拟机(也称虚拟服务器),但提供了更强大的功能.传统的虚拟机技术是静态的,但云计算是动态支持虚拟技术。(aliyun中可以SSH脚本,也可用http Get来动态创建虚拟机、VPN。。。)
1,脚本中依靠ECS API,动态创建(或修改)并启动虚拟机实例(指定CPU,内存、带宽、磁盘大小、IP、OS及版本)。
2,虚拟机使用的磁盘,不仅是从本地物理磁盘虚拟出来的,还能在脚本中动态扩大。另外底层平台会自动复制磁盘数据到其它物理机,即自动冗余备份。
3,动态创建VPN(各虚拟机实例动态加入VPN,即安全域、动态开放IP或端口给另一个VPN)。
4,动态生成快照与回滚(用于恢复某个虚拟机的OS状态与应用的状态,并且是不停止虚拟机的在线操作)。生成快照的操作,也可用于定制系统映像后,批量部署到多个虚拟机实例上)。
5,为指定的一批虚拟机,动态添加前端的负载均衡服务,它们可以把TCP、HTTP流量按负荷分发到指定的一批虚拟机上。
6,系统自动提供虚拟机容灾恢复。一台虚拟机宕机(比如物理PC机发生故障)后,平台自动把虚拟机迁移到另一台虚拟机上,硬盘数据可完全恢复,但内存和CPU状态丢失。
可见,所谓弹性计算平台,本质上是虚拟服务器技术与虚拟网络技术,弹性指虚拟机的动态增减能力。它不仅是传统虚拟技术的整合,而且是一种全新的编程模式,重点是:动态能力,用户可以用API动态管理各种资源。但它默认没有用到虚拟存储与分布式文件系统。
在IaaS中也可以使用云存储,用Restful API或各种计算机语言中使用特定的云存储SDK。云存储会自动冗余备份。(数据中心的物理机应该分为:计算资源集群,专用于虚拟服务器。存储集群,专用于提供虚拟存储)
IaaS中使用的虚拟存储能扩展到其它物理机,能自动扩大吗?自动使用云存储视图(虚拟存储)?
另外,IaaS中能使用语言(如C)来动态创建虚拟机实例吗?答:不行。
PaaS提供网络应用托管环境,简化网络应用的构建、部署和维护(与IaaS相比)。
与传统Web服务器(如IIS)一样,可以用FTP上传代码、可以调试发布。
一般的PaaS支持自动伸缩,那么说明它在底层提供了许多自动处理的功能(都是IaaS中需要应用写代码来提供的),不需要开发者来关注:自动比IaaS多了虚拟存储功能,还能自动增减虚拟机实例(即扩容、部署都自动化了),负载均衡服务也是自动打开的,但只能使用特定的数据库服务。
但IaaS可以支持各种应用,而不仅仅是网络应用。IaaS中要自己管理数据库、自己处理伸缩性和负载均衡(当然在IaaS上,伸缩性与负载均衡变成一件简单的,可以动态处理的事)。
由于应用使用虚拟存储,而非本地磁盘,那么PaaS禁止进行本地文件读写。读写文件目录接口、上传文件接口都用到PaaS平台提供的接口。
附属功能:
1,分布式缓存服务(使用它之后,对于常用的Key-Value类型的数据,不用存到文件系统或数据库中,而是读写缓存)
2,如果终端支持Html5,PaaS可以支持云应用(不需要在终端上安装应用,浏览器应该是用http访问应用,安装的过程实际上就是在浏览器建立http快捷方式的过程。应用在Html5浏览器中时,有着本地应用一样的体验)。
但实际上,PaaS平台底层没有为云应用作什么特殊的事,只是多支持了html5特性而已。PaaS应用中当然要特别写html5代码,因为Html5支持的特性比Html4多很多,比如数据存储、OpenGL、离线应用等。当然这些特性必须为PaaS平台底层所支持。
与单机相比的话:IaaS(云OS)、PaaS(云应用的运行环境)、SaaS(支持多租户的云应用)。
搜索、邮箱、地图服务(如LBS)、数据挖掘,能在IaaS、PaaS中使用,可以使用Restful API或计算机语言SDK。它们就像Windows API。
按我的理解:
1,PaaS一般基于IaaS、但也可基于传统服务器集群或传统的虚拟服务器、虚拟存储技术。SaaS一般基于PaaS,也可基于IaaS,但也可基于传统服务器集群。
所以三者间并非是依赖关系,不应该是分层结构,而只应该称为三种不同的系统模型。
2,有些资料称云计算是传统虚拟技术的整合,没有新技术。实际上是不对的。
应该说云计算基于传统虚拟技术,但加以大量扩展,在云平台底层,要支持更强的 虚拟机管理、资源调度、安全与可靠性机制(即全新的虚拟化资源管理功能,或称云OS)。而对开发者来说,提供了全新的编程模式。
八、IaaS\PaaS\SaaS总结
云计算的初始应用领域有两个:1,数据中心的资源充分利用。2,租用CRM等常见商业应用。后来扩展到:租用WEB应用平台、公有云让IaaS成为未来的IT基础设施。
无论是 SaaS、PaaS 还是 IaaS,其核心概念都是为用户提供按需服务。于是产生了“一切皆服务” (Everything as aService,EaaS 或 XaaS)的理念。
云计算将使企业的IT设施全部采用外包、托管模式。在实现上,将软、硬件资源\服务全部虚拟化了,便于按需购买。
SaaS、PaaS和IaaS这三种模式代表不同的外包模式。1,如果企业只想外包硬件,则使用IaaS。2,如果企业同时外包硬件、软件平台,则使用PaaS。3,如果企业将软件、硬件都外包,则使用SaaS。

最下的一层是 IaaS,提供 CPU,网络,存储等基础硬件的云服务。在 IaaS 这一层,著名的云计算产品有 Amazon 的 S3(Simple Storage Service), 提供给用户云存储服务。
再上一层是 PaaS,提供类似于操作系统层次的服务与管理 ,比如 Google GAE,你可以把自己写 Java 应用 ( 或者是 Python) 丢在 Google 的 GAE 里运行,GAE 就像一个”云”操作系统,对你而言,不用关心你的程序在那台机器上运行。
最后一层是 SaaS,就是我们所熟悉的软件即服务。事实上 SaaS 的概念的出现要早于云计算,只不过云计算的出现让原来的 SaaS 找到了自己更加合理的位置。本质上,SaaS 的理念是:有别的传统的许可证付费方式 ( 比如购买 Windows Office),SaaS 强调按需使用付费。SaaS 著名的产品很多,比如 IBM 的 LotusLive,Salesforce.com 等。
注:不一定按三层理解,只能按“三种云计算服务的基本模式”来理解。
如果做一个比喻的话, IaaS 相当于你有了一台拥有存储,网络,CPU 等计算资源的计算机,而 PaaS 的 Google App Engine 则是装在这台计算机上的操作系统。设想一下,如果你开发一个传统意义上的 J2EE 应用,你要关心的事情除了应用程序本身之外,还有:要部署在什么样的应用服务器上,使用什么样的数据库,应用的可伸缩性 (Scalability) 等等。而有了 GAE,这些东西你都不需要关心了,你只需要根据 GAE 规范开发 J2EE 应用,然后把它部署在 GAE 云里,GAE 会帮助你管理除了你的应用程序本身的所有事情。
企业将自己的办公软件迁移到云计算中,有三种选择:
1,基于IaaS,那么底层服务器将是虚拟化的(节省投资与能源),且由数据中心管理,但办公软件全部由自己来管理、运营。办公软件本身很少修改程序代码,因为仍基于Windows、Linux OS,区别是节点间通信方式变了。
2,基于PaaS,企业不关心是否使用虚拟服务器,需要将应用软件迁移到特定的云引擎环境(即为OS之上的软件平台)下,需要使用特定的编程语言、数据库系统。但办公软件本身也在企业运营管理下。
3,基于SaaS,企业不再需要购买、维护自己的办公系统,而只是购买若干用户license,可以得到一套相对独立的软件配置环境(是为了与共享同一份软件的其它企业进行配置分离)。


云计算发展到现在,其主要的功能表现在下面几个方面:
按需自助服务(On Demand Self-Service):消费者获得各种服务就像到银行自动取款机取钱一样,只需要简单的手动操作就可以得到所需的服务,无需和任何的云服务提供商进行交互。
泛在的网络提供方式(Broad NetworkAccess):云计算的各种服务的发送都是以网络为载体的,我们获得服务的渠道是多样化的,可以是有线的也可以是无线的,对外提供的统一的标准或接口,客户端可以是手机、移动手持设备、笔记本电脑、PDA等等。
资源池化和透明化(Resource Pooling):在云的一端底层的资源有同构的也有异构的,通过虚拟化技术已经把这种异构屏蔽起来,所有的资源被统一的管理、调度、分配,形成了各种资源池。对于用户来讲,这些资源是透明的,用户无需了解其底层的组织结构、实现的原理,就像取款时无需知道自动取款机的内部原理一样,我们只关心个人的需求是否得到了满足。
快速可伸缩性(Rapid Elastricity ):云计算服务提供商可以动态的、快速实时的、弹性的提供给客户任何资源。对用户来说,可以购买的资源好像是无限的,可以在任何时间、任何地点购买任意数量的资源和服务。
可计量的服务(Measured Service):从提供商的角度来看,提供服务是想从中获得一定的利润。按照用户的对资源的使用情况可以提供多种多样的计费方式。可以按使用时间的长短来计费,如按年租、按月租和按小时租;另一种是按照资源的类型和数量进行收费,如按照存储空间的多少来收费、按 CPU 的高低档次来收费。
云计算基本特征
可修复能力(Resilience):这个特征主要体现在基础设施这一层上,它有非常完善的技术架构体系,有非常完善的故障排除机制、容错能力和实时的响应能力。提高了高可用性。
同质性(Homogeneity):同质性就是云计算中心具有相同的资源类型,这样使提供商非常方便的管理和分配资源。实现这个特点的主要技术是虚拟化技术的成熟运用。
虚拟化(Virtualization):有两种虚拟化:一种是 1 化 N,这种就是利用虚拟化技术将一台物理的设备划分为多个逻辑上的设备来使用,实现一台设备多重功能不断复用的效果,大大提高了资源利用率;另一种就是 N 化 1,这是云计算的灵魂所在,没有多机虚拟化就不可能实现云计算,它屏蔽了底层设备的异构化(Heterogeneity),实现了基础设施的同质化,根据用户的需求生成不同的云设施。
面向服务特性(Service Oriented):从云计算的发展趋势来看,未来所有的服务将会取代软件,我们可以设想未来客户终端会有一种设备只是纯粹的接受服务叫做“纯云端”。客户只需按需使用、按需支付即可。
低费用(Low Cost):它是整合了低成本的和闲置的资源池向外部提供全方位的服务,并且还减少了第三方企业运营维护实施的费用,显然这种计算模式要比以前的模式费用低廉,价格实惠,并且这种模式还低碳,相对节能环保。
先进的安全措施:云计算安全一直是每个用户担心的,用户的很多保密的资料要放到云端。为了建立保障云计算安全的长期有效的机制,需要建立身份认证、安全存储和数据加密等安全保障体系。
九、轻松一刻

(大话云计算P11)
楚国有人坐船渡河时,不慎把剑掉入江中,他在船上刻下记号,说:云标记。当船停下时,他跳入河中轻松把剑捞了上来。现在楚国人说:云搜索。
楚国故事:船指客户端,云标记:指客户端上存储了资源的关键字或名称。云搜索:不管资源具体物理位置
十、QA
1,这些应用属于云计算吗?
参见 百度 云计算 百科
云安全
百度 云计算 百科中的定义如下:
云安全(Cloud Security)是一个从“云计算”演变而来的新名词。云安全的策略构想是:使用者越多,每个使用者就越安全,因为如此庞大的用户群,足以覆盖互联网的每个角落,只要某个网站被挂马或某个新木马病毒出现,就会立刻被截获。
“云安全”通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,推送到Server端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。
上面定义的方案挺清晰的,可以认为不属于IaaS\PaaS\SaaS中任一种,从狭义的角度看,不属于云计算。
云存储
百度 云计算 百科中的定义如下:
云存储是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。 当云计算系统运算和处理的核心是大量数据的存储和管理时,云计算系统中就需要配置大量的存储设备,那么云计算系统就转变成为一个云存储系统,所以云存储是一个以数据存储和管理为核心的云计算系统。
在服务器端,云存储是基于虚拟存储技术,供服务器端应用来使用存储空间。在客户端则是常用的上传、下载技术。
云呼叫
百度 云计算 百科中的定义如下:
云呼叫中心是基于云计算技术而搭建的呼叫中心系统,企业无需购买任何软、硬件系统,只需具备人员、场地等基本条件,就可以快速拥有属于自己的呼叫中心,软硬件平台、通信资源、日常维护与服务由服务器商提供。具有建设周期短、投入少、风险低、部署灵活、系统容量伸缩性强、运营维护成本低等众多特点;无论是电话营销中心、客户服务中心,企业只需按需租用服务,便可建立一套功能全面、稳定、可靠、座席可分布全国各地,全国呼叫接入的呼叫中心系统。
xx云呼叫中心产品通过分布部署和集中管理能力、大数据采集和分析能力,帮助企业提高人均产值,提高资源利用率,改善客户体验,通过公云、混合云、私云满足不同客户的需求。公云用户无需任何设备、安装即可快速运行,起到立竿见影的效果;混合云在解决大集中、小分散上发挥作用;私云在个性化、高性能、私密性上发挥作用。
从应用层的特性上看,符合SaaS特性。呼叫中心的网络服务可由运营商提供,企业只需要拥有一部分客户端就可接入。传统的IP呼叫中心完全支持上述功能。
2,IaaS、PaaS、SaaS之间是三层关系吗?
许多PPT中将IaaS\PaaS\SaaS画成三层,SaaS在最上面,看起来SaaS的基础就是PaaS,而PaaS的基础则必须是IaaS。
这个看法不对。邮箱业务是经典的PaaS业务,Saleforce的CRM也是最早出现的云计算业务,它们都可以不基于PaaS、IaaS而存在。早期的Gmail邮箱可能就是基于若干个物理主机来实现的,没有使用虚拟主机。
三种aaS之间没有分层关系,它们只是描述三层基础设施 转换为云计算后的特征。
三层aaS都满足以下特征(面向用户):按需购买分配资源、资源池是虚拟统一的、弹性扩展。所以:不管是任何硬件与OS层、应用平台、应用,只要对用户需求来说满足上述特征,都可视为云计算。当然这应该是广义的云计算看法。
十一、推荐读物
网络资源:IBM deveperWorks 网站,CSDN网站。
电子书:
Google_三大论文中文版
虚拟化与云计算 电子工业出版社
云计算核心技术剖析 作者:吴朱华 人民邮电出版社
垃圾读物:
大话云计算 作者:浪为民 人民邮电出版社
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值