云计算技术的产生、概念、原理和前景

        2006年谷歌推出了“Google 101计划”,并正式提出“云”的概念和理论。随后亚马逊、微软、惠普、雅虎、英特尔、IBM等公司都宣布了本身的“云计划”,云安全、云存储、内部云、外部云、公共云、私有云……一堆让人眼花缭乱的概念在不断冲击人们的神经。那么到底什么是云计算技术呢?对云计算技术的产生、概念、原理、应用和前景又在哪里? java

  1、云计算思想的产生python

  传统模式下,企业创建一套IT系统不只仅须要购买硬件等基础设施,还有买软件的许可证,须要专门的人员维护。当企业的规模扩大时还要继续升级各类软硬件设施以知足须要。对于企业来讲,计算机等硬件和软件自己并不是他们真正须要的,它们仅仅是完成工做、提供效率的工具而已。对我的来讲,咱们想正常使用电脑须要安装许多软件,而许多软件是收费的,对不常用该软件的用户来讲购买是很是不划算的。可不能够有这样的服务,可以提供咱们须要的全部软件供咱们租用?这样咱们只须要在用时付少许“租金”便可“租用”到这些软件服务,为咱们节省许多购买软硬件的资金。算法

  咱们天天都要用电,但咱们不是每家自备发电机,它由电厂集中提供;咱们天天都要用自来水,但咱们不是每家都有井,它由自来水厂集中提供。这种模式极大得节约了资源,方便了咱们的生活。面对计算机给咱们带来的困扰,咱们可不能够像使用水和电同样使用计算机资源?这些想法最终致使了云计算的产生。数据库

  云计算的最终目标是将计算、服务和应用做为一种公共设施提供给公众,令人们可以像使用水、电、煤气和电话那样使用计算机资源。编程

  云计算模式即为电厂集中供电模式。在云计算模式下,用户的计算机会变的十分简单,或许不大的内存、不须要硬盘和各类应用软件,就能够知足咱们的需求,由于用户的计算机除了经过浏览器给“云”发送指令和接受数据外基本上什么都不用作即可以使用云服务提供商的计算资源、存储空间和各类应用软件。这就像链接“显示器” 和“主机”的电线无限长,从而能够把显示器放在使用者的面前,而主机放在远到甚至计算机使用者本人也不知道的地方。云计算把链接“显示器”和“主机”的电线变成了网络,把“主机”变成云服务提供商的服务器集群。后端

  在云计算环境下,用户的使用观念也会发生完全的变化:从“购买产品”到“购买服务”转变,由于他们直接面对的将再也不是复杂的硬件和软件,而是最终的服务。用户不须要拥有看得见、摸得着的硬件设施,也不须要为机房支付设备供电、空调制冷、专人维护等等费用,而且不须要等待漫长的供货周期、项目实施等冗长的时间,只须要把钱汇给云计算服务提供商,咱们将会立刻获得须要的服务。浏览器

  2、云计算的概念安全

  云计算(Cloud Computing)是由分布式计算(Distributed Computing)、并行处理(Parallel Computing)、网格计算(Grid Computing)发展来的,是一种新兴的商业计算模型。目前,对于云计算的认识在不断的发展变化,云计算没仍没有广泛一致的定义。服务器

  中国网格计算、云计算专家刘鹏给出以下定义 :“云计算将计算任务分布在大量计算机构成的资源池上,使各类应用系统可以根据须要获取计算力、存储空间和各类软件服务”。网络

  狭义的云计算指的是厂商经过分布式计算和虚拟化技术搭建数据中心或超级计算机,以避免费或按需租用方式向技术开发者或者企业客户提供数据存储、分析以及科学计算等服务,好比亚马逊数据仓库出租生意。

  广义的云计算指厂商经过创建网络服务器集群,向各类不一样类型客户提供在线软件服务、硬件租借、数据存储、计算分析等不一样类型的服务。广义的云计算包括了更多的厂商和服务类型,例如国内用友、金蝶等管理软件厂商推出的在线财务软件,谷歌发布的Google应用程序套装等。

  通俗的理解是,云计算的“云“就是存在于互联网上的服务器集群上的资源,它包括硬件资源(服务器、存储器、CPU等)和软件资源(如应用软件、集成开发环境等),本地计算机只须要经过互联网发送一个需求信息,远端就会有成千上万的计算机为你提供须要的资源并将结果返回到本地计算机,这样,本地计算机几乎不须要作什么,全部的处理都在云计算提供商所提供的计算机群来完成。

  3、云计算的主要服务形式和典型应用

  云计算还处于萌芽阶段,有庞杂的各种厂商在开发不一样的云计算服务。云计算的表现形式多种多样,简单的云计算在人们平常网络应用中随处可见,好比腾讯QQ空间提供的在线制做Flash图片,Google的搜索服务,Google Doc, Google Apps等。目前,云计算的主要服务形式有:SaaS(Software as a Service), PaaS(Platform as a Service), IaaS(Infrastructure as a Service)。

  (1)软件即服务(SaaS)

  SaaS服务提供商将应用软件统一部署在本身的服务器上,用户根据需求经过互联网向厂商订购应用软件服务,服务提供商根据客户所定软件的数量、时间的长短等因素收费,而且经过浏览器向客户提供软件的模式。这种服务模式的优点是,由服务提供商维护和管理软件、提供软件运行的硬件设施,用户只需拥有可以接入互联网的终端,便可随时随地使用软件。这种模式下,客户再也不像传统模式那样花费大量资金在硬件、软件、维护人员,只须要支出必定的租赁服务费用,经过互联网就能够享受到相应的硬件、软件和维护服务,这是网络应用最具效益的营运模式。对于小型企业来讲,SaaS是采用先进技术的最好途径。

  以企业管理软件来讲,SaaS模式的云计算ERP可让客户根据并发用户数量、所用功能多少、数据存储容量、使用时间长短等因素不一样组合按需支付服务费用,既不用支付软件许可费用,也不须要支付采购服务器等硬件设备费用,也不须要支付购买操做系统、数据库等平台软件费用,也不用承担软件项目定制、开发、实施费用,也不须要承担IT维护部门开支费用,实际上云计算ERP正是继承了开源ERP免许可费用只收服务费用的最重要特征,是突出了服务的ERP产品。

  目前,Salesforce.com是提供这类服务最有名的公司,Google Doc, Google Apps和Zoho Office也属于这类服务。

  (2)平台即服务(PaaS)

  把开发环境做为一种服务来提供。这是一种分布式平台服务,厂商提供开发环境、服务器平台、硬件资源等服务给客户,用户在其平台基础上定制开发本身的应用程序并经过其服务器和互联网传递给其余客户。PaaS可以给企业或我的提供研发的中间件平台,提供应用程序开发、数据库、应用服务器、试验、托管及应用服务。

  Google App Engine, Salesforce的force.com平台,八百客的800APP是PaaS的表明产品。以Google App Engine为例,它是一个由python应用服务器群、BigTable数据库及GFS组成的平台,为开发者提供一体化主机服务器及可自动升级的在线应用服务。用户编写应用程序并在Google的基础架构上运行就能够为互联网用户提供服务,Google提供应用运行及维护所须要的平台资源。

  (3)基础设施服务(IaaS)

  IaaS即把厂商的由多台服务器组成的“云端”基础设施,做为计量服务提供给客户。它将内存、I/O设备、存储和计算能力整合成一个虚拟的资源池为整个业界提供所须要的存储资源和虚拟化服务器等服务。这是一种托管型硬件方式,用户付费使用厂商的硬件设施。例如Amazon Web服务(AWS), IBM的BlueCloud等均是将基础设施做为服务出租。

  IaaS的优势是用户只需低成本硬件,按需租用相应计算能力和存储能力,大大下降了用户在硬件上的开销。

  目前,以Google云应用最具表明性,例如GoogleDocs、GoogleApps、Googlesites,云计算应用平台GoogleApp Engine。

  GoogleDocs是最先推出的云计算应用,是软件即服务思想的典型应用。它是相似于微软的Office的在线办公软件。它能够处理和搜索文档、表格、幻灯片,并能够经过网络和他人分享并设置共享权限。Google文件是基于网络的文字处理和电子表格程序,可提升协做效率,多名用户可同时在线更改文件,并能够实时看到其余成员所做的编辑。用户只需一台接入互联网的计算机和可使用Google文件的标准浏览器便可在线建立和管理、实时协做、权限管理、共享、搜索能力、修订历史记录功能,以及随时随地访问的特性,大大提升了文件操做的共享和协同能力。

  GoogleAPPs是Google企业应用套件,使用户可以处理日渐庞大的信息量,随时随地保持联系,并可与其余同事、客户和合做伙伴进行沟通、共享和协做。它集成了Cmail、GoogleTalk、Google日历、GoogleDocs、以及最新推出的云应用GoogleSites、API扩展以及一些管理功能,包含了通讯、协做与发布、管理服务三方面的应用,而且拥有着云计算的特性,可以更好的实现随时随地协同共享。另外,它还具备低成本的优点和托管的便捷,用户无需本身维护和管理搭建的协同共享平台。

  Googlesites是Google最新发布的云计算应用,做为GoogleApps的一个组件出现。它是一个侧重于团队协做的网站编辑工具,可利用它建立一个各类类型的团队网站,经过Googlesites可将全部类型的文件包括文档、视频、相片、日历及附件等与好友、团队或整个网络分享。

  Google AppEngine是Google在2008年4月发布的一个平台,使用户能够在Google的基础架构上开发和部署运行本身的应用程序。目前,Google AppEngine支持Python语言和Java语言,每一个Google AppEngine应用程序可使用达到500MB的持久存储空间及可支持每个月500万综合浏览量的带宽和CPU。而且,Google AppEngine应用程序易于构建和维护,并可根据用户的访问量和数据存储须要的增加轻松扩展。同时,用户的应用能够和Google的应用程序集成,Google AppEngine还推出了软件开发套件(SDK),包括能够在用户本地计算机上模拟全部Google AppEngine服务的网络服务器应用程序。

  4、云计算的核心技术

  云计算系统运用了许多技术,其中以编程模型、数据管理技术、数据存储技术、虚拟化技术、云计算平台管理技术最为关键。

  (1)编程模型

  MapReduce是Google开发的java、Python、C++编程模型,它是一种简化的分布式编程模型和高效的任务调度模型,用于大规模数据集(大于1TB)的并行运算。严格的编程模型使云计算环境下的编程十分简单。MapReduce模式的思想是将要执行的问题分解成Map(映射)和Reduce(化简)的方式,先经过Map程序将数据切割成不相关的区块,分配(调度)给大量计算机处理,达到分布式运算的效果,再经过Reduce程序将结果汇整输出。 

  (2) 海量数据分布存储技术

  云计算系统由大量服务器组成,同时为大量用户服务,所以云计算系统采用分布式存储的方式存储数据,用冗余存储的方式保证数据的可靠性。云计算系统中普遍使用的数据存储系统是Google的GFS和Hadoop团队开发的GFS的开源实现HDFS。

  GFS即Google文件系统(Google File System),是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。GFS的设计思想不一样于传统的文件系统,是针对大规模数据处理和Google应用特性而设计的。它运行于廉价的普通硬件上,但能够提供容错功能。它能够给大量的用户提供整体性能较高的服务。

  一个GFS集群由一个主服务器(master)和大量的块服务器(chunkserver)构成,并被许多客户(Client)访问。主服务器存储文件系统因此的元数据,包括名字空间、访问控制信息、从文件到块的映射以及块的当前位置。它也控制系统范围的活动,如块租约(lease)管理,孤儿块的垃圾收集,块服务器间的块迁移。主服务器按期经过HeartBeat消息与每个块服务器通讯,给块服务器传递指令并收集它的状态。GFS中的文件被切分为64MB的块并以冗余存储,每份数据在系统中保存3个以上备份。

  客户与主服务器的交换只限于对元数据的操做,全部数据方面的通讯都直接和块服务器联系,这大大提升了系统的效率,防止主服务器负载太重。

  (3) 海量数据管理技术

  云计算须要对分布的、海量的数据进行处理、分析,所以,数据管理技术必需可以高效的管理大量的数据。云计算系统中的数据管理技术主要是Google的BT(BigTable)数据管理技术和Hadoop团队开发的开源数据管理模块HBase。

  BT是创建在GFS, Scheduler, Lock Service和MapReduce之上的一个大型的分布式数据库,与传统的关系数据库不一样,它把全部数据都做为对象来处理,造成一个巨大的表格,用来分布存储大规模结构化数据。

  Google的不少项目使用BT来存储数据,包括网页查询,Google earth和Google金融。这些应用程序对BT的要求各不相同:数据大小(从URL到网页到卫星图象)不一样,反应速度不一样(从后端的大批处理到实时数据服务)。对于不一样的要求,BT都成功的提供了灵活高效的服务。

  (4)虚拟化技术

  经过虚拟化技术可实现软件应用与底层硬件相隔离,它包括将单个资源划分红多个虚拟资源的裂分模式,也包括将多个资源整合成一个虚拟资源的聚合模式。虚拟化技术根据对象可分红存储虚拟化、计算虚拟化、网络虚拟化等,计算虚拟化又分为系统级虚拟化、应用级虚拟化和桌面虚拟化。

  (5)云计算平台管理技术

  云计算资源规模庞大,服务器数量众多并分布在不一样的地点,同时运行着数百种应用,如何有效的管理这些服务器,保证整个系统提供不间断的服务是巨大的挑战。

  云计算系统的平台管理技术可以使大量的服务器协同工做,方便的进行业务部署和开通,快速发现和恢复系统故障,经过自动化、智能化的手段实现大规模系统的可靠运营。

  5、典型云计算平台介绍

  因为云计算技术范围很广,目前各大IT企业提供的云计算服务主要根据自身的特色和优点实现的。下面以Google、IBM、Amazon为例说明:

  (1)Google 的云计算平台

  Google的硬件条件优点,大型的数据中心、搜索引擎的支柱应用,促进Google云计算迅速发展。Google的云计算主要由MapReduce、Google文件系统(GFS)、BigTable组成。它们是Google内部云计算基础平台的3个主要部分。Google 还构建其余云计算组件,包括一个领域描述语言以及分布式锁服务机制等。Sawzall是一种创建在MapReduce基础上的领域语言,专门用于大规模的信息处理。Chubby是一个高可用、分布式数据锁服务,当有机器失效时,Chubby使用Paxos算法来保证备份。

  (2)IBM“蓝云”计算平台

  “蓝云”解决方案是由IBM云计算中心开发的企业级云计算解决方案。该解决方案能够对企业现有的基础架构进行整合,经过虚拟化技术和自动化技术,构建企业本身拥有的云计算中心,实现企业硬件资源和软件资源的统一管理、统一分配、统一部署、统一监控和统一备份,打破应用对资源的独占,从而帮助企业实现云计算理念。

  IBM 的“蓝云”计算平台是一套软、硬件平台,将Internet上使用的技术扩展到企业平台上,使得数据中心使用相似于互联网的计算环境。“蓝云”大量使用了IBM先进的大规模计算技术,结合了IBM自身的软、硬件系统以及服务技术,支持开放标准与开放源代码软件。

  “蓝云”基于IBM Almaden研究中心的云基础架构,采用了Xen和PowerVM虚拟化软件,Linux操做系统映像以及Hadoop软件(Google File System以及MapReduce的开源实现)。IBM已经正式推出了基于x86芯片服务器系统的“蓝云”产品。下图为IBM “蓝云”的架构:

  由图可知,“蓝云”计算平台由一个数据中心、IBM Tivoli部署管理软件(Tivoli provisioning manager)、IBM Tivoli监控软件(IBM Tivoli monitoring)、IBM WebSphere应用服务器、IBM DB2数据库以及一些开源信息处理软件和开源虚拟化软件共同组成。“蓝云”的硬件平台环境与通常的x86服务器集群相似,使用刀片的方式增长了计算密度。“蓝云”软件平台的特色主要体如今虚拟机以及对于大规模数据处理软件Apache Hadoop的使用上。

  “蓝云”平台的一个重要特色是虚拟化技术的使用。虚拟化的方式在“蓝云”中有两个级别,一个是在硬件级别上实现虚拟化,另外一个是经过开源软件实现虚拟化。硬件级别的虚拟化可使用IBM p系列的服务器,得到硬件的逻辑分区LPAR(logic partition)。逻辑分区的CPU资源可以经过IBM Enterprise Workload Manager来管理。经过这样的方式加上在实际使用过程当中的资源分配策略,可以使相应的资源合理地分配到各个逻辑分区。p系列系统的逻辑分区最小粒度是1/10颗CPU。Xen则是软件级别上的虚拟化,可以在Linux基础上运行另一个操做系统。

  虚拟机是一类特殊的软件,可以彻底模拟硬件的执行,运行不经修改的完整的操做系统,保留了一整套运行环境语义。经过虚拟机的方式,在云计算平台上得到以下一些优势 :

  1)云计算的管理平台可以动态地将计算平台定位到所须要的物理节点上, 而无须中止运行在虚拟机平台上的应用程序,进程迁移方法更加灵活;

  2)下降集群电能消耗,将多个负载不是很重的虚拟机计算节点合并到同一个物理节点上,从而可以关闭空闲的物理节点,达到节约电能的目的;

  3)经过虚拟机在不一样物理节点上的动态迁移,迁移了总体的虚拟运行环境,可以得到与应用无关的负载平衡性能;

  4)在部署上也更加灵活,便可以将虚拟机直接部署到物理计算平台上,而虚拟机自己就包括了相应的操做系统以及相应的应用软件,直接将大量的虚拟机映像复制到对应的物理节点便可。

  “蓝云”计算平台中的存储体系结构:“蓝云”计算平台中的存储体系结构对于云计算来讲也是很是重要的,不管是操做系统、服务程序仍是用户的应用程序的数据都保存在存储体系中。“蓝云”存储体系结构包含相似于Google File System 的集群文件系统以及基于块设备方式的存储区域网络SAN。

  在设计云计算平台的存储体系结构时,能够经过组合多个磁盘得到很大的磁盘容量。相对于磁盘的容量,在云计算平台的存储中,磁盘数据的读写速度是一个更重要的问题,所以须要对多个磁盘进行同时读写。这种方式要求将数据分配到多个节点的多个磁盘当中。为达到这一目的,存储技术有两个选择,一个是使用相似于Google File System的集群文件系统,另外一个是基于块设备的存储区域网络SAN系统。

  在蓝云计算平台上,SAN 系统与分布式文件系统(例如Google File System)并非相互对立的系统,SAN提供的是块设备接口,须要在此基础上构建文件系统,才能被上层应用程序所使用。而Google File System正好是一个分布式的文件系统,可以创建在SAN之上。二者都能提供可靠性、可扩展性,至于如何使用还须要由创建在云计算平台上的应用程序来决定,这也体现了计算平台与上层应用相互协做的关系。

  (3)Amazon的弹性计算云

  Amazon是互联网上最大的在线零售商,为了应付交易高峰,不得不购买了大量的服务器。而在大多数时间,大部分服务器闲置,形成了很大的浪费,为了合理利用空闲服务器,Amazon创建了本身的云计算平台弹性计算云EC2(elastic compute cloud),而且是第一家将基础设施做为服务出售的公司。

  Amazon将本身的弹性计算云创建在公司内部的大规模集群计算的平台上,而用户能够经过弹性计算云的网络界面去操做在云计算平台上运行的各个实例(instance)。用户使用实例的付费方式由用户的使用情况决定,即用户只需为本身所使用的计算平台实例付费,运行结束后计费也随之结束。这里所说的实例便是由用户控制的完整的虚拟机运行实例。经过这种方式,用户没必要本身去创建云计算平台,节省了设备与维护费用。

  上图为EC2系统的使用模式。从图中能够看出,弹性计算云用户使用客户端经过SOAP over HTTPS协议与Amazon弹性计算云内部的实例进行交互。这样,弹性计算云平台为用户或者开发人员提供了一个虚拟的集群环境,在用户具备充分灵活性的同时,也减轻了云计算平台拥有者(Amazon公司)的管理负担。弹性计算云中的每个实例表明一个运行中的虚拟机。用户对本身的虚拟机具备完整的访问权限,包括针对此虚拟机操做系统的管理员权限。虚拟机的收费也是根据虚拟机的能力进行费用计算的,实际上,用户租用的是虚拟的计算能力。

  总而言之,Amazon经过提供弹性计算云,知足了小规模软件开发人员对集群系统的需求,减少了维护负担。其收费方式相对简单明了:用户使用多少资源,只需为这一部分资源付费便可。

  为了弹性计算云的进一步发展,Amazon规划了如何在云计算平台基础上帮助用户开发网络化的应用程序。除了网络零售业务之外,云计算也是Amazon公司的核心价值所在。Amazon未来会在弹性计算云的平台基础上添加更多的网络服务组件模块,为用户构建云计算应用提供方便。

  6、云计算技术发展面临的主要问题

  尽管云计算模式具备许多优势,可是也存在的一些问题,如数据隐私问题、安全问题、软件许可证问题、网络传输问题等。

  · 数据隐私问题:如何保证存放在云服务提供商的数据隐私,不被非法利用,不只须要技术的改进,也须要法律的进一步完善。

  · 数据安全性:有些数据是企业的商业机密,数据的安全性关系到企业的生存和发展。云计算数据的安全性问题解决不了会影响云计算在企业中的应用。

  · 用户使用习惯:如何改变用户的使用习惯,使用户适应网络化的软硬件应用是长期而艰巨的挑战。

  · 网络传输问题:云计算服务依赖网络,目前网速低且不稳定,使云应用的性能不高。云计算的普及依赖网络技术的发展。 

相关文章
相关标签/搜索