云计算

来源:互联网 发布:淘宝死神ps3 编辑:程序博客网 时间:2024/04/29 18:20

              
1云计算
云计算是并行计算(parallel computing)、分布式计算(distributed computing)和网格计算(grid computing)的发展, 又是虚拟化(virtualization)、效用计算(utilitycomputing)、IaaS( 基础设施即服务)、PaaS( 平台即服务)、SaaS(软件即服务)等概念混合演进并跃升的结果。云计算具有超大规模、虚拟化、高可靠性、通用性、高可扩展性、廉价等特点。
2.云计算的架构
云计算可以从两个视角去理解, 包括外部视角和内部视角。外部视角即客户视角,就是从使用者的角度去理解基于云计算的服务和资源的交付方式、计费方式和服务承诺;内部视角即技术视角,就是从运营商的角度去研究云计算内部实现的相关核心技术和方法。
云计算是指用虚拟化技术建造的数据中心或“超级计算机”,并以免费或按需租用的方式把计算和存储资源提供给软件开发者,同时提供的还有软件运行的应用容器环境。这些计算和存储资源可以动态部署、动态调优、动态收回。
在云计算基础设施中,各种计算资源被连接在一起形成统一的资源池,这些资源会被动态地分配给不同的应用和服务,满足它们在不同时刻的需求.云计算中最重要的概念之一就是虚拟化。虚拟化在一台共享计算机上聚集多个操作系统和应用程序,以便更好地利用服务器。虚拟化还允许在线迁移,因此,当一个服务器超载时,可以将一个操作系统的一个实例(以及它的应用程序) 迁移到一个新的、不那么繁忙的服务器上。
3.云计算模型
云计算是一种革新的计算模式,因此正确认识和理解云计算的模型至关重要。
   高度概括了云计算的栈模型视图。最底两层是以虚拟化资源的形式提供存储和计算,是云服务的基础所在。虚拟资源层之上是云服务层,它为外部应用程序编程接口提供了内部机制。云服务并不是一个单独的服务,而是一个服务集合,传统意义上对云服务采用栈分层结构,这些层定义了提供的服务的级别。
  云服务层的底层为基础设施服务层IaaS(Infrastructure-as-a-Services)。IaaS是将基础设施(计算资源和存储资源)作为服务出租。实际上, IaaS具有在特定服务质量约束的情况下出租计算机或数据中心的能力,使之能执行任意操作系统和软件,相当于提供一个中间的操作系统平台。
 上一级的服务是平台服务层PaaS(Platform-as-a-Services)。它是SaaS 技术发展的趋势,PaaS 能给客户带来更高性能、更个性化的基础硬件和软件服务。比如诸多SaaS 应用都重复建设了一些模块,如远程调用模块、分布式数据库模块、用户登录注册模块、收费模块、在线支付模块等。虽然有些SaaS 应用已经按SOA 的思想实现了这些模块的松散耦合设计,但不同应用都实现了这些模块,重复建设费用较大,而PaaS 正好可以提供这些基础设施,并提供灵活的功能配置。
云服务层的顶层为应用服务层SaaS(Software-as-a-Services) 它是云计算服务层中最为广泛的一层。它提供最为接近用户的服务:应用程序,并允许从Internet 系统环境中部署软件,使之在多租户运营平台下运行。由于是计量服务,SaaS 允许出租一个应用程序,并计时收费。云计算平台采用层次结构的优点:各层之间是独立的,结构较清楚,灵活性较好;结构上可分割开,易于实现和维护;接口开放,标准规范,便于组建和管理。
  

4.云计算的关键技术
云计算是一种新型的超级计算方式,以数据为中心,是一种数据密集型的超级计算。在数据存储、数据管理、编程模式等多方面具有自身独特的技术。同时涉及了众多其他技术,如表3所示。本章主要介绍云计算特有的技术,包括数据存储技术,数据管理技术,编程模式等。其他相关技术请阅读给出的参考文献。
4.1数据存储技术
为保证高可用、高可靠和经济性,云计算采用分布式存储的方式来存储数据,采用冗余存储的方式来保证存储数据的可靠性,即为同一份数据存储多个副本。另外,云计算系统需要同时满足大量用户的需求,并行地为大量用户提供服务。因此,云计算的数据存储技术必须具有高吞吐率和高传输率的特点。
云计算的数据存储技术主要有谷歌的非开源的GFS(Google File System)和Hadoop开发团队开发的GFS的开源实现HDFS(Hadoop Distributed File System)。大部分IT厂商,包括雅虎、英特尔的“云”计划采用的都是HDFS的数据存储技术。
云计算的数据存储技术未来的发展将集中在超大规模的数据存储、数据加密和安全性保证以及继续提高I/O速率等方面。
4.2数据管理技术
云计算的特点是对海量的数据存储、读取后进行大量的分析,数据的读操作频率远大于数据的更新频率,云中的数据管理是一种读优化的数据管理。因此,云系统的数据管理往往采用数据库领域中列存储的数据管理模式。将表按列划分后存储。云计算的数据管理技术中最著名的是谷歌在文献提出的BigTable数据管理技术。由于采用列存储的方式管理数据,如何提高数据的更新速率以及进一步提高随机读速率是未来的数据管理技术必须解决的问题。

4.3编程框架
为了使用户能更轻松地享受云计算带来的服务,让用户能利用该编程模型编写简单的程序来实现特定的目的,云计算上的编程模型必须十分简单。必须保证后台复杂的并行执行和任务调度向用户和编程人员透明。
云计算大部分采用Map-Reduce的编程模式。现在大部分IT厂商提出的“云”计划中采用的编程模型,都是基于Map-Reduce的思想开发的编程工具。Map-Reduce不仅仅是一种编程模型,同时也是一种高效的任务调度模型。Map-Reduce这种编程模型并不仅适用于云计算,在多核和多处理器以及异构机群上同样有良好的性能。
Map-Reduce是一种处理和产生大规模数据集的编程模型,程序员在Map函数中指定对各分块数据的处理过程,在Reduce函数中指定如何对分块数据处理的中间结果进行归约。用户只需要指定map 和reduce函数来编写分布式的并行程序。当在集群上运行Map-Reduce程序时,程序员不需要关心如何将输入的数据分块、分配和调度,同时系统还将处理集群内节点失败以及节点间通信的管理等。

Map-Reduce模型具有很强的容错性,当worker节点出现错误时,只需要将该worker节点屏蔽在系统外等待修复,并将该worker上执行的程序迁移到其他worker上重新执行,同时将该迁移信息通过Master发送给需要该节点处理结果的节点。Map-Reduce使用检查点的方式来处理Master出错失败的问题,当Master出现错误时,可以根据最近的一个检查点重新选择一个节点作为Master并由此检查点位置继续运行。
Map-Reduce作为一种较为流行的云计算编程模型,在云计算系统中应用广阔。但是基于它的开发工具Hadoop 并不完善。特别是其调度算法过于简单,判断需要进行推测执行的任务的算法造成过多任务需要推测执行,降低了整个系统的性能。改进Map-Reduce的开发工具,包括任务调度器、底层数据存储系统、输入数据切分、监控“云”系统等方面是将来一段时间的主要发展方向。

5.结束语
有了云计算,涉众用户无需自购软、硬件,甚至无需知道是谁提供的服务,只关注自己真正需要什么样的资源或者得到什么样的服务。因此对用户来说,云计算带来的是一种焕然一新的软件使用上的变革。软件的使用方式从“为我所有”转变为“为我所用”,无需浪费时间在软硬件的使用和管理上,只需选择合适的服务;使用手段从“特定环境”转变为“随时随地”,任何时间任何地点用任何可以接入到互联网的设备访问服务;软件开销从“固定昂贵的开销”转变为“按需实时消费”,节省了成本。这些转变让我们深刻认识到各大IT 巨头对云计算投入的不遗余力,同时也验证了云计算的不可阻挡。

                                                  如需下载 请点击http://wenku.it168.com/d_000006440.shtml

原创粉丝点击