云计算

jiajia2004

贡献于2012-06-28

字数:0 关键词: 分布式/云计算/大数据

1 云计算 近年来,急速发展的互联网在极大地拓展了 PC 的用途的同时,也似乎在逐渐取代 其作为“个人计算应用核心”的位置。有观点认为,下一个十年里,包括软件、硬件、 服务等在内的计算资源,将由大众化、个人化、多点(终端)化的分布式应用不断向互联 网聚合——计算将由“端”走向“云”,最终全部聚合到云中,成为纯“云”计算的时 代。[1] 1 云计算的产生 1.1 云计算产生和发展的原因 云计算并不是一个全新的概念,但是,它却将是一项颠覆性的技术,是未来计算的 发展方向。云计算产生和发展的主要原因如下:  硬件、基础设施的发展和建设 高速发展的网络连接,芯片和磁盘驱动器产品的性能有很大的提升,价格有较大的 降低,拥有成百上千台计算机的数据中心也具备了快速为大量用户处理复杂问题的能 力,虚拟化技术日趋成熟[2]。  数据量高速增加,互联网上的信息量呈爆炸状态 各公司对数据的处理能力成为重要的部分,也是最头疼的问题。效率,能耗,管理 成本以及,人员、设备的资金投入越来越不如人意,另外互联网上的信息量呈爆炸状态, 任何一个个人计算机相比整个互联网的资源来说,都显得微不足道,而互联网上的资源 的计算、分配问题也就提上了日程。  网络发展的必然结果 Web2.0 的兴起,让网络迎来了一个新的发展高峰期。Flickr、MySpace、YouTube 等网站的访问量,已经远远超过传统门户网站。用户数量多以及用户参与程度高,是这 些网站的特点。因此,如何有效地为如此巨大的用户群体服务,让他们参与时能够享受 方便、快捷的服务,成为这些网站不得不解决的一个问题。服务成为网络的重要部分[3]。 1.2 总结 一方对计算能力的需求,而另一方能够提供这样的计算能力,于是云计算就应运 而生。云计算的出现使得超级计算能力通过互联网自由流通成为了可能。企业与个人用 户无需再投入昂贵的硬件购置成本,只需要通过互联网来购买租赁计算力,“把你的计 算机当做接入口,一切都交给互联网吧”。 2 云计算的出现激发了巨大数量的创新,它提供了按使用计费的基础设施,降低了 创新的成本和风险[4]。 2 什么是云计算 作为一种把超级计算机的能力传播到整个互联网的计算方式,云计算似乎已经成 为研究专家们苦苦追寻的“能够解决最复杂计算任务的精确方法”的最佳答案。 那究竟什么是云计算?事实上,云计算是个 2007 年第 4 季度才兴起的新名词。 对它的定义和内涵众说纷纭,虽然提出了各种各样的定义,但目前还没有公认的定义。 2.1 几个典型的云计算定义 目前,云计算还处于起步阶段,因此云计算还没有一个统一的定义,下面是几个 典型的云计算定义。  一个以数据和服务存在于大规模的可延展的数据中心并且这些数据和服务能在 任何连接在因特网上的设备随处访问的新兴计算形式。  任何在远程机器(也就是在云中)而非在本地机器或者便携设备上进行的运算。 你可以通过互联网连接获得这种计算能力。“云,指的是在天空中的那些智能的、 复杂的、强大的计算系统,而人们可以轻松地连接上这些系统。  云模式的初衷是让硬件层的消费象按需计算,按所需存储空间那样进行,而为 了让云模式带来更多力量,我们需要在整个应用架构中,在一个虚拟的环境中 实现配制,部署,服务。  云计算就是为一些需要动态改变的需要访问资源与服务。应用和服务请求的资 源来自“云”,而不是固定的有形的实体。云就是一些可以自我维护和管理的虚 拟资源[5]。 在这里不一一列举云计算的各种定义,虽然云计算的定义各种各样,但这些定义其 实体现着一个统一的思想——用户通过网络,获取云提供各种服务。 2.2 云计算定义的理解 对于云计算有一个形象的比喻:钱庄。最早人们只是把钱放在枕头底下,后来有了 钱庄,很安全,不过兑现起来比较麻烦。现在发展到银行可以到任何一个网点取钱,甚 至通过 ATM,或者国外的渠道。就像用电不需要家家装备发电机,直接从电力公司购买 一样。“云计算”带来的就是这样一种变革——由谷歌、IBM 这样的专业网络公司来搭建 计算机存储、运算中心,用户通过一根网线借助浏览器就可以很方便的访问,把“云” 做为资料存储以及应用服务的中心。 3 按照这样的理解,可以认为云计算(Cloud Computing)实际上是一种新兴的商业计 算模型。它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需 要获取计算力、存储空间和各种软件服务。 这种资源池称为“云”。“云”是一些可以自我维护和管理的虚拟计算资源,通常为 一些大型服务器集群,包括计算服务器、存储服务器、宽带资源等等。云计算将所有的 计算资源集中起来,并由软件实现自动管理,无需人为参与。这使得应用提供者无需为 繁琐的细节而烦恼,能够更加专注于自己的业务,有利于创新和降低成本[6]。 云计算是一种基于互联网的超级计算模式,它把计算任务和大量信息置于云中,这 是一种新兴的共享基础架构的方法,可以将巨大的系统池连接在一起以提供各种 IT 服 务。云计算囊括了开发,负载平衡,商业模式,以及架构,是软件业的未来模式,或者 简单地讲,云计算就是以 Internet 为中心的软件。它是一种基于 Web 的服务,目的是 让用户只为自己需要的功能付钱,同时消除传统软件在硬件,软件,专业技能方面的投 资。云计算让用户脱离技术与部署上的复杂性而获得应用[7]。 2.3 总结 云计算作为一个新概念,还需要很大程度上的发展。 3 云计算的原理 3.1 云计算的基本原理 云计算(Cloud Computing)是分布式处理(Distributed Computing)、并行处理 (Parallel Computing)和网格计算(Grid Computing)的发展,或者说是这些计算机科学 概念的商业实现。 云计算的基本原理是,通过使计算分布在大量的分布式计算机上,而非本地计算机 或远程服务器中,企业数据中心的运行将更与互联网相似。这使得企业能够将资源切换 到需要的应用上,根据需求访问计算机和存储系统。 这是一种革命性的举措,它可以使计算能力也可以作为一种商品进行流通,就像煤 气、水电一样,取用方便,费用低廉,但计算能力是通过互联网进行传输的[7]。 3.2 云计算的资源迁移 云计算实现效用计算的思想,在效用计算中,计算被看作一种公共事业。云计算也 可以和集群计算(cluster computing) 或网格计算(grid computing) 相比,集群 计算将一组相连接的计算机看作一个单独的用于高性能计算(HPC)的虚拟计算机。而 网格计算则将分布在不同地理位置的计算机连接起来解决一个共同的问题。 4 图 3-1 云计算中的资源迁移 从外部看,云计算只是将计算和存储资源从企业迁出,并迁入到云中。用户定义资 源需求(例如计算和广域网、带宽需求),云提供者在它的基础设施中虚拟地装配这些 组件。 资源发生迁移后,成本和可伸缩性的优势凸显出来。云计算使提供和管理的资源更 廉价。云计算除了降低成本外,还有更大的灵活性和可伸缩性。云计算提供者可以轻松 地扩展虚拟环境,以通过提供者的虚拟基础设施提供更大的带宽或计算资源[8]。 3.3 云计算基本框架 图 3-2 云计算基本框架图 5 如图 3-2,云计算的基本框架是一个分层的结构,低层为上层提供服务,同时上层 使用低层提供的服务。如图所示,从下向上每一层都通过虚拟化技术为上层提供服务。 在不同的层次采用相应的虚拟化技术,通过这些虚拟化技术,上层就会更容易的使用服 务。  基础管理层: 基础管理层是云存储最核心的部分,也是云计算中最难以实现的部分。基础管 理层通过集群、分布式文件系统和网格计算等技术,利用虚拟化实现云存储中多个存储 设备之间的协同工作,使多个的存储设备可以对外提供同一种服务,并提供更大更强更 好的数据访问性能。  应用接口层: 应用接口层是云存储最灵活多变的部分。不同的云存储运营单位可以根据实际 业务类型,开发不同的应用服务接口,提供不同的应用服务。比如视频监控应用平台、 IPTV 和视频点播应用平台、网络硬盘引用平台,远程数据备份应用平台等。  访问层: 任何一个授权用户都可以通过标准的公用应用接口来登录云存储系统,享受云 存储服务。云存储运营单位不同,云存储提供的访问类型和访问手段也不同[9]。 3.4 云计算服务层次 当观察云时,会发现,它实际上并不是一个单独的服务,而是一个服务集合,如图 3-3 所示。这些层定义了提供的服务的级别。 图 3-3 云计算服务层次 从最低级的服务开始,即基础设施(Infrastructure-as-a-Service 或 IaaS)。 IaaS 就是 将基础设施(计算资源和存储)作为服务出租。这意味着虚拟计算机不仅具有有保证的 6 处理能力,而且为存储和 Internet 访问预留了带宽。实际上,IaaS 具有在有特定服务 质量约束的情况下出租计算机或数据中心的能力,使之能执行任意操作系统和软件。 顺着栈往上看,上一级的服务是平台(Platform-as-a-Service 或 PaaS)。 PaaS 类似 于 IaaS,但是它包括操作系统和围绕特定应用的必需的服务。例如,除了虚拟服务器和 存储外,PaaS 还提供一个特定的操作系统和应用程序集(通常是作为一个虚拟机,即 VM,或文件,例如 VMware 的 .vmdk 格式),以及对必要的服务(例如 MySQL 数 据库或其他专用本地资源)的访问。换句话说,PaaS 就是 IaaS 加上一个用于给定应用 的定制软件栈。 最后,在图 3-3 顶部是可以提供的最简单的服务:应用程序。这一层被称作 Software-as-a-Service(SaaS),它是从一个集中的系统部署软件,使之在一台本地计算 机上(或从云中远程地)运行的一个模型。由于是计量服务,SaaS 允许出租一个应用 程序,并计时收费。 这是高度概括的云计算的视图。这个视图忽略了云的其他一些方面,例如 data-Storage-as-a-Service(dSaaS),后者以计量服务的形式提供存储,消费者按使用的 容量(使用的存储的容量)和利用率(存储的带宽需求)付费[8]。 3.5 云计算中的关键技术  虚拟化技术 云计算可以在不同的应用程序之间虚拟化和共享资源,将计算能力,数据等作为服 务放置在云中,原有的独立服务器放置在云中,利用虚拟化对外提供统一,简单的访问 方式。 7 图 3-4. 虚拟化和资源使用[8] 原有的如图 3-4 上部分所示,资源是分散,它们独立的为使用者提供服务,而在云 计算中,这些资源被整合到云中,使用者通过云提供的统一访问方式获得所需的服务。 虚拟化涉及到资源的拆分,整合以及迁移。具体的虚拟化实现形式有硬件虚拟化, 软件虚拟化和应用虚拟化。硬件虚拟化是指不需要操作系统,可直接对硬件资源进行划 分;软件虚拟化是指在操作系统之上运行一个虚拟软件层,用户可以通过这个虚拟软件 层安装多种操作系统;应用虚拟化是指运行在操作系统之上,利用软件层来屏蔽操作系 统的差异,应用运行在虚拟层之上。 不同的虚拟化实现形式,它们之间的比较如表 3-1 所示: 硬件虚拟化 软件虚拟化 应用虚拟化 文件系统 独立 独立 不独立 操作系统数量 多个 多个 单个 主操作系统 不需要 需要 需要 实施周期 慢 中等 快 应用隔离程度 完全 较强 弱 实施成本 高 中等 低 表 3-1 虚拟化实现形式比较[23] 8  自动化 云提供了一个非常庞大的系统,如果系统需要人为干预来分配和管理资源,那么它 就不能充分地满足云计算的要求,因此必须采用自动化技术,消除人工部署和管理,允 许系统自己智能地响应应用的要求。  计算能力整合 云提供了强大的计算能力,而这种计算能力仅仅靠单一的服务器无法完成,因此必 须通过整合才能获得近乎无限的计算能力,所以,计算能力的整合是云计算的一个关键。 在计算能力整合的过程中,通信以及管理成为一个至关重要的问题。因为多个服务器之 间相互配合需要通信才能实现,因此设计良好的通信机制才能保证整个系统的顺畅运 行,否则会因为如通信网络中信息过载等问题导致系统的利用率下降。 4云计算的特点与应用类型 4.1 云计算的特点 云计算最终带来的更多的是使用的便捷,所以从用户角度,云计算有着其独特的新 引力。目前,普遍认为云计算应该具有以下特点:  超大规模。 “云”具有相当的规模,Google 云计算已经拥有 100 多万台服务器, Amazon、IBM、 微软、Yahoo 等的“云”均拥有几十万台服务器。企业私有云一般拥有数百上千台服务 器。“云”能赋予用户前所未有的计算能力。  虚拟化。 云计算支持用户在任意位置、使用各种终端获取应用服务。所请求的资源来自“云”, 而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无需了解、也不用 担心应用运行的具体位置。只需要一台笔记本或者一个手机,就可以通过网络服务来实 现我们需要的一切,甚至包括超级计算这样的任务。  高可靠性。 “云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性, 使用云计算比使用本地计算机可靠。  通用性。 云计算不针对特定的应用,在“云”的支撑下可以构造出千变万化的应用,同一个 “云”可以同时支撑不同的应用运行。  高可扩展性。 9 “云”的规模可以动态伸缩,满足应用和用户规模增长的需要。  按需服务。 “云”是一个庞大的资源池,你按需购买;云可以象自来水,电,煤气那样计费。  极其廉价。 由于“云”的特殊容错措施可以采用极其廉价的节点来构成云,“云”的自动化集 中式管理使大量企业无需负担日益高昂的数据中心管理成本,“云”的通用性使资源的 利用率较之传统系统大幅提升,因此用户可以充分享受“云”的低成本优势,经常只要 花费几百美元、几天时间就能完成以前需要数万美元、数月时间才能完成的任务[6]。 上面的这些特点仅仅只是云计算表面的一些特点,而实际上,就云计算的本质而言, 云计算的主要特征应该是:第一个特征是虚拟化,第二个是多粒度和多尺度--意即灵活 的面对需求。第三个是不确定性,也就是以前说的模糊计算等等。第四个特征是软计算, 说得是如何让网络明白一些定量、定性的转换--如一些大约的量词等[11]。 目前云计算还处于起步阶段,所以对于云计算的特点也会慢慢的随着研究的深入发 展。 4.2 云计算的七种应用类型 根据目前主流云计算服务商和服务商提供的服务,一般将云计算细分如下:  SAAS(软件即服务) 这种类型的云计算通过浏览器把程序传给成千上万的用户。在用户眼中看来,这样 会省去在服务器和软件授权上的开支;从供应商角度来看,这样只需要维持一个程序就 够了,这样能够减少成本。Salesforce.com 是迄今为止这类服务最为出名的公司。SAAS 在人力资源管理程序和 ERP 中比较常用。 Google Apps 和 Zoho Office 也是类似的服务  实用计算(Utility Computing) 这个主意很早就有了,但是直到最近才在 Amazon.com、Sun、IBM 和其它提供存 储服务和虚拟服务器的公司中新生。这种云计算是为 IT 行业创造虚拟的数据中心使得 其能够把内存、I/O 设备、存储和计算能力集中起来成为一个虚拟的资源池来为整个网 络提供服务。  网络服务 同 SAAS 关系密切,网络服务提供者们能够提供 API 让开发者能够开发更多基于互 联网的应用,而不是提供单机程序。  平台即服务 10 另一种 SAAS,这种形式的云计算把开发环境作为一种服务来提供。你可以使用中 间商的设备来开发自己的程序并通过互联网和其服务器传到用户手中。  MSP(管理服务提供商) 最古老的云计算运用之一。这种应用更多的是面向 IT 行业而不是终端用户,常用 于邮件病毒扫描、程序监控等等。  商业服务平台 SAAS 和 MSP 的混合应用,该类云计算为用户和提供商之间的互动提供了一个平 台。比如用户个人开支管理系统,能够根据用户的设置来管理其开支并协调其订购的各 种服务。  互联网整合 将互联网上提供类似服务的公司整合起来,以便用户能够更方便的比较和选择自己 的服务供应商[12]。 5 云计算的优缺点 云计算作为一个新兴的概念,体现着一种理念。目前,各大厂商争相推出自己的云 计算产品,可见云计算所受的追捧程度。 5.1 云计算的优势  基于使用的支付模式。 在云计算模式下,最终用户根据使用了多少服务来付费。这为应用部署到云计算基 础架构上降低了准入门槛,让大企业和小公司都可以使用相同的服务。  扩展性和弹性。 普通企业里的许多应用(包括对应的 IT 设备)是为了最大使用场景(如圣诞季节) 而设计的,大多数时候这些基础架构的利用率非常低。而云计算环境具有大规模、无缝 扩展的特点,能自如地应对应用使用急剧增加的情况。大多数服务提供商在为云计算设 计架构时,已考虑到了使用猛增的这种情况,比如亚马逊、谷歌。不过,也可能有浑水 摸鱼的,如果遇到新生的、规模较小的提供商,就需要认真评估它们在这方面做得如何。  厂商的大力支持。 也许有些厂商只是对自己的 SaaS 或基础架构服务改名换姓,称之为“云计算”服务, 但毫无疑问,大多数厂商都在致力于提供真正的云计算解决方案。 比如亚马逊推出了 EC2、S3、SimpleDB 及其他服务,它提供云计算基础架构已经 11 有一段时间了; 与此类似的是,谷歌推出了 AppEngine、谷歌文件系统(GFS)及数据 存储(Big Table)等服务; Salesforce.com 的 Force.com 可用于构建云计算应用程序。微 软最近宣布了 Azure 服务,可以在微软(或合作伙伴)的基础架构中创建及部署应用程 序。Azure 还将提供数据、安全、工作流、消息传送和微软 Live 等服务,让企业可以在 云计算环境创建功能丰富的自定义应用。来自领导厂商的这种支持对云计算模式来说是 好兆头。  可靠性。 尽管媒体竞相报道了谷歌和亚马逊出现服务中断的事件,但从长远来看,云计算基 础架构实际上可能比典型的企业基础架构更可靠。领先的几家云服务提供商已经为各自 的系统增添了大规模冗余功能,而且它们正在吸取以前的教训,提供更高的可见性,以 减少服务不可用的可能。如果云计算服务成为核心业务后,提供商就更有条件吸取教训, 提供比任何特定企业应用程序高得多的可靠性。  效率与成本。 当云计算时代到来后,大数据量以及高的计算能力需求成为过去,这些对于用户而 言,降低了成本。用户仅仅考虑的所需要的服务,而不会去关注这些功能所需要的端系 统投资,因此对于用户构建应用时,所需的时间更少,投入更低。 让计算变得更简单。“云+端”让用户需要的仅仅是一个网络接入设备就可以获得各 种各样的服务,包括计算能力,数据存储等。这使计算本身变得更加简单,一切都由云 负责,用户无需知道关于云的任何东西[13]。 5.2 云计算的缺点  数据安全与隐私 云计算基础架构具有多租户的特性,厂商们通常无法保证 A 公司的数据与 B 公司 的数据实现物理分隔。另外,考虑到大规模扩展性方面的要求,数据物理位置可能得不 到保证。如果企业需要遵守业务交易及相关数据方面的全国或国际法规,用户可能会觉 得不放心。不过,有人认为,到时候法规可能会考虑这种大规模分布式、多租户环境。  数据访问和存储模型 无论是亚马逊的 S3 和 SimpleDB 服务,还是微软 Azure 的数据服务(Data Service), 如今提供的存储模型都需要适应许多不同的使用场景。因而,它们可能偏向采用基于二 进制大对象(blob)的简单存储模型或简单的层次模型。虽然这带来了显著的灵活性, 却给应用逻辑解释不同数据元素之间的关系增加了负担。许多依赖关系数据库结构的事 务型应用程序就不适合这种数据存储模型。 12  缺乏标准和厂商锁定 大多数厂商都定义了基于标准的机制(HTTP、REST 和 SOAP 等)来访问及使用其 服务。不过,在云计算环境开发服务方面的标准才刚刚兴起,而且现在缺乏一次编写、 到处运行的功能。 比如,使用谷歌的 AppEngine 开发应用程序的方式就与在微软 Azure 或 Force.com 上开发应用程序的方式截然不同。使用某厂商的编程模型开发的应用程序要迁移到另一 家厂商的平台上并非易事。不过,现在出现了像开放云计算联盟( Open Cloud Consortium)之类的组织,它们鼓励在云计算环境采用基于开源的软件开发,还在考虑 制订可以协同工作的标准。  处理故障 考虑到云计算应用程序具有大规模分布式的特性,要明白出现了哪些种类的故障、 出现在何处也许并非易事。因此,开发的应用程序要把处理故障当做是正常执行流程, 而不是例外情况。  经济模型 按使用付费的模型具有某些优势,但如果使用量一直很高,那么这种模式具有的经 济性就不再存在。特别是事务密集型应用如果要使用云计算,厂商就要考虑对付费实行 最高限额[13]。  离线世界 云的实现是以网络为基础,脱离了网络,处于离线世界的时候,云计算变得无能为 力。因此这也是云计算需要解决的很大问题。因此,对于云计算而言,端的作用方式仍 需要研究。 云计算模式还比较新, 所以目前云计算模式还没有完善,还存在许多问题,但云 计算所具有的优势不荣忽视,而且这些优势也是未来计算一种发展方向。 6云计算现状 云计算目前还处于萌芽阶段,有大大小小鱼龙混杂的各色厂商在开发不同的云计算 服务,从成熟的应用程序到存储服务再到垃圾邮件过滤不一而足。不错,效用模式基础 架构供应商是提供多种服务,诸如 Salesforce.com 这样的 SaaS(软件即服务)的供应商亦 是如此。如今在很大程度上,IT 业界必须个别的去接受云服务,不过云计算的开发商和 集成商已经开始初具规模。 6.1 国外的云计算现状 13 Amazon 使用弹性计算云(EC2)和简单存储服务(S3)为企业提供计算和存储服 务。收费的服务项目包括存储服务器、带宽、CPU 资源以及月租费。月租费与电话月租 费类似,存储服务器、带宽按容量收费,CPU 根据时长(小时)运算量收费。云计算是 Amazon 增长最快的业务之一。 Google 当数最大的云计算的使用者。Google 搜索引擎就建立在分布在 200 多个地 点、超过 100 万台服务器的支撑之上,这些设施的数量正在迅猛增长。Google 地球、地 图、Gmail、Docs 等也同样使用了这些基础设施。采用 Google Docs 之类的应用,用户 数据会保存在互联网上的某个位置,可以通过任何一个与互联网相连的系统十分便利地 访问这些数据。目前,Google 已经允许第三方在 Google 的云计算中通过 Google App Engine 运行大型并行应用程序。 IBM 在 2007 年 11 月推出了“改变游戏规则”的“蓝云”计算平台,为客户带来即 买即用的云计算平台。它包括一系列的自动化、自我管理和自我修复的虚拟化云计算软 件,使来自全球的应用可以访问分布式的大型服务器池。使得数据中心在类似于互联网 的环境下运行计算。IBM 正在与 17 个欧洲组织合作开展云计算项目。欧盟提供了 1.7 亿欧元做为部分资金。该计划名为 RESERVOIR,以“无障碍的资源和服务虚拟化”为 口号。2008 年 8 月, IBM 宣布将投资约 4 亿美元用于其设在北卡罗来纳州和日本东京 的云计算数据中心改造。IBM 计划在 2009 年在 10 个国家投资 3 亿美元建 13 个云计算 中心。 微软紧跟云计算步伐,于 2008 年 10 月推出了 Windows Azure 操作系统。Azure(译 为“蓝天”)是继 Windows 取代 DOS 之后,微软的又一次颠覆性转型——通过在互联网 架构上打造新云计算平台,让 Windows 真正由 PC 延伸到“蓝天”上。微软拥有全世界 数以亿计的 Windows 用户桌面和浏览器,现在它将它们连接到“蓝天”上。Azure 的底 层是微软全球基础服务系统,由遍布全球的第四代数据中心构成。 6.2 我国的云计算现状 在我国,云计算发展也非常迅猛。2008 年 5 月 10 日,IBM 在中国无锡太湖新城科 教产业园建立的中国第一个云计算中心投入运营。2008 年 6 月 24 日,IBM 在北京 IBM 中国创新中心成立了第二家中国的云计算中心——IBM 大中华区云计算中心;2008 年 11 月 28 日,广东电子工业研究院与东莞松山湖科技产业园管委会签约,广东电子工业 研究院将在东莞松山湖投资 2 亿元建立云计算平台;2008 年 12 月 30 日,阿里巴巴集团 旗下子公司阿里软件与江苏省南京市政府正式签订了 2009 年战略合作框架协议,计划 于 2009 年初在南京建立国内首个“电子商务云计算中心”,首期投资额将达上亿元人民 币;世纪互联推出了 CloudEx 产品线,包括完整的互联网主机服务"CloudEx Computing Service", 基于在线存储虚拟化的"CloudEx Storage Service",供个人及企业进行互联网云 14 端备份的数据保全服务等等系列互联网云计算服务;中国移动研究院做云计算的探索起 步较早,已经完成了云计算中心试验。中移动董事长兼 CEO 王建宙认为云计算和互联 网的移动化是未来发展方向。 我国企业创造的“云安全”概念,在国际云计算领域独树一帜。云安全通过网状的 大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息, 推送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端 [14]。 这些新的概念和技术才刚刚起步。现在有不同的机制将应用程序接入各式各样的平 台中——而这些机制还在不断地完善中。 7云计算与分布式、网格计算 7.1 云计算与分布式计算 按照计算机操作系统的宗师 Andrew S. Tanenbaum(AST)给分布式系统的的定义: “分布式系统是这样的系统,它运行在不具有共享内存的多台机器上,但在用户的眼里 却像是一台计算机”。(引自《现代操作系统》,机械工业出版社,1999 年中文版)。它的 目标是让每个用户感觉联网的计算机是一个分时系统——就像使用个人计算机一样 — —而不是一个由许多计算机联合起来的集体,即使由五个节点组成的分布式系统也应该 让用户感觉自己是在使用一台价值 20 万美元的大型计算机,唯一不寻常的感觉是处理 速度提高了许多,别的没有什么不同。例如,这里有一个简单的例子,在机器 A 的用户 要使用安装在机器 B 上用户的目录里的文件,A 用户要使用远程登录命令 rlogin B 登录 到机器 B 的目录上,那么这就不是一个真正的分布式系统,因为用户 A 意识到了另外 一台机器的存在,分布式系统必须要做到,用户 A 登录到一个目录上的时候不知道自己 是在本地机器上还是在远程机器上的目录上,对于用户 A 来说机器 B 是透明的,这就 是分布式系统设计时考虑的“透明性”要求。其他有关的问题包括:分布式文件系统的 问题,目录和文件访问机制以及一致性问题,分布式系统进程的通信问题等等。目前的 云计算严格说还没有到达真正的分布式计算的语义学水平[15]。 7.2 云计算与网格计算 当云计算的概念刚刚出现的时候,有人将云计算称做“网格 2.0”,这有一定的道理, 因为从定义上来说,二者都试图将各种 IT 资源看成一个虚拟的资源池,然后向外提供 相应的服务。 虽然从定义上二者很相似,但云计算与网格却是不同。  网格作业调度系统自动找寻与该任务相匹配的资源,然后寻找出空闲的物理 15 节点,将任务分配过去直至完成。虽然网格能够实现跨物理机进行并行作业处理, 但是需要用户先将并行算法写好,并且通过调度系统将作业分解到各个不同的物理 节点进行,这个过程相对比较复杂,这也是很多网格计算被建设用来完成特定需求 的原因。而云计算是通过虚拟化将物理机的资源进行切割,从这个角度来实现资源 的随需分配和自动增长,并且其资源的自动分配和增减不能超越物理节点本身的物 理上限。  二者的目的或者说视角也存在差异。网格计算强调的是通过特定的网格软件, 将一个庞大的项目分解为无数个相互独立的、不太相关的子任务,然后交由各个计 算节点进行计算,而云计算是想到通过互联网将数据中心的各种资源打包成服务向 外提供[16]。  网格更趋向于应用在特定的领域,如气象预测等,而云计算则更加强调应用 的普遍性,它向用户提供各方面的应用。  就目前而言,云计算实际上是通过不同厂商建造的数据中心来实现,每个厂 商自己的数据中心一般利用相同的物理设备,而网格一般是针对异构的物理设备。  云计算还处于起步阶段,到目前为止仍没有一个统一的标准,而网格是有统 一的标准。 7.3 总结 其实就像很多人大致了解的那样,网格计算与云计算的确有很多的相似之处,这两 者都能够被看成是分布式计算所衍生出来的概念,都是为了让 IT 资源能够对用户透明, 为了让 IT 资源能够达到更好的使用率[16]。 8 云计算的发展前景及影响 8.1 云计算的发展前景 云计算给 IT 企业带来的优势类似于电网。电网使公司的运营更流畅,给每户家庭 带来了更廉价的电力。 云计算就像 Ajax, 90 年代的技术却在 10 年后改变了 Web 的面貌。云计算并不算 创新,基于虚拟化,可扩展的文件系统和开源操作系统及软件。不算新东西却可永久的 改变整个产业的一部分。云是一种革新。就像上世纪 90 年代的互联网,是一种确实可 行的方法与解决方案的合集。云也会像互联网一样改变 IT 格局,甚至整个世界[17]。 不过,虽然如此,云计算目前仍存在问题。目前使用云计算并不会使企业成本大幅 下降,一些公司将会由于安全方面的担忧而不愿使用云计算服务。但不管如何,云计算 16 是一种趋势,所以即使云计算没有得到发展,而这种类似的云计算趋势仍将继续。 8.2 云计算影响 一旦云计算成熟后,它将带来工作方式和商业模式的根本性改变。 首先,云计算将赋予互联网更大的内涵并改变互联网企业的运营模式。 其次,云计算将扩大软硬件应用的外延并改变软硬件产品的应用模式。 再者,IT 产品的开发方向也将发生变化以适应上述两种情况[18]。 9 云计算开发实例 9.1 Google App Engine[19] Google App Engine 使用 CGI 标准来和网站服务器进行交互。当服务器接收到来自 你的应用程序的一个请求时,它会运行程序,根据环境变量里的请求变量以及标准的输 入流(对于 POST 的数据)。对于响应,CGI 会使用标准的输出流来输出,包括 HTTP header 和内容。 让我们首先做一个小程序以显示一则很短的信息。  创建一个简单的 Request Handler 创建一个文件夹名字叫 helloworld.。所有的这个程序的文件都放在这个目录下面。 在 helloworld 文件夹里,创建一个名字叫 helloworld.py,的文件,然后在里面输入: print 'Content-Type: text/plain' print '' print 'Hello, world!' 这段 Python 脚本代码将会对每一个 WEB 请求响应一段 HTTP header(用来描述内 容),一个空行,以及一则信息 Hello, world!。  创建配置文件 每个 App Engine 程序都有一个配置文件叫做 app.yaml。这个文件用来告诉服务器哪 一段 URLs 用哪一个 handler 代码来处理。 在 helloworld 文件夹里,创建一个名叫 app.yaml 的文件,内容如下: application: helloworld version: 1 17 runtime: python api_version: 1 handlers: - url: /.* script: helloworld.py 从上到下,这个配置文件讲了如下几个关于应用程序的内容: 这个应用程序的 ID 是 helloworld。当你在最后一步中上传你的程序时,你得选择一 个唯一的 ID,然后代替掉这个 helloworld。在调试开发阶段,这个 ID 可以是任何值。 现在,我们把它设成 helloworld。 这个程序代码的版本号是 1,如果你上传了新的版本的程序,App Engine 会保留以 前的版本,通过管理控制台,你可以将你的 App Engine 程序恢复到以前的版本。 这段代码是在 python 运行时环境下运行的,版本号是 1.其他的 runtime 环境和语言 可能会在将来得到支持。 每个符合正则表达式/.* (即所有 URLs)都将用 helloworld.py 这段代码进行处理。这 个文件的语法是 YAML.。关于完整的配置选项,参见 the app.yaml reference。  调试程序 有了处理脚本代码和用来映射 URL 的配置文件之后,这个程序就完整了。你现在 可以使用 App Engine SDK 内置的服务器测试你的程序了。 用下面的命令来启动 web 服务器,将 helloworld 的文件夹地址添加到命令后面: google_appengine/dev_appserver.py helloworld/ 这个 web 服务器现在就开始运行了,监听端口为 8080.使用下面的地址就可以在浏 览器中调试你的程序了:http://localhost:8080/  继续开发 你可以在服务器运行的时候继续开发你的程序,web 服务器会查看你的源文件的改 变,并在需要的时候重新加载。 9.2 Azure Services Platform 9.2.1 简介[20] Azure services 平台是一个基于微软数据中心的 Internet 云端服务平台,它可以支持 各种应用的云端服务,开发者可以将 web 应用,pc 系统,服务器和各种互联设备应用, 18 实现于一个框架。应用程序即可以运行在云中,也可以运行在本地系统,如图 9-1 所示: 图 9-1 Azure services 平台 9.2.2 开发 Cloud Services 的一般步骤[21]  首先,必须下载相关的 SDK,可以下载的相关资源主要包括: Windows Azure SDK Windows Azure Tools for Microsoft Visual Studio Microsoft .NET Services SDK Microsoft SQL Data Services SDK Live Framework Documentation and Resources  其次,需要申请注册申请,并应用 Invitation Token 在 Azure Services Developer Portal 获取 Windows Azure 授权。应用 Visual Studio 开发 Cloud Application 程序,并 调试编译。  在 Azure Services Developer Portal 创建新的 Project,并部署新的 Cloud Application 包和配置文件。 9.2.3 实例——hello cloud  使用 Visual Studio 2008 创建新的 应用,我们新建一个 Project,在项目模板中 选择“Cloud Service”—>”Web Cloud Service”: 19 图 9-2 创建工程  创 建 项 目 之 后 , Visual Studio 将 自 动 生 成 两 个 项 目 : Anytao.AzureServices.HelloCloud 和 Anytao.AzureServices.HelloCloud_WebRole,其 中 Anytao.AzureServices.HelloCloud_WebRole 是一个普通的 ASP .NET Web 项目,而 另一个 Anytao.AzureServices.HelloCloud 则是一个 Web Cloud Service 项目,其中包 含了 Roles 文件夹中包含了我们将发布的 Web 项 目 程 序 集 Anytao.AzureServices.HelloCloud_WebRole.dll。 20 图 9-3 项目例图 ServiceConfiguration.cscfg 文件描述了部署的相关配置信息: ServiceDefinition.csdef 描述了 InputEndpoints,LocalStorage 等配置映射信息: 21  完成 Web 项目 Anytao.AzureServices.HelloCloud_WebRole,在 Default 页面中 实现简单的输出Hello,Cloud!,此过程完全等同于在传统ASP .NET Web Application 中创建一个 Html 输出一样,当然你也可以添加一个 Button 并实现一个简单的事件, 编译运行将打开 Azure 模拟器来托管本地应用,而不是 Web 服务器。  在 Cloud 项目上右键选择“Publis„”,将登陆 Azure Services Developer Portal 准备部署应用,同时打开编辑生成的 Publish 本 地 文 件 夹 , 其 中 包 含 了 Anytao.AzureServices.HelloCloud 程序包和 ServiceConfiguration 配置文件,用于在 后续步骤中发布 Cloud 应用。  登陆打开的 Azure Services Developer Portal,点击“New Project”,创建新的 Azure Services 项目,在 Service 组件面板中选择“Windows Azure”下的“Hosted Services”选项: 图 9-4 Hosted Services”选项 在随后的创建向导步骤中,将包括同意 Team of Use 条款以及输入项目属性。 选择输入 Hosted Services 名称,同时必须保证选择名称的唯一性。该 Name 也将随 后用于发布你的 Cloud 应用时的访问域名。  导入程序包和配置文件。选择“Staging”的“Deploying”按钮,打开部署对 话框,分别选择本地 Publish 文件中的 Anytao.AzureServices.HelloCloud 程序包和 ServiceConfiguration 配置文件。 22 图 9-5 Staging Deployment 选择正确的程序包和配置文件,输入部署信息,点击“Deploy”,程序包和配 置文件将上传到我们仰慕已经的云端服务器。部署之后,我们可以选择配置来重新 导入或者修改配置信息,可以选择启动或者删除执行相应的其他操作。  将部署的应用转化为 Producation,并选择启动,至此完成整个 Hello,Cloud 的创建和部署。 图 9-6 结果 9.3 Google App Engine,Microsoft Azure 的比较 Google 利用了其对于大型数据库的研究成果并借助其内部的开发方法创建了 一个强大但略显局限的环境,而 Microsoft 凭借其在开发者方面的传统强势与其宽 泛的工具集提供了可能是最庞大的一系列服务。Google App Engine 和 Microsoft Azure 还都处于起始阶段,至于它们各自相对于对方的优势,还要看它们自己的发 展[22]。 参考文献 23 [1] 张亚勤 云计算的三个中心和五大特征. http://www.cloudcomputing-china.cn/Article/jh/200807/156.html,2008. [2] 谷歌微软 IBM 群雄逐鹿云计算 http://news.csai.cn/softnews/200805271617261309.htm 2008-5-27 [3] 王仲远 综述:云计算的历史、发展过程与未来趋势 http://industry.ccidnet.com/art/12129/20080709/1501607_2.html 2008.07.09 [4] Matthieu Hug Will Cloud-based Multi-Enterprise Information Systems Replace Extranets? http://www.infoq.com/articles/will-meis-replace-extranets [5] IT 界对云计算的 20 个定义 http://www.hx008.cn/Article/class9/200807/1472.shtml 2008-7-18 [6] 刘鹏 云计算的定义和特点 http://chinacloud.cn/show.aspx?id=741&cid=17 2009-02-15 [7] http://www.hudong.com/wiki/云计算 . [8] M. Tim Jones Linux 上的云计算 http://www.ibm.com/developerworks/cn/linux/l-cloud-computing/ 2008-10-6 [9] 什么是云存储? http://www.cloudcomputing-china.cn/Article/luilan/200811/215.html 2008-11-7 [10] 探秘:云计算 IBM“蓝云”中的存储结构 http://storage.chinabyte.com/287/8115287.shtml [11] 中国云计算委员会专家眼中的云计算 http://server.ccw.com.cn/yjzx/htm2009/20090225_593561.shtml 2009-02-25 [12] “云”到底是什么? 云计算类型细分 http://server.ccw.com.cn/yyjq/htm2008/20080429_417043.shtml 2008-04-29 [13] 云计算挑战重重 http://www.dosaas.com/index.php?option=com_content&view=article&id=4311:2009-01-15-11-36-01&cat id=3:saas&Itemid=9 2009-1-15 [14] 刘鹏 云计算发展现状 http://www.chinacloud.cn/show.aspx?id=754&cid=11 2009-02-16 [15] 云计算与分布式、并行处理以及网格计算的关系 http://blog.ixpub.net/html/95/13151495-280978.html 2008-09-04 [16] 云计算与网格计算的深入比较 http://www.chinagrid.net/dvnews/show.aspx?id=1887&cid=16 2009-1-29 [17] John Arnold Top 5 facts on cloud computing (and why it matters) http://www.capgemini.com/technology-blog/2008/10/cloud_computing_why_it_matters.php 2008-12-28 24 [18] 云计算挑战重重 http://www.dosaas.com/index.php?option=com_content&view=article&id=4311:2009-01-15-11-36-01&catid=3:saas&It emid=9 2009-1-15 [19] http://gae.kangye.org/gettingstarted/helloworld [20] Frank.Xu 揭开云计算的面纱:走近 Windows Azure http://tech.it168.com/a2009/0303/267/000000267406_1.shtml 2009-03-03 [21] Anytao 漫步云端,Azure Services Platform http://www.cnblogs.com/anytao/archive/2008/11/19/anytao_azure_01_hellocloud.html 2008-11-19 [22] Abel Avram Amazon EC2,Google App Engine,Microsoft Azure 大比拼 http://www.cnblogs.com/anytao/archive/2008/11/19/anytao_azure_01_hellocloud.htm l 2008-11-19 [23] 全面深层次解析虚拟化技术与应用 http://www.cioage.com/art/200902/78344.htm 2009-02-18

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ] 2 人已下载

下载文档

相关文档