摘要:云计算是继网格计算之后兴起的新型分布式计算模型,它为商业应用提供了一种新的模式。文章简述了云计算的定义、体系结构、发展现状,分析了当前云计算中存在的问题和云计算的发展趋势。
关键词:云计算 云服务 虚拟化
0 引言
随着计算机在人们生产生活中的广泛应用,人们对计算能力的要求越来越高,迫使计算机的存储容量和运算速度不断地提高。虽然现有的机架式和刀片服务器可以解决高性能计算的问题,但是它主要针对大型客户,并且造价昂贵,所以其适用范围有限;网格计算提供了一种造价低廉且数据处理能力较强的计算模型,但网格计算是专门针对复杂科学计算的计算模型[1],因此网格计算通用性不是很强。由于以上原因,使高性能服务器和网格计算这两种方法都不能作为广泛适用且廉价的高性能计算的获取途径。云计算的兴起为以上问题提供了解决方法,云计算可以给所有用户提供随时随地按需获取的存储空间和计算能力。
云计算是继网格计算之后兴起的新型分布式计算模型,它利用分布式技术建造大型数据中心或者超级计算机,并将这些数据中心和超级计算机中的所有软硬件资源虚拟化以服务的形式放在远程服务器上,形成云服务,用户以免费或者按需租用的方式获取服务,这些由云营商提供的云服务就像天边的云彩,用户在需要使用时把它拿来用,平常就放在云上,资源和服务的管理由服务的提供商负责。在这种模式下,所有用户不用考虑任何软硬件的配置和维护问题,用户端只需用浏览器和网络,就可以随时随地按需使用云计算提供的各种应用软件、超级计算能力、海量存储空间,这样就降低了用户配置软硬件的费用,提高了用户使用软硬件资源的灵活性、广泛性。云计算的兴起为商业应用提供了一种新的模式,已经成为一个新的研究热点。
1 云计算定义
1.1 云计算定义
云计算现在还没有统一的定义,各个公司根据所处的领域提出了不同的云计算概念,下面给出几个典型的定义。
ibm云计算的定义:云计算是一个虚拟化的计算机资源池。它可以托管多种不同的工作负载,包括成批的后端作业和面向用户的交互式应用程序;通过快速提供虚拟机器或物理机器,迅速部署和增加工作负载;支持冗余、自我恢复且具有高可扩展性的编程模型,以使工作负载能够从多种不可避免的硬件软件故障中进行恢复;实时监控资源使用情况,在需要时重新平衡资源分配[2]。
维基百科定义:云计算是分布式计算技术的一种,其最基本的概念,是通过网络将庞大的计算处理程序自动分拆成无数个较小的子程序,再交由多部服务器所组成的庞大系统经搜寻、计算分析之后将处理结果回传给用户。过这项技术,网络服务提供者可以在数秒之内,达成处理数以千万计甚至以亿计的信息,达到和“超级计算机”同样强大效能的网络服务[3]。
google认为云计算就是软件服务,amazon认为云计算就是平台服务,微软认为云计算是软件和服务。
综上云计算的定义,可知云计算是分布式计算、并行计算和网格计算的发展,或者说是这些计算机科学概念的商业实现,它是把计算机资源虚拟化成具有层次的计算机资源池,并将这些资源按层以服务的形式提供给用户,用户不用关心计算机资源的具体情况,只需按需获取服务。
1.2 云计算与网格计算的异同
云计算和网格计算既有相似点,又相互有区别。
云计算和网格计算的相同点:从云计算和网格的定义上看二者都是将各种资源看成一个虚拟的资源池,然后向外提供服务;从发展上来看两者都是分布式计算的进一步发展,都为试图为用户提供高性能的计算能力,都是要提高计算机资源的使用效率,降低用户成本。
云计算和网格计算区别:从定义上看云计算允许用户通过互联网访问云计算提供的各种计算机资源,狭义网格只向用户提供高性能计算能力;从发展上来看云计算是网格计算的进一步发展,云计算既可以支持网格程序又可以支持非网格程序;从用户的角度来看云计算可以满足所有用户对计算能力的需求,网格计算主要针对科学计算支持的用户需求范围有限;从资源的分配方式来看云计算是所有资源作为一个整体进行统一分配,实现资源的自动分配,网格在分配资源时只能以节点为单位分配;从目标上看云计算把计算看作一种公共事业,网格将分布在不同地理位置的计算机连接起来解决一个共同的问题。
2 云计算体系结构
云计算由云和云端两个部分构成,聚集资源和服务构成云,云端即用户端。云中包含大量的计算资源、存储资源、软件资源和服务,所有能够使用网络的用户都可以通过internet使用云提供的各种资源和服务。客户端不再需要配置昂贵的硬件设备,不再需要购买和安装大量的应用软件,仅仅在需要时从云中免费或者租用相应的服务,这样就简化了客户端的应用复杂性,降低了客户端的成本。云计算体系结构如图1所示,依据云计算提供的服务所在的层次将云计算可分为基础设施服务(infrastructure-as-a-service,iaas)、平台服务(platform-as-a-s
ervice,paas)、应用程序服务(software-as-a-service,saas),数据存储服务(data-storage-as-a-service,dsaas)。
2.1 虚拟层 这一层通过虚拟化计算资源、存储资源和软件资源给上层应用提供统一访问接口,提高上层使用的敏捷性和灵活性,它不需要上层应用详细了解基础物理资源,同时为上层提供了一个优势分享、可管理和隔离的云环境。
2.2 数据存储服务层 其作用是将存储作为一项服务,为互操作和外部应用程序提供一个统一的编程接口。
2.3 基础设施服务层 这一层是将基础设作为服务出租,只向用户提供虚拟计算机,而没有应用软件栈。它具有在有特定服务质量约束的情况下提供计算能力或者数据存储能力,并能执行任意类型的操作系统和应用软件。用户能够从虚拟计算机中获取满足要求的计算能力,开发型用户可以在基础设施层上开发云计算应用程序。
2.4 平台服务层 类似于基础设施服务,但是它包括操作系统和围绕特定应用的必需的服务,即平台服务层是在基础设施服务层上加了一个用于定制的软件栈。平台服务层也可描述为一个有特定的操作系统和应用程序集的虚拟平台,它包括一个或多个在一组物理服务器上虚拟而成的服务器、操作系统以及特定的应用程序。
2.5 软件服务层 这一层通过浏览器把应用程序服务提供给所有的用户。从用户的角度看来,这样可以降低或者省去配置高级服务器和购买软件的费用,从供应商的角度看,这种模式只需要在云计算中维持一个程序就可以满足所有用户使用这个软件。利用软件服务,用户就没有必要购买软件,只需按照自己的需要从internet上租用软件。软件服务提供两种应用方式,一种是提供在internet 上使用远程执行的软件,这种软件既可以是可以本地使用被定义为web服务的软件,也可以是通过web浏览器远程调用的不可以本地使用的应用软件;另一种是可以在远程执行应用程序,通常需要依赖于一个应用服务器来公布所提供的服务。
3 云计算研究现状
云计算是新兴的技术,国外著名的it公司谷歌、ibm 、亚马逊、微软、sun 、emc、hp、oracle等都投入巨资进行云计算的研究和产品开发。目前比较著名的云计算有:谷歌的云计算平台和云计算应用程序、ibm云计算、微软的“软件+服务”和亚马逊的弹性云计算。与国外相比,中国的云计算发展速度相对比较缓慢,现在清华大学正在与谷歌合作把云计算课程推广到国内更多高校,共同推动“云计算”在中国的普及,国内的it公司正在逐步展开云计算的研究与产品开发。
以下是一些研究云计算的公司:
3.1 谷歌 谷歌从2007年宣布云计算计划开始就和ibm公司合作把美国的卡内基美隆大学、麻省理工学院、史丹佛大学、加州大学柏克莱分校及马里兰大学等融入到云计算的研究和开发中,并于2008年1月在台湾启动了“云计算学术计划”,谷歌现在正互联网上宣传和推广其云计算产品。谷歌是最早提出云计算的公司,也是云计算研究最活跃的公司之一。谷歌现有两个最典型的云计算应用,一个是云计算平台google app engine。它是一个专为开发者而设计的服务,开发者可以将自己编写的在线应用程序运行在google的资源上。通过它可以在google的可伸缩性极佳的架构上部署web应用程序。app engine为可通过internet引用的python应用程序提供一个沙盒。除了支持用户认证、镜像操作和电子邮件发送外,app engine 还提供了python api,用于持久地存储和管理数据。web应用程序运行时所在的沙盒会限制对底层操作系统的访问,这不会影响到app engine支持有用的web服务的构造。另一个是云计算应用程序google apps,它是google推出的在线应用服务,中文名称是企业应用套件,包括字处理、电子文档处理、gmail邮件服务、gtalk及时通讯服务、语音聊天服务以及在线日历服务等。其功能相当于微软的office办公软件,区别在于微软的office办公软件要每个用户都必须在自己的计算机上安装整套软件,而google apps只需通过一个标准的web浏览器用域名申请注册就可以获取全套服务,这些服务都是由google托管的,用户不需要配置安装任何软硬件,并且使用费用远远低于自己配置硬件和购买软件授权的费用。
3.2 ibm ibm是最早进行云计算研究和实施的公司之一, ibm推出“蓝云”(blue cloud)计划,它是一系列基于开放标准和开源软件的云计算产品,能够把计算机连接起来提供如:mashups、开放协作、社会网络和移动商务等 web2.0 应用。2008年5月,ibm建立在无锡科教产业园第一个云计算中心开始运营,该中心将为中国新兴软件公司提供接入一个虚拟计算环境的能力,使其利用分配的资源来设计、开发和测试软件产品。2008年8月ibm投资3.6亿美元在美国北卡罗来纳州建立云计算数据中心,ibm将该数据中心称为史上最复杂的数据中心,其数据中心的体系结构由基础设施、管理平台、虚拟机、应用构成。这些大型数据中心的建成极大的促进了云计算的发展。
3.3 微软 微软公司正在开发完全脱离桌面的互联网操作系统,其目的是为了大规模应用云计算技术。微软已经发布了live mesh,它是一个软件和服务相结合的云计算平台,允许用户同步、共享、存储和访问文件和文件夹,并且支持移动设备和网络云计算的项目。live mesh将计算机和其它设备通过互联网整合到一起,允许个人和组织管理、访问和共享他们的文件和应用,无缝整合各种设备和互联网。live mesh包括平台、云服务、软件和平台体验,其中平台主要明确和构建用户的设备、数据、应用和人之间的数字关系,开发者将获得开放的数据模型和协议;云服务提供微软数据中心的平台;软件允许本地应用客户端离线进行云计算的交互;平台体验将用户设备、文件和应用,以及社会化图表通过feed整合在一起。
3.4 亚马逊 亚马逊2007年向开发者开放了名为“弹性计算机云”的服务,让小软件公司可以按需购买亚马逊数据中心的处理能力。其代表产品是amazon elastic compute cloud(ec2)。在ec2中,可以指定一个特定的虚拟机器,然后将应用程序部署到它上面,或者提供要在服务器上执行的虚拟计算机镜像。根据计算时间、存储和网络带宽付费。eucalyptus (elastic utility computing architecture for linking your programs to useful systems)是加利福尼亚大学为进行云计算研究而开发的项目,是amazon ec2的一个开源实现,它与商业服务接口兼容。除了以上典型的云计算的研究公司和产品以外,其它it公司也在进行云计算的研究和产品开发,限于文章篇幅,不能每个都详细讨论,在图2列出了云计算各层的主要产品。
另外有一个值得关注的云计算产品是10gen,它是一个可下载开放源代码包的云平台,用户可以用这个软件包创建自己的私有云。10gen是类似于app engine的一个软件栈,它提供与app engine类似的功能。通过10gen,可以使用python以及和ruby编程语言开发应用程序。
4 云计算发展趋势
云计算是崭新的技术,是一个研究的热点,虽然已经有了一些云计算的产品,但是云计算还处在刚刚起步的阶段,还远远没有到达成熟的阶段,面临的主要问是:
4.1 云计算的安全性 云计算面临的安全问题主要包括,用户远程登录安全、快速数据加密、数据访问安全、数据传输安全都是云计算研究的方向。
4.2 用户数据保密 随着云计算的发展和应用的推广,将会有越来越多的用户使用云计算,大量用户的数据都保存在数据中心,保护用户的商业秘密数据和个人隐私,是云计算必须解决的问题。
4.3 云计算标准制定 云计算刚刚起步,各研究机构和公司对云计算的认识和看法都不相同,现在每个公司都是依据自己对运计算的认识设计和开发自己的云计算产品。没有统一的标准,众多的云计算产品将造给用户造成使用的烦杂、混乱,也会影响到云计算的进一步发展。
4.4 云计算服务的稳定性 硬件故障、软件故障和网络故障都会造成云计算系统运行不稳定,如何检控和排除云计算中出现的各种故障是云计算一个重要的研究方向。
总之,云计算被视为计算机技术的下一次革命,它将给现在的工作方式和商业模式带来巨大改变。云计算的发展很可能改变用户使用计算机的习惯,未来的个人计算机可能仅仅用作网络连接以及使用云计算服务,那时网络就是计算机将成为现实。云计算正处在初级阶段,还需要走很长的路,还需要做很多的研究。
参考文献:
[1]邵党国.网格数据库系统的设计及应用研究.四川大学,2008-03-06.
[2]cloud computing.greg boss、padma malladi、dennis qu
an等.http://www.ibm.com/developerworks/websphere/zones/hip
ods.
[3]cloud computing. http://en.wikipedia.org/wiki/cloud_comp
uting.
[4]infrastructure as a service. http://en.wikipedia.org/wiki/infrastructure_as_a_service.
[5]platform as a service. http://en.wikipedia.org/wiki/platform_as_a_service.
[6]software as a service. http://en.wikipedia.org/wiki/software_as_a_service.