云计算心得体会
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《云计算开发实践报告》
心
得
体
会
班级:通信0803
姓名:**
学号:********
时间:2011年3月29日
报告题目:《云计算开发实践》
主讲人:胡建强
主要内容:
1)云计算现状
2)云计算技术:big table,map reduce,虚拟化
3)典型云计算系统:阿里巴巴、盛大等
4)云计算开发经验
5)云计算学习与开发建议
时间:2011年3月25日上午9点
地点:西南科技大学计算机学院学术厅(东6E座二楼)
主讲人简介:
胡建强,资深程序员。1996年获得高级程序员水平证书,2005年在北京大学计算机系获理学硕士学位。先后就职于Thomson宽带研发(北京)有限公司、微软亚洲工程院、阿里巴巴云计算有限公司,任工程师、技术经理、技术专家等。
当前,信息技术已经深入到各行各业,并在提升人类管理地球智慧的过程中发挥着基础性的作用。信息技术自身同样需要变得更加智慧来应对复杂的世界,“云计算”则代表了信息技术当前发展的新阶段。从宏观的角度来看,这也是经济发展规律的必然结果。社会经济从最开始的自给自足状态,渐渐发展到社会分工和标准化的出现;然后随着规模的扩大,产业链进一步细分和重组,用户可以获得丰富多样的、高度可定制的服务和产品。信息技术也是一样,用户将逐渐告别自己购买设备,自主开发和管理的阶段,转而采用云计算技术来获得更加高性价比和个性化的信息服务。
21世纪初期,崛起的Web2.0让网络迎来了新的发展高峰。网站或者业务系统所需要处理的业务量快速增长,例如视频在线或者照片共享,这样的网站需要为用户储存和处理大量的数据。这类系统所面临的重要问题是如何在用户数量快速增长的情况下快速扩展原有系统,随着移动终端的智能化、移动宽带网络的普及,将有越来越多的移动设备进入互联网,意味着与移动终端相关的IT 系统会承受更多的负载,而列于提供数据服务的企业来讲,IT系统需要处理更多的业务量。由于资源的有限性,电力成本、空间成本、各种设施的维护成本快速上上升,这就面临着怎样有效地利用这些资源,以及如何利用更少的资源解决更多的问题。同时,随着高速网络连接的衍生,芯片和磁盘驱动器产品在功
能增强的同时,价格也在变得甘益低廉,拥有成百上千台计算机的数掂中心也具备了快速为大量用户处理复杂问题的能力。技术上,分布式计算的日益成熟和应用,特别是网格计算的发展通过Internet把分散在各处的硬件、软件、信息资源连接成为一个巨大的整体,从而使得人们能够利用地理上分散于各处的资源,完成大规模的、复杂的计算和数据处理的任务oJ。数据存储的快速增长产生了以GFS(Google File System) 、SAN(Storage Area Network)为代表的高性能存储技术。服务器整合需求的不断升温推动了Xen等虚拟化技术的进步还有Web2 0的实现,SaaS(Software as a Service)观念方兴未艾,多核技术的普及等,所有这些技术为产生更强大的计算能力和服务提供了可能。计算能力和资源利用效率的迫切需求,资源的集中化和技术的进步,推动云计算应运而生。
什么是云计算?不同的人从不同的角度来看,说法不尽相同。胡建强老师认为,就社会发展对信息技术的需求来看,云计算本质上就是面向减少初期投资、降低运营成本、实现规模效益、产生新创价值等需求而在计算技术和商业模式上的创新发展。云计算契合了当前信息系统发展的新需求,将成为大规模的智慧解决方案中的基础性信息技术,并在支持信息系统基础架构、组建操作平台、开发运行新型应用等方面提供集成的、便捷的、快速的手段。胡老师同时指出,近几年来,云计算在我国可谓风生水起,热闹非凡。然而,云计算从概念到落地实际上只能从2010年算起。在此之前只能看成是云计算的市场引入阶段。
在云计算技术方面,胡老师给我们深入的讲解了big table,map reduce,虚拟化等内容。Mapreduce,bigtable,gfs是google的三大技术基石。 Bigtable 和与之支撑的Mapreduce技术则是google高性能搜索的主要工具。而开源后的HADOOP架构又为很多爱好者提供实践及修改的平台, BIGTABLE及HBase等半结构化分布式数据库为电信及大数据仓库及数据挖掘提供了很好的基础,其具体的实现相信在发布不久的中移动“大云” 上很快就可以看见,但与传统的数据库相比是不是可以完全超越还是有不能替代的东西。
MapReduce是什么?
MapReduce基础出发点是很易懂的。它由称为map和reduce的两部分用户程序组成,然后利用框架在计算机集群上面根据需求运行多个程序实例来处理各个子任务,然后再对结果进行归并。
Map程序从输入流中读取一组“记录”,然后对记录进行需要的过滤或者转换,然后输出一组记录(key,data)。当map程序生成输出记录时,一个分割方法将记录划分为M个不相交的块并赋予一个键值。这个分割方法一般是一个hash函数,只要这个决定性的函数能够满足就行。当一个块被填充后,它将写入磁盘,map程序结束的时候每个块都将输出M个文件。
通常情况下,将有多个map的程序实例运行在计算机集群的不同的节点上。每个map实例都将由MapReduce调度程序分配一个不重复的输入文件来独立执行。如果有N个节点参与map程序执行,那么N个节点中的每个节点都将有M个文件存储在各自的磁盘上,也就是说,总共将有N*M个文件。Fi,j, 1 ≤ i ≤ N, 1 ≤ j ≤ M.
其中有个值得注意的关键点是每个map实例都必须使用一个相同的hash方法。这样,所有的拥有相同hash值的输出记录才会写入相应的输出文件。
MapReduce的第二个阶段就是执行M个reduce的程序实例。Rj, 1 ≤ j ≤ M.每个reduce实例Rj的输入文件由文件 Fi,j组成,1 ≤ i ≤ N。还有一个值得注意的是:所有从map阶段输出的拥有相同hash值的记录,无论是哪个map 实例生成的,都将由一个相同的reduce实例处理。在 map-reduce框架收集整理之后,所有的输入记录都将根据它们的键值(key)编组然后提供给reduce程序。跟map程序一样,reduce程序也可以做任意的计算。所以,你可以对输入的记录做任何你想要的事情。举例来说,可能会对记录的别的字段进行一些附加的计算。每个reduce实例都可以将记录写入输出文件,只要是MapReduce计算所需要的结果。
用SQL来做类比,map象聚合(aggregate)查询中的group-by 子句。Reduce则类似计算group-by起来的行的聚合函数(例如求平均等)。
分布式结构化数据存储系统Bigtable
Bigtable是Google开发的基于GFS和Chubby的分布式存储系统。Google 的很多数据,包括Web索引、卫星图像数据等在内的海量结构化和半结构化数据,都是存储在Bigtable中的。从实现上来看,Bigtable并没有什么全新的技术,但是如何选择合适的技术并将这些技术高效、巧妙地结合在一起恰恰是最大的难点。Google的工程师通过研究以及大量的实践,完美实现了相关技术的选择及融合。Bigtable在很多方面和数据库类似,但它并不是真正意义上的数据库。
胡建强老师还用盛大和阿里巴巴的一些现状和有趣的例子给我们分析了云计算近年来的走向。那么,云计算技术近几年来的发展情况和规模如何,未来数年就会有哪些明显的发展趋势?胡老师列出的数据为我们梳理出了一些清晰的发展脉络。
2009年中国云计算市场规模达到403.5亿元,较2008年同比增长28.0%。2009年国内云计算市场受各细分应用的快速增长,保持着稳定的较高增速。
2009年,SaaS占云计算市场规模的达87.8%,为354.2亿;PaaS、IaaS分别占到云计算整体市场的11.8%和0.4%,分别为47.6亿、1.7亿。
2011~2015年为市场成长阶段,这一阶段的特点是应用案例逐渐丰富,用户对云计算已经比较了解和认可,云计算商业应用概念开始形成等,此外,用户已经开始比较主动地考虑云计算与自身IT应用的关系。同时,云计算的发展速度会在这五年间得到迅猛的提升。