2.云计算的三种服务模式
⽬录
⽂章⽬录
“云”是互联⽹的⼀个隐喻,“云计算”其实就是使⽤互联⽹来接⼊存储或者运⾏服务器端的引⽤,数据,或者服务。
任何⼀个在互联⽹上提供其服务的公司都可以叫做云计算公司。其实云计算从⽤户体验的⾓度三层,分别是Infrastructure(基础设施)-as-a-Service,Platform(平台)-as-a-Service,Software(软件)-as-a-Service。基础设施在最下端,平台在中间,软件在顶端。别的⼀些“软”的层可以在这些层上⾯添加。
⼀、IaaS(Infrastructure as a Service)基础设施即服务
**作⽤:**通过IaaS这种模式,⽤户可以从供应商那⾥获得他所需要的虚拟机或者存储等资源来装载相关的应⽤,同时这些基础设施的繁琐的管理⼯作将由IaaS供应商来处理。IaaS能通过它上⾯对虚拟机⽀持众多的应⽤。IaaS主要的⽤户是系统管理员。
**产品:**主要产品包括:Amazon EC2,Linode,Joyent,Rackspace,IBM Blue Cloud和Cisco UCS等。
功能:
资源抽象:使⽤资源抽象的⽅法(⽐如,资源池)能更好地调度和管理物理资源
资源监控:通过对资源的监控,能够保证基础实施⾼效率的运⾏
负载管理:通过负载管理,不仅能使部署在基础设施上的应⽤运能更好地应对突发情况,⽽且还能更好地利⽤系统资源
数据管理:对云计算⽽⾔,数据的完整性,可靠性和可管理性是对IaaS的基本要求
资源部署:也就是将整个资源从创建到使⽤的流程⾃动化
安全管理:IaaS的安全管理的主要⽬标是保证基础设施和其提供的资源能被合法地访问和使⽤
计费管理:通过细致的计费管理能使⽤户更灵活地使⽤资源
⼆、PaaS(Platform as a Service)平台即服务
**作⽤:**通过PaaS这种模式,⽤户可以在⼀个包括SDK,⽂档和测试环境等在内的开发平台上⾮常⽅便地编写应⽤,⽽且不论是在部署,或者在运⾏的时候,⽤户都⽆需为服务器,操作系统,⽹络和
存储等资源的管理操⼼,这些繁琐的⼯作都由PaaS供应商负责处理,⽽
且PaaS在整合率上⾯⾮常惊⼈,⽐如⼀台运⾏Google App Engine的服务器能够⽀撑成千上万的应⽤,也就是说,PaaS是⾮常经济云上的诱惑 演员表
的。PaaS主要的⽤户是开发⼈员。
**产品:**主要产品包括:Google App Engine,force,heroku和Windows Azure Platform等。
功能:
友好的开发环境:通过提供SDK和IDE等⼯具来让⽤户能在本地⽅便地进⾏应⽤的开发和测试
丰富的服务:PaaS平台会以API的形式将各种各样的服务提供给上层的应⽤
⾃动的资源调度:也就是可伸缩这个特性,它将不仅能优化系统资源,⽽且能⾃动调整资源来帮助运⾏于其上的应⽤更好地应对突发流量
精细的管理和监控:通过PaaS能够提供应⽤层的管理和监控,⽐如,能够观察应⽤运⾏的情况和具体数值(⽐如,吞吐量和反映时间)来更好地衡量应⽤的运⾏状态,还有能够通过精确计量应⽤使⽤所消耗的资源来更好地计费
三、SaaS(Software as a Service)软件即服务
作⽤: 通过SaaS这种模式,⽤户只要接上⽹络,并通过浏览器,就能直接使⽤在云端上运⾏的应⽤,⽽不需要顾虑类似安装等琐事,并且免去初期⾼昂的软硬件投⼊。SaaS主要⾯对的是普通的⽤户。
**产品:Salesforce Sales Cloud,Google Apps,Zimbra,Zoho和IBM Lotus Live等。
功能:
随时随地访问:在任何时候或者任何地点,只要接上⽹络,⽤户就能访问这个SaaS服务
⽀持公开协议:通过⽀持公开协议(⽐如HTML4/5),能够⽅便⽤户使⽤
安全保障:SaaS供应商需要提供⼀定的安全机制,不仅要使存储在云端的⽤户数据处于绝对安全的境地,⽽且也要在客户端实施⼀定的安全机制(⽐如HTTPS)来保护⽤户
多住户(Multi-Tenant)机制:通过多住户机制,不仅能更经济地⽀撑庞⼤的⽤户规模,⽽且能提供⼀定的可定制性以满⾜⽤户的特殊需求
四、三者之间的关联
它们之间的关系主要可以从两个⾓度进⾏分析:其⼀是⽤户体验⾓度,从这个⾓度⽽⾔,它们之间关系是独⽴的,因为它们⾯对不同类型的⽤户。其⼆是技术⾓度,从这个⾓度⽽⾔,它们并不是简单的继承关系(SaaS基于PaaS,⽽PaaS基于IaaS),因为⾸先SaaS可以是基
于PaaS或者直接部署于IaaS之上,其次PaaS可以构建于IaaS之上,也可以直接构建在物理资源之上。
五、IaaS 和 PaaS 之间的⽐较
PaaS的主要作⽤是将⼀个开发和运⾏平台作为服务提供给⽤户,⽽IaaS的主要作⽤是提供虚拟机或者其他资源作为服务提供给⽤户。接下来,将在七个⽅⾯对PaaS和IaaS进⾏⽐较:
开发环境:PaaS基本都会给开发者提供⼀整套包括IDE在内的开发和测试环境,⽽IaaS⽅⾯⽤户主要还是沿⽤之前⽐较熟悉那套开发环境,但是因为之前那套开发环境在和云的整合⽅⾯⽐较⽋缺,所以使⽤起来不是很⽅便
⽀持的应⽤:因为IaaS主要是提供虚拟机,⽽且普通的虚拟机能⽀持多种操作系统,所以IaaS⽀持的应⽤的范围是⾮常⼴泛的。但如果要让⼀个应⽤能跑在某个PaaS平台不是⼀件轻松的事,因为不仅需要确保这个应⽤是基于这个平台所⽀持的语⾔,⽽且也要确保这个应⽤只能调⽤这个平台所⽀持的API,如果这个应⽤调⽤了平台所不⽀持的API,那么就需要对这个应⽤进⾏修改
开放标准:虽然很多IaaS平台都存在⼀定的私有功能,但是由于OVF等协议的存在,使得IaaS在跨平台和避免被供应商锁定这两⾯是稳步前进的。⽽PaaS平台的情况则不容乐观,因为不论是Google的App Engine,还是Salesforce的Force都存在⼀定的私有API
可伸缩性:PaaS平台会⾃动调整资源来帮助运⾏于其上的应⽤更好地应对突发流量。⽽IaaS平台则需要开发⼈员⼿动对资源进⾏调整才能应对
整合率和经济性: PaaS平台整合率是⾮常⾼,⽐如PaaS的代表Google App Engine能在⼀台服务器上承载成千上万的应⽤,⽽普通的IaaS平台的整合率最多也不会超过100,⽽且普遍在10左右,使得IaaS的经济性不如PaaS
计费和监管:因为PaaS平台在计费和监管这两⽅⾯不仅达到了IaaS平台所能企及的操作系统层⾯,⽐如,CPU和内存的使⽤量等,⽽且还能做到应⽤层⾯,⽐如,应⽤的反应时间(Response Time)或者应⽤所消耗的事务多少等,这将提⾼计费和管理的精确性学习难度:因为在IaaS上⾯开发和管理应⽤和现有的⽅式⽐较接近,⽽PaaS上⾯开发则有可能需要学⼀门新的语⾔或者新的框架,所以IaaS学习难度更低
PaaS IaaS
开发环境完善普通
⽀持的应⽤有限⼴
通⽤性⽋缺稍好
可伸缩性⾃动伸缩⼿动伸缩
整合率和经济性⾼整合率,更经济低整合率
计费和监管精细简单
学习难度略难低
IaaS 和 PaaS 未来
在当今云计算环境当中,IaaS是⾮常主流的,⽆论是Amazon EC2还是Linode或者Joyen t等,都占有⼀席之地,但是随着Google的App Engine,Salesforce的Force还是微软的Windows Azure等PaaS平台的推出,使得PaaS也开始崭露头⾓。谈到这两者的未来,特别是这两者之间的竞争关系,我个⼈认为,短期⽽⾔,因为IaaS模式在⽀持的应⽤和学习难度这两⽅⾯的优势,使得IaaS将会在短期之内会成为开发者的⾸选,但是从长期⽽⾔,因为PaaS模式的⾼整合率所带来经济型使得如果PaaS能解决诸如通⽤性和⽀持的应⽤等⽅⾯的挑战,它将会替代IaaS成为开发者的“新宠”。
它们之间的关系主要可以从两个⾓度进⾏分析:其⼀是⽤户体验⾓度,从这个⾓度⽽⾔,它们之间关系是独⽴的,因为它们⾯对不同类型的⽤户。其⼆是技术⾓度,从这个⾓度⽽⾔,它们并不是简单的继承关系。
发布评论