1.绪论

       “云计算并不是新的概念,也不是任何一个人或一家公司的想法,而是整个行业思维方法的转变。”

    ——Google克里斯多夫·比希利亚

       “云计算”一词自出现以来,在产业界和学术界就掀起了波澜,众说纷纭,莫衷一是。在一些人眼里(如Google、IBM),云计算是未来的方向、潮流和必然,他们迫不及待的拥抱云计算;而在另外一些人眼里(如Oracle公司总裁LarryEllison、GNU发起人RichardStal lman),云计算只是又一个商业炒作的概念,毫无新意,甚至愚不可及。我觉得当前的云计算概念的确有炒作的成分,其本身并没有比过去更多的实质的新内容,只是“新瓶装旧酒而已”。跟以往提到的网格计算、并行计算并没有本质的区别,内涵基本是一致的。其核心强调的都是将存储和计算更多的通过网络进行,通过共享达到提高资源的利用率降低成本的最终目的,但我也并不同意埃里森所说的云计算仅仅是广告宣传语的说法。在未来的短时期内,实现将个人数据全部存储在云端不一定能实现,但目前安装于本地的用于存储和计算的软件都会向网络延伸。从长远来看,这是个不可避免的发展趋势,而非仅仅是大公司出于商业目的的炒作。可以说云计算是在原有技术上诞生的新的IT服务内涵。本文希望能对目前的主流“云计算”技术做个概括。

1.1云计算定义

     “云计算是下一代计算的基础之一。它是一个‘网络即所有计算的平台’的世界,其中我们现在视为计算机的一切东西都只是一个连接到我们所构建的大型计算机的设备。云计算是一种思考我们将来如何提供计算服务的奇妙方法。”

    ——O’Reilly Media首席执行官Tim O’Reilly

       云计算是在分布式系统、网格计算等发展的基础上提出的一种新型计算模型,是一种新兴的共享基础架构的方法,它面对的是超大规模的分布式环境,核心是提供数据存储和网络服务。云计算借用了最子物理中的“电子云”(Electron Cloud)思想,强调说明计算的弥漫性、无所不在的分布性和社会性特征。“云”是指计算机群,每一群包括了几十万台、甚至上百万台计算机,是数据存储和应用服务的中心,用来完成存储和计算的工作,“云”中的计算机可以随时更新,并且这种更新是透明的。主要的IT厂商,如谷歌(Google)、微软(Microsoft)、IBM、雅虎(Yahoo)、亚马逊(Amazon)等,都已经具有并正在建设“云”。在云计算中,用户所处理的数据并不存储在本地,而是保存在互联网上的数据中心,用户所需的应用程序并不运行在用户的个人电脑、手机等终端设备上,而是运行在互联网上大规模的服务器集群中。提供云计算服务的企业负责管理和维护这些数据中心的正常运作,为用户提供足够强大的存储空间和计算能力。用户只需能够接入互联网,就可以通过电脑、手机等终端设备,在任何地点方便快捷的使用数据和服务,而不需关心存储或计算发生在哪朵“云”上。

1.2云计算的诞生

       云计算这一概念可以追溯到1960年,发明了“人工智能”(Artificial Intelligence)一词的美国计算机科学家John McCarthy就认为“计算有朝一日会被组织成为一种公共设施”(确实在1960年代,这种想法得到了服务机构的认同)。而“云”(cloud)这个术语早在90年代就得到商业化应用了,那时候是指大规模的ATM网络。但是到Y21世纪之交,云计算解决方案才开始在市场上出现,尽管当时焦点所在是SAAS。

       现在我们所说的云计算应该要从google说起,2006年年底,谷歌高级软件工程师比希利亚利用谷歌特有的“20%自由时间”在母校华盛顿大学启动了一个代号为“Google 101”的项目。他购买了40台普通的服务器组成了一个集群,利用谷歌数据计算的核心软件MapReduce将每个任务分解为成百上千块小任务,然后发送到计算机集群中,由每台计算机传送回自己的那部分信息,MapReduce将其整合并形成答案,这其实也就是云计算的雏形。

       看上去云计算的诞生有着一些偶然性,但我觉得这偶然中有着必然性,是三个因素催生了现在的云计算:

1.2.1网格计算

       既然云计算是将许多电脑联合起来提供计算能力,那么就必定会用到网格计算(GridComPuting)。以往的网格计算似乎是供专家使用的居多,多用于在需要复杂计算的“单一任务”,例如基因定序、核爆模拟。但云计算则比较偏大众应用,相当高比例的大众心用其实不需要进行复杂的计算,但是由于“大众”相当多,所以累积起来的计算需求也相当可观。网格技术可以说是云计算的基础。

1.2.2 Web应用的大发展

       如果提前五年,云计算一定会胎死腹中。时代给云计算带来了太多的幸运。这五年当中,Web基础设施日渐完善,随着Web2.O概念的不断成熟,Web本身越来越像一个真正的平台了。这一点也是让云计算成为可能的一个基本要素。

1.2.3虚拟化技术

       还有一个因素大大的推进了云计算的发展,那就是虚拟化技术。它所带来的独立性、高度整合性和移动性,改变了当前的IT基础架构、流程以及成本。通过消除长期存在于应用层与物理主机之间的障碍,虚拟化使部署更为轻松便捷,工作负载的移动性显着增强。由此可见,没有虚拟化的云计算是无法想象的。

2.云计算的分类

    “对于云服务而言,没有万能的模式。”

    ——戴尔亚太区解决方案副总裁Phil Davis

2.1按照部署方式分类

       云计算按照部署方式分可以分为公用云,私有云和混合云。公用、专用与混合这几个术语并不规定位置。公用云一般就在互联网上,而私有云通常在建筑物内,还有可能设在主机托管场所。企业可以就选用哪种云计算模式考虑多种因素,而且有可能选用不只一种模式来解决多种不同问题。如果是临时需要的应用程序,可能最适合在公用云上部署,因为这样可以避免为了临时的需要丽购买额外设备的情况。同样地,永久使用或对服务质量或数据位置有具体要求的应用程序,最好在私有云或混合云上部署。

2.1.1公用云

       公用云由第三方运行,而不同客户提供的应用程序可能会在云的服务器、存储系统和网络上混合在一起(图2)。公用云通常在远离客户建筑物的地方托管,而且它们通过提供一种像企业基础设施进行的灵活甚至临时的扩展,提供一种降低客户风险和成本的方法。

       公用云的优点之一是,它们可以比一个公司的私有云大很多,因而能够根据需要进行伸缩,并将基础设旋风险从企业转移到云提供商,哪怕仅仅是临时性的。可以将公用云的部分划出去,以便于独占单个客户端,从而产生一个虚拟专用数据中心。虚拟专用数据中心不是仅限于在公用云中部署虚拟机映像,而是使客户在更大程度上清楚地了解其基础设施。现在,客户不仅可以处理虚拟机映像,而且可以处理服务器、存储系统、网络设备和网络拓扑。利用位于同一场所的所有组件创建一个虚拟专用数据中心,有助丁缓解数据位置问题,因为当在同一场所内连接资源时,带宽非常充足,而且一般都可用。

2.1.2私有云

       私有云是为一个客户单独使用而构建的,因而提供对数据、安全性和服务质量的最有效控制(图3)。该公司拥有基础设施,并可以控制在此基础设施上部署应用程序的方式。私有云可部署在企业数据中心中,也可以将它们部署在一个主机托管场所。私有云可由公司自己的IT机构也可由云提供商进行构建。

2.1.3混合云

       混合云把公用云模式与私有云模式结合在一起(图4)。混合云有助于提供按需的、外部供应的扩展。用公用云的资源扩充私有云的能力可用来在发生工作负荷快速波动时维持服务水平。在利用存储云支持Web 2.0虑用程序时,这最常见。混合云也可用来处理预期的工作负荷高峰。私有云,有时称为“超负荷计算”(Surge Computing),可用来执行易于在公用云上部署的定期任务。

       混合云引出确定如何在公用云与私有云之间分配应用程序的复杂性。需要考虑的问题包括数据和处理资源之间的关系。如果数据最小,或应用程序无状态,与必须把大量数据传输到一个公用云中进行小量处理相比,混合云要成功得多。

2.2按照服务类别来分类

       云计算按照服务类别来分可以分为:1,软件即服务(Software as a Service)、2,平台即服务(Platform as a Service)3,基础设施即服务(Infrastructureas a Service)。

2.2.1软件即服务(saas)

     “软件即服务”的特色是根据需要作为服务提供的一整套应用程序。该软件的单个实例运行于云上,并为多个最终用户或客户机构提供服务。最著名的SaaS示例是salesforce.com,不过许多其它实例已经进入市场,其中包括提供基本商业服务(包括电子邮件和文字处理)的GoogleApps。尽管salesforce.com诞生比云计算定义的出现早了几年,但它现在通过利用其伴侣force.com运作,后者可定义为“平台即服务”。

 2.2.2平台即服务(PaaS)

     “平台即服务”包含一个软件层,并作为一项服务提供此软件层,这项服务可用来构建更高水平的服务。从服务生产商或消费者的观点看,关于PaaS的观点至少有两种:

       1.生产PaaS的某个人可能通过集成OS、中间件、应用软件甚至是一个随后作为服务提供给客户的开发环境来生产一个平台。例如,开发PaaS的人可能会使其以一组Sun xVM管理程序虚拟机为基础,这组虚拟机包括一个NetBeans集成化开发环境、一个SunGlassFish Web栈,并支持像Perl或Ruby这样的其它编程语言。

       2.使用PaaS的人会看到一个封装式服务,该服务是通过API提供给用户的。客户通过API与该平台互动,而且该平台执行一切必要的操作来管理和扩展其本身,以提供规定的服务水平。虚拟设备可以蚰类为PaaS的实例。例如,一个内容交换设备会将其所有组成软件对客户隐藏起来,而只向客户提供用来配置和部署服务的一个API或GUI。

       PaaS产品可执行各个阶段的软件开发和测试,也可以专用于某个领域,例如,内容管理。PaaS的商业示例包括Google App Engine,它在Google的基础设施上提供应用程序服务。像这样的PaaS服务可提供一个用来部署应用程序的强大基础,然而它们可能会由于云提供商选择提供的能力而受到制约。

2.2.3基础设施即服务(IaaS)

     “基础设施即服务”通过网络作为标准化服务提供基本存储和计算能力。服务器、存储系统、交换机、路由器和其它系统都是合用的,并可用来处理从应用程序组件到高性能计算应用程序的工作负荷。IaaS的商业示例包括Joyent,其主要产品是提供高度可用的按需基础设施的一系列虚拟化服务器。

3.公有云

     “互联网才是世界的中心。”

    ——Salesforce总裁马可·贝尼奥夫

       目前在公有云市场上可以说是战火纷飞,谷歌,微软,雅马逊,ibm,salesforce等都已经具有并正在建设他们各自的公有云。这其中以谷歌和雅马逊的公有云服务最具规模和影响。下面就简单介绍这两家的服务:

3.1 Google

       谷歌在微软推出IE8.0 bata后高调推出自己的浏览器Chrome如图6,引起了业界一片惊喜与猜测。Chrome推出之后评论文章就铺天盖地,认为谷歌其实蓄谋已久,Chrome并非只是为了在浏览器市场上分一杯羹,其更深远的打算是为谷歌“云计算”王国打开一扇门,使得用户可以更容易、更便捷、更高效地进入其王国。浏览器已不再是一个简单的浏览网页的桌面应用软件了,谷歌把它视为用户使用网络应用的门户和本地运行环境。

       首先,Chrome的推出为谷歌提供了一个很好地集成其云计算网络应用平台的机会。Chrome允许用户建立各种网络在线应用的桌面快捷键,用户可以更方便地进入各类在线应用,并且Chrome会为这些应用进行界面的调整,让用户感觉似乎是在本地使用这些应用(而不会明显地感觉到浏览器的存在)。其次,Chrome能够收集用户的使用习惯及搜索关键字等信息,通过后台的分析将会为用户提供更智能更完善的搜索服务及网络应用。

       所以有人甚至认为Chrome的竞争对手不仅仅是IE,甚至是Windows(Chrome的应用快捷键、多进程、沙盒等新的技术或特征原来只有操作系统有),将来用户将会用更多时间通过浏览器接入网络使用各类软件应用,而不是在Windows上使用这些应用软件,因此有人干脆将Chrome视为网络操作系统。Chrome在前,平台在后,Google已经通过Chrome将用户与其后台虑用平台更紧密地联系起来,Chrome的后台即谷歌云计算平台及其应用。

       1)在线应用Google Apps(Google Docs、Google Gmail、Google Calendar、Google Picasa等)谷歌打造的丰富的在线应用。“云计算”概念没有出现时,它并不为人所看重,但“云计算”一旦浮现,人们马上意识到谷歌真正的野心。Google Apps对微软的Office、Outlook等桌面软件在个人市场上构成直接威胁。此外,谷歌正在将GoogleApps推向企业用户市场(如图1)。

   图1 google app网站上最近出现的企业应用套件

   图2 amazon创建账户时显示的服务列表

       通过在Amazon提供的可靠且经济有效的服务上构建功能,可以实现复杂的企业应用程序。这些Web服务本身驻留在您的环境之外的云中,具备极高的可用性。只需根据使用的资源付费,不需要提前付费。因为硬件由Amazon维护和服务,所以您也不需要承担维护费用。

      下面是这个全Web范围的基础设旌的主要元素,它们提供几乎所有麻用程序最常用的构建块:

      1)存储

      所有应用程序都需要存储文件、文档、用户下载或备份。可以把应用程序需要的任何东西存储在Amazon Simple Storage Service(S3)中,从而实现可伸缩、可靠、高可用、低成本的存储。

      2)计算

      Amazon Elastic ComputeCloud(EC2)能够根据需要扩展或收缩计算资源,非常方便地提供新的服务器实例。

      3)消息传递

      Amazon Simple QueueService(SQS)提供不受限制的可靠的消息传递,可以使用它消除应用程序组件之间的耦合。

      4)数据集

      Amazon SimpleDB(SDB)提供可伸缩、包含索引且无需维护的数据集存储,以及处理和查询功能。

      Amazon为了帮助用户更好的使用他的服务,还开发了一系列软件,例如:cloudberry forexplorer,Jets3t,ElasticFox,Tarzan等。

      另外现在国内用户普遍抱怨s3速度非常慢,除了实验毫无实际价值,amazon也考虑到了这个问题,推出了一款名为cloudfront的服务,以帮助用户加块访问速度。他的原理类似于CDN(Content Oelivery Network),当然也是要收费的。

3.2公有云应用小结

       这两家公司所提供的服务可以大大减轻中小公司在信息化方面的开销。尤其对于启动状态的团队来说,这些服务简直是天使。

       在办公方面你可以使用google doc,他在文档处理方面和office相比有过之而无不及,再加上Gmail,Picasa等软件,几乎可以完全满足日常办公的需要,最关键的是这些都是免费的(google新推行的规则中,企业用户的免费版只能申请50个账户)。

       如果你想建企业网站,可以使用google appEngine或者amazon,google appengine的免费用户目前可以得到500 MB的存储空间,CPU和带宽,可满足每月五百万的页面访问次数以及google提供的api,但相比amazon,google目前只能使用python作为其开发工具。如果使用amazon,那你就拥有和amazon--样的可靠性和带宽,收费完全取决于你消耗的流量、存储空间和CPU,s3给了一个空间“无限大”而且可靠、性能卓越的“硬盘”,让大规模照片、video分享类的应用的实现技术门槛立刻卜.降了很多,EC2贝U等于给了你“无限”台在amazon的机房内的服务器,开发环境应有尽有,而且召之即来挥之即去:你随时需要就随时来了一台,一旦不需要就立刻让他消失不需要付一分钱。

       使用公有云服务,创业唯一真正需要的就是有好的idea和执行能力,人、资金等方面的初始需求都被最小化了

4.私有云

      “对于客户来说,私有云相比公有云更易于被接受”

    ——EMC大中国区总经理叶成辉

       确实有些公司出于安全或保密要求,是无法使用公有云服务的,必须自己做网络架构,这时相比传统的企业建网手段,私有云(或称私有云,企业云)的收缩性和系统的低维护和管理成本优势就凸显出来了。下面就某企业的需求做一个数据中心的架构方案。

4.1企业级私有云计算方案

       某制造企业,预定于后年将现有资产和制造基地做大规模转移,希望能将现有数据中心做整合与重建。该公司要求将现有的服务器应用做整合,淘汰部分老旧服务器,然后将服务迁移到新服务器上,由于该公司有军品建设,所以对于保密和安全等因素的要求较高,以此要求为前提,做方案书。

       方案制作:考虑到该公司目前处于启动状态,所以用云计算的动态扩容会为以后带来许多方便。且该公司对保密和安全等要求较高,对终端机接入的要求比较严格,所以用saas环境搭配瘦客户机来管理终端会比较方便,所有的应用服务由服务器来提供,而终端机只有一个操作系统,将用户权限设成最小,这样就不存在私装软件等管理问题,且病毒木马的感染几率相对小很多。

       硬件:尽管构成云端的服务器理论上来说任何服务器都可以,但考虑到场地,供电等原因还是选择尽量强大的服务器。IBM的X3850m2是一款不错的选择,他的x4芯片组搭配了hypervisor虚拟化,可让多个操作系统同时在同一硬件平台上工作。而且他还在内部设计了一个可直接将预先安装的虚拟化软件直接导向芯片组的机制。存储可以采用IBM的DS4800系列,它高达4gb的光纤接入能为应用程序提供相当大的吞吐量。硬件清单如下:

    ·  服务器IBM X3850 m2三台(编号A,B,C)

    ·  hp瘦客户机T5630

    ·  DS4800存储系列。

       软件:vmware最新推出的vsphere4软件号称是业界的首款云操作系统,能够100%的实现虚拟云计算。在这里我们选择vsphere4的主要三个套件,esx server(虚拟机操作系统),virtual center(虚拟机管理系统)virtual converter(将实体机转换为虚拟机镜像的转换器),由操作系统用windows server 2008,他的终端服务是非常不错的saas服务前台。软件清单如下:

    ·  VMware ESX Server

    ·  VMware VirtualCenter·VMware virtual convenor·操作系统:Windows Server 2008·虚拟机应用:Terminal Service,IIS等

       具体实施步骤如下:

       1.A服务器和B服务器在原有8个千兆网口的基础上,再各自添加安装2块双口干兆网卡,两块光纤卡;(每台服务器一共有8个千兆网口,两个光纤口。)

       每台服务器的4个物理两口配置如下:

       管理网络2个物理网口配置为一个虚拟switch1,网段10.0.0.*

       应用网络2个物理网口配置为一个虚拟switch2,网段192.168.6.*

       光纤网络 连接存储用

       备用网络 2个物理网口备用

       2每台服务器有4块146g的硬盘,将两台服务器的硬盘配置安装为RAID6,将其中一块硬盘为热备盘(hotspare),逻辑分区总计可用容量约为280GB左右,安装VMWAREESX 4.0虚拟机操作系统,安装最新补丁:

   

   图3 vcenter群集配置完成后的控制界面

        7.新建一个虚拟机,在虚拟机上安装windowsserveF 2008简体中文企业版

        8.虚拟机操作系统中的数据库盘和备份磁盘采用“动卷磁盘”的“简单卷”,可以动态扩充磁盘容量。

        9.在windows server 2008上安装internet infomation service和Terminal service。

        1O.将办公所需的应用软件装入Terminal service的web access中。

        11.从瘦客户机访问iis服务器的网址就可以得到如图4的画面:

   图4 windows server 2008终端服务界面

       方案完成后vcentcr可以挖制各个应用服务根据情况在各个服务器之间实时动态迁移,不存在宕机的可能,服务器组构成云端,你永远不知道是云上的哪个服务器在为你服务。

       并且该方案对应用的要求也不苛刻,几乎现在的主流操作系统都能在虚拟机上运行,异构环境不是问题。

       与服务器无法负担访问量的时候,只需将新购置的服务器安装ESXserver,然后通过visual center将新虚拟机加入群集就可以了。而当服务器的能力超出用户需求时,只需要简单的将服务器从群集中删除就可以,立即可以移做他用了。

       最后server2008的终端服务为saas环境提供了完美的前台。

5.总结

       “将来,等任何一个人在互联网上提交一个查询请求时,互联上可能有成千上万台计算机在为他同时搜索众多的数据库,并运用不同的方法为他提供可能的搜索结果。也就是说,人们不是从自己的计算机上,也不是从某个指定的服务器上,而是从浩瀚如石海的且联网络上,通过各种设备(如移动终端等)获得所需的信息,知识、服务等。这个世界已经从以硬件为中心转向以软件为中心,井正转向咀服务为中心。”

    ——原Google大中华区总裁李开复

       尽管我们已经看到这么多云计算的产品,但有一点毋庸置疑,那就是云计算还远远没有达到成熟的阶段。这种不成熟除了业务模式的不成熟外,技术所面临的障碍也是一个重要的原因。这里所指的技术,并非云计算还存在不可解决的技术难题,这当中更重要的是云计算运营者们在技能方而的经验积累。对于太规模、分布式、异构的基础设施而言,如何构建一个更良好的架构,如何有效提供引算和存储资源的利用率,如何计算稳定可信,如何对这个庞大的基础架构体系进行管理...处理好所有问题是一门艺术。它需要从业者用数年甚至数十年的经验不断积累与磨合。更有甚者,如何将云计算结合到各个行业的业务应用,从而将过去多年来积累的业务知识有效整合在云计算架构体系上,将会体现更深层次的价值。但在未来的一两年内,随着云计算市场逐渐壮大,更多的软硬件厂商会聚集在云计算这面大旗下共同协作,市场推动着技术不断的发展并臻于成熟,疑难问题会迎刃而解,我们最终会看到一个健康健全的云计算体系。

       或许有这么一天,我们的电脑不再需要任何操作系统和软件,只需要在嵌入式设备里烧录一个浏览器便可以随时随地的工作和娱乐,不必再担心数据丢失以及病毒的入侵,随心所欲的动态计算资源即时获取也成为一种可能。这一切都是云计算所能带给我们的,让我们一起期待在云中漫步的那一天。

 

 

Logo

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

更多推荐