伙伴云客服论坛»论坛 S区 S产品资讯 查看内容

0 评论

0 收藏

分享

云计算架构中的Iaas、Paas、SaaS详解

云计算的架构

云计算涉及了很多产品与技术,外表上看起来确实有点纷繁复杂,但是云计算自身还是有迹可循和有理可依的,下面介绍一套云计算的架构,详细请看图:

云计算架构中的Iaas、Paas、SaaS详解-1.png

    标题   

上面这个云架构共分为效劳和管理这两大部分。
在效劳方面,主要以提供用户基于云的各种效劳为主,共包含三个层次:其一是Software as a Service软件即效劳,简称SaaS,这层的作用是将应用主要以基于Web的方式提供给客户;其二是Platform as a Service平台即效劳,简称PaaS,这层的作用是将一个应用的开发和部署平台作为效劳提供给用户;其三是Infrastructure as a Service根底架构即效劳,简称IaaS,这层的作用是将各种底层的计算(比如虚拟机)和存储等资源作为效劳提供给用户。从用户角度而言,这三层效劳,它们之间关系是独立的,因为它们提供的效劳是完全不同的,而且面对的用户也不尽相同。但从技术角度而言,云效劳这三层之间的关系并不是独立的,而是有一定依赖关系的,比如一个SaaS层的产品和效劳不只需要使用到SaaS层自身的技术,而且还依赖PaaS层所提供的开发和部署平台或者直接部署于IaaS层所提供的计算资源上,还有,PaaS层的产品和效劳也很有可能构建于IaaS层效劳之上。
在管理方面,主要以云的管理层为主,它的功能是确保整个云计算中心可以安全和稳定的运行,并且可以被有效地管理,主要包括用户管理、监控系统、计费管理、安全管理、效劳管理、资源管理、容灾支持、运维管理、客户支持几个方面。
下面主要对Saas、PaaS、IaaS几个方面做介绍

云计算架构中的Iaas、Paas、SaaS详解-2.png

    标题   


1、软件即效劳SaaS

软件即效劳(SaaS)为商用软件提供基于网络的访问。您有可能已经使用过SaaS,即便您当时并不晓得。SaaS的示例太多了,例如Netflix、Photoshop.com、Acrobat.com、Intuit QuickBooks Online、Gmail、Google Docs、Office Web Apps、Zoho、WebQQ、新浪微盘等等。可能不太明显的SaaS实现包括挪动应用程序市场中的相当一部分。

云计算架构中的Iaas、Paas、SaaS详解-3.png

    标题   

SaaS为企业提供一种降低软件使用本钱的方法 — 按需使用软件而不是为每台计算机购置容许证。尤其是考虑到大多数计算机在差不多70%的时间是空闲的,SaaS可能非常有效。企业不用为单一用户购置多个容许证,而是让容许证的使用时间尽可能接近100%,从而尽可能节省本钱。
1.1 SaaS的优势
SaaS 给软件厂商提供了新的时机。尤其是,SaaS软件厂商可以通过四个因素进步 ROI(投资回报):进步部署的速度、增加用户接受率、减少支持的需要、降低实现和晋级的本钱。
(1)进步部署的速度
在过去,部署传统的桌面应用程序需要很大的工作量。正如Tariq Ahmed在Flex 4 in Action (Manning Press) 的第1章中指出的,“要想让数千甚至数万客户机同时运行软件的某一版本,后勤方面的复杂性是非常高的。”
这正是向云计算转移的过程比较缓慢且平缓的主要原因之一。在大多数情况下,符合逻辑的处置方案是分阶段地把软件转移到云中,首先以SaaS的形式提供原应用程序的高度简化的版本。考虑到开发商对版本控制的控制水平,这么做是很合理的。
云计算与过去的 “LAN 计算” 之间有许多类似之处。典型的LAN架构由站内的许多工作站组成,它们常常被称为哑终端,它们通过连接强大的大型机(常常由IBM 提供)运行应用程序。这种计算类型过去非常适宜企业,因 IT部门可以完全控制版本,可以非常方便地屡次部署更新。同样,过去阻碍桌面软件应用程序开发商停止版本控制的后勤障碍在云中也不存在,因为软件在开发公司可以直接访问的根底设备上运行。
考虑到SaaS必需可以效劳的客户机数量,SaaS根底设备的规模要比LAN大得多。但是底层的概念是相同的。大型机可以驻留足够多的软件实例,从而为本地网络中连接它的所有客户机提供效劳;而云由许多不同的计算机资源组成,它们共同提供计算才干,从而运行为世界各地的客户机提供效劳所需的许多软件实例。
(2)增加接受率
以前一些软件的容许证费用太高,而如今SaaS让一般消费者可以以合理的价格使用它们。一个好例子是 Adobe 以SaaS的形式提供Adobe Photoshop。虽然这项工作是Adobe正在做的试验,但是已经获得了一些效果。
SaaS提供的多种业务模型尤其有吸引力。例如,Intuit 以SaaS的形式提供QuickBooks Online,按月收取效劳费。作为经常游览的企业主,这种效劳非常有用。同时,Adobe在Photoshop.com和Acrobat.com中应用了SaaS,以freemium效劳的形式提供软件 — freemium效劳是指一种基于容许证软件产品的SaaS缩略版的业务模型。
freemium SaaS基于的收入模型是,估计免费用户中的一部分最终会觉得软件很有用,他们会晋级到启用了更多特性的SaaS付费版本,或者购置包含所有特性和功能的桌面版本的容许证。这种方法往往比通过 “受限制的演示” 形式试用软件更好,因为演示形式要求用户在桌面计算机上装置他们可能不会购置的应用程序。另外,假设免费用户中晋级的比例低于预期,还可以通过广告进一步补充这个模型。随着云计算的开展,传统的桌面软件厂商经常使用这种方法适应市场的变化。
(3)减少支持的需要
大型客户效劳中心的本钱很高,不得不支持多种平台会导致支持问题增加,而SaaS可以大大缓解这些难题。首先,部署的简便性让开发人员可以在发现bug之后很快停止修复,这意味着大多数bug可以在大量用户遇到它们之前被修复,这会减少客户支持部门接到的电话数量,进步客户满意度,降低客户流失的可能性。
另外,传统桌面软件应用程序的开发商常常必需支持多种平台。例如,开发商可能必需支持Windows 7和Apple Mac OS X 10.6操作系统,添加对第二种操作系统的支持差不多会让开发本钱加倍;而且,假设支持这些操作系统的许多不同版本,问题会更多。支持操作系统的多个版本还会产生限制。
(4)降低实现和晋级的本钱
SaaS推动ROI的第四个因素与第一个因素有点儿类似。但是,部署的速度是指快速、简便地部署应用程序更新所带来的好处。与之相反,降低实现和晋级的本钱是指开发公司由于可以控制版本和运行软件的根底设备所获得的经济利益。
因为开发商可以控制运行软件的平台(平台通常对于用户完全透明),所以他们不用负担在多个平台上测试和部署bug补丁和新特性的额外开销,这会节省大量资金。这让SaaS应用程序的晋级本钱更低。节省的大量时间和资金让开发商有时机更好地响应客户的恳求并加强易用性,从而进步客户满意度,降低客户流失的可能性,这会带来间接的经济利益。
1.2 SaaS使用的技术
SaaS层离普通用户非常接近,下面是其中最主要的五种:
(1)HTML :规范的Web页面技术,如今主要以HTML4为主,但是即将推出的HTML5会在很多方面推动Web页面的开展,比如视频和本地存储等方面。
(2)JavaScript :一种用于Web页面的动态语言,通过JavaScript ,可以极大地丰富Web页面的功能,最流行的JS框架有jQuery和Prototype 。
(3)CSS :主要用于控制Web页面的外观,而且能使页面的内容与其表现形式之间停止优雅地分别。
(4)Flash :业界最常用的RIA(Rich Internet Applications)技术,可以在现阶段提供HTML等技术所无法提供的基于Web的富应用,而且在用户体验方面,非常不错。
(5)Silverlight :来自业界巨擎微软的RIA技术,虽然其如今市场占有率稍逊于Flash,但由于其可以使用C#来停止编程,所以对开发者非常友好。
在SaaS层的技术选型上,首先,由于通用性和较低的学习本钱,大多数云计算产品都会比较倾向HTML 、JavaScript和CSS这对黄金组合,但是在HTML5被大家广泛接受之前,RIA技术在用户体验方面,还是具有一定的优势,所以Flash和Silverlight也将会有一定的用武之地,比如VMware vCloud就采用了基于Flash的Flex技术,而微软的云计算产品肯定会在今后大量使用Silverlight技术。

2、平台即效劳PaaS

平台即效劳(Platform as a Service,PaaS)提供对操作系统和相关效劳的访问。它让用户可以使用提供商支持的编程语言和工具把应用程序部署到云中。用户不用管理或控制底层根底架构,而是控制部署的应用程序并在一定水平上控制应用程序驻留环境的配置。PaaS的提供者包括Google App Engine、Windows Azure、Force.com、Heroku等。小企业软件工作室是非常适宜使用PaaS的企业。通过使用云平台,可以创建世界级的产品,而不需要负担内部消费的开销。

云计算架构中的Iaas、Paas、SaaS详解-4.png

    标题   

通过PaaS这种形式,用户可以在一个提供SDK(Software Development Kit,即软件开发工具包)、文档、测试环境和部署环境等在内的开发平台上非常方便地编写和部署应用,而且不论是在部署,还是在运行的时候,用户都无需为效劳器、 操作系统、网络和存储等资源的运维而操心,这些繁琐的工作都由PaaS云供给商负责。而且PaaS在整合率上面非常惊人,比如一台运行Google App Engine的效劳器可以支撑成千上万的应用,也就是说, PaaS是非常经济的。 PaaS主要面对的用户是开发人员。
2.1 PaaS的优势
一般来说,和现有的基于本地的开发和部署环境相比,PaaS平台主要有下面这六方面有非常大的优势:
(1)友好的开发环境:通过提供SDK和IDE(Integrated Development Environment ,集成开发环境)等工具来让用户不只能在本地方便地停止应用的开发和测试,而且能停止远程部署。
(2)丰富的效劳:PaaS平台会以API的形式将各种各样的效劳提供给上层的应用。
(3)精细的管理和监控:PaaS可以提供给用层的管理和监控,比如可以观察应用运行的情况和详细数值(比如吞吐量THRoughput和响应时间Response Time等)来更好地衡量应用的运行状态,还有可以通过准确计量应用使用所消耗的资源来更好地计费。
(4)伸缩性强: PaaS 平台会自动调整资源来协助运行于其上的应用更好地应对突发流量。
(5) 多租户(Multi-Tenant)机制:许多PaaS平台都自带多租户机制,不只能更经济地支撑庞大的用户规模,而且能提供一定的可定制性以满足用户的特殊需求。
(6)整合率和经济性:PaaS平台整合率是非常高,比如PaaS的代表Google App Engine能在一台效劳器上承载成千上万的应用。
2.2 PaaS的主要成分
PaaS分解为主要组件:平台和效劳。考虑提供的效劳,这称为处置方案堆。也就是说,PaaS 的两个主要成分是计算平台和处置方案堆。
为了说明这两个 “成分”,我们进一步研究一下它们的定义。依照最简单的形式,计算平台是指一个可以一致地启动软件的地方(只要代码满足平台的规范)。平台的常见示例包括 Windows、Apple Mac OS X和Linux操作系统;用于挪动计算的Google Android、Windows Mobile和Apple iOS;以及作为软件框架的Adobe AIR和Microsoft .NET Framework。要记住的重点是,计算平台不是指软件自身,而是指构建并运行软件的平台。下面提供一张示意图以协助理解这种关系。

云计算架构中的Iaas、Paas、SaaS详解-5.gif

    云计算分类与PaaS元素之间关系的图形化解释   

处置方案堆由应用程序组成,这些应用程序有助于开发过程和应用程序部署。这些应用程序是指操作系统、运行时环境、源代码控制存储库和必需的所有其他中间件。
2.3 PaaS使用的技术
PaaS 层的技术比较多样性,下面是常见的五种:
(1)REST :通过 REST(Representational State Transfer,表述性状态转移)技术,可以非常方便和优雅地将中间件层所支撑的部分效劳提供给调用者。
(2)多租户:就是能让一个单独的应用实例可以为多个组织效劳,而且能坚持良好的隔离性和安全性,并且通过这种技术,能有效地降低应用的购置和维护本钱。
(3)并行处置:为了处置海量的数据,需要利用庞大的x86集群停止规模宏大的并行处置,Google的MapReduce是这方面的代表之作。
(4)应用效劳器:在原有的应用效劳器的根底上为云计算做了一定水平的优化,比如用于Google App Engine的Jetty应用效劳器。
(5)分布式缓存:通过分布式缓存技术,不只能有效地降低对后台效劳器的压力,而且还能加快相应的反响速度,最著名的分布式缓存例子莫过于Memcached 。
对于很多PaaS平台,比如用于部署Ruby应用的Heroku云平台,应用效劳器分布式缓存都是必备的,同时REST技术也常用于对外的接口,多租户技术则主要用于SaaS应用的后台,比如用于支撑Salesforce 的CRM等应用的Force.com多租户内核,而并行处置技术常被作为单独的效劳推出,比如Amazon的Elastic MapReduce 。

3、根底架构即效劳IaaS

根底架构,或称根底设备(Infrastructure)是云的根底。它由效劳器、网络设备、存储磁盘等物理资产组成。在使用IaaS时,用户并不实际控制底层根底架构,而是控制操作系统、存储和部署应用程序,还在有限的水平上控制网络组件的选择。

云计算架构中的Iaas、Paas、SaaS详解-6.png

    标题   

通过IaaS这种形式,用户可以从供给商那里获得他所需要的计算或者存储等资源来装载相关的应用,并只需为其所租用的那部分资源停止付费,而同时这些根底设备繁琐的管理工作则交给IaaS供给商来负责。
IaaS的关键概念:
* 云迸发(cloud bursting)
* 多租户计算(multi-tenant computing)
* 资源共用(resources pooling)
* 虚拟机监控程序(hypervisor)
IaaS最与众不同的两个方面:可伸缩性和虚拟化(elasticity and virtualization)。
对于企业而言,IaaS的宏大价值通过云迸发(cloudbursting)概念实现。云迸发是指当业务霎时增长,需要大量的计算资源时,将任务负载扩展到云环境的过程。云迸发促成的资本节约潜力宏大,因为企业无需额外投资利用率很低的效劳器,那些效劳器一年中只要两三次使用 70% 的容量,其余时间仅有 7-10% 的负荷。
3.1 从”根底架构即资产“到”根底架构即效劳”
在过去50年之内,大量胜利的公司花费大量宝贵时间和资源来构建根底架构,其目的是通过创建一个更大、更快、更强的网络来获取战胜其竞争对手的竞争优势。IT 行业中的 “根底架构即资产” 范式拥有上世纪六七十年代的 “暴力跑车(muscle cars)” 所拥有的相同或类似的低效率和不利特征。对于企业计算,这些低效率包括:
  1. * 大量未使用的计算才干和容量,它们消耗的本钱与大型、昂贵的数据中心中的硬件消耗的大量空间相关联。比如效劳器一年中可能只要两三次使用70%的容量,其余时间仅有7-10%的负荷。* 昂贵的人力资源需求,包括要求根底架构资产(效劳器、路由器、交换机等)所在的数据中心的网络管理员停止24小时监控。* 旨在应对高水平能源浪费的Green Computing方案的一个宏大障碍。
复制代码
IaaS标志着从 “根底架构即资产” 到 “根底架构即效劳” 的转变。云计算的其他两个类别也标志着范式转变。对于Platform as a Service (PaaS),转变来自 “平台即资产” 范式,该范式的特征是大量采购容许。同样的转变也适用Software as a Service (SaaS),这种转变是从 “软件以容许形式作为组织资产” 到 “软件以效劳形式提供”。
3.2 IaaS的主要特征
(1)可伸缩性
可伸缩性是IaaS的首要关键特征。
假设云由一些粘在一起的棉花糖簇组成,这样人们就可以坐在它们上面。每个棉花糖都能承载一定数量的人,详细取决于组成云的棉花糖簇的数量和那些簇中包含的棉花糖的数量。随着越来越多的人登上棉花糖云,可以通过粘贴更多的棉花糖来扩展棉花糖簇,增加外外表积。人代表需要计算资源的应用程序,比如承载网站并运行软件的资源。棉花糖簇代表VM集群,每个棉花糖代表一 VM。
虽然这听起来有点像Seuss博士的书中可能呈现的内容,但它提供了一种方法来理解许多黑魔法(dark art)考虑的一个概念:可伸缩的集群(elastic clustering)。集群化几个物理效劳器来形成一个虚拟云称为云集群(cloud clustering),假设它真是一种黑魔法,则通晓水平可以通过一位艺术家的系统设计的可伸缩性来衡量。
(2)虚拟化
IaaS很容易定位,因为它通常是独立于平台的。IaaS有一个硬件和软件资源组合组成。IaaS软件是低级代码,独立于操作系统运行,例如虚拟机监控程序。虚拟机监控程序负责管理硬件资源的库存并根据需要分配上述资源。这个过程称为资源共用(resource pooling)虚拟机监控程序实现的资源共用使得虚拟化成为可能,虚拟化使多租户计算(multi-tenant computing)成为可能。多租户计算概念指由几个组织共享的一个根底架构,这些组织在安全需求和遵从性问题方面有类似的兴趣。

云计算架构中的Iaas、Paas、SaaS详解-7.gif

    VMs、虚拟机监控程序和计算机之间的关系   

通过 IaaS,我们可以拥有提供处置、存储、网络和其他计算资源的才干,可以在那里部署和运行任意软件,比如操作系统和应用程序。大多数云计算用例遵循已经习惯的根底分层构造:一个软件处置方案堆栈或平台被部署在一个网络根底架构上,一些应用程序在那个平台之上运行。但是,虚拟化使得云范式无独有偶。
3.3 IaaS的优势
IaaS效劳和传统的企业数据中心相比,在很多方面都存在一定的优势,下面是最明显的五个。
(1)免维护:主要的维护工作都有IaaS云供给商负责,所以不用用户操心。
(2)非常经济:首先免去了用户前期的硬件购置本钱,而且由于IaaS云大都采用虚拟化技术,所以在应用和效劳器的整合率普遍在10以上,这样能有效降低使用本钱。
(3)开放规范:虽然很多IaaS平台都存在一定的私有功能,但是由于OVF等应用发布协议的降生,使得IaaS在跨平台方面稳步前进,从而使得应用能在多个IaaS云上灵敏的迁移,而不会被固定在某个企业数据中心内。
(4)支持的应用:因为IaaS主要是提供虚拟机,而且普通的虚拟机能支持多种操作系统,所以IaaS所支持应用的范围是非常广泛的。
(5)伸缩性强:IaaS云只需几分钟就能提供用户一个新的计算资源,而传统的企业数据中心则往往需要几周时间,并且计算资源可以根据用户需求来调整其资源的大小。
3.4 IaaS使用的技术
在IaaS所采用的技术方面,都是一些比较底层的技术,其中有四种技术是比较常用的:
(1)虚拟化:也可以理解它为根底设备层的“多租户”,因为通过虚拟化技术,可以在一个物理效劳器上生成多个虚拟机,并且能在这些虚拟机之间能实现全面的隔离, 这样不只能减低效劳器的购置本钱,而且还能同时降低效劳器的运维本钱,成熟的x86虚拟化技术有VMware的ESX和开源的Xen 。
(2)分布式存储:为了承载海量的数据,同时也要保证这些数据的可管理性,所以需要一整套分布式的存储系统,在这方面, Google 的GFS是典范之作。
(3)关系型数据库:根本是在原有的关系型数据库的根底上做了扩展和管理等方面的优化,使其在云中更适应。
(4)NoSQL:为了满足一些关系数据库所无法满足的目的,比如支撑海量的数据等,一些公司特地设计一批不是基于关系模型的数据库,比如Google的BigTable和Facebook的Cassandra等。
如今大多数的IaaS效劳都是基于Xen的,比如Amazon的EC2等,但VMware也推出了基于ESX技术的vCloud ,同时业界也有几个基于关系型数据库的云效劳,比如Amazon 的RDS(Relational Database Service,关系型数据库效劳)和Windows Azure SDS(SQL Data Services, SQL数据库效劳)等。关于分布式存储和NoSQL,它们已经被广泛用于云平台的后端,比如Google App Engine的Datastore就是基于BigTable和GFS这两个技术之上的,而Amazon则推出基于NoSQL技术的Simple DB 。
总结一下

分享一个跨概念矩阵来理解云计算的这三个类别:

云计算架构中的Iaas、Paas、SaaS详解-8.png

    标题   

回复

举报 使用道具

相关帖子
全部回复
暂无回帖,快来参与回复吧
本版积分规则 高级模式
B Color Image Link Quote Code Smilies

Moolly
注册会员
主题 21
回复 25
粉丝 0
|网站地图
快速回复 返回顶部 返回列表