云计算:构建基于互联网的应用
来源:用户上传
作者: 陈 康 郑纬民
云计算是能够提供动态资源池、虚拟化和高可用性的下一代计算平台。如果说互联网应用服务公司亚马逊(Amazon)、Google对云计算的探索展示了其作为一种新型计算模式在互联网应用方面的潜力,而传统IT公司IBM、微软等巨头的介入则表明了云计算对更广泛和庞大的领域―传统企业级应用的渗透。
什么是云计算
IBM公司于2007年年底宣布云计算计划,云计算的概念仿佛在一夜间就出现在大众的面前,对于云计算的各方解读也众说纷纭。
在展开对云计算的具体实现技术的讨论之前,先让我们看一下云计算的一些基本概念。首先需要回答什么是云计算。
在IBM的技术白皮书“Cloud Computing”中,我们可以看到如下的定义: “云计算”一词同时用来描述一个系统平台或者一种类型的应用程序。一个云计算的平台可按需进行动态的供给(provision)、配置(configuration)、重新配置(reconfigure)以及取消服务(deprovision)等。在云计算平台中的服务器可以是物理的服务器或者虚拟的服务器。高级的计算云通常包含一些其他的计算资源,例如存储区域网络(SANs)、网络设备、防火墙以及其他的安全设备等。
云计算的本质
在应用方面,云计算描述了一种可以通过互联网进行访问的可扩展的应用程序。“云应用”使用大规模的数据中心以及功能强劲的服务器来运行网络应用程序与网络服务。任何一个用户通过合适的互联网接入设备以及一个标准的浏览器都能够访问一个云计算应用程序。
从IBM的定义中我们看到,云计算的含义有两个方面。它一方面描述了一种方便的基础设施,用来构造应用程序,其地位相当于PC机上的操作系统; 另外一方面则描述了建立在这种基础设施之上的云计算应用。一个计算云是虚拟化的计算资源池,用来容纳各种不同的工作模式,并且这些工作模式可以通过快速部署的方式部署到物理设施上。由于使用了分布式的计算技术,云计算能够将计算扩展到更多的计算资源,以及使用冗余的资源进行容错处理。
在IBM的白皮书中我们还可以看到,云计算能够通过快速提供物理以及虚拟服务器来支持网格应用的运行。网格程序能够将一个大的任务分解成很多小的任务并行地运行在不同的集群以及服务器上。我们可以把云计算看做是一个具有更广泛含义的计算平台,除了能够支持网格的应用之外,云计算还能够支持非网格的应用,例如在网络服务程序中的网络服务器、应用服务器和数据库服务器三层应用程序架构模式。特别值得注意的是云计算模型支持当前Web 2.0模式的网络应用程序。云计算是能够提供动态资源池、虚拟化和高可用性的下一代计算平台。
几种典型云计算平台
当前,工业界已经有很多公司聚集在云计算这样一个新型计算概念下面,分别提出了自己针对云计算的理解,用不同的技术来实现上述目标,主要包括下面重要的云计算实现系统。
亚马逊的弹性计算云。事实上,网络零售商亚马逊公司是最早也是一个非常重要的云计算实践者之一。亚马逊公司在构建自身零售平台的时候,也使用了云计算的方法,将自己的购物平台构建在其基础之上。亚马逊公司将自己的云计算平台开放给外部开发人员使用,建立了弹性计算云(Elastic Compute Cloud,EC2),使得独立的开发人员也能够使用亚马逊公司内部的计算资源来建立自己的网络应用程序。
Google的云计算平台及其云计算网络应用程序。主要包括Google针对云计算提出的大规模分布式计算的基础架构以及Google在此基础之上构造的云计算应用服务程序。Google将自己的整个基础计算平台以及相应的应用称为云计算,并且成为云计算最大的实践者。
IBM公司在与Google的合作过程中,提出了自己对于云计算的理解以及相应的技术解决方案。IBM公司于2007年11月15日在上海宣布了蓝云“Blue Cloud”计划,使得公司内部的数据中心能够按照互联网应用服务程序的形式进行组织,将计算能力分配到分布式全局可以访问的资源组织中,而不是局限于本地的一些服务节点或者固定远端的服务器机群中。IBM在云计算的白皮书中也提出了蓝云计划的基础设施结构,这些基础设施结构构建在IBM本身的x服务器之上。在蓝云中采用了Xen的系统级虚拟化方法,同时提供虚拟化的服务器以及物理服务器的计算资源。在IBM的云计算架构中也采用了类似于Google进行大规模数据处理的基础设施,在其蓝云计算环境中部署了Goolge File System 以及MapReduce用以实现Hadoop。Hadoop是Apache旗下的一款有关大规模数据的开源软件,Yahoo在其中做出了不少贡献。
未来展望
当前已经有很多公司参与到云计算的研究与发展当中。
Yahoo公司就参与了云计算平台Hadoop的开发,雇佣了Hadoop软件的创始人员,并且为此软件贡献了很多代码。同时为了测试与部署Hadoop系统,在Yahoo公司内部也使用了Hadoop软件,建立了世界上最大的Hadoop集群系统,这个集群系统包含了1万个Linux节点,规模还是很大的。现在,Yahoo公司的很多应用程序都构建在云计算平台之上。而上述的最大Hadoop平台则用来计算网络搜索的页面连接图,处理海量的数据。
微软自然也不甘落后,与Google类似,微软重构了自己的搜索引擎平台。除此之外,微软也构建了自己的云计算平台,并在此平台之上推出了云计算的应用。与Google类似,微软的云计算平台只是为自己的网络应用程序服务,现在还没有看到相应的云计算软件模块公开出来以帮助其他开发商构建云计算平台。微软的网络平台服务Windows Live就可以看成是云计算应用的一个典型,它是一个Web 2.0应用程序形式的云计算用户平台。用户在这个应用平台上可以进行照片的共享,文件的存储以及运行其他的应用程序。这些应用都建立在新型的云计算平台之上,也是微软针对网络实施的重大战略之一。在Live平台上,用户可以访问自己的电子邮件,可以使用SkyDrive来存储数据以及构建自己的网络发布平台等。
另外,硬件公司Dell提供了DCS(Dell Cloud Computing Solution)解决方案,帮助用户构建云计算平台,该解决方案能够降低数据中心的运维成本,提升计算速度、简化数据中心管理,具有良好的可扩展性。软件公司RedHat则与亚马逊公司合作,在亚马逊公司的弹性计算云中部署了RedHat Enterprise Linux,并通过虚拟化的方式部署整个弹性计算云平台。
在云计算研究方面,在Google与IBM的支持下,美国的多所大学参与到云计算中来,包括6所非常著名的大学: 卡内基•梅隆大学、麻省理工学院、斯坦福大学、加州大学伯克利分校、马里兰大学和华盛顿大学。
Google在去年年底之前投入了一个小的计算中心,计算中心的地点未知,但在规模上会超过1600颗处理器。同时,IBM公司也将为这一项创新计划配置一个数据中心。这些中心将运行Google数据中心软件的开源版本,IBM也会提供开源的软件来帮助学生编写互联网应用程序以及相关的数据中心管理软件。虽然说这些数据中心的规模相对于Google内部的集群来说还是非常小的,但是已经开始做一些互联网规模的研究了。两家公司将在前未来年共同投入3000万美元来促进相关的研究工作。
随着越来越多的参与者加入到云计算的研究与发展中,云计算会出现一些新的结构模式,为开发者提供优秀的开发平台,建立下一代的网络应用程序,同时也为用户提供更加优秀的网络应用。
转载注明来源:https://www.xzbu.com/8/view-1079076.htm