基于自然云的云计算模型
【IT168 资讯】1. 概述
计算机网络自从其诞生起,其主要的作用就是信息的共享和交流,网络的最大价值就在 于可以让使用者真正的管理业务和分享信息,而不是单纯的使用网络本身。通过多年的发展,网络也从最初的简单文件共享发展到现在的多媒体内容共享,计算资源共享。计算机网络的规模和作用都随着时间的推移不断扩张。
在这种需求的推动下,不断有新的技术被应用在网络当中,而新技术带来的效率和易用性的提高又进一步促使网络向前发展。更高的服务要求在很大程度上取决于网络计算的有效性[1]。更为有效的组织方法和计算方法的不断出现总是让人们震惊,并且开始重新思考处理事情的基本原则。
面向服务的框架(SOA , Service-Oriented Architecture)就是当前网络组织方法的发展趋势之一[2],使用SOA 方法构建的网络系统(下简称为SOA 系统)通过提供统一的中间件产品来为越来越丰富的网络产品提供服务,同时依托系统的规模化和集成化,使得系统能够支撑的服务规模成倍提升,从而满足越来越发达的网络服务的要求。
但是,网络服务的多样性也给SOA 和Web Service 带来了极大的挑战[1,3],为了能够为 不同规模和种类的服务提供支持,SOA 系统需要根据需求的不断改变来动态分配系统资源[4],满足这种要求的SOA 系统称之为动态自治SOA 系统。为了满足这种要求,动态自治SOA 系统必须具备以下特性[5]:
统一的对外接口
与底层实现无关
组件化的,可协作的子中间件群[6]
动态增减Web 服务的能力
本文中介绍的云计算模型就具备这样的特点,其结构和生命周期类似于自然界中的云,在使用云模型结构设计的SOA 系统中,组件化的子中间件在不提供服务时,具有时间和空间的独立性(类似于自然界中的水分子)。通过整合这些子中间件(类似于自然界中云的形成过程),云计算模型能够对外提供统一的,规模化的服务(类似于云),而服务的大小则和云的规模成正比,并可动态调整。这就是云计算模型的概念来源。
2. 云计算模型
云模型是参照自然界中云的生成方式和形态,将其应用于计算机网络设计而得出的模型概念,本章将通过介绍自然云的生命周期和形态,进而得出云计算模型。
2.1 工作模型
为了在SOA 系统设计过程中使系统具备动态调整能力和自治能力,SOA 系统必须在系统纵向和横向具备模块化的能力 [5],纵向的模块化使得系统能够在任何层次上实现抽象化,从而当系统不适应新的需求时,可以通过最小的代价重定义[5,6]。在纵向抽象化的基础上,横向模块化通过将分布的服务组件化,也就是将系统设计为许多相同功能模块的组合,根据用户的需求动态分配使用模块的数量,这样系统便具备了动态调整能力和自治能力。
云计算模型具备以下几个特点:
系统对外拥有统一的接口,Web Service 客户通过云模型边界连接到SOA 系统中,获得服务。
云计算模型对外屏蔽系统的底层实现,在任何Web Service 客服角度,系统都表现为统一的,满足计算需要的单一逻辑实体。
云计算模型内部由独立的逻辑组件组成,各个组件之间彼此具有空间和时间上的独立性。同时,组件和系统本身之间也具备独立性,组件可以动态的加入系统或者从系统中卸载。
系统通过动态调配组件来满足不同的需求,从而在宏观角度拥有提供更高数量级服务的能力。
对比云计算模型和自然界中真实的云可以看出,上述的特点也是云所具有的特点[7]:对外的统一外观;屏蔽内部水分子的形态;由许多独立的小水滴构成;在一定的条件下形成降雨。这些属性上的类似,是云计算模型的命名来图2 自然云形态示意图源。
2.2 2 生命周期模型
在具备了结构上具备纵向和横向组件化的特点之后,云计算模型具备了满足动态自治SOA 系统需要的可能性,同时为了获得动态调整的特性,系统还必须具备从系统构成,系统调整和系统分解的一整套合理的生命周期模型。在这一点上,云计算模型和自然云仍然具备很好的吻合性。在介绍计算云的模型之前,先介绍一下自然界中云的生命周期模型[7]。首先,陆地上的水在太阳的照射下,水分子会互相摆脱其他水分子的吸引力而进入大气中,这个过程就是我们通常所说的蒸发。
水汽从地球表面进入低层大气后,这里的温度高,所容纳的水汽较多,如果这些湿热的空气被抬升,温度就会逐渐降低,到了一定高度,空气中的水汽就会达到饱和。这个阶段可以称为结合阶段。
如果空气继续被抬升,就会有多余的水汽析出。如果那里的温度高于0°C,则多余的水汽就凝结成小水滴;如果温度低于0°C,则多余的水汽就凝化为小冰晶。在这些小水滴和小冰晶逐渐增多并达到人眼能辨认的程度时,云就形成了。
最后,当云中的水滴发展到足够大时,大气不能使它继续上升,于是它开始下落变成雨或者落在其他的云中。云就结束了他的一个生命周期。
以上就是自然界中的云的生命周期的整个过程,可以看出,它包含着如图3 所示的四个重要的步骤:蒸发,结合,凝结,成雨[3,7]。
和自然云的生命周期类似,计算云的生命周期模型中也包含着四个重要的步骤[3]:
首先,根据需求找到系统中已有的,可用的资源——发现阶段[2]。
将找到的可用资源集成到我们原有的系统当中,组成一个新的,能够满足需求的系统——组合阶段。
部署新的系统供用户使用——成型阶段。
当我们不需要这个新的系统中的某些功能的时候,我们可以将这些完成这些功能的部分
从整个系统中分解出来——分解阶段。
对比前面介绍的自然云的形成过程和云计算模型可以发现,自然云的形成过程包含四个
步骤:蒸发,结合,凝结和成雨,而云计算模型的实例化也包括四个步骤:发现,组合,成
型,分解,如图4 所示,各个步骤之间也存在着处理方式和处理内容的相似:
分布在Internet 中的可用的资源类比于地球表面的水。
发现可用的资源的过程好比是地表的水蒸发的过程。
将可用资源互相结合的过程类比于水分子结合成水滴的过程。
组合逻辑类比于水分子的凝结过程。
分解的过程类比于云朵的成雨。
因此,从工作模型和生命周期模型两个角度来看,云计算模型在模拟自然云的构成方式和特性的基础上,通过这种低耦合的系统设计方式,为SOA 系统的设计提供了一种易于理解的,有效的解决方案[3]。
2.3 系统分析
采用云计算模型的SOA 系统的主要优势在于,利用子中间 件的独立性和可复用性,所有的中间件服务都作为子中间件的组合——“云”,对外提供服务,因此当系统需要为新服务而重新部署时,添加的主要过程是添加或查找可用的子中间件进而组成新的中间件提供服务。而一般SOA 系统在添加新的服务时,需要添加的基本单位是整个中间件[1,2,4]。
因此从“云”的角度上来看,采用云计算模型的SOA 系统在系统动态改变时,只需要对计算云内部进行必要的修改,而在对外接口和系统层次上保持一致性,同时并不对其他的组件发生干扰,这种特性称之为云计算模型的动态特性。
同时,组成单位的小型化,也带来了故障单元的小型化。通过设计相应的策略,当某个子中间件出现故障时,系统可以寻找相同功能单元进行替换,而不影响到中间件层次的服务。
同时,也可以设置相信的轮休或备份策略,这些健全机制称为云计算模型的自治能力。
因此,我们说采用云计算模型的SOA 系统是具有动态自治能力的系统。
2.4 Amazon Elastic Computing Cloud
根据云计算模型的设计思路,很多优秀的网络自治系统被设计出来,并在一定程度上推动了云计算模型的完善和发展。Amazon Elastic Compute Cloud(Amzon EC2),或者称为Amazon 弹性计算云,就是当前云计算模型应用的先驱[8,10]。Amzon EC2 提供了可动态调整大小的云计算的能力,通过Web Service 向用户提供了网络虚拟计算环境。它的设计使得网络计算对于开发者来说变得更加容易。例如,Kettle 集群基于 Amazon Elastic Computing Cloud 做了一次测试,单台服务器输出4000 rows/sec ,数据库为MySQL. 获得了很好的集群效果[9]。
它的设计创新在于允许用户在Amazon 提供的数据中心快速建立一个虚拟的机器AMI1,同时在这个虚拟机器中可以安装任意的操作系统,并且可以将此机器用于提供各种业务。这种服务可以让用户按照自己的需求自由的控制应用的规模,从而避免了因为业务变动而购买,安装,维持额外的服务器,以及因此而产生的各种兼容问题和系统调整所需的额外工作量,同时还为系统带来了分布式网络计算的规模优势和相对稳定性。Amazon EC2 是Amazon 继简单存储服务(Amazon Simple Storage Service,Amazon S3)利用云计算模型提供存储服务之后,利用云计算模型开发的第二个SOA 系统,它使得计算可以在云计算模型中进行。Amazon 的简单网络服务可以使你很容易拥有获取和配置的能力,它使你在能够完全控制计算资源的情况下,在Amazon 的计算环境中运行计算。Amazon EC2 使获取和配置新的服务器实例的时间缩短为几分钟,并且可以根据计算需求的改变,随时扩大或者缩小服务器实例的规模。
2.4.1 Amazon EC2 的功能
Amazon EC2 描述了一个真实的虚拟计算环境,在这个环境中,你可以使用它的网络服务接口申请你所需要的虚拟机,然后就可以在这个虚拟机中下载你的应用程序,配置你的网络接入许可,并根据你的需要使用一个或多个组件来提供服务。
使用Amazon EC2 ,你可以[8]:
可以建立一个包含所需的应用程序,类库,数据以及相关的配置信息的AMI。使用者可以利用AMI 快速的创建多个相同的实例。或者使用预先配置好的模板镜像建立系统并且快速运行。
--------------------------------------------------------------------------------
1 AMI 是Amazon EC2 中一个很重要的概念,Amazon EC2 允许用户根据自己的需要来安装和配置实例。一个AMI(Amazon Machine Image)是一个简单的包装环境,它包含安装和配置市里所需要的信息。AMI 是用户服务部署的单元,用户可能只需要一个AMI 或者需要多个AMI 来组成系统(例如网络服务器,应用服务器和数据库)。Amazon EC2 提供了一些命令行工具,这些工具使得创建AMI 更加的容易。如果用户建立一个AMI,用户需要把它上传到Amazon S3 中。Amazon EC2 利用Amazon S3 可靠的存储用户上传的 AMI。或者,如果用户需要,用户不用从头开始建立他的AMI。他可以从可用的AMI 中选择适合的实例。
例如,如果用户只是需要一个简单的Linux 服务器,你就可以选择一个标准的Linux AMI。
将AMI 上传到Amazon S3。Amazon EC2 提供了一系列工具用来存储AMI。Amazon S3提供了一个安全的,可靠的,快捷的“仓库”来存储镜像。
使用Amazon EC2 网络服务来配置安全选项和接入许可。
根据需要,可以使用Amazon EC2 网络服务来启动,终止和监视使用你的AMI 配置的 实例。
根据真实使用的时间和带宽付费。
2.4.2 Amazon EC2 云计算模型及其特点
从上面的叙述可以看出Amazon EC2 在实现上,充分使用了云计算模型的设计要素: Amazon EC2 系统由分布的计算单元所组成,根据具体的用户需求组合成完整的虚拟机向用户提供服务。在用户端表现为虚拟主机AMI。同时,用户还可以根据自己的需求,动态的改变所需要的服务能力的配给。可以说Amazon EC2 具有完整的云计算模型特点:
统一的对外接口:虚拟主机AMI。
与底层实现无关:系统的具体实现并不对用户透明,从用户体验上来说,使用Amazon EC2 系统和使用普通虚拟机是相似的。
组件化的,可协作的子中间件群: 分布式的计算单元
动态增减Web 服务的能力: 用户还可以根据自己的需求,动态的改变所需要的服务能力的配给
2.4.3 Amazon EC2 的优势
由于Amazon EC2 的云计算模型特点,使得Amazon EC2 具有了以下几点优势:
弹性--Amazon EC2 允许你在短短的几分钟之内增加或减少功能。你也可以同时委托一个,上百个,甚至上千个服务器实例。当然,你的应用在网络服务应用程序接口的控制下,根据需求,可以自动的扩大或者缩小规模。
完全的控制――你可以完全控制你的实例AMI。你可以使用任何一个机器,并且当你 需要的时候,你可以与任何一个机器互动。每个实例能够提供1.7Ghz*86 的处理器,1.75GB的RAM,160GB 的本地磁盘和250Mb/s 的网络带宽[8]。
可靠――Amazon EC2 提供了一个高可靠性的环境,在这个环境里用户可以高效可靠的替代原有的实例。而这种替换工作不会涉及到Amazon 网络的底层构件和数据中心。
安全――Amazon EC2 提供网络服务接口来控制网络的安全。你可以定义一组实例和他们的接入等级。
经济――Amazon EC2 给你带来了很大的经济利益。你只需要根据你实际使用的计算功能付很低的费用。这种方式与之前的需要购买和维护硬件(包括内部的和主机)的传统方式相比要便宜的多[8]。这样的系统设计把用户从许多的复杂的功能计划中解放出来,把原本很庞大的固定花销转化成为相对小很多的和应用成比例的浮动费用,而且免去了需要购买“额外安全网络设备”来处理周期性的网络侵扰的麻烦。
3. 展望
我们现在正在步入“计算云”的时代。计算云通过将中间件组件化,为SOA 系统的开发提供了一种动态组成系统的有效机制,使复杂的问题可以简单快速的解决。同时增强了系统的自治性。Amazon EC2 的成功就是一个很好的证明,同时促使了计算环境的虚拟化成为很多中小企业和企业管理软件发展的趋势[8,10]。
当然,计算云并不完美,还有很多有待解决的问题,例如这种网络服务在离线状态下就不能使用[11]。但是,计算云为我们提供了一条正确的道路:动态的组成系统,简单的处理方式,更大程度的资源共享。云计算模型已经引起了很多重要的业界领先企业的关注,被认为是2007 年重要的计算机技术发展方向之一[12]。可以说,云计算模型的成功使用将使网络应用进入一个新的篇章