Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2214164
  • 博文数量: 436
  • 博客积分: 9833
  • 博客等级: 中将
  • 技术积分: 5558
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-29 10:27
文章存档

2013年(47)

2012年(79)

2011年(192)

2010年(118)

分类: 云计算

2011-09-25 19:12:30

进一步了解云计算

组长:万虎
成员:万虎、牛庆亚、宋思梦、文滔、胡海砷

 

  云计算架构服务层

 

尽管在互联网的第一次革命中三层 ( n ) 模型作为一般架构出现,但虚拟化在云中的应用创造出一组新层:应用程序、服务和基础设施。这些层不只封装按需提供的资源,而且还定义了一个新的应用程序开发模式。同时在每个抽象层中,存在定义根据使用情况提供的服务的无数商业机会。

1、把软件当作服务 (SaaS)

SaaS 是最高层,其特色是包含一个通过多重租用 (Multitenancy) 根据需要作为一项服务提供的完整应用程序。所谓“多重租用”是指单个软件实例运行于提供商的基础设施,并为多个客户机构提供服务。

最为人所知的 SaaS 示例是 Salesforce.com,不过现在有了许多其他示例,其中包括Google Apps,提供基本商业服务,如电子邮件。当然,Salesforce.com 的多重租用应用程序领先于云计算的定义好几年时间。另一方面,就像云计算中的许多其他层一样,Salesforce.com 现在的 Force.com 版本不只在一个云层工作,Force.com 是一个辅助性应用程序开发环境,或当作服务的平台。

2、把平台当作服务 (PaaS)

中间层 ( PaaS) 是对开发环境抽象的封装和对有效服务负载的封装。原形有效负载是一个 Xen 映像 (Amazon Web 服务的组成部分),该映像包含一个基本 Web (例如,一个 Linux 发行套件、一个 Web 服务器,以及一个编程环境,如 Pearl Ruby)PaaS 产品可执行各个阶段的软件开发和测试,也可以专用于某个领域,例如,内容管理。商业示例包括 Google App Engine,它在 Google 的基础设施上提供应用程序服务。上述PaaS 服务可以提供极大的灵活性,但可能会受到通过供应商提供的能力的制约。

3、把基础设施当作服务 (IaaS)

把基础设施当作服务 (IaaS) 处于最低层级,而且是一种作为标准化服务在网上提供基本存储和计算能力的手段。服务器、存储系统、交换机、路由器和其他系统协作 (例如,通过虚拟化技术) 处理特定类型的工作负载 — 从批处理到峰值负载期间的服务器/存储扩大。

最著名的商业示例是 Amazon Web 服务 (AWS),其 EC2 S3 服务分别提供基本计算和存储服务。另一个示例是 Joyent,其主要产品是一系列虚拟化服务器,这些服务器提供运行网站的高度可扩展的随需应变基础设施,包括用 Ruby on RailsPHPPython Java 编写的丰富 Web 应用程序。

 

 

  云计算的一种实现形式Hadoop

 

Hadoop作为云计算的重要实现形式,在此简单介绍一下。

Hadoop框架中最核心的设计就是:MapReduce HDFSMapReduce 的思想是由Google的一篇论文所提及而被广为流传的, 简单的一句话解释MapReduce就是任务的分解与结果的汇总HDFS Hadoop分布式文件系统(Hadoop Distributed File System)的缩写,为分布式计算存储提供了底层支持。

MapReduce从它名字上来看就大致可以看出个缘由,两个动词MapReduce“Map(展开)就是将一个任务分解成为多个任务,“Reduce”就是将分解后多任务处理的结果汇总起来,得出最后的分析结果。这不是什么新思想,其实在前面提到的多线程,多任务的设计就可以找到这种思想的影子。不论是现实社会,还是在程序设计中,一项工作往往可以被拆分成为多个任务,任务之间的关系可以分为两种:一种是不相关的任务,可以并行执行;另一种是任务之间有相互的依赖,先后顺序不能够颠倒,这类任务是无法并行处理的。回到大学时期,教授上课时让大家去分析关键路径,无非就是找最省时的任务分解执行方式。在分布式系统中,机器集群就可以看作硬件资源池,将并行的任务拆分,然后交由每一个空闲机器资源去处理,能够极大地提高计算效率,同时这种资源无关性,对于计算集群的扩展无疑提供了最好的设计保证。任务分解处理以后,那就需要将处理以后的结果再汇总起来,这就是Reduce要做的工作。

 

                                                        MapReduce结构示意图

 

上图就是MapReduce 大致的结构图,在Map前还可能会对输入的数据有Split(分割)的过程,保证任务并行效率,在Map之后还会有Shuffle(混合)的过程,对于提高Reduce的效率以及减小数据传输的压力有很大的帮助。后面会具体提及这些部分的细节。HDFS 是分布式计算的存储基石,Hadoop的分布式文件系统和其他分布式文件系统有很多类似的特质。分布式文件系统基本的几个特点:

1. 对于整个集群有单一的命名空间。

2. 数据一致性。适合一次写入多次读取的模型,客户端在文件没有被成功创建之前无法看到文件存在。

3. 文件会被分割成多个文件块,每个文件块被分配存储到数据节点上,而且根据配置会由复制文件块来保证数据的安全性。

阅读(1244) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~