云计算的三种服务模式:IaaS,PaaS和SaaS

 突然想了解下有关云的一些知识,于是整理了一些资料供自己学习和理解。

        “云计算”已经越来越普遍,简单来说这就是一种共享资源的形式,不过是通过云来共享分布式的资源。“云”应该可以看作互联网的一种隐喻吧。

云是分层的

  其实云计算是分几层的,分别是Infrastructure(基础设施)-as-a-Service,Platform(平台)-as-a-Service,Software(软件)-as-a-Service。基础设施在最下端,平台在中间,软件在顶端。别的一些“软”的层可以在这些层上面添加。

为了更好的理解上图,我们先来看一个生活中的例子:吃披萨

为了吃到披萨可以有以下途径

1. 在家自己做

       这真是个麻烦事,你的准备很多东西,发面、做面团、进烤箱。。。。。简单列一下,需要下图所示的一切:

2. 买好速食披萨回家自己做着吃

      你只需要从披萨店里买回成品,回家烘焙就好了,在自己的餐桌上吃。和自己在家做不同,你需要一个pizza供应商。

3. 打电话叫外卖将披萨送到家中

      打个电话,pizza就送到家门口。

4.在披萨店吃披萨

      你什么都不需要准备,连餐桌也是pizza店的。

总结起来就是可以有这四种途径来吃到披萨

      通过吃披萨的案例,再回想一下我们的云计算分层,这两者是不是都是为了得到某些服务(吃到披萨或得到云计算服务)呢?那实现的方法应该也类似,我们直观对比一下。

      通过这样的对比是不是能很清晰的理解了,三种不同的云计算模式,就是供应商提供的资源的多少;提供的越多,你为了得到服务所需要做的就越少,提供的越少,你为了得到服务所需要做的就越多。了解了这三种模式的大致意思,下面就具体来看看这三种模式。

 

 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。最近兴起的公司有AppFogMendix 和 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。

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学习难度更低。

 PaaSIaaS
开发环境完善普通
支持的应用有限广
通用性欠缺稍好
可伸缩性自动伸缩手动伸缩
整合率和经济性高整合率,更经济低整合率
计费和监管精细简单
学习难度略难

表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,这层的作用是提供虚拟机或者其他资源作为服务提供给用户。

iaaspaassaas

一、SaaS模式

      通过SaaS这种模式,用户只要接上网络,并通过浏览器,就能直接使用在云端上运行的应用,而不需要顾虑类似安装等琐事,并且免去初期高昂的软硬件投入。SaaS主要面对的是普通的用户。

      主要产品包括:Salesforce Sales Cloud,Google Apps,Zimbra,Zoho和IBM Lotus Live等。

功能

      谈到SaaS的功能,也可以认为是要实现SaaS服务,供应商需要完成那些功能?主要有四个方面:

      随时随地访问:在任何时候或者任何地点,只要接上网络,用户就能访问这个SaaS服务。

      支持公开协议:通过支持公开协议(比如HTML4/5),能够方便用户使用。

      安全保障:SaaS供应商需要提供一定的安全机制,不仅要使存储在云端的用户数据处于绝对安全的境地,而且也要在客户端实施一定的安全机制(比如HTTPS)来保护用户。

      多住户(Multi-Tenant)机制:通过多住户机制,不仅能更经济地支撑庞大的用户规模,而且能提供一定的可定制性以满足用户的特殊需求。

二、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能够提供应用层的管理和监控,比如,能够观察应用运行的情况和具体数值(比如,吞吐量和反映时间)来更好地衡量应用的运行状态,还有能够通过精确计量应用使用所消耗的资源来更好地计费。

三、IaaS模式

      通过IaaS这种模式,用户可以从供应商那里获得他所需要的虚拟机或者存储等资源来装载相关的应用,同时这些基础设施的繁琐的管理工作将由IaaS供应商来处理。IaaS能通过它上面对虚拟机支持众多的应用。IaaS主要的用户是系统管理员。

      主要产品包括:Amazon EC2,Linode,Joyent,Rackspace,IBM Blue Cloud和Cisco UCS等。

功能

      IaaS供应商需要在那些方面对基础设施进行管理以给用户提供资源?或者说IaaS云有那些功能?在《虚拟化与云计算》中列出了IaaS的七个基本功能:

      资源抽象:使用资源抽象的方法(比如,资源池)能更好地调度和管理物理资源。

      资源监控:通过对资源的监控,能够保证基础实施高效率的运行。

      负载管理:通过负载管理,不仅能使部署在基础设施上的应用运能更好地应对突发情况,而且还能更好地利用系统资源。

      数据管理:对云计算而言,数据的完整性,可靠性和可管理性是对IaaS的基本要求。

      资源部署:也就是将整个资源从创建到使用的流程自动化。

      安全管理:IaaS的安全管理的主要目标是保证基础设施和其提供的资源能被合法地访问和使用。

      计费管理:通过细致的计费管理能使用户更灵活地使用资源。

 


文章材料来源1:http://m.blog.csdn.net/article/details?id=18363789

文章材料来源2(知乎 何足道):https://www.zhihu.com/question/21641778

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值