爱啥啥啥Hadoop——(三)云计算......

云计算

云计算、物联网与大数据代表了IT领域最新的技术发展趋势,三者相辅相成,既有联系又有区别。下面将首先简要介绍云计算和物联网的概念,再分析云计算、大数据和物联网的区别与联系。

云计算的概念

        云计算实现了通过网络提供可伸缩的、廉价的分布式计算能力,用户只需要在具备网络接入条件的地方,就可以随时随地的获得所需的各种IT资源。云计算代表了一虚拟化技术为核心、以低成本为目标的、动态可扩展的网络应用基础设施,是近年来最有代表性的网络计算机技术与模式。

        云计算包括3种典型的服务模式,即Iaas( 基础设施即服务)、PaaS(平台即服务)、和 SaaS( 软件即服务 )。IaaS 将基础设施( 计算资源和存储 ) 作为服务出租,PaaS把平台作为服务出租、SaaS把软件作为服务出租。

        云计算包括公有云、私有云和混合云 3 种类型。公有云面向所有用户提供服务,只要是注册付费的用户都可以使用,比如 Amazon AWS;私有云职位特定用户提供服务,比如大型企业出于安全考虑自建的云环境,只为企业内部提供服务;混合云综合了公有云和私有云的特点,因为对于一些企业而言,一方面出于安全考虑需要把数据放在私有云中,另一方面又希望可以获得公有云的计算资源,为了获得最佳的效果,就可以把公有云和私有云进行混合搭配使用。

       可以采用云计算管理软件来构建云环境(公有云或私有云),OpenStack 就是一种非常流行的构建云环境的开源软件。OpenStack管理的资源不是单机的而是一个分布系统,他把分布的计算、存储、网络、设备、自愿组织起来,形成一个完整的云计算系统,帮助服务商和企业内部实现类似于 Amazon EC2 和 S3 的云基础构架服务。

云计算的关键技术

        云计算的关键技术包括虚拟化、分布式存储、分布式计算、多租户等。

        (1) 虚拟化

        虚拟机技术是云计算基础构架的基石,是指将一台计算机虚拟为多台逻辑计算机,在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

        虚拟化的资源可以是硬件 ( 如服务器、磁盘和网络 ),也可以是软件。以服务器虚拟化为例,它将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台互相隔离的虚拟服务器,它不再受限于物理上的界限,而是让CPU、内存、磁盘、I/O 等硬件变成可以动态管理的“资源池”,从而提高资源的利用率,简化系统管理,实现服务器整合,让IT对业务的变化更具适应力。

       Hyper-V、VMware、KVM、Virtualbox、Xen、Qemu 等都是非常典型的虚拟化技术。Hyper-V 是微软的一款虚拟化产品,旨在为用户提供成本效益更高的虚拟化基础设施软件,从而为用户降低运作成本,提高硬件利用率,优化基础设施,提高服务器的可用性。VMware(威睿) 是全球桌面到数据中心虚拟化解决方案的领导厂商。

       今年来发展起来的容器技术(如 Docker),是不同于VMware等传统虚拟化技术的一种新型轻量级虚拟化技术(也被称为“容器型虚拟化技术”)。与VMware 等传统虚拟化技术相比,Docker 容器具有启动速度快、资源利用率高、性能开销小等优点,受到业界青睐,并得到了越来越广泛的应用。

       (2)分布式存储

        面对“数据爆炸”的时代,集中式存储已经无法满足海量数据的存储需求,分布式存储应运而生。GFS(Google File System)是谷歌公司推出的一款分布式文件系统,可以满足大型、分布式、对大量数据进行访问的应用的需求。GFS 具有很好的硬件容错性,可以把数据存储到成百上千台服务器上面,并在硬件出错的情况下尽量保证数据的完整性.GFS 还支持GB 或者TB 级别超大文件的存储,一个大文件会被分成许多块,分散存储在由数百台及其组成的集群里。HDFS(Hadoop Distributed File System)是对GFS的开源实现,它采用了更加简单的“一次写入、多次读取”文件模型,文件一旦创建、写入并关闭了,之后就只能对它执行读取操作,而不能执行任何修改操作;同时,HDFS是基于Java实现的,具有强大的跨平台兼容性,只要是JDK 支持的平台都可以兼容

        谷歌公司后来又以GFS 为基础开发了分布式数据管理系统BigTable,它是一个稀疏、分布、持续多维度的排序映射数组,适合于非结构化数据存储的数据库,具有高可靠性、高性能、可伸缩等特点,可在廉价PC 服务器上搭建起大规模存储集群。HBase是针对BigTable的开源实现。

        (3)分布式计算

面对海量的数据,传统的单指令单数据流顺序执行的方式已经无法满足快速数据处理的要求;同时,我们也不能寄希望与通过硬件性能的不断提升来满足这种需求,因为晶体管电路已经逐渐接近其物理上的性能极限,摩尔定律已经开始慢慢失效,CPU 处理能力再也不会每隔18个月翻一番。在这样的大背景下,谷歌公司提供了并行编程模型MapReduce,让任何人都可以在短时间内迅速获得海量计算能力,它允许开发者在不具备并行开发经验的前提下也能够开发出分布式的并行程序,并让其同时运行在数百台机器上,在短时间内完成数量数据的计算。MapReduce 将复杂的、运行于大规模集群上的并行计算过程抽象为两个函数——Map 和 Reduce,并把一个大数据集切分成多个小的数据集,分布到不同机器上进行性并行处理,极大提高了数据处理速度,可以有效满足许多应用对海量数据的批量处理需求。Hadoop开源实现了 MapReduce 编程框架,被广泛用用与分布式计算

       (4)多租户

       多租户技术目的在于使大量用户能够共享同一堆栈的软硬件资源,每个用户按需要使用资源,能够对软件服务进行客户化配置、架构扩展和性能定制。

云计算的应用

政务云上可以部署公共安全管理、容灾备份、城市管理、应急管理、智能交通、社会保障等应用,通过集约化建设、管理和运行,可以实现信息资源整合和政务资源共享,推动政务管理创新,加快向服务型政府转型

教育云可以有效整合幼儿教育、中小学教育、高等教育以及继续教育等优质教育资源,逐步实现教育信息共享、教育资源共享及教育资源深度挖掘等目标

中小企业云能够让企业以低廉的成本建立财务、供应链、客户关系等管理应用系统,大大降低企业信息化门槛,迅速提升企业信息化水平,增强企业市场竞争力

医疗云可以推动医院与医院、医院与社区、医院与急救中心、医院与家庭之间的服务共享,并形成一套全新的医疗健康服务系统,从而有效地提高医疗保健的质量

云计算产业

         云计算产业作为战略新兴产业,近些年得到了迅速发展,形成了成熟的产业链结构,产业涵盖硬件与设备制造、基础设施运营、软件与解决方案提供商、基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)、终端设备、云安全、云计算交付/咨询/认证等环节。
        硬件与设备制造环节包括了绝大部分传统硬件制造商,这些厂商都已经在某种形式上支持虚拟化和云计算,主要包括Intel、AMD、Cisco、SUN等。基础设施运营环节八廓数据中心运营商、网络运营商、移动通信运营商等。软件与解决方案供应商主要以虚拟化管理软件为主,包括IBM 、微软、思杰、SUN、Redhat 等。IaaS将基础设施(计算和存储等资源)作为服务出租,向客户出售服务器、存储和网络设备、带宽等基础设施资源,厂商主要包括 Amazon、Rackspace、Gogrid、Gridplayer 等。PaaS把平台(包括应用设计、应用开发、应用测试、应用托管等)作为服务出租,厂商主要包括谷歌、微软、新浪、阿里巴巴等。SaaS则把软件作为服务出租,向用户提供各种应用,厂商主要包括 Salesforce、谷歌等。云安全旨在为各类云用户提供高可信的安全保障,厂商主要包括IBM、OpenStack等。云计算交付/咨询/认证环节包括了三大交付以及咨询认证服务商,这些服务商已经支持绝大多数的云计算资讯及认证服务,主要包括IBM、微软、Oracle、思杰等。

云计算的三种模式

云也是分层的

  任何一个在互联网上提供其服务的公司都可以叫做云计算公司。其实云计算分几层的,分别是Infrastructure(基础设施)-as-a-Service,Platform(平台)-as-a-Service,Software(软件)-as-a-Service。基础设施在最下端,平台在中间,软件在顶端。别的一些“软”的层可以在这些层上面添加。

IaaS: Infrastructure-as-a-Service(基础设施即服务)

  第一层叫做IaaS,有时候也叫做Hardware-as-a-Service,几年前如果你想在办公室或者公司的网站上运行一些企业应用,你需要去买服务器,或者别的高昂的硬件来控制本地应用,让你的业务运行起来。
  但是现在有IaaS,你可以将硬件外包到别的地方去。IaaS公司会提供场外服务器,存储和网络硬件,你可以租用。节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用。
  一些大的IaaS公司包括Amazon, Microsoft, VMWare, Rackspace和Red Hat.不过这些公司又都有自己的专长,比如Amazon和微软给你提供的不只是IaaS,他们还会将其计算能力出租给你来host你的网站。

PaaS: Platform-as-a-Service(平台即服务)

  第二层就是所谓的PaaS,某些时候也叫做中间件。你公司所有的开发都可以在这一层进行,节省了时间和资源。
  PaaS公司在网上提供各种开发和分发应用的解决方案,比如虚拟服务器和操作系统。这节省了你在硬件上的费用,也让分散的工作室之间的合作变得更加容易。网页应用管理,应用设计,应用虚拟主机,存储,安全以及应用开发协作工具等。
  一些大的PaaS提供者有Google App Engine,Microsoft Azure,Force.com,Heroku,Engine Yard。最近兴起的公司有AppFogMendix 和 Standing Cloud

SaaS: Software-as-a-Service(软件即服务)

  第三层也就是所谓SaaS。这一层是和你的生活每天接触的一层,大多是通过网页浏览器来接入。任何一个远程服务器上的应用都可以通过网络来运行,就是SaaS了。
  你消费的服务完全是从网页如Netflix, MOG, Google Apps, Box.net, Dropbox或者苹果的iCloud那里进入这些分类。尽管这些网页服务是用作商务和娱乐或者两者都有,但这也算是云技术的一部分。
  一些用作商务的SaaS应用包括Citrix的GoToMeeting,Cisco的WebEx,Salesforce的CRM,ADP,Workday和SuccessFactors。

Iaas和Paas之间的比较

    PaaS的主要作用是将一个开发和运行平台作为服务提供给用户,而IaaS的主要作用是提供虚拟机或者其他资源作为服务提供给用户。接下来,将在七个方面对PaaS和IaaS进行比较:

    1) 开发环境:PaaS基本都会给开发者提供一整套包括IDE在内的开发和测试环境,而IaaS方面用户主要还是沿用之前比较熟悉那套开发环境,但是因为之前那套开发环境在和云的整合方面比较欠缺,所以使用起来不是很方便。
    2) 支持的应用:因为IaaS主要是提供虚拟机,而且普通的虚拟机能支持多种操作系统,所以IaaS支持的应用的范围是非常广泛的。但如果要让一个应用能跑在某个PaaS平台不是一件轻松的事,因为不仅需要确保这个应用是基于这个平台所支持的语言,而且也要确保这个应用只能调用这个平台所支持的API,如果这个应用调用了平台所不支持的API,那么就需要对这个应用进行修改。
 3) 开放标准:虽然很多IaaS平台都存在一定的私有功能,但是由于OVF等协议的存在,使得IaaS在跨平台和避免被供应商锁定这两面是稳步前进的。而PaaS平台的情况则不容乐观,因为不论是Google的App Engine,还是Salesforce的Force.com都存在一定的私有API。
    4) 可伸缩性:PaaS平台会自动调整资源来帮助运行于其上的应用更好地应对突发流量。而IaaS平台则需要开发人员手动对资源进行调整才能应对。
    5) 整合率和经济性: PaaS平台整合率是非常高,比如PaaS的代表Google App Engine能在一台服务器上承载成千上万的应用,而普通的IaaS平台的整合率最多也不会超过100,而且普遍在10左右,使得IaaS的经济性不如PaaS。
    6) 计费和监管:因为PaaS平台在计费和监管这两方面不仅达到了IaaS平台所能企及的操作系统层面,比如,CPU和内存的使用量等,而且还能做到应用层面,比如,应用的反应时间(Response Time)或者应用所消耗的事务多少等,这将提高计费和管理的精确性。
    7) 学习难度:因为在IaaS上面开发和管理应用和现有的方式比较接近,而PaaS上面开发则有可能需要学一门新的语言或者新的框架,所以IaaS学习难度更低。

 PaaSIaaS
开发环境完善普通
支持的应用有限广
通用性欠缺稍好
可伸缩性自动伸缩手动伸缩
整合率和经济性高整合率,更经济低整合率
计费和监管精细简单
学习难度略难

表1. PaaS和IaaS之间的比较

未来的PK

    在当今云计算环境当中,IaaS是非常主流的,无论是Amazon EC2还是Linode或者Joyent等,都占有一席之地,但是随着Google的App Engine,Salesforce的Force.com还是微软的Windows Azure等PaaS平台的推出,使得PaaS也开始崭露头角。谈到这两者的未来,特别是这两者之间的竞争关系,我个人认为,短期而言,因为IaaS模式在支持的应用和学习难度这两方面的优势,使得IaaS将会在短期之内会成为开发者的首选,但是从长期而言,因为PaaS模式的高整合率所带来经济型使得如果PaaS能解决诸如通用性和支持的应用等方面的挑战,它将会替代IaaS成为开发者的“新宠”。

三种模式之间的关系

它们之间的关系主要可以从两个角度进行分析:其一是用户体验角度,从这个角度而言,它们之间关系是独立的,因为它们面对不同类型的用户。其二是技术角度,从这个角度而言,它们并不是简单的继承关系(SaaS基于PaaS,而PaaS基于IaaS),因为首先SaaS可以是基于PaaS或者直接部署于IaaS之上,其次PaaS可以构建于IaaS之上,也可以直接构建在物理资源之上。
 

-----------------------------------------------------

参考链接:http://www.cnblogs.com/beanmoon/archive/2012/12/10/2811547.html

林子雨《大数据计算原理与应用》

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值