云计算的目标是将计算和存储简化为像公共的水和电一样易用的资源,用户只要连上网络即可方便地使用,按量付费。

云计算提供了灵活的计算能力和高效的海量数据分析方法,企业不需要构建自己专用的数据中心就可以在云平台上运行各种各样的业务系统。

 

2013年云计算服务超过整体IT消费的10%,年收益高达442亿美元。在未来的5年内,平均年幅度将达26%。核心技术进步和新的应用模式、业务模式的结合,激荡出革命性的技术和产业进步。

 

云计算领域里包含了多个层级– 应用层或软件即服务(SaaS),中间件层或平台即服务(Platform-as-a-service),以及灵活的云基础架构层或基础架构即服务(Infrasturcture-as-a-service)。

 

云计算概念被提出以后并行计算技术和虚拟化技术成为其核心支撑技术,并行计算中的“单一系统映像技术”实际也反映系统虚拟化的思想,所以从广义来看并行计算技术本身可能包括虚拟化技术。

 

云计算技术的出现是并行计算技术、软件技术、网络技术发展的必然结果。

 

云计算的萌芽应该从计算机的并行化开始,并行化的出现是人们不满足于CPU摩尔定律的增长速度,希望把多个计算机并联起来,从而获得更快的计算速度。这是一种很简单也很朴素的实现高速计算的方法。并行计算的提出主要是为了满足科学和技术领域的专业需要,其应用领域也基本限于科学领域,后来出现的网格计算等虽然有走向普通用户的趋势但最后还是主要用于科学计算。并行计算技术成为了各国的战略性技术,并行计算能力成为衡量一个国家科技实力的重要参考数据。美国在高性能并行计算机领域处于绝对领先的地位。

 

在并行计算的时代,人们极力追求的是高速计算、采用昂贵的服务器,一台大型机如果在3年左右不能得到有效的利用就远远的落后了,巨额投资无法收回。而云计算时代我们并不去追求实用昂贵的服务器,云中心的计算力和存储力可随着需要逐步增加,云计算的基础架构支持这一动态增加的方式。

 

Sun公司最早提出了“网络就是计算机”的理念,这是对云计算的一个最初描述和定义。

 

云计算时代用户将严重依赖网络,由于终端功能已降到最低,失去了网络的支持终端可能连运行字处理软件的能力都没有,所以也许云计算时代最大的获益者会是网络设备提供商。并行计算到云计算的转变是网络发展的必然结果,网络就像自来水的水管,只有水管通畅才能按需向用户提供服务。

 

最初计算资源集中于机房,那是还没有网络,使用者需要到计算中心完成自己的工作,计算机的操作着往往是专业的数学家,随着计算机从电子管发展到晶体管再到超大规模集成电路,计算机的功能越来越强,体积越来越小,计算机逐步走到了每个人的身边。到了1998年一家名叫Google的公司成立了,10多年过去后大家发现Google采用的技术其实就是云计算技术的一部分,用户在搜索框中提出的查询请求,Google会有大量的服务器对其进行响应。Google成为了世界第一大的信息库和知识库。云计算同样采用的是“合”的模式,用户通过不同的终端来获得服务器端强大的计算、存储和应用程序资源。我们认为并行技术加上网络的发展共同催生了云计算。

 

自己PC机利用率很低,CPU和存储空间在大量时间里是闲置的,这种矛盾是“分”存在的问题。云计算的重要特征就是按需服务、按需付费,我们只在需要的时候才会向云中心请求计算及服务,使用完后就立即释放资源,由云中心再分配给其他终端使用。这样降低了对用户终端的要求,一个采用嵌入式芯片的终端就能承担用户终端的功能。

 

Google提出的云计算强调云的重要性,因为Google从来就没有端;微软公司强调“云”+“端”;VMWARE认为虚拟化是云计算的核心技术;SUN认为“网络就是计算机”;Adobe通过Flex占领用户的眼球;大量的服务器托管公司也将服务器的租用称为云计算。

 

云计算需要解决:计算资源的透明虚拟化和弹性化、内存储资源的透明虚拟化和弹性化、外存储资源的透明虚拟化和弹性化、数据安全的保障、向开发者提供完善的API并实现终端用户向云计算的平滑过渡等。

 

并行计算现在的代表性技术是MPI,1994年5月MPI(Message Passing Interface)标准的1.0版本诞生,该标准提出了一种基于消息传递的函数接口描述。MPI标准的制定就是为了自然科学学者实现高速计算。MPI并没有像Hadoop一样以一种架构形式发布正式由于其背后的真正推动着是自然科学家而不是IT工程师,MPI只是向设计者提供了一种节点间信息沟通的工具,开发者可以以自己愿意的任何架构来实现功能,自然科学家特别是物理学家是很少人为地提出架构这类东西的,他们更愿意不受架构的约束探索自然的基本规律。我们可以用MPI实现Hadoop中的Map/Reduce的功能。

 

Hadoop是由Apache SoftwareFoundation支持的一个可靠、可伸缩的开源分布式计算框架项目。Hadoop从其开发者和做法上深深滴体现了IT工程师的风格,十分偏爱架构或框架,就像现在典型的J2EE、.NET等都是以架构的形式出现的。采用架构能大大的简化开发的难度,屏蔽系统底层的复杂性提高开发速度,然后带来的副作用是不灵活、系统效率低下。

 

事实上在Hadoop中我们能找到很多MPI的影子,如Hadoop中文件系统和Map/Reduce处理是主从结构的,而主从结构也是MPI并行程序的一种重要设计方法;Hadoop认为节点可以采用廉价服务器将失效作为系统常态,在MPI并行机群系统部署中专门有一种名叫Beowulf的机群就特指采用普通PC等商品化廉价设备架设的并行计算集群;MPI从1.0版本开始就有MPI_Reduce()函数实现各节点间数据的归约操作,并还提供了很多高级的归约函数。

 

像冰箱、洗衣机这种非浏览器的终端,它们可以通过云端来实现对它们的控制功能,从而大大提升它们的智能水平。所以我们认为,云计算的一个重要的服务对象,除了通过浏览器、PC机来对用户提供服务之外,大量的非浏览器的终端,仍然是云计算需要服务的对象。

 

基于浏览器的操作系统。非浏览器设备需要一些简单的控制功能,将它的状态传送到云端,然后云端通过智能程序对其进行处理以后,将控制指令传递给这类非浏览器设备,比如洗衣机、冰箱等,从而完成对非浏览器终端的智能化控制。运行在这种终端上的操作系统,功能可以非常弱。

 

 

在MPI中我们也需要建立单一的系统映像,从而让使用者不用考虑集群内部的复杂性,这就是被云计算称为虚拟化的核心技术。

 

MPI没有提供分布式文件系统:MPI是种基于消息传递机制的并行编程标准,它为程序设计者提供了丰富而方便的通信函数。MPI虽然能提供方便的并行计算能力,并且能在各个计算节点间进行数据交换,然后却没有一个分布式的文件系统在MPI的底层对其进行支持,对于数据密集型的应用有些吃力,大量的数据需要在节点间进行交换,网络通信时间将成为影响系统性能重要因素,在MPI中计算与数据的存储是分开的,子节点往往只负责计算工作,所有的数据都需要从主节点通过网络传向子节点,只有有分布式文件系统的支持才能实现计算向存储的迁移,将计算和存储都放在同一个节点上。

 

MPI无法应对节点的失效:MPI在设计之初是面向高性能服务器,从设计理念上架设了服务器是不会失效的,所有节点和网络通信在计算过程是可以保证正常的。从根本上分析,MPI无法应用节点失效的问题原因还是由于没有分布式文件系统的支持特别是带有数据块备份能力的分布式文件系统。

 

单独的弹性存储和弹性计算并不是真正的云计算,计算和存储是分不开的。

 

1956年John McCarthy首次提出了Lisp语言的构想,而在Lisp语言中就包含了现在我们所采用的Map/Reduce功能。Lisp语言是一种用于人工智能领域的语言,在人工智能领域有很多的应用。存储能力和计算力是云计算的两大重要话题,海量的存储和高速的计算分析也是实现人工智能的重要途径。云计算从人工智能的角度看实际上就是要构建一庞大的智能体,并向用户提供方便的服务,因此云计算采用map/reduce也是对的。

 

Hadoop设计时有以下的几点架设:服务器失效是常态;存储和处理海量数据;文件不会被频繁地写入和修改;机柜内的数据传输速度大于机柜间的数据传输速度;海量数据的情况下移动计算比移动数据更高效。

 

MPI是计算与存储分离,Hadoop是计算向存储迁移。

 

在MPI中数据存储的节点和数据处理的节点往往是不同的,一般在每次计算开始时MPI需要从数据存储节点读取需要处理的数据分配给各个计算节点对数据进行处理,因此MPI中数据存储和数据处理是分离的。

 

在Hadoop中由于有HDFS文件系统的支持,数据是分布式存储在各个节点的,计算时各节点读取存储在自己节点的数据进行处理,从而避免了大量数据在网络上的传递,实现“计算向存储的迁移”。

 

Google推出了Google应用软件引擎(GoogleApp Engine),这种服务让开发人员可以基于云计算环境编写应用程序,并可免费使用Google的基础设施来进行存储。Google云计算的优势在于,所有的应用程序都可以存在于云计算中,用户永远都不需要安装任何东西,不需要管理软件升级和安全补丁。GAE是一个由Python应用服务器群,BigTable数据库及GFS数据存储服务组成的平台。

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐