购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 云计算的公共特征与分类

1.2.1 云计算的公共特征

通过对云计算方案的特征进行归纳和分析,可发现这些方案所提供的云服务有着显著的公共特征,这些特征也使云计算明显区别于传统的服务。

1.弹性伸缩

云计算可以根据访问用户的多少,增减相应的IT资源(包括CPU、存储、带宽和中间件应用等),使IT资源的规模可以动态伸缩,满足应用和用户规模变化的需要。在资源消耗达到临界点时可自由添加资源,资源的增加和减少完全透明,这个特点系继承自动计算的特点而来。

2.快速部署

云计算模式具有极大的灵活性,足以适应各个开发和部署阶段的各种类型和规模的应用程序。提供者可以根据用户的需要及时部署资源,最终用户也可按需选择。

3.资源抽象

最终用户不知道云上的应用运行的具体物理资源位置,同时云计算支持用户在任意位置使用各种终端获取应用服务。所请求的资源来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无须了解,也不用担心应用运行的具体位置。

4.按用量收费

即付即用(Pay-as-you-go)的方式已广泛应用于存储和网络宽带技术中(计费单位为字节)。虚拟化程度的不同导致了计算能力的差异。例如,Google的App Engine按照增加或减少负载来达到其可伸缩性,而其用户按照使用CPU的周期来付费;Amazon的AWS则是按照用户所占用的虚拟机节点的时间来进行付费(以小时为单位),根据用户指定的策略,系统可以根据负载情况进行快速扩张或缩减,从而保证用户只使用自己所需要的资源,达到为用户省钱的目的。而目前包括腾讯云、阿里云、Ucloud等在内的国内云提供商也都是按需计费的模式。

5.宽带访问

松散耦合的服务,每个服务之间独立运转,一个服务的崩溃一般不影响另一个服务的继续运转。这个特点系继承“基于服务的架构”的特点而来。

云计算的特点很多,核心特点只有三点:一种计算范式,即计算作为服务;一种商业模式,即效用计算,随用随付;一种实现方式,即软件定义的数据中心。如果用一句话来概括,那就是“互联网上的应用和架构服务”,再简单一点,就是“IT作为服务”。

1.2.2 云计算的分类

云的分层注重的是云的构建和结构,但并不是所有同样构建的云都是用于同样的目的。传统操作系统可以分为桌面操作系统、主机操作系统、服务器操作系统、移动操作系统,云平台也可以分为多种不同类型的云。云分类主要是根据云的拥有者、用途、工作方式来进行。这种分类关心的是谁拥有云平台、谁在运营云平台、谁可以使用云平台。从这个角度来看,云可以分为公共云、私有云、社区云、混合云和行业云等。

下面从云计算的部署方式和服务类型来分析现在各种各样的云方案。

1.根据云的部署模式和云的使用范围进行分类

(1)公共云

当云按服务方式提供给大众时,称为“公共云”。公共云由云提供商运行,为最终用户提供各种各样的IT资源。云提供商可以提供从应用程序、软件运行环境,到物理基础设施等各方面的IT资源的安装、管理、部署和维护。最终用户通过共享的IT资源实现自己的目的,并且只为其使用的资源付费(Pay-as-you-go),通过这种比较经济的方式获取自己所需的IT资源服务。

在公共云中,最终用户不知道与其共享使用资源的还有其他哪些用户,以及具体的资源底层如何实现,甚至几乎无法控制物理基础设施。所以云服务提供商必须保证所提供资源的安全性和可靠性等非功能性需求,云服务提供商的服务级别也因这些非功能性服务提供的不同进行分级。特别是需要严格按照安全性和法规遵从性的云服务要求来提供服务,也需要更高层次、更成熟的服务质量保证。公共云的示例包括Google App Engine、Amazon EC2、IBM Developer Cloud,国内的腾讯云、阿里云、华为云、Ucloud等。

(2)私有云(或称专属云)

商业企业和其他社团组织不对公众开放,为本企业或社团组织提供云服务(IT资源)的数据中心称为“私有云”。相对于公共云,私有云的用户完全拥有整个云中心设施,可以控制哪些应用程序在哪里运行,并且可以决定允许哪些用户使用云服务。由于私有云的服务提供对象是针对企业或社团内部,私有云的服务可以更少地受到在公共云中必须考虑的诸多限制,例如带宽、安全和法规遵从性等。而且,通过用户范围控制和网络限制等手段,私有云可以提供更多的安全和私密等保证。

私有云提供的服务类型也可以是多样化的。私有云不仅可以提供IT基础设施的服务,而且也支持应用程序和中间件运行环境等云服务,例如企业内部的管理信息系统(MIS)云服务。

(3)社区云

公共云和私有云都有缺点。折中的一种办法就是社区云,顾名思义,就是由一个社区,而不是一家企业所拥有的云平台。社区云一般隶属于某个企业集团或机构联盟或行业协会,一般也服务于同一个集团、联盟或协会。如果一些机构联系紧密或者有着共同(或类似)的IT需求,并且相互信任,他们就可以联合构造和经营一个社区云,以便共享基础设施并享受云计算的好处。凡是属于该群体的成员都可以使用该云架构。为了管理方便,社区云一般由一家机构进行运维。但也可以由多家机构共同组成一个云平台运维团队来进行管理。

公共云、私有云与社区云的区别如图1.6所示。

图1.6 公共云、私有云与社区云

(4)混合云

混合云是把“公共云”和“私有云”结合到一起的方式。用户可以通过一种可控的方式部分拥有,部分与他人共享。企业可以利用公共云的成本优势,将非关键的应用部分运行在公共云上,同时将安全性要求更高、关键性更强的主要应用通过内部的私有云提供服务。

使用混合云的原因很多,最主要的原因有两个:各种考虑因素的折中;私有云向公有云过渡。对于第一种考虑来说,有些机构虽然很想利用公有云的好处,但因为各种法规、保密要求或安全限制,并不能将所有的资产置于公有云上,于是就会出现部分IT资产部署在公有云上,部分部署在业务所在地的情况,这就会形成混合云。

长远来看,公有云是云计算的最终目的,但私有云和公有云会以共同发展的形式长期共存。就像银行服务的出现,货币从个人手中转存到银行保管,是一个更安全、方便的过程,但也会有人选择自己保管,二者并行不悖。

(5)行业云

行业云是针对云的用途来说的,不是针对云的拥有者或者用户。如果云平台是针对某个行业进行特殊定制的(如针对汽车行业),则称为行业云。行业云的生态环境所用的组件都应该是比较适合相关行业的组件,并且上面部署的软件也都是行业软件或其支撑软件。例如,如果是针对军队所建立的云平台,则上面部署的数据存储机制应当特别适合于战场数据的存储、索引和查询。

毫无疑问,行业云适合所指定的行业,但对一般的用户可能价值不大。一般来说,行业云的构造会更为简单,其管理通常由行业的龙头老大,或者政府所指定的计算中心(超算中心)来负责。有人说超算中心是云计算,大概就是从这个方面所进行的理解。

行业云和前面提到的四种云之间并不是排他性的关系,它们之间可能存在着交叉或重叠的关系。例如,行业云可以在公有云上构建,也可以是一朵私有云,更有可能是社区云。

(6)其他云类型

除了上面的类别外,云的分类还可以继续下去。例如,根据云针对的是个人还是企业又可以分为消费者云和企业云。消费者云的受众为普通大众或者个人,因此也称为大众云,此种云推销的是个人的存储和文档管理需求;企业云则面向企业,推销的是企业的全面IT服务。这些云的分类在本质上仍是上述云种类的某种分割或组合。

2.针对云计算的服务层次和服务类型进行分类

依据云计算的服务类型也可以将云分为三层:基础设施即服务、平台即服务和软件即服务。不同的云层提供不同的云服务,图1.7展示了一个典型的云计算组成。

图1.7 云计算的组成元素(来源

(1)基础设施即服务(Infrastructure as a Service,IaaS)

IaaS位于云计算三层服务的最底端。也是云计算狭义定义所覆盖的范围,就是把IT基础设施像水、电一样以服务的形式提供给用户,以服务形式提供基于服务器和存储等硬件资源的可高度扩展和按需变化的IT能力。通常按照所消耗资源的成本进行收费。

该层提供的是基本的计算和存储能力,以计算能力的提供为例,其提供的基本单元就是服务器,包含CPU、内存、存储、操作系统及一些软件,如图1.8所示。具体的例子如Amazon的EC2。

图1.8 基础设施即服务的层次

(2)平台即服务(Platform as a Service,PaaS)

PaaS位于云计算三层服务的中间,通常也称为“云操作系统”,如图1.9所示。它提供给终端用户基于互联网的应用开发环境,包括应用编程接口和运行平台等,支持应用从创建到运行整个生命周期所需的各种软硬件资源和工具。通常按照用户或登录情况计费。在PaaS层面,服务提供商提供的是经过封装的IT 能力,或者是一些逻辑的资源,例如数据库、文件系统和应用运行环境等。PaaS的产品示例包括华为的软件开发者云DevCloud、Saleforce公司的Force.com和Google的Google App Engine等。

图1.9 平台即服务的层次

PaaS 服务主要面向软件开发者,让开发者通过网络在云计算环境中编写并运行程序在以前是一个难题。在网络带宽逐步提高的前提下,两种技术的出现解决了这个难题。一种是在线开发工具,开发者可通过浏览器、远程控制台(控制台中运行开发工具)等技术直接在远程开发应用,无须在本地安装开发工具;另一种是本地开发工具和云计算的集成技术,即通过本地开发工具将开发好的应用部署到云计算环境中,同时能够进行远程调试。本书第13章所介绍的软件开发云即为这种方式。

(3)软件即服务(Software as a Service,SaaS)

SaaS是最常见的云计算服务,位于云计算三层服务的顶端,如图1.10所示。用户通过标准的Web浏览器来使用Internet上的软件。服务供应商负责维护和管理软硬件设施,并以免费或按需租用方式向最终用户提供服务。

图1.10 软件即服务的层次

这类服务既有面向普通用户的,诸如Google Calendar和Gmail;也有直接面向企业团体的,用于帮助处理工资单流程、人力资源管理、协作、客户关系管理和业务合作伙伴关系管理等,例如Salesforce.com和Sugar CRM。这些SaaS提供的应用程序减少了客户安装与维护软件的时间及其对技能的要求,并且可以通过按使用付费的方式来减少软件许可证费用的支出。

以上的三层,每层都有相应的技术支持提供该层的服务,具有云计算的特征,例如弹性伸缩和自动部署等。每层云服务可以独立成云,也可以基于下面层次的云提供的服务。每种云可以直接提供给最终用户使用,也可以只用来支撑上层的服务。

1.2.3 与云计算有关的技术

从技术的角度看,云计算体现出分布式系统、虚拟化技术、负载均衡等各种技术有着千丝万缕的联系。如同信息技术中的“截拳道”,虽然融合了各种精华,但仍然自成一派。

在具体的技术实现上,云计算平台创新性地融合了多种技术的思想,通过不同的组合,解决在具体应用时遇到的不同问题。因此,人们会从云计算平台里面发现多种技术的身影,一些人也会由此产生云计算不过“老调新弹”的判断。然而,如果我们只着眼于某一技术的存在,而忽略云计算本身在技术应用上的融合创新,就会出现“只见树木,不见森林”的情况,不仅有失偏颇,还会导致错误的认识。

就技术而言,云计算在本质上源自超大规模分布式计算,是一种演进的分布式计算技术。云计算还延伸了SOA的理念,并融合了虚拟化、负载均衡等多种技术方法,形成了一套新的技术理念和实现机制。具体而言,云计算表现出的核心意义不仅在于技术的发展,还在于通过组织各种技术,使人们建立IT系统的思路和结构发生根本性的变化。从计算资源的利用这个角度看,可以从下面三个方面加以详细分析。

1.并行计算

并行计算(Parallel Computing)通常是指同时执行多个指令的计算模式,其原理为一个“大”问题可以被分解为多个同时处理的“小”问题。并行计算的主要动力在于加快计算速度,因此确定问题分解的并行算法,对于并行计算而言至关重要,所以在结构上并行计算是紧耦合(Tight Coupling)的概念。

在软件工程中,“耦合”指的是互相交互的系统彼此间的依赖。紧耦合表明模块或者系统之间关系紧密,存在明显的依赖关系。举例来说,假设一个计算机系统是“紧耦合”的,则在设计时,必须对相关任务进行良好的定义,制定具体的执行策略。对于定义之外的任务,系统将无法处理。这样,并行计算的计算机体系架构——甚至硬件层面上——不同的部件或是不同的层次联系非常紧密,靠严密可行的预先定义计划并指导着每个环节之间流动反馈的内容。

2.SOA

SOA是面向服务的体系结构(Service Oriented Architecture)的简称,依照结构化信息标准促进组织(OASIS)所给出的定义,“SOA是一种组织和利用可能处于不同所有权范围控制下的分散功能的范式。”通常所说的SOA是一套设计和开发软件的原则和方法,它将应用程序的不同功能单元(即“服务”)通过这些服务之间定义良好的接口和协议联系起来,以使实现服务的平台或系统中,所构建的各类服务可以通过一种统一和通用的方式进行交互。简而言之,SOA 是一种理念,即给定一种标准接口和一个约束接口的服务协议,则任何业务应用,只要能满足服务协议,即可通过给定的标准接口进行通信和交互,实现对接。

SOA 理念最初应用于整合企业应用中分散的业务功能。企业在发展过程中,会不断形成新的业务系统,来满足业务流程信息化的需要。最初为解决不同系统,尤其是不同厂商间产品集成的问题,出现了各种不同的企业应用集成(Enterprise Application Integration,EAI)技术。首先是各种基于消息的中间件产品,通过消息中间件,可以实现各个系统之间的数据交换。各应用将自己的输出封装成消息通过消息中间件进行发布,而需要数据的应用只要从消息中间件中获得所需消息即可。但是由于业界缺乏消息的标准,所以容易造成对单一产品的依赖,而且不同消息中间件之间也不能直接交换数据。后来,随着Java技术J2EE的发展,促成了基于J2EE的JCA(J2EE连接器架构)的诞生,成为EAI范畴的第一个正式的规范,用于解决应用与应用之间的通信问题,使EAI领域有了相对开放统一的标准。

相对于EAI在系统建设后整合上发挥的作用,SOA则偏重于事先的规范。SOA提出的标准接口和服务协议的理念,使基于SOA而开发的服务具备一种“松耦合”的特征。对于企业来说,这种松耦合具有极大地便利性。在SOA架构下,由于服务的可重用性,当企业搭建新的应用系统时,可直接使用现有服务而无须再次开发,只需对所需功能进行补充完善,从而充分利用现有的资源,降低成本。

SOA 的实施,本质上是一种用于交换系统与系统之间的信息的企业集成技术,它更关心如何使系统集成更有效率的问题。SOA 实施技术允许消费者的软件应用在公共网络上调用服务,并通过提供一个语言中立的软件层,来实现对各种开发语言和平台的集成。因此企业实施SOA能得到的最明显的好处是:可以达成企业架构中系统接口的统一,以节约资源,并在将来可能发生集成时提高速度或者组织的敏捷性。

而云计算的重点在于通过资源的重新组合,来满足不同服务的需求。虽然这可能会包含SOA内的软件服务,但云计算的使用明显涵盖了更多领域。而且从服务的角度而言,云计算的出现扩展了“服务”的内涵,使 IT 功能可以像商品一样在市场上销售。从实际情况来看,一个企业可以同时部署 SOA 和云计算,也可以单独部署其中一项,或者可以借助 SOA的方法将本地应用、私有云和公有云中的应用整合形成灵活的混合云方案。

可以认为,云计算是SOA思想在系统和硬件层面的延伸。在云计算平台中,借鉴这种“面向服务架构”的思想,也可以实现更大范围的“服务”的模块化、流程化和松耦合,即可通过通用接口的定义屏蔽底层硬件资源的区别,也可以通过另外的接口定义实现数据交换的一致性,从而可以进行底层硬件资源和上层应用模块的自由调度。这样,企业可以通过资源和模块重组,快速完成整个业务系统的功能转变,满足不同的业务需要,而这也是云计算平台所具有的革命性意义之一。

3.虚拟化

在现有的众多云计算定义中,有定义把云计算描绘成“通过网络访问的、可按需接入的、订阅付费的、由他人分享的、封装在自己的数据中心之外的、简单易用的、虚拟化的 IT 资源”。虽然这个概念不一定准确,但它指出了一点,虚拟化技术是通向云计算的光明大道。

虚拟化(Virtualization)是为某些事物创造的虚拟(而非真实)版本,例如硬件平台、计算机系统、存储设备和网络资源等。其目的是为了摆脱现实情况下物理资源所具有的各种限制,即“虚拟化是资源的逻辑表示,它不受物理限制的约束。”

虽然很多人因为云计算而对虚拟化产生兴趣,但虚拟化技术并不是一项新技术。从IBM大型计算机的虚拟化到现在EMC可应用于桌面机的VMware系列,单机虚拟化技术已经经历了半个多世纪的发展。在初期,实施虚拟化技术是为了使单个计算机看起来像多个计算机或完全不同的计算机,从而提高资源利用率并降低IT成本。随着虚拟化技术的发展,虚拟化的概念所涵盖的范围也不断加大。

计算机系统通常被分为若干层次,从下至上包括底层硬件资源、操作系统、应用程序等,虚拟化技术的出现和发展,使人们可以将各类底层资源进行抽象,形成不同的“虚拟层”,向上提供与真实的“层”相同或类似的功能,从而屏蔽设备的差异兼容性,对上层应用透明。可以说,“虚拟化技术降低了资源使用者与资源具体实现之间的耦合程度,让使用者不再依赖于资源的某种特定实现”。

云计算所涉及的虚拟化,是经过发展之后的更高层次的虚拟化,是指所有的资源——计算、存储、应用和网络设备等连接在一起,由云计算平台进行管理调度。借助于虚拟化技术,云计算平台可以对底层千差万别的资源进行统一管理,也可以随时方便地进行资源调度的管理,实现资源的按需分配,从而使大量物理分布的计算资源可以在逻辑层面上以一个整体的形式呈现,并支撑各类应用需求。因此对于云计算平台而言,虚拟化技术的发展是关键驱动力。

虽然虚拟化是云计算的一个关键组成,但是云计算并不仅限于虚拟化。如同一个公司由大量员工聚集在一起,通过一定的管理办法形成了一个组织,但提到这个公司时,远不止组织形态这么多。同样,云计算表达的还有按需供应、按量计费的服务模式,以及弹性、透明和积木化等技术特点。本书的第4章将详细叙述虚拟化的相关技术。 6wOYezgqmCwlcPsfXN3kQGi/qpiJ47Y5miTb3sKiFn3mfbJzceyIX6ou/E67e5Jt

点击中间区域
呼出菜单
上一章
目录
下一章
×