对外经济贸易大学
论文题目
成绩 2011 — 2012学年第一学期期末作业
云计算技术应用案例分析 课程代码及课序号 CMP126-0 课程名称 信息管理概论 学 号 201136055 姓 名 王佳雯
电子邮件 hisherrie@qq.com __ 学院(系) 信息学院
专 业 电子商务(国际商务方向) 论文完成日期 1月6日
云计算技术应用案例分析 1、研究背景----云计算简介
云计算(cloud computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。“云”既是对那些网状分布计算机的比喻,也只代数据的计算过程被隐匿起来。
好比是从古老的单台发电机模式转向了电厂集中供电的模式。它以为是计算能力也尅作为一种商品进行流通,就想煤气水电一样,取用方便,费用低廉,最大的不同在于,它是通过互联网进行传输的。
2、文献综述
2.1 《云计算的关键技术与应用实例》 王鹏 著
本书从并行计算切入,全新的视角全面讲述了云计算技术,针对云计算中的大量技术架构、细节及战略问题提出了自己的看法和解决方案,并对云计算的底层技术给出了具体的模型化实现实例 ----云计算V0.01。这些内容大多数来自近期在云计算领域的研究成果和开发实际项目经验。
2.2 《云计算:技术、平台及应用案例》 雷万云 等著
介绍云计算技术平台和服务模式,列举了一些企业的云计算应用案例,并进行了详细的分析,同时对云计算深刻改变未来的前景进行展望
3、研究的案例及分析过程-----Google的云计算技术应用实例
Google的云计算技术实际上是针对Google特定的网络应用程序而定制的。针对内部网络数据规模超大的特点,Google提出了一整套基于分布式并行集群方式的基础架构,利用软件的能力来处理集群中经常发生的节点失效问题。
从2003年开始,Google连续几年在计算机系统研究领域的最顶级会议与杂志上发表论文,揭示其内部的分布式数据处理方法,向外界展示其使用的云计算核心技术。从其近几年发表的论文来看,Google使用的云计算基础架构模式包括四个相互又紧密结合在一起的系统。包括Google建立在集群之上的文件系统Google File System,针对Google应用程序的特点提出的Map/Reduce编程模式,分布式的锁机制Chubby以及Google开发的模型简化的大规模分布式数据库Big Table。
3.1 Google File System 文件系统
为了满足Google迅速增长的数据处理需求,Google设计并实现了Google文件系统(GFS,Google File System)。GFS与过去的分布式文件系统拥有许多相同的目标,例如性能、可伸缩性、可靠性以及可用性。然而,它的设计还受到Google应用负载和技术环境的影响。主要体现在以下四个方面:
1)集群中的节点失效是一种常态,而不是一种异常。由于参与运算与处理的节点数目非常庞大,通常会使用上千个节点进行共同计算,因此,每时每刻总会有节点处在失效状态。需
要通过软件程序模块,监视系统的动态运行状况,侦测错误,并且将容错以及自动恢复系统集成在系统中。
2)Google系统中的文件大小与通常文件系统中的文件大小概念不一样,文件大小通常以G字节计。另外文件系统中的文件含义与通常文件不同,一个大文件可能包含大量数目的通常意义上的小文件。所以,设计预期和参数,例如I/O操作和块尺寸都要重新考虑。 3)Google文件系统中的文件读写模式和传统的文件系统不同。在Google应用(如搜索)中对大部分文件的修改,不是覆盖原有数据,而是在文件尾追加新数据。对文件的随机写是几乎不存在的。对于这类巨大文件的访问模式,客户端对数据块缓存失去了意义,追加操作成为性能优化和原子性(把一个事务看做是一个程序。它要么被完整地执行,要么完全不执行)保证的焦点。
4)文件系统的某些具体操作不再透明,而且需要应用程序的协助完成,应用程序和文件系统API的协同设计提高了整个系统的灵活性。例如,放松了对GFS一致性模型的要求,这样不用加重应用程序的负担,就大大简化了文件系统的设计。还引入了原子性的追加操作,这样多个客户端同时进行追加的时候,就不需要额外的同步操作了。
总之,GFS是为Google应用程序本身而设计的。据称,Google已经部署了许多GFS集群。有的集群拥有超过1000个存储节点,超过300T的硬盘空间,被不同机器上的数百个客户端连续不断地频繁访问着。
在Google File System的系统架构(图1)中,一个GFS集群包含一个主服务器和多个块服务器,被多个客户端访问。文件被分割成固定尺寸的块。在每个块创建的时候,服务器分配给它一个不变的、全球惟一的位块句柄对它进行标识。块服务器把块保存在本地硬盘上,并根据指定的块句柄和字节范围来读写块数据。为了保证可靠性,每个块都会复制到多个块服务器上,缺省保存三个备份。主服务器管理文件系统所有的元数据,包括名字空间、访问控制信息和文件到块的映射信息,以及块当前所在的位置。GFS客户端代码被嵌入到每个程序里,它实现了Google文件系统 API,帮助应用程序与主服务器和块服务器通信,对数据进行读写。客户端跟主服务器交互进行元数据操作,但是所有的数据操作的通信都是直接和块服务器进行的。客户端提供的访问接口类似于POSIX接口,但有一定的修改,并不完全兼容POSIX标准。通过服务器端和客户端的联合设计,Google File System能够针对它本身的应用获得最大的性能以及可用性效果。
3.2 Map Reduce分布式编程环境
为了让内部非分布式系统方向背景的员工能够有机会将应用程序建立在大规模的集群基础之上,Google还设计并实现了一套大规模数据处理的编程规范Map/Reduce系统。这样,非分布式专业的程序编写人员也能够为大规模的集群编写应用程序而不用去顾虑集群的可靠性、可扩展性等问题。应用程序编写人员只需要将精力放在应用程序本身,而关于集群的
处理问题则交由平台来处理。
Map/Reduce通过“Map(映射)”和“Reduce(化简)”这样两个简单的概念来参加运算,用户只需要提供自己的Map函数以及Reduce函数就可以在集群上进行大规模的分布式
数据处理。
据称,Google的文本索引方法,即搜索引擎的核心部分,已经通过Map Reduce的方法进行了改写,获得了更加清晰的程序架构。在Google内部,每天有上千个Map Reduce的应
用程序在运行。
3.3 分布式大规模数据库管理系统Big Table 构建于上述两项基础之上的第三个云计算平台就是Google关于将数据库系统扩展到分布式平台上的Big Table系统。很多应用程序对于数据的组织还是非常有规则的。一般来说,数据库对于处理格式化的数据还是非常方便的,但是由于关系数据库很强的一致性要求,很难将其扩展到很大的规模。为了处理Google内部大量的格式化以及半格式化数据,Google构建了弱一致性要求的大规模数据库系统Big Table。据称,现在有很多Google的应用程
序建立在Big Table之上,例如Search History、Maps和RSS阅读器等。
图2给出了在Big Table模型中的数据模型。数据模型包括行列以及相应的时间戳,所有的数据都存放在表格中的单元里。Big Table的内容按照行来划分,将多个行组成一个
小表,保存到某一个服务器节点中。这一个小表就被称Tablet。
以上是Google内部云计算基础平台的三个主要部分,除了这三个部分之外,Google还建立了分布式程序的调度器,分布式的锁服务等一系列相关的云计算服务平台。
3.4 Google的云应用 除了上述的云计算基础设施之外,Google还在其云计算基础设施之上建立了一系列新
型网络应用程序。由于借鉴了异步网络数据传输的Web 2.0技术,这些应用程序给予用户全新的界面感受以及更加强大的多用户交互能力。其中典型的Google云计算应用程序就是Google推出的与Microsoft Office软件进行竞争的Docs网络服务程序。Google Docs是一个基于Web的工具,它有跟Microsoft Office相近的编辑界面,有一套简单易用的文档权限管理,而且它还记录下所有用户对文档所做的修改。Google Docs的这些功能令它非常适用于网上共享与协作编辑文档。Google Docs甚至可以用于监控责任清晰、目标明确的项目进度。当前,Google Docs已经推出了文档编辑、电子表格、幻灯片演示、日程管理等多个功能的编辑模块,能够替代Microsoft Office相应的一部分功能。值得注意的是,通过这种云计算方式形成的应用程序非常适合于多个用户进行共享以及协同编辑,为一个小组的人员进行共同创作带来很大的方便性。
Google Docs是云计算的一种重要应用,即可以通过浏览器的方式访问远端大规模的存储与计算服务。云计算能够为大规模的新一代网络应用打下良好的基础。
虽然Google可以说是云计算的最大实践者,但是,Google的云计算平台是私有的环境,特别是Google的云计算基础设施还没有开放出来。除了开放有限的应用程序接口,例如GWT(Google Web Toolkit)以及Google Map API等,Google并没有将云计算的内部基础设施共享给外部的用户使用,上述的所有基础设施都是私有的。
幸运的是,Google公开了其内部集群计算环境的一部分技术,使得全球的技术开发人员能够根据这一部分文档构建开源的大规模数据处理云计算基础设施,其中最有名的项目即Apache旗下的Hadoop项目。而下面的两个云计算的实现则为外部的开发人员以及中小公司提供了云计算的平台环境,使得开发者能够在云计算的基础设施之上构建自己的新型网络应用。其中IBM的蓝云计算平台是可供销售的计算平台,用户可以基于这些软硬件产品自己构建云计算平台。亚马逊的弹性计算云则是托管式的云计算平台,用户可以通过远端的操作界面直接使用。
4、研究结果总结
4.1 云计算的优势
云计算之所以是一种划时代的技术,就是因为它将数量庞大的廉价计算机放进资源池
中,用软件容错来降低硬件成本,通过将云计算设施部署在寒冷和电力资源丰富的地区来节省电力成本,通过规模化的共享使用来提高资源利用率。 它使得超级计算能力通过互联网自由流通成为了可能,企业与个人用户无需再投入昂贵的硬件购置成本,只需要通过互联网来购买租赁计算力,“把你的计算机当做接入口,一切都交给互联网吧”。
4.2 云计算与数据中心最新趋势与应用 1)软硬件与配置
2)更多的应用程序将运行在虚拟机上 3)虚拟化进一步发展 4)建立更多的数据中心 5、研究工作的评价 体会:
云计算的前景很诱人,它使得计算机的计算能力不受本地硬件的。而且云计算开发新产品拓展新市场的成本非常低。就像谷歌CEO埃里克认为,云计算意味着从PC机时代重返大型机时代。在PC即时代,PC提供了很多很好的功能和应用,现在又回到大型机的时代了。现在的大型机看不见,摸不着,不过确确实实就摆在那里,它们在云里,在天空里。
尽管使用云计算服务有种种好处,但安全问题也值得考虑。云计算意味着数据被转移到用户主权掌控范围外的机器上,也就是云计算服务提供商的手中。那么,如何保证这些数据的安全性?如何能相信服务商不会将数据出卖给商业竞争对手呢?关于云计算的安全性问题仍然值得我们深入思考。
201136055 王佳雯