转载

云计算详解

前言

云计算的定义

维基百科上给出的云计算定义如下:Cloud computing is a kind of Internet-based computing that provides shared processing resources and data to computers and other devices on demand.

云计算历史

云计算一词最早的起源已经无法考证,但是“云”一词在科学界是用来描述某一个对象大规模的聚集的现象。有一些观点认为云计算的概念是由Google提出的,这是一个美丽的网络应用模式。

云计算详解

1.狭义云计算

提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。这种特性经常被称为像水电一样使用IT基础设施。

2.广义云计算

这种服务可以是IT和软件、互联网相关的,也可以是任意其他的服务。

解释:

这种资源池称为“云”。“云”是一些可以自我维护和管理的虚拟计算资源,通常为一些大型服务器集 群,包括计算服务器、存储服务器、宽带资源等等。云计算将所有的计算资源集中起来,并由软件实现自动管理,无需人为参与。这使得应用提供者无需为繁琐的细 节而烦恼,能够更加专注于自己的业务,有利于创新和降低成本。

有人打了个比方:这就好比是从古老的单台发电机模式转向了电厂集中供电的模式。它意味着计算能力也可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉。最大的不同在于,它是通过互联网进行传输的。

云计算是并行计算(Parallel Computing)、分布式计算(Distributed Computing)和网格计算(Grid Computing)的发展,或者说是这些计算机科学概念的商业实现。云计算是虚拟化(Virtualization)、效用计算(Utility Computing)、IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等概念混合演进并跃升的结果。

总的来说,云计算可以算作是网格计算的一个商业演化版。我国刘鹏教授早在2002年,就针对传统 网格计算思路存在不实用问题,提出计算池的概念:“把分散在各地的高性能计算机用高速网络连接起来,用专门设计的中间件软件有机地粘合在一起,以Web界 面接受各地科学工作者提出的计算请求,并将之分配到合适的结点上运行。计算池能大大提高资源的服务质量和利用率,同时避免跨结点划分应用程序所带来的低效 性和复杂性,能够在目前条件下达到实用化要求。”这个理念与当前的云计算非常接近。刘鹏教授当时通过在清华大学、北京大学、中科院计算所等单位的一系列精 彩演讲,推动计算池思想的普及,受到广泛关注和接受。

一、云计算概述

云计算到底是什么呢?在这个问题上,可谓众说纷纭。比如,在维基百科上的定义是“ 云计算是一种基于互联网的计算新方式,通过互联网上异构、自治的服务为个人和企业用户提供按需即取的计算 ”; 著名咨询机构 Gartner 将云计算定义为“云计算是利用互联网技术来将庞大且可伸缩的IT能力集合起来作为服务提供给多个客户的技术”;而 IBM 则认为“云计算是一种新兴的IT服务交付方式,应用、数据和计算资源能够通过网络作为标准服务在灵活的价格下快速地提供最终用户”。

虽然这几个定义都有一定的道理,但在我看来还没抓住云计算的核心,在我眼中, 云计算应该有如图 1-1 ,云计算是新一代IT模式,它能在后端庞大的云计算中心的支撑下能为用户提供更方便的体验和更低廉的成本。

云计算详解

具体而言,由于在后端有规模庞大、非常自动化和高可靠性的云计算中心的存在,人们只要接入互联网,就能非常方便地访问各种基于云的应用和信息, 并免去了 安装和维护等繁琐操作,同时,企业和个人也能以低廉的价格来使用这些由云计算中心提供的服务或者在云中直接搭建其所需的信息服务。 在收费模式上,云计算和 水电等公用事业非常类似,用户只需为其所使用的部分付费。 对云计算的使用者(主要是个人用户和企业)来讲,云计算将会在用户体验和成本这两方面给他们带来 很多非常实在的好处。

云计算的发展现状

60年的代麦卡锡

早在60年代麦卡锡(John McCarthy)就提出了把计算能力作为一种象水和电一样的公用事业提供给用户。云计算的第一个里程碑是,1999年Salesforce.com提出的通过一个网站向企业提供企业级的应用的概念。[4]

Amazon

Amazon使用弹性计算云(EC2)和简单存储服务(S3)为企业提供计算和存储服务。收费的服务项目包括存储服务器、带宽、CPU资源以及月租费。月 租费与电话月租费类似,存储服务器、带宽按容量收费,CPU根据时长(小时)运算量收费。Amazon把云计算做成一个大生意没有花太长的时间:不到两年 时间,Amazon上的注册开发人员达44万人,还有为数众多的企业级用户。有第三方统计机构提供的数据显示,Amazon与云计算相关的业务收入已达1 亿美元。云计算是Amazon增长最快的业务之一。

Google

Google当数最大的云计算的使用者。Google搜索引擎就建立在分布在200多个地点、超 过100万台服务器的支撑之上,这些设施的数量正在迅猛增长。Google地球、地图、Gmail、Docs等也同样使用了这些基础设施。采用 Google Docs之类的应用,用户数据会保存在互联网上的某个位置,可以通过任何一个与互联网相连的系统十分便利地访问这些数据。目前,Google已经允许第三 方在Google的云计算中通过Google App Engine运行大型并行应用程序。Google值得称颂的是它不保守。它早已以发表学术论文的形式公开其云计算三大法宝:GFS、MapReduce和 BigTable,并在美国、中国等高校开设如何进行云计算编程的课程。

IBM

IBM在2007年11月推出了“改变游戏规则”的“蓝云”计算平台,为客户带来即买即用的云计算平台。它包括一系列的自动化、自我管理和自我修复的虚拟 化云计算软件,使来自全球的应用可以访问分布式的大型服务器池。使得数据中心在类似于互联网的环境下运行计算。IBM正在与17个欧洲组织合作开展云计算 项目。欧盟提供了1.7亿欧元做为部分资金。该计划名为RESERVOIR,以“无障碍的资源和服务虚拟化”为口号。2008年8月, IBM宣布将投资约4亿美元用于其设在北卡罗来纳州和日本东京的云计算数据中心改造。IBM计划在2009年在10个国家投资3亿美元建13个云计算中 心。

微软

微软紧跟云计算步伐,于2008年10月推出了Windows Azure操作系统。Azure(译为“蓝天”)是继Windows取代DOS之后,微软的又一次颠覆性转型——通过在互联网架构上打造新云计算平台,让 Windows真正由PC延伸到“蓝天”上。微软拥有全世界数以亿计的Windows用户桌面和浏览器,现在它将它们连接到“蓝天”上。Azure的底层 是微软全球基础服务系统,由遍布全球的第四代数据中心构成。

我国的云计算发展

在我国,云计算发展也非常迅猛。2008年6月24日,IBM在北京IBM中国创新中心成立了第 二家中国的云计算中心——IBM大中华区云计算中心;2008年11月28日,广东电子工业研究院与东莞松山湖科技产业园管委会签约,广东电子工业研究院 将在东莞松山湖投资2亿元建立云计算平台;2008年12月30日,阿里巴巴集团旗下子公司阿里软件与江苏省南京市政府正式签订了2009年战略合作框架 协议,计划于2009年初在南京建立国内首个“电子商务云计算中心”,首期投资额将达上亿元人民币;世纪互联推出了CloudEx产品线,包括完整的互联 网主机服务"CloudEx Computing Service", 基于在线存储虚拟化的"CloudEx Storage Service",供个人及企业进行互联网云端备份的数据保全服务等等系列互联网云计算服务;中国移动研究院做云计算的探索起步较早,已经完成了云计算中 心试验。中移动董事长兼CEO王建宙认为云计算和互联网的移动化是未来发展方向。另外,易度在线工作平台everydo .com在云计算领域发展也很快,旗下的多款云计算产品,包括文档、项目、工作管理等,致力于解决中小企业的软件领域问题。

我国企业创造的“云安全”概念,在国际云计算领域独树一帜。云安全通过网状的大量客户端对网络中 软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,推送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。云安全的策 略构想是:使用者越多,每个使用者就越安全,因为如此庞大的用户群,足以覆盖互联网的每个角落,只要某个网站被挂马或某个新木马病毒出现,就会立刻被截 获。云安全的发展像一阵风,瑞星、趋势、卡巴斯基、MCAFEE、SYMANTEC、江民科技、PANDA、金山、360安全卫士、卡卡上网安全助手等都 推出了云安全解决方案。瑞星基于云安全策略开发的2009新品,每天拦截数百万次木马攻击,其中1月8日更是达到了765万余次。趋势科技云安全已经在全 球建立了5大数据中心,几万部在线服务器。据悉,云安全可以支持平均每天55亿条点击查询,每天收集分析2.5亿个样本,资料库第一次命中率就可以达到 99%。借助云安全,趋势科技现在每天阻断的病毒感染最高达1000万次。

值得一提的是,云安全的核心思想,与我国学者刘鹏教授早在2003年就提出的反垃圾邮件网格非常 接近。刘鹏当时认为,垃圾邮件泛滥而无法用技术手段很好地自动过滤,是因为所依赖的人工智能方法不是成熟技术。垃圾邮件的最大的特征是:它会将相同的内容 发送给数以百万计的接收者。为此,可以建立一个分布式统计和学习平台,以大规模用户的协同计算来过滤垃圾邮件:首先,用户安装客户端,为收到的每一封邮件 计算出一个唯一的“指纹”,通过比对“指纹”可以统计相似邮件的副本数,当副本数达到一定数量,就可以判定邮件是垃圾邮件;其次,由于互联网上多台计算机 比一台计算机掌握的信息更多,因而可以采用分布式贝叶斯学习算法,在成百上千的客户端机器上实现协同学习过程,收集、分析并共享最新的信息。反垃圾邮件网 格体现了真正的网格思想,每个加入系统的用户既是服务的对象,也是完成分布式统计功能的一个信息节点,随着系统规模的不断扩大,系统过滤垃圾邮件的准确性 也会随之提高。用大规模统计方法来过滤垃圾邮件的做法比用人工智能的方法更成熟,不容易出现误判假阳性的情况,实用性很强。反垃圾邮件网格就是利用分布互 联网里的千百万台主机的协同工作,来构建一道拦截垃圾邮件的“天网”。反垃圾邮件网格思想提出后,被IEEE Cluster 2003国际会议选为杰出网格项目在香港作了现场演示,在2004年网格计算国际研讨会上作了专题报告和现场演示,引起较为广泛的关注,受到了中国最大邮 件服务提供商网易公司创办人丁磊等的重视。既然垃圾邮件可以如此处理,病毒、木马等亦然,这与云安全的思想就相去不远了。

2008年11月25日,中国电子学会专门成立了云计算专家委员会,聘任中国工程院院士李德毅为 主任委员,聘任IBM大中华区首席技术总裁叶天正、中国电子科技集团公司第十五研究所所长刘爱民、中国工程院院士张尧学、Google全球前副总裁/中国 区前总裁李开复、中国工程院院士倪光南、中国移动通信研究院院长黄晓庆六位专家为副主任委员,聘任国内外30多位知名专家学者为专家委员会委员。2009 年5月22日,中国电子学会将于在北京中国大饭店隆重举办首届中国云计算大会。

云计算的发展原因

-原因的概述

五个主要原因使得分布式计算必然会越来越普遍,逐渐发展成主流的计算模式而取代集中式的大型计算机:

1、高性价比

现在分布式系统的第一个原因就是因为他具有比集中式系统更好的性能价格比。你不要花几十万美元就能获得高效能计算。

2、应用分布性

多数应用本身就是分布式的。如工业企业应用,管理部门和现场不在同一个地方。

3、高可靠性。

冗余不仅是生物进化的必要条件,而且也是信息技术。现代分布式系统具有高度容错机制,控制核反应堆主要采用分布式来实现高可靠性。

4、可扩展性。

买一台性能更高的大型机,或者再买一台性能相同的大型机的费用都比添加几台PC的费用高得多。

5、高度灵活性。

能够兼容不同硬件厂商的产品,兼容低配置机器和外设而获得高性能计算。

-发展原因的详细解释

粗略地计算,目前的个人计算机每个CPU芯片的处理能力是200MIPS,就是每秒种执行 200M也就是两亿次指令,而最近Yahoo!公司报道他们已经实现了有一万个节点(node)就是一万台PC计算机连接的分布式系统,总的处理能力是 2,000,000MIPS,最快的芯片也达不到这个速度,因为在一定面积上设计的芯片的速度是存在一个极限的,不可逾越。而当前世界著名的超级计算机所 谓的TOP500,达到每秒几百万亿次指令执行,都是采用分布式设计的,世界第一的IBM BlueGene超级计算机采用了32部机架,每部机架部署有768个PowerPC440 CPU。顺便说一句,这TOP500基本都是使用Linux操作系统的!现在社会和家庭拥有的个人计算机就是PC,只有30%的计算能力被利用,甚至更 低,而其余70%的实际上是被闲置的,这些闲置的计算机资源和计算能力只有通过分布式系统才能得到有效的利用,这样可以大大提高一个国家的计算能力,而计 算能力是衡量一个国家国力和科学研究能力的指标,这一点现在还没有被国人充分认识到。一个国家和地区的计算能力现在已经成为一种重要的战略资源,不亚于石 油和其他战略物资的重要性。云计算就是把普通的服务器或者个人计算机连接起来以获得超级计算机也叫高性能和高可用性计算机的功能,但是成本更低。这在世界 上也是个先进的项目。云计算模式必定能大大提高我国科学计算机和商业计算能力,使得我国经济竞争力大大提升。美国和欧洲有许多社会分布的分布式计算系统, 他们动员和使用这些社会计算能力进行人类基因组学(Genomics)的研究、天文学问题研究、数学难题研究以及其他的科学问题研究。去年的一个研究报告 估计我国个人计算机PC保有量接近两亿台。

按照计算机操作系统的宗师Andrew S. Tanenbaum(AST)给分布式系统的的定义:“分布式系统是这样的系统,它运行在不具有共享内存的多台机器上,但在用户的眼里却像是一台计算 机”。(引自《现代操作系统》,机械工业出版社,1999年中文版)。它的目标是让每个用户感觉联网的计算机是一个分时系统——就像使用个人计算机一样 ——而不是一个由许多计算机联合起来的集体,即使由五个节点组成的分布式系统也应该让用户感觉自己是在使用一台价值20万美元的大型计算机,唯一不寻常的 感觉是处理速度提高了许多,别的没有什么不同。例如,这里有一个简单的例子,在机器A的用户要使用安装在机器B上用户的目录里的文件,A用户要使用远程登 录命令rlogin B登录到机器B的目录上,那么这就不是一个真正的分布式系统,因为用户A意识到了另外一台机器的存在,分布式系统必须要做到,用户A登录到一个目录上的时 候不知道自己是在本地机器上还是在远程机器上的目录上,对于用户A来说机器B是透明的,这就是分布式系统设计时考虑的“透明性”要求。其他有关的问题包 括:分布式文件系统的问题,目录和文件访问机制以及一致性问题,分布式系统进程的通信问题等等。目前的云计算严格说还没有到达真正的分布式计算的语义学水 平。

1、云计算的特点

    (1)超大规模:大多数云计算中心都具有相当的规模,比如, Google云计算中心已经拥有几百万台服务器, 而Amazon 、IBM 、微软、Yahoo等企业所掌控的云计算规模也毫不逊色,并且云计算中心能通过整合和管理这些数目庞大的计算机集群来赋予用户前所未有的计算和存储能力。

(2)抽象化:云计算支持用户在任意位置、使用各种终端获取应用服务,所请求的资源都来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无需了解、也不用担心应用运行的具体位置,这样能有效地简化了应用的使用。

(3)高可靠性:在这方面,云计算中心在软硬件层面采用了诸如数据多副本容错、心跳检测和计算节点同构可互换等措施来保障服务的高可靠性,还在设施层面上的能源、制冷和网络连接等方面采用了冗余设计来进一步确保服务的可靠性。

(4)通用性:云计算中心很少为特定的应用存在,但其有效支持业界大多数的主流应用,并且一个“云”可以支撑多个不同类型应用的同时运行,并保证这些服务的运行质量。

(5)高可扩展性:用户所使用“云”的资源可以根据其应用的需要进行调整和动态伸缩,并且再加上前面所提到的云计算中心本身的超大规模,使得“云”能有效地满足应用和用户大规模增长的需要。

(6)按需服务:“云”是一个庞大的资源池,用户可以按需购买,就象自来水、电和煤气等公用事业那样根据用户的使用量计费,并无需任何软硬件和设施等方面的前期投入。

(7)廉价:首先,由于云计算中心本身巨大规模所带来的经济性和资源利用率的提升,其次,“云”大都采用廉价和通用的 X86 节点来构建,因此用户可以充分享受云计算所带来的低成本优势,经常只要花费几百美元就能完成以前需要数万美元才能完成的任务。

(8)自动化:云中不论是应用、服务和资源的部署,还是软硬件的管理,都主要通过自动化的方式来执行和管理,从而极大地降低整个云计算中心庞大的人力成本。

(9)节能环保:云计算技术能将许许多多分散在低利用率服务器上的工作负载整合到云中,来提升资源的使用效率,而且云由专业管理团队运维,所以其 PUE(Power Usage Effectiveness ,电源使用效率值) 值 和普通企业的数据中心相比出色很多,比如, Google数据中心的PUE值在 1.2 左右,也就是说,每一块钱的电力花在计算资源上,只需再花两角钱电力在制冷等设备,而常见的PUE在2和3之间,并且还能将云建设在水电厂等洁净资源旁 边,这样既能进一步节省能源方面开支,又能保护了环境。

(10)完善的运维机制:在“云”的另一端,有全世界最专业的团队来帮用户管理信息,有全世界最先进的数据中心来帮用户保存数据。同时,严格的权限管理策略可以保证这些数据的安全。这样,用户无需花费重金就可以享受到最专业的服务。

由于这些特点的存在,使得云计算能为用户提供更方便的体验和更低廉的成本,同时这些特点也是为什么云计算能脱颖而出,并且能被大多数业界人员所推崇的原因之一。

2、云计算的影响

虽然云计算最初只是由IBM和Google这两家公司所主导的,但是就像图1-4所示那样云计算将会对整个IT产业带来非常深远的影响,其中包括服务器供应商、软件开发商和云终端供应商这三个云计算建设者和作为云计算运维者的云供应商。

云计算详解

(1)服务器供应商的角度

这类型的公司主要包括IBM、HP、Dell和Cisco等。主要有两个方面的变化: 其一,是需求方面的变化 ,虽然中小企业会不断地加大对IT技术使用,但由于它们将会把云服务作为首选,所以对服务器供应商而言,来自中小企业的订单将会不断的减少,但来自云供应商的订单则会大量的增加; 其二,是 产品方面的变化 , 由于大型云计算中心,对硬件有自己一套的设计和想法,所以会希望服务器供应商能生产为它们定制的硬件,这导致服务器供应商他们整体产品的方向将会从原先的 以生产通用的x86服务器为主,转变为通用和定制兼顾,而且为云计算做优化的解决方案将受到极大欢迎。虽然云计算将会对部分非常依赖中小企业的硬件厂商带 来非常不利的影响, 但是从长期而言,对那些不断创新,并且提出非常优秀的云计算解决方案的硬件厂商,将会脱颖而出,并从云计算大潮中获利丰厚。

(2)软件开发商的角度

最典型的公司有微软、Red Hat 、Oracle和VMware等。主要有三方面的变化:首先,在软件交付方式上的变化,由于虚拟器件(Virtual Appliance)等软件发布格式的引入,使得不仅软件的开发,维护和销售等方面的成本和复杂度得到了降低,而且也加快了软件部署的速度;其次,在软件 销售和发布方式上的 变化,由于各种基于云的软件发布平台(比如苹果的App Store 、中国移动的Mobile Market和VMware Virtual Appliance Marketplace等)的出现,使得发布、推广和销售软件越来越简单,而且成本更低。比如,和传统软件发布前期需要大量资金支持不同的是,在苹果的 App Store上发布软件的成本基本为零,而且能直面超过5000万iOS系统(包括iPhone 、iPod Touch和iPad)的使用者,同时这些用户的消费能力也是非常强大的;最后,在技术上的变化,软件将与云技术进行深度地整合,比如, 应用类的软件,基本上都将选择Web作为其首选的界面,而中间件和底层的系统软件将会为运行在云中做更多的优化。

(3)云终端供应商的角度

这方面的公司有Apple、Nokia、三星和联想等。由于移动设备的轻便型,再加上性能的日渐提高和能方便地接入多种无线网络(比如 WIFI 和 3G 等),所以市场对移动设备需求将与日俱增,而且将来云终端将不会仅是手机、平板和笔记本这几种移动设备,而将会涉及社会的方方面面,比如电视和汽车等,所 以在这方面会有非常大创新空间等待着这些公司。

(4)云供应商的角度

相关的公司有国外的Amazon、Google和RackSpace等,国内的有中国移动和中国电信等。随着云计算不断推广和被大众所接受,使得云计算中 心在运营的规模上会不断地增大, 这将会给云供应商带来很多机会来降低其运营成本,并提升经营利润,比如,将云计算中心建设在能源成本底的地方(比如电厂附近)或者建在制冷成本低的地方 (比如天气寒冷的地点)。而且由于运行的工作负载的规模非常庞大,将整体提高服务器利用率。同时云的业务都属于非常稳定的,所以能给云供应商带来持久的现 金流。

(5)整个IT产业的角度

不可否认,在短期内,由于产业结构的变化,云计算有可能将会给整个IT产业带来一定程度的阵痛,但是从长期而言,云计算将会对整个IT产业带来非常正面的 影响,因为云计算将推动整个产业的进一步的优化布局和专业分工,并且提供一个让所有IT人不断地创新的舞台,最终,这些参与者会像之前大型机时代和PC时 代那样同心协力创造出一整套属于云计算的产业链。

3、云计算的应用

有些 IT 从业人员在谈到云计算的时候,总是认为云计算只是广告词而已,实际的用处是非常有限。对于这种看法,我不以为然,因为不仅云计算的部分技术已经落地,而且云计算将在 IT 产业各个方面都有其用武之地,在这里,选择十个比较典型的应用场景来加以介绍。

(1)IDC云

传统IDC(Internet Data Center,互联网数据中心)的服务已经无法满足用户的需求,用户期望更强大、更方便和更灵活的IDC服务。IDC云是在IDC原有数据中心的基础上,加入更多云的基因,比如 系统虚拟化技术、自动化管理技术和智慧的能源监控技术 等。通过IDC的云平台,用户能够使用到虚拟机和存储等资源。还有,IDC可通过引入新的云技术来提供许多新的具有一定附加值的服务,比如,PaaS等。现在已成型的IDC云有Linode和Rackspace等。

(2)企业云

对任何大中型企业而言, 80%的IT资源都用于维护现有应用的,而不是让IT更好地为业务服务。使用专业的企业云解决方案来提升企业内部数据中心的自动化管理程度,将整个 IT 服务的思维从过去的软硬件思维转变为以提供服务为主,使得IT人员能分出精力来为业务创新,成为半个业务人员。 企业云对于那些需要提升内部数据中心的运维水平和希望能使整个IT服务更围绕业务展开的大中型企业非常适合。 相关的产品和解决方案有IBM的WebSphere CloudBurst Appliance、Cisco的UCS和VMware的vSphere等。企业自己使用的云也称为 私有云 ,位于公司防火墙之内,由组织自己管理。它们是在企业内部创建和控制的云服务。私有云具有许多与公有云相同的优点,主要差异在于您的组织负责创建和维护云。 公有云 是供一般公众或大型行业组织使用的云,由销售云服务的组织拥有和供应。公有云被看作一般意义上的云;也就是说,离站的第三方提供商使用web应用程序通过Internet动态地供应资源,它们提供共享的资源并按使用量收费。

(3)云存储系统

由于数据是企业的非常重要的资产和财富,所以需要对数据进行有效的存储和管理,而且普通的个人用户也需要大量的存储空间用于保存大量的个人数据和资料,但 由于本地存储在管理方面缺失,使得数据的丢失率非常高。而云存储系统能解决上面提到这些问题,它是通过整合网络中多种存储设备来对外提供云存储服务,并能 管理数据的存储、备份、复制和存档,还有,良好的用户界面和强大的API支持也是不可或缺的。云存储系统非常适合那些需要管理和存储海量数据的企业,比如 互联网企业,电信公司等,还有广大的网民。相关的产品有中国电信的E云、 Amazon的S3云存储服务、 Google的Picasa相册和微软的SkyDrive网络硬盘等。

(4)虚拟桌面云

对许多企业而言,桌面系统的安装、配置和维护都是其IT运营非常重要的一个方面,桌面系统的分散管理将给整个IT部门带来沉重的压力,而且相关的数据和信 息安全不能受到有效地监控,同时企业更希望能将降低终端桌面系统的整体成本,并且使用起来更稳定和灵活。虚拟桌面云是这方面一个非常不错的解决方案,其是 利用了现在成熟的桌面虚拟化技术。 桌面虚拟化技术是将用户的桌面环境与其使用的终端进行解耦,在服务器端以虚拟镜像的形式统一存放和运行每个用户的桌面环境,而用户则可通过小型的终端设备来访问其桌面环境。另外,系统管理员可以统一地管理用户在服务器端的桌面环境, 比如安装、升级和配置相应地软件等 。这个解决方案比较适合那些需要使用大量桌面系统的企业。相关的产品有Citrix的Xen Desktop和VMware的VMware view。

(5)开发测试云

开发测试总是繁琐、易错和耗时的过程,特别是在准备测试环境上面,还有会遇到诸如测试资源管理混乱,难于重现问题发生的环境和缺乏压力测试所需要的强大计 算能力等棘手问题。而开发测试云能有效解决上面这些问题,其通过友好的Web界面,可以预约、部署、管理和回收整个开发测试的环境,通过预先配置好(包括 操作系统,中间件和开发测试软件)的虚拟镜像来快速地构建一个个异构的开发测试环境,通过快速备份/恢复等虚拟化技术来重现问题,并利用云的强大的计算能 力来对应用进行压力测试,比较适合那些需要开发和测试多种应用的组织和企业,比如银行、电信和政府等。相关解决方案有IBM Smart Business Development and Test Cloud 。

(6)大规模数据处理云

企业需要分析大量的数据来洞察业务发展的趋势,可能的商业机会和存在的问题,从而做出更好、更快和更全面的决策。还有,物联网会采集海量需要处理的数据。 大规模数据处理云通过将数据处理软件和服务运行在云计算平台上,能利用云平台的计算能力和存储能力来对海量的数据进行大规模的处理,除了上面提到的物联网 之外,还有许多企业和机构都会有这方面的需求。相关产品有Apache的Hadoop等。

(7)协作云

电子邮件、IM(Instant Messaging,即时通讯)、SNS (Social Networking Services ,社交网络服务)和通信工具(比如Skype和WebEx)等都是很多企业和个人必备的协作工具,但是维护这些软件和其硬件却是一件让人非常头疼的工作。 协作云是云供应商在IDC云的基础上或者直接构建一个专属的云,并在这个云搭建整套的协作软件,并将这些软件共享给用户,非常适合那些需要一定的协作工 具,但不希望维护相关的软硬件和支付高昂的软件许可证费用的企业与个人。这方面,最具代表性的产品莫过于IBM的 LotusLive ,它主要包括会议、办公协作和电子邮件这三大服务。当然Google Apps也是不容忽视的,其中Gmail和Gtalk都是协作的利器。

(8)游戏云

由于传统游戏软件容量都非常巨大,无论是单机,还是网游,都需要在游戏之前,花很多时间在下载和安装上,使玩家无法很尽兴地玩游戏,再加上游戏的购置成本 偏高,使得玩家在尝试新游戏方面,兴趣骤降。在这方面,业界部分公司推出了游戏云的解决方案,主要有两大类:其一是使用更多基于Web的游戏模式,比如使 用JavaScript 、Flash 和Silverlight等技术,并将这些游戏部署到云中,这种解决方案比较适合休闲游戏;其二是为大容量和高画质的专业游戏设计的,整个游戏都将在运行 云中,但会将最新生成的画面传至客户端。总之,休闲玩家和专业玩家都会在游戏云找到自己的所爱。在产品方面:第一种游戏云,已经有很多游戏都采用这种方 案,比如许多Facebook上的休闲游戏采用了后端云和前端Flash这样的组合;而第二种游戏云,AMD已经发布了类似的技术,但碍于现有的网络环 境,所以短时间内不会有特别成熟技术出现。

(9)HPC云

在科学方面HPC(High Performance Computing,高性能计算)领域,现在主要有两方面挑战:其一是供需不平衡,要么是现有的HPC资源太过稀少,无法满足大众的需求,要么就是贫富不 均,导致HPC资源无法被合理的分配;其二是现有的HPC设计和需求不符,虽然HPC已经发展了很多年,但是在设计还是将所有的计算资源整合在一起以追求 极致速度为主,但是现在的主流需求则常以只需要一小块计算资源为主,这导致HPC计算资源被极大地浪费,所以新一代的高性能计算中心不仅仅需要提供传统的 高性能计算,而且还需要增加资源的管理、用户的管理、虚拟化的管理、动态的资源产生和回收等等。这时,基于云计算的高性能计算应运而生,也就是HPC云, 其能够为用户提供可以完全定制的高性能计算环境,用户可以根据自己的需求来改变计算环境的操作系统、软件版本和节点规模,从而避免与其他用户的冲突, 并可以成为网格计算的支撑平台,以提升计算的灵活性和便捷性。HPC云特别适合需要使用高性能计算,但缺乏巨资投入的普通企业和学校。北京工业大学已经和 IBM合作建设国内第一个HPC云计算中心。

(10)云杀毒

新型病毒的不断涌现,使得杀毒软件的病毒特征库的大小与日俱增,如果在安装杀毒软件的时候,附带安装庞大的病毒特征库的话,将会影响用户的体验,而且杀毒 软件本身的运行也会极大地消耗系统的资源。通过云杀毒技术,杀毒软件可以将有嫌疑的数据上传到云中,并通过云中庞大的特征库和强大的处理能力来分析这个数 据是否含有病毒,这非常适合那些需要使用杀毒软件来捍卫其电脑安全的用户。现有的杀毒软件都支持一定的云杀毒这个特性,比如360杀毒和金山毒霸等。

二、云计算的架构

在对云计算进行了三年多的研究之后,觉得虽然云计算涉及了很多产品与技术,表面上看起来的确有点纷繁复杂,但是云计算本身还是有迹可循和有理可依的,所以在个人理解的基础上,我总结出了一套云计算的架构,具体请看图 2-1 。

云计算详解

上面这个云架构共分为服务和管理这两大部分。

在服务方面,主要以提供用户基于云的各种服务为主,共包含三个层次:其一是 Software as a Service软件即服务 ,简称SaaS,这层的作用是将应用主要以基于Web的方式提供给客户;其二是 Platform as a Service平台即服务 ,简称PaaS,这层的作用是将一个应用的开发和部署平台作为服务提供给用户;其三是 Infrastructure as a Service基础架构即服务 , 简称IaaS,这层的作用是将各种底层的计算(比如虚拟机)和存储等资源作为服务提供给用户。从用户角度而言,这三层服务,它们之间关系是独立的,因为它 们提供的服务是完全不同的,而且面对的用户也不尽相同。但从技术角度而言,云服务这三层之间的关系并不是独立的,而是有一定依赖关系的,比如一个SaaS 层的产品和服务不仅需要使用到SaaS层本身的技术,而且还依赖PaaS层所提供的开发和部署平台或者直接部署于IaaS层所提供的计算资源上,还 有,PaaS层的产品和服务也很有可能构建于IaaS层服务之上。

在管理方面,主要以云的管理层为主,它的功能是确保整个云计算中心能够安全和稳定的运行,并且能够被有效地管理。

1、软件即服务SaaS

软件即服务(SaaS)为商用软件提供基于网络的访问。您有可能已经使用过SaaS,即使您当时并不知道。SaaS的示例太多了,例如Netflix、 Photoshop.com、Acrobat.com、Intuit QuickBooks Online、Gmail、Google Docs、Office Web Apps、Zoho、WebQQ、新浪微盘等等。可能不太明显的SaaS实现包括移动应用程序市场中的相当一部分。

SaaS为企业提供一种降低软件使用成本的方法 — 按需使用软件而不是为每台计算机购买许可证 。尤其是考虑到大多数计算机在差不多70%的时间是空闲的,SaaS可能非常有效。企业不必为单一用户购买多个许可证,而是让许可证的使用时间尽可能接近100%,从而尽可能节省成本。

1.1 SaaS的优势

SaaS 给软件厂商提供了新的机会。尤其是,SaaS软件厂商可以通过四个因素提高 ROI(投资回报):提高部署的速度、增加用户接受率、减少支持的需要、降低实现和升级的成本。

(1)提高部署的速度

在过去,部署传统的桌面应用程序需要很大的工作量。实际上,我曾经多次听到桌面应用程序开发人员把更新他们的应用程序称为 “部署噩梦”。正如Tariq Ahmed在Flex 4 in Action (Manning Press) 的第1章中指出的,“要想让数千甚至数万客户机同时运行软件的某一版本,后勤方面的复杂性是非常高的。”

Ahmed说,复杂性这么高,以致于大多数桌面软件开发公司甚至认为这根本不合理或不可行。过去受到这个问题困扰的开发商应该考虑部署软件的SaaS版 本。但是,妨碍传统软件开发公司进入SaaS市场的最大障碍是让桌面应用程序能够作为SaaS应用程序运行。在许多情况下,这需要在某种程度上重新编写软 件,一些公司觉得这么做成本太高。

这正是向云计算转移的过程比较缓慢且平缓的主要原因之一。在大多数情况下, 符合逻辑的解决方案是分阶段地把软件转移到云中,首先以SaaS的形式提供原应用程序的高度简化的版本。 考虑到开发商对版本控制的控制水平,这么做是很合理的。在这里,分析一下SaaS的特点会很有帮助。

您可以看出在云计算与过去的 “LAN 计算” 之间有许多相似之处。典型的LAN架构由站内的许多工作站组成,它们常常被称为哑终端,它们通过连接强大的大型机(常常由IBM 提供)运行应用程序。这种计算类型过去非常适合企业,因 IT部门能够完全控制版本,可以非常方便地多次部署更新。同样,过去妨碍桌面软件应用程序开发商进行版本控制的后勤障碍在云中也不存在,因为软件在开发公 司能够直接访问的基础设施上运行。

考虑到SaaS必须能够服务的客户机数量,SaaS基础设施的规模要比LAN大得多。但是底层的概念是相同的。大型机能够驻留足够多的软件实例,从而为本 地网络中连接它的所有客户机提供服务;而云由许多不同的计算机资源组成,它们共同提供计算能力,从而运行为世界各地的客户机提供服务所需的许多软件实 例。

(2)增加接受率

如果您走出企业,看看SaaS对于一般消费者的意义,就会发现以前一些软件的许可证费用太高,而现在SaaS让一般消费者能够以合理的价格使用它们。一个 好例子是 Adobe 以SaaS的形式提供Adobe Photoshop。尽管这项工作是Adobe正在做的试验,但是已经取得了一些效果。例如,我注意到在需要执行简单的照片编辑任务时,在我的朋友和家庭 成员中越来越多的人开始使用Photoshop.com进行基本的照片编辑,而不是启动全功能的版本。出现这种趋势的原因是,不需要完整版本中的功能的人 现在可以省钱。与此同时,过去不使用Photoshop的人也开始使用Photoshop.com了,这给Adobe带来了争取新的长期客户的机会,扩大 了潜在客户的范围。

SaaS提供的多种业务模型尤其有吸引力。例如,Intuit 以SaaS的形式提供QuickBooks Online,按月收取服务费。作为经常旅行的企业主,我发现这种服务非常有用,尤其是因为我的业务伙伴住在400英里外的另一个州里。同时,Adobe 在Photoshop.com和Acrobat.com中应用了SaaS,以freemium服务的形式提供软件 — freemium服务是指一种基于许可证软件产品的SaaS缩略版的业务模型。

freemium SaaS基于的收入模型是,预计免费用户中的一部分最终会觉得软件很有用,他们会升级到启用了更多特性的SaaS付费版本,或者购买包含所有特性和功能的桌面版本的许可证。 这种方法往往比通过 “受限制的演示” 模式试用软件更好,因为演示模式要求用户在桌面计算机上安装他们可能不会购买的应用程序。 另外,如果免费用户中升级的比例低于预期,还可以通过广告进一步补充这个模型。随着云计算的发展,传统的桌面软件厂商经常使用这种方法适应市场的变化。

(3)减少支持的需要

大型客户服务中心的成本很高,不得不支持多种平台会导致支持问题增加,而SaaS可以大大缓解这些难题。首先,部署的简便性让开发人员能够在发现bug之 后很快进行修复,这意味着大多数bug可以在大量用户遇到它们之前被修复,这会减少客户支持部门接到的电话数量,提高客户满意度,降低客户流失的可能性。

另外,传统桌面软件应用程序的开发商常常必须支持多种平台。例如,开发商可能必须支持Windows 7和Apple Mac OS X 10.6操作系统,添加对第二种操作系统的支持差不多会让开发成本加倍;而且,如果支持这些操作系统的许多不同版本,问题会更多。支持操作系统的多个版本 还会产生限制。

例如,如果您要构建一个在Windows 7上运行的程序,但是它必须与Windows XP兼容,就必须非常小心,要确保特性和功能在这两个版本上都能够运行;否则,就必须把项目分为两个分支,为每个版本开发单独的代码,这会不可避免地降低 生产力和效率,延长完成项目的预期时间。让业务执行官心跳加速的最快方法之一是,告诉他后两年的预期开发进度要减慢一半儿。另外,支持不同的操作系统和这 些操作系统的不同版本会增加预算;这个问题和其他因素导致目前软件开发项目的失败率非常高。

(4)降低实现和升级的成本

SaaS推动ROI的第四个因素与第一个因素有点儿相似。但是,部署的速度是指快速、简便地部署应用程序更新所带来的好处。与之相反,降低实现和升级的成本是指开发公司由于能够控制版本和运行软件的基础设施所获得的经济利益。

因为开发商可以控制运行软件的平台(平台通常对于用户完全透明),所以他们不必负担在多个平台上测试和部署bug补丁和新特性的额外开销,这会节省大量资 金。这让SaaS应用程序的升级成本更低。节省的大量时间和资金让开发商有机会更好地响应客户的请求并增强易用性,从而提高客户满意度,降低客户流失的可 能性,这会带来间接的经济利益。

1.2 SaaS的用户体验设计

SaaS 应用程序代表着一种新一代应用程序设计方式。尽管在我目前看到的文档中没有明确地指出,但是看起来SaaS程序也带来了一种新的UI设计方式,这种方式与大多数其他行业中的产品设计流程更一致。 这种方式包含一个称为用户体验设计 (UXD) 的流程,在这个流程中由产品团队而不是开发团队设计GUI。

UXD的主要目的是,确定哪些特性会让应用程序对于目标客户最有价值,并在设计中融入这些知识。尽管对于是否应该在所有类型的软件的开发中都执行这个流程 有争议,但是在SaaS应用程序开发中这种做法非常普遍。出现这种现象的原因可能是,SaaS可以实现的业务模型与传统软件不同,需要执行UXD;而且通 过开发SaaS可以节省大量时间和资金,让开发商有能力执行UXD。

1.3 SaaS使用的技术

由于SaaS层离普通用户非常接近,所以在SaaS层所使用到的技术,大多耳熟能详,下面是其中最主要的五种:

(1)HTML :标准的Web页面技术,现在主要以HTML4为主,但是即将推出的HTML5会在很多方面推动Web页面的发展,比如视频和本地存储等方面。

(2)JavaScript :一种用于Web页面的动态语言,通过JavaScript ,能够极大地丰富Web页面的功能,最流行的JS框架有jQuery和Prototype 。

(3)CSS :主要用于控制Web页面的外观,而且能使页面的内容与其表现形式之间进行优雅地分离。

(4)Flash :业界最常用的RIA(Rich Internet Applications)技术,能够在现阶段提供HTML等技术所无法提供的基于Web的富应用,而且在用户体验方面,非常不错。

(5)Silverlight :来自业界巨擎微软的RIA技术,虽然其现在市场占有率稍逊于Flash,但由于其可以使用C#来进行编程,所以对开发者非常友好。

在SaaS层的技术选型上,首先,由于通用性和较低的学习成本,大多数云计算产品都会比较倾向HTML 、JavaScript和CSS这对黄金组合,但是在HTML5被大家广泛接受之前,RIA技术在用户体验方面,还是具有一定的优势,所以Flash和 Silverlight也将会有一定的用武之地,比如VMware vCloud就采用了基于Flash的Flex技术,而微软的云计算产品肯定会在今后大量使用Silverlight技术。

2、平台即服务PaaS

平台即服务(Platform as a Service,PaaS)提供对操作系统和相关服务的访问。它让用户能够使用提供商支持的编程语言和工具把应用程序部署到云中。用户不必管理或控制底层 基础架构,而是控制部署的应用程序并在一定程度上控制应用程序驻留环境的配置。PaaS的提供者包括Google App Engine、Windows Azure、Force.com、Heroku等。小企业软件工作室是非常适合使用PaaS的企业。通过使用云平台,可以创建世界级的产品,而不需要负担 内部生产的开销。

通过PaaS这种模式,用户可以在一个提供SDK(Software Development Kit,即软件开发工具包)、文档、测试环境和部署环境等在内的开发平台上非常方便地编写和部署应用,而且不论是在部署,还是在运行的时候,用户都无需为 服务器、 操作系统、网络和存储等资源的运维而操心,这些繁琐的工作都由PaaS云供应商负责。而且PaaS在整合率上面非常惊人,比如一台运行Google App Engine的服务器能够支撑成千上万的应用,也就是说, PaaS是非常经济的。 PaaS主要面对的用户是开发人员。

2.1 PaaS的优势

在软件开发过程中,一些东西常常会出问题。以我的经验,设置服务器环境以驻留开发团队要构建的Web应用程序可能会带来许多争吵。即使在最大的企业中,通 常一位网络管理员要负责为几个开发团队服务。在不使用PaaS的情况下,设置开发或测试环境通常需要完成以下任务:

* 获取并部署服务器。

* 安装操作系统、运行时环境、源代码控制存储库和必需的所有其他中间件。

* 配置操作系统、运行时环境、存储库和其他中间件。

* 转移或复制现有的代码。

* 测试并运行代码以确保一切正常。

在很多情况下,管理员已经非常忙了,所以让他们抽出时间部署新环境会很困难。对于客户机和服务器端的web应用程序开发人员来说,另一个主要问题是在本地复制运行时环境以便执行测试。

现在,想像一下您是使用PaaS的开发团队的成员。在这种情况下,您会有一个虚拟机 (VM),其中包含完整的服务器环境,可以把它放在USB闪存驱动器中带在身边。这无疑是非常方便的。一般来说,和现有的基于本地的开发和部署环境相 比,PaaS平台主要有下面这六方面有非常大的优势:

(1)友好的开发环境:通过提供SDK和IDE(Integrated Development Environment ,集成开发环境)等工具来让用户不仅能在本地方便地进行应用的开发和测试,而且能进行远程部署。

(2)丰富的服务:PaaS平台会以API的形式将各种各样的服务提供给上层的应用。

(3)精细的管理和监控: PaaS能够提供应用层的管理和监控,比如能够观察应用运行的情况和具体数值(比如吞吐量Throughput和响应时间Response Time等)来更好地衡量应用的运行状态,还有能够通过精确计量应用使用所消耗的资源来更好地计费。

(4)伸缩性强: PaaS 平台会自动调整资源来帮助运行于其上的应用更好地应对突发流量。

(5) 多租户(Multi-Tenant)机制:许多PaaS平台都自带多租户机制,不仅能更经济地支撑庞大的用户规模,而且能提供一定的可定制性以满足用户的特殊需求。

(6)整合率和经济性:PaaS平台整合率是非常高,比如PaaS的代表Google App Engine能在一台服务器上承载成千上万的应用。

2.2 PaaS的主要成分

了解 PaaS 的最好方法可能是把它分解为主要组件:平台和服务。现在,考虑提供的服务,这称为解决方案堆。也就是说,PaaS 的两个主要成分是计算平台和解决方案堆。

为了说明这两个 “成分”,我们进一步研究一下它们的定义。按照最简单的形式,计算平台是指一个可以一致地启动软件的地方(只要代码满足平台的标准)。平台的常见示例包括 Windows、Apple Mac OS X和Linux操作系统;用于移动计算的Google Android、Windows Mobile和Apple iOS;以及作为软件框架的Adobe AIR和Microsoft .NET Framework。要记住的重点是,计算平台不是指软件本身,而是指构建并运行软件的平台。图4提供一张示意图以帮助理解这种关系。

云计算详解 图2-2. 云计算分类与PaaS元素之间关系的图形化解释

既然理解了计算平台的概念,现在就来看看什么是解决方案堆。解决方案堆由应用程序组成,这些应用程序有助于开发过程和应用程序部署。这些应用程序是指操作系统、运行时环境、源代码控制存储库和必需的所有其他中间件。

2.3 PaaS供应商的选择

解决方案堆也反映不同PaaS公司的差异,在决定采用PaaS之前,需要深入考察各个提供商提供的解决方案堆。在与某家PaaS提供商签约之前,您应该问几个基本问题:

* 它支持哪些框架和语言?理想情况下,PaaS应该支持基于此平台选用的语言的任何框架。

* 可以创建多少个应用程序?大多数PaaS提供商会根据您签订的计划或服务包限制可以构建的应用程序数量。要确保提供商提供的计划或服务包能够满足您的需要。

* 允许哪些内容类型? 支持PaaS的基础设施通常涉及多租用者计算的概念,也就是说许多 “租用者” 分享单一服务器上的 “空间”,这些空间由系统管理程序管理的VM实例分隔。 PaaS提供商可能会对要驻留的应用程序和内容的类型加以限制。

* 支持哪些数据库类型?如果您的数据要随应用程序转移,这个问题就是非常重要的。必须确保提供商提供的数据库与您想要用来导入数据的格式兼容。

* 它是否支持SSL (HTTPS)?这个问题对于确保安全性非常重要。如果您打算通过应用程序处理事务,但是发现不支持SSL,您就遇到大麻烦了。

在比较PaaS提供商时应该考虑的特性:应用程序开发框架、容易使用、业务流程建模(BPM)工具、可用性、可伸缩性、安全性、包容性、可移植性、移植工具、API等。

2.4 PaaS使用的技术

PaaS 层的技术比较多样性,下面是常见的五种:

(1)REST :通过 REST(Representational State Transfer,表述性状态转移)技术,能够非常方便和优雅地将中间件层所支撑的部分服务提供给调用者。

(2)多租户:就是能让一个单独的应用实例可以为多个组织服务,而且能保持良好的隔离性和安全性,并且通过这种技术,能有效地降低应用的购置和维护成本。

(3)并行处理:为了处理海量的数据,需要利用庞大的x86集群进行规模巨大的并行处理,Google的MapReduce是这方面的代表之作。

(4)应用服务器:在原有的应用服务器的基础上为云计算做了一定程度的优化,比如用于Google App Engine的Jetty应用服务器。

(5)分布式缓存:通过分布式缓存技术,不仅能有效地降低对后台服务器的压力,而且还能加快相应的反应速度,最著名的分布式缓存例子莫过于Memcached 。

对于很多PaaS平台,比如用于部署Ruby应用的Heroku云平台,应用服务器和分布式缓存都是必备的,同时REST技术也常用于对外的接口,多租户 技术则主要用于SaaS应用的后台,比如用于支撑Salesforce 的CRM等应用的Force.com多租户内核,而并行处理技术常被作为单独的服务推出,比如Amazon的Elastic MapReduce 。

2.5 主要的PaaS产品

(1)Force.com:Force.com是业界第一个PaaS平台,其主要通过提供完善的开发环境和强健的基础设施等来帮助企业和第三方供应商交付 健壮的、可靠的和可伸缩的在线应用。还有, Force.com本身是基于Salesforce著名的多租户的架构。

(2)Google App Engine:Google App Engine提供Google的基础设施来让大家部署应用,它还提供一整套开发工具和SDK来加速应用的开发,并提供大量的免费额度来节省用户的开支。

(3)Windows Azure Platform :它是微软推出的PaaS产品,并运行在微软数据中心的服务器和网络基础设施上的,通过公共互联网来对外提供服务,它由具有高扩展性云操作系统、数据存储 网络和相关服务组成,而且服务都是通过物理或虚拟的Windows Server 2008实例提供。还有,其附带的Windows Azure SDK(软件开发包)提供了一整套开发、部署和管理Windows Azure云服务所需要的工具和API 。

(4)Heroku:是一个用于部署Ruby On Rails应用的PaaS平台,并且其底层基于Amazon EC2 的IaaS服务,而且在Ruby程序员中有非常好的口碑。

3、基础架构即服务IaaS

基础架构,或称基础设施(Infrastructure)是云的基础。它由服务器、网络设备、存储磁盘等物理资产组成。在使用IaaS时,用户并不实际控制底层基础架构,而是控制操作系统、存储和部署应用程序,还在有限的程度上控制网络组件的选择。

通过IaaS这种模式,用户可以从供应商那里获得他所需要的计算或者存储等资源来装载相关的应用,并只需为其所租用的那部分资源进行付费,而同时这些基础设施繁琐的管理工作则交给IaaS供应商来负责。

IaaS的关键概念:
* 云爆发(cloud bursting)
* 多租户计算(multi-tenant computing)
* 资源共用(resources pooling)
* 虚拟机监控程序(hypervisor)

    IaaS最与众不同的两个方面:可伸缩性和虚拟化(elasticity and virtualization)。

对于企业而言,IaaS的巨大价值通过 云爆发(cloudbursting) 概念实现。云爆发是指当业务瞬间增长,需要大量的计算资源时,将任务负载扩展到云环境的过程。云爆发促成的资本节约潜力巨大,因为企业无需额外投资利用率很低的服务器,那些服务器一年中只有两三次使用 70% 的容量,其余时间仅有 7-10% 的负荷。

3.1 从”基础架构即资产“到”基础架构即服务”

在过去50年之内,大量成功的公司花费大量宝贵时间和资源来构建基础架构,其目标是通过创建一个更大、更快、更强的网络来获取战胜其竞争对手的竞争优势。 IT 行业中的 “基础架构即资产” 范式拥有上世纪六七十年代的 “暴力跑车(muscle cars)” 所拥有的相同或类似的低效率和不利特征。对于企业计算,这些低效率包括:

* 大量未使用的计算能力和容量,它们耗费的成本与大型、昂贵的数据中心中的硬件消耗的大量空间相关联。比如服务器一年中可能只有两三次使用70%的容量,其余时间仅有7-10%的负荷。

* 昂贵的人力资源需求,包括要求基础架构资产(服务器、路由器、交换机等)所在的数据中心的网络管理员进行24小时监控。

* 旨在应对高水平能源浪费的Green Computing计划的一个巨大障碍。

IaaS标志着从 “基础架构即资产” 到 “基础架构即服务” 的转变。云计算的其他两个类别也标志着范式转变。对于Platform as a Service (PaaS),转变来自 “平台即资产” 范式,该范式的特征是大量采购许可。同样的转变也适用Software as a Service (SaaS),这种转变是从 “软件以许可形式作为组织资产” 到 “软件以服务形式提供”。

3.2 IaaS的主要特征

(1)可伸缩性

可伸缩性是IaaS的首要关键特征。为 了阐述可伸缩的概念,我需要您展开想象。假设云由一些粘在一起的棉花糖簇组成,这样人们就可以坐在它们上面。每个棉花糖都能承载一定数量的人,具体取决于 组成云的棉花糖簇的数量和那些簇中包含的棉花糖的数量。随着越来越多的人登上棉花糖云,您可以通过粘贴更多的棉花糖来扩展棉花糖簇,增加表面面积。您可能 已经明白,人代表需要计算资源的应用程序,比如承载网站并运行软件的资源。棉花糖簇代表VM集群,每个棉花糖代表一 VM。

尽管这听起来有点像Seuss博士的书中可能出现的内容,但它提供了一种方法来理解许多黑魔法(dark art)考虑的一个概念: 可伸缩的集群(elastic clustering) 。集群化几个物理服务器来形成一个虚拟云称为 云集群(cloud clustering) ,如果它真是一种黑魔法,则精通程度可以通过一位艺术家的系统设计的可伸缩性来衡量。

我们来看一个例子。假设您是一位为美国政府工作的统计研究员。政府有点人手不足,您刚刚接受一个任务,需要编辑最近的美国人口统计的所有数据。您负责制定 必要的统计数据,以便议会能够制定关于经济恢复资金分配和从现在起三天内的税收金额的重要决策。毋庸讳言,这是一项非常重要的工作,您的时间有点紧张。而 且,您必须处理的数据量简直是个天文数字,您刚刚发现,编辑那些统计数据需要的计算资源需要IT部门三周时间才能准备好!

这种问题正是您可以使用IaaS轻松缓解的。事实上,使用IaaS,您可以在一小时之内完成全美人口普查数据分析。您首先创建一个服务器的单个实例,这个 服务器包含在数据上运行查询需要的数据库软件。这个实例称为一个映像。当您部署映像并将数据导入数据库之后,就可以根据需要复制那个映像任意多次,并开始 运行您的数据处理任务。当任务运行时,您可以手动或自动添加和移除资源。例如,如果计算任务的运行速度不够快,只需将更多机器实例副本添加到集群。

(2)虚拟化

IaaS很容易定位,因为它通常是独立于平台的。IaaS有一个硬件和软件资源组合组成。IaaS软件是低级代码,独立于操作系统运行,例如虚拟机监控程序。虚拟机监控程序负责管理硬件资源的库存并根据需要分配上述资源(见图 2-3)。这个过程称为 资源共用(resource pooling)虚拟机监控程序实现的资源共用使得虚拟化成为可能,虚拟化使多租户计算(multi-tenant computing)成为可能。 多租户计算概念指由几个组织共享的一个基础架构,这些组织在安全需求和遵从性问题方面有类似的兴趣。

云计算详解

图2-3. VMs、虚拟机监控程序和计算机之间的关系

通过 IaaS,您拥有提供处理、存储、网络和其他计算资源的能力,您可以在那里部署和运行任意软件,比如操作系统和应用程序。大多数云计算用例遵循您已经习惯 的基础分层结构:一个软件解决方案堆栈或平台被部署在一个网络基础架构上,一些应用程序在那个平台之上运行。但是,虚拟化使得云范式独一无二。

3.3 IaaS的优势

IaaS服务和传统的企业数据中心相比,在很多方面都存在一定的优势,下面是最明显的五个。

(1)免维护:主要的维护工作都有IaaS云供应商负责,所以不必用户操心。

(2)非常经济:首先免去了用户前期的硬件购置成本,而且由于IaaS云大都采用虚拟化技术,所以在应用和服务器的整合率普遍在10以上,这样能有效降低使用成本。

(3)开放标准:虽然很多IaaS平台都存在一定的私有功能,但是由于OVF等应用发布协议的诞生,使得IaaS在跨平台方面稳步前进,从而使得应用能在多个IaaS云上灵活的迁移,而不会被固定在某个企业数据中心内。

(4)支持的应用:因为IaaS主要是提供虚拟机,而且普通的虚拟机能支持多种操作系统,所以IaaS所支持应用的范围是非常广泛的。

(5)伸缩性强:IaaS云只需几分钟就能提供用户一个新的计算资源,而传统的企业数据中心则往往需要几周时间,并且计算资源可以根据用户需求来调整其资源的大小。

3.4 IaaS使用的技术

在IaaS所采用的技术方面,都是一些比较底层的技术,其中有四种技术是比较常用的:

(1)虚拟化:也可以理解它为基础设施层的“多租户”,因为通过虚拟化技术,能够在一个物理服务器上生成多个虚拟机,并且能在这些虚拟机之间能实现全面的 隔离, 这样不仅能减低服务器的购置成本,而且还能同时降低服务器的运维成本,成熟的x86虚拟化技术有VMware的ESX和开源的Xen 。

(2)分布式存储:为了承载海量的数据,同时也要保证这些数据的可管理性,所以需要一整套分布式的存储系统,在这方面, Google 的GFS是典范之作。

(3)关系型数据库:基本是在原有的关系型数据库的基础上做了扩展和管理等方面的优化,使其在云中更适应。

(4)NoSQL:为了满足一些关系数据库所无法满足的目标,比如支撑海量的数据等,一些公司特地设计一批不是基于关系模型的数据库,比如Google的BigTable和Facebook的Cassandra等。

现在大多数的IaaS服务都是基于Xen的,比如Amazon的EC2等,但VMware也推出了基于ESX技术的vCloud ,同时业界也有几个基于关系型数据库的云服务,比如Amazon 的RDS(Relational Database Service,关系型数据库服务)和Windows Azure SDS(SQL Data Services, SQL数据库服务)等。关于分布式存储和NoSQL,它们已经被广泛用于云平台的后端,比如Google App Engine的Datastore就是基于BigTable和GFS这两个技术之上的,而Amazon则推出基于NoSQL技术的Simple DB 。

3.5 主要的IaaS产品

最具代表性的IaaS产品有Amazon EC2、IBM Blue Cloud、Cisco UCS和Joyent。

(1)Amazon EC2。EC2主要以提供不同规格的计算资源(也就是虚拟机)为主。它基于著名的开源虚拟化技术Xen。通过Amazon的各种优化和创新, EC2不论在性能上还是在稳定性上都已经满足企业级的需求。而且它还提供完善的API和Web管理界面来方便用户使用。这种IaaS产品得到业界广泛地认 可和接受,其中就包括部分大型企业,比如著名的纽约时报。

(2)IBM Blue Cloud。“蓝云”解决方案是由IBM云计算中心开发的业界第一个,同时也是在技术上比较领先的企业级云计算解决方案。该解决方案可以对企业现有的基础 架构进行整合,通过虚拟化技术和自动化管理技术来构建企业自己的云计算中心,并实现对企业硬件资源和软件资源的统一管理、统一分配、统一部署、统一监控和 统一备份,也打破了应用对资源的独占,从而帮助企业能享受到云计算所带来的诸多优越性。

(3)Cisco UCS。它是下一代数据中心平台,在一个紧密结合的系统中整合了计算、网络、存储与虚拟化功能。该系统包含一个低延时、无丢包和支持万兆以太网的统一网络 阵列以及多台企业级x86架构刀片服务器等设备,并在一个统一的管理域中管理所有资源。用户可以通过在UCS上安装VMWare vSphere来支撑多达几千台虚拟机的运行。通过Cisco UCS,能够让企业快速在本地数据中心搭建基于虚拟化技术的云环境。

(4)Joyent。它提供基Open Solaris技术的IaaS服务。其IaaS服务中最核心的是Joyent SmartMachine。与大多数的IaaS服务不同的是,它并不是将底层硬件按照预计的额度直接分配给虚拟机,而是维护了一个大的资源池,让虚拟机上 层的应用直接调用资源,并且这个资源池也有公平调度的功能,这样做的好处是优化资源的调配,并且易于应对流量突发情况,同时使用人员也无需过多关注操作系 统级管理和运维。

总结:

为帮助您理解云计算的这三个类别,我创建了一个跨概念矩阵供您参考:

表 1. 三个云计算类别的跨概念矩阵

范型转变 特征 关键词汇 优点 缺点和风险 不应该使用的场合
基础设施即服务 (IaaS) 基础设施即资产 常常独立于平台;分担基础设施成本,因此会降低成本;服务水平协议 (SLA);按使用量付费;自我伸缩 网格计算,效用计算,计算实例,系统管理程序,暴雨 (cloudbursting),多租用者计算,资源池 避免在硬件和人力资源方面花费资产费用;降低 ROI 风险;降低进入门槛;简化和自动化伸缩过程 企业效率和生产力很大程度上取决于厂商的能力;可能会增加长期成本;集中化需要新的/不同的安全措施 当资产预算大于运营预算时
平台即服务 (PaaS) 许可证购买 消费云基础设施;能够满足敏捷的项目管理方法 解决方案堆 简化的版本部署 集中化需要新的/不同的安全措施
SaaS 软件即资产(企业和消费者) SLA;由 “瘦客户机” 应用程序提供 UI;云组件;通过 API 进行通信;无状态;松散耦合;模块化;语义性互操作能力 瘦客户机;客户机-服务器应用程序 避免在软件和开发资源方面花费资产费用;降低 ROI 风险;简化和迭代式的更新 数据的集中化需要新的/不同的安全措施

三、云管理层

虽然和前面云服务的3层相比,熟悉云管理层的人非常少,但是它确实是云最核心的部分,就好像一个公司离不开其董事会的管理一样。 与过去的数据中心相比,云最大的优势在于云管理的优越性。 云管理层也是前面3层云服务的基础,并为这3层提供多种管理和维护等方面的功能和技术。如下图所示,云管理层共有9个模块,这9个模块可分为3层,它们分别是用户层、机制层和检测层。

云计算详解

1、用户层

顾名思义,这层主要面向使用云的用户,并通过多种功能来更好地为用户服务,共包括4个模块:用户管理、客户支持、服务管理和计费管理。

(1)用户管理

对于任何系统而言,对于用户的管理都是必需的,云也是如此。云方面的用户管理主要有3种功能。其一是 账号管理 ,包括对用户身份及其访问权限进行有效地管理,还包括对用户组的管理;其二是 单点登录 ,英文为“Single Sign On”,其意义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统,这个机制可以极大地方便用户在云服务之间进行切换;其三是 配置管理 ,对与用户相关的配置信息进行记录、管理和跟踪,配置信息包括虚拟机的部署、配置和应用的设置信息等。

(2)客户支持

好的用户体验对于云而言也是非常关键的,所以帮助用户解决疑难问题的客户支持是必需的,并且需要建设一整套完善的客户支持系统,以确保问题能按照其严重程度或者优先级来依次进行解决,而不是一视同仁。这样,能提升客户支持的效率和效果。

(3)计费管理

利用底层监控系统所采集的数据来对每个用户所使用的资源(比如所消耗CPU的时间和网络带宽等)和服务(比如调用某个付费API的次数)进行统计,来准确地向用户索取费用,并提供完善和详细的报表。

(4)服务管理

大多数云都在一定程度上遵守SOA(Service-Oriented Architecture,面向服务的架构)的设计规范。 SOA的意思是将应用不同的功能拆分为多个服务,并通过定义良好的接口和契约来将这些服务连接起来,这样做的好处是能使整个系统松耦合,从而使整个系统能够通过不断演化来更好地为客户服务。 而一个普通的云也同样由许许多多的服务组成,比如部署虚拟机的服务、启动或者关闭虚拟机的服务等,而管理好这些服务对于云而言是非常关键的。服务管理主要有下面这5个功能。

* 管理接口。提供完善的关于服务的Web管理界面和API接口。

* 自定义服务。能让用户对服务进行自定义和扩展。

* 服务调度。配备强健的机制来负责服务的调度,以使服务能在合理的时间内被系统调用和处理。

* 监控服务。利用底层的监控系统来观测服务实际的运行情况。

* 流程管理。提供一个工具来让用户将多个服务整合为一个流程,并对它进行管理以提升运行效率。

2、机制层

这层主要提供各种用于管理云的机制。通过这些机制,能让云计算中心内部的管理更自动化、更安全和更环保。和用户层一样,该层也包括4个模块:运维管理、资源管理、安全管理和容灾支持。

(1)运维管理

云的运行是否出色,往往取决于其运维系统的强健和自动化程度。而和运维管理相关的功能主要包括3个方面。首先是 自动维护 :运维操作应尽可能地专业和自动化,从而降低云计算中心的运维成本。其次是 能源管理 :它包括自动关闭闲置的资源,根据负载来调节CPU的频率以降低功耗并提供关于数据中心整体功耗的统计图与机房温度的分布图等来提升能源的管理,并相应地降低浪费。还有就是 事件监控 :它是通过对在数据中心发生的各项事件进行监控,以确保在云中发生的任何异常事件都会被管理系统捕捉到。

(2)资源管理

这个模块和物理节点的管理相关,比如服务器、存储设备和网络设备等,它涉及下面这3个功能。其一是 资源池 :通过使用资源池这种资源抽象方法,能将具有庞大数量的物理资源集中到一个虚拟池中,以便于管理。其二是 自动部署 :也就是将资源从创建到使用的整个流程自动化。其三是 资源调度 :它将不仅能更好地利用系统资源,而且能自动调整云中资源来帮助运行于其上的应用更好地应对突发流量,从而起到负载均衡的作用。

(3)安全管理

安全管理是对数据、应用和账号等IT资源采取全面保护,使其免受犯罪分子和恶意程序的侵害,并保证云基础设施及其提供的资源能被合法地访问和使用。主要包括下面这7种机制。

* 访问授权。为多个服务提供集中的访问控制,以确保应用和数据只能被有授权的用户访问。

* 安全策略。实现基于角色或者规则的一整套安全策略,而且还允许系统能模拟策略发生变更的情况以提升安全策略的健壮性

* 安全审计。对安全相关的事件进行全面审计,以检测是不是存在任何隐患。

* 物理安全。根据职责限定每个云管理人员不同的权限,比如门禁等。

* 网络隔离。使用VPN(Virtual Private Network,虚拟专用网络)、SSL(Secure Sockets Layer,安全套接层)和VLAN(Virtual Local Area Network,虚拟局域网)等技术来确保网络的隔离和安全。

* 数据加密。这个机制能确保即使数据被窃取,也不会被非法分子利用。相关的机制有:对称加密和公钥加密等。

* 数据备份。由于数据完整性对云计算而言是基本要求,所以除了通过上面这些机制来确保数据不会被没有权限的人访问之外,还需要对数据进行备份,以避免由于磁盘损坏或者管理不当导致数据丢失的情况,所以需要完善的备份服务来满足每个用户不同的备份策略。

(4)容灾支持

在容灾方面,主要涉及两个层面。其一是 数据中心级别 。如果数据中心的外部环境出现了类似断电、火灾、地震或者 网络中断等严重的事故,将很有可能导致整个数据中心不可用,这就需要在异地建立一个备份数据中心来保证整个云服务持续运行。这个备份数据中心会实时或者异 步地与主数据中心进行同步,当主数据中心发生问题的时候,备份数据中心会自动接管在主数据中心中运行的服务。其二是 物理节点级别 。系统需要检测每个物理节点的运行情况,如果一个物理节点出现问题,系统会试图恢复它或者将其屏蔽,以确保相关云服务正常运行。

3、检测层

这层比较简单,主要监控这个云计算中心的方方面面,并采集相关数据,以供用户层和机制层使用。

(1)监控系统

全面监控云计算的运行主要涉及3个层面。其一是 物理资源层面 ,主要监控物理资源的运行状况,比如CPU使用率、内存利用率和网络带宽利用率等。其二是 虚拟资源层面 ,主要监控虚拟机的CPU使用率和内存利用率等。其三是 应用层面 ,主要记录应用每次请求的响应时间(Response Time)和吞吐量(Throughput),以判断它们是否满足预先设定的SLA(Service Level Agreement,服务级别协议)。

四、架构示例

在现实的IT环境中,有许多云计算产品都符合本章所讲述的架构,其中比较知名的有Salesforce CRM和Google App Engine。为了帮助大家进一步理解云的架构,本节将以这两个著名的云计算产品为例来进行介绍。

1、Salesforce CRM

首先,从用户角度而言,Salesforce CRM属于SaaS层服务,主要通过在云中部署可定制化的CRM应用,来让企业用户在初始投入很低的情况下使用CRM,并且可根据自身的流程来灵活地定 制,而且用户只需接入互联网就能使用。从技术角度而言,Salesforce CRM像很多SaaS产品一样,不仅用到SaaS层的技术,而且还用到PaaS层、IaaS层和云管理层的技术。图2-3为Salesforce CRM在技术层面上大致的架构。

云计算详解

Salesforce CRM采用的主要技术包括以下几种。

* SaaS层。基于HTML、JavaScript和CSS这个黄金组合。

* PaaS层。在此层, Salesforce引入了多租户内核和为支撑此内核运行而定制的应用服务器。

* IaaS层。虽然在后端还是使用在企业环境中很常见的Oracle数据库,但是它为了支撑上层的多租户内核作了很多优化。

* 云管理层。Salesforce不仅在用户管理、计费管理、监控系统和资源管理这4个方面有不错的支持,而且在安全管理方面,它更是提供了多层保护,并支持SSL加密技术等。

2、Google App Engine

像前文介绍的那样,Google App Engine是一款PaaS服务,它主要提供一个平台来让用户在Google强大的基础设施上部署和运行应用程序,同时App Engine会根据应用所承受的负载来对应用所需的资源进行调整,并免去用户对应用和服务器等的维护工作,而且支持Java和Python这两种语言。在 技术上,由于App Engine属于PaaS平台,所以关于显示层的技术选择由应用的自身需求而定,而与App Engine无关。App Engine本身的设计主要集中在PaaS层、IaaS层和云管理层。关于App Engine在技术层面上大致的架构,具体请看图2-4。

云计算详解

Google App Engine采用的主要技术有以下几种。

* PaaS层。既有经过定制化的应用服务器,比如上面已经提到过的Jetty,也有基于Memcached的分布式缓存服务。

* IaaS层。在分布式存储GFS的基础上提供了NoSQL数据库BigTable来持久化应用的数据。

* 云管理层。由于App Engine基于Google强大的分布式基础设施,所以它在运维管理技术方面非常出色, 同时其计费管理能做到非常细粒度的API级计费 ,而且App Engine在监控系统和资源管理这两方面都有非常好的支持。

五、云的4种模式

虽然从技术或者架构角度看,云计算都是比较单一的,但是在实际情况下,为了适应用户不同的需求,它会演变为不同的模式。在NIST(National Institute of Standards and Technology,美国国家标准技术研究院)的名为“The NIST Definition of Cloud Computing”的这篇关于云计算概念的著名文档中,共定义了云的4种模式,它们分别是:公有云、私有云、混合云和行业云。接下来,将详细介绍每种模 式的概念、构建方式、优势、不足之处及其对未来的展望等。

1、公有云

公有云是现在最主流也就是最受欢迎的云计算模式。它是一种对公众开放的云服务,能支持数目庞大的请求,而且因为规模的优势,其成本偏低。公有云由云供应商 运行,为最终用户提供各种各样的IT资源。云供应商负责从应用程序、软件运行环境到物理基础设施等IT资源的安全、管理、部署和维护。在使用IT资源时, 用户只需为其所使用的资源付费,无需任何前期投入,所以非常经济,而且在公有云中,用户不清楚与其共享和使用资源的还有其他哪些用户,整个平台是如何实现 的,甚至无法控制实际的物理设施,所以云服务提供商能保证其所提供的资源具备安全和可靠等非功能性需求。

许多IT巨头都推出了它们自己的公有云服务,包括Amazon的AWS、微软的Windows Azure Platform、Google的Google Apps与Google App Engine等,一些过去著名的VPS和IDC厂商也推出了它们自己的公有云服务,比如Rackspace的Rackspace Cloud和国内世纪互联的CloudEx云快线等。

(1)构建方式

在构建方式方面,现在主要有3种方法。 其一是独自构建 :云供应商利用自身优秀的工程师团队和开源的软件资源,购买大量零部件来构建服务器、操作系统,乃至整个云计算中心。这种独自构建的好处是,能为自己的需求作最大限度的优化,但是需要一个非常专业的工程师团队,所以业界这样做的基本上只有Google一家。 其二是联合构建 : 云供应商在构建的时候,在部分软硬件上选择商业产品,而其他方面则会选择自建。联合构建的好处是避免自己的团队涉足一些不熟悉的领域,而在自己所擅长的领 域上大胆创新。这方面最明显的例子莫过于微软。在硬件方面,它并没有像Google那样选择自建,而是采购了HP和戴尔的服务器,但是在其擅长的软件方面 选择了自主研发,比如采用了Windows Server 2008、IIS服务器和.NET框架。 其三是购买商业解决方案 。由于有一部分云供应商在建设云之前 缺乏相关的技术积累,所以会稳妥地购买比较成熟的商业解决方案。这样购买商业解决方案的做法虽然很难提升云供应商自身的竞争力,但是在风险方面和前两种构 建方式相比,它更稳妥。在这方面,无锡的云计算中心是一个不错的典范。由于无锡购买了IBM的Blue Cloud云计算解决方案,所以在半年左右的时间内就能向其整个高新技术园区开放公有云服务,而且在这之前,无锡基本上没有任何与云计算相关的技术储备。

(2)优势

公有云在许多方面都有其优越性,下面是其中的4个方面。

* 规模大。因为公有云的公开性,它能聚集来自于整个社会并且规模庞大的工作负载,从而产生巨大的规模效应。比如,能降低每个负载的运行成本或者为海量的工作负载作更多优化。

* 价格低廉。由于对用户而言,公有云完全是按需使用的,无需任何前期投入,所以与其他模式相比,公有云在初始成本方面有非常大优势。而且就像上面提到的那样,随着公有云的规模不断增大,它将不仅使云供应商受益,而且也会相应地降低用户的开支。

* 灵活。对用户而言,公有云在容量方面几乎是无限的。就算用户所需求的量近乎疯狂,公有云也能非常快地满足。

* 功能全面。公有云在功能方面非常丰富。比如,支持多种主流的操作系统和成千上万个应用。

(3)不足之处

另外,公有云也有一些不足之处。

* 缺乏信任。虽然在安全技术方面,公有云有很好的支持,但是由于其存储数据的地方并不是在企业本地,所以企业会不可避免地担忧数据的安全性。

* 不支持遗留环境。由于现在公有云技术基本上都是基于x86架构的,在操作系统上普遍以Linux或者Windows为主,所以对于大多数遗留环境没有很好地支持,比如基于大型机的Cobol应用。

(4)对未来的展望

由于公有云在规模和功能等方面的优势,它会受到绝大多数用户的欢迎。从长期而言,公有云将像公共电厂那样毋庸置疑会成为云计算最主流甚至是唯一的模式,因 为在规模、价格和功能等方面的潜力实在太大了。但是在短期之内,因为信任和遗留等方面的不足会降低公有云对企业的吸引力,特别是大型企业。

2、私有云

关于云计算,虽然人们谈论最多的莫过于以Amazon EC2和Google App Engine为代表的公有云,但是对许多大中型企业而言,因为很多限制和条款,它们在短时间内很难大规模地采用公有云技术,可是它们也期盼云所带来的便 利,所以引出了私有云这一云计算模式。私有云主要为企业内部提供云服务,不对公众开放,在企业的防火墙内工作,并且企业IT人员能对其数据、安全性和服务 质量进行有效地控制。 与传统的企业数据中心相比,私有云可以支持动态灵活的基础设施,降低IT架构的复杂度,使各种IT资源得以整合和标准化。

在私有云界,主要有两大联盟:其一是IBM与其合作伙伴,主要推广的解决方案有IBM Blue Cloud和IBM CloudBurst;其二是由VMware、Cisco和EMC组成的VCE联盟,它们主推的是Cisco UCS和vBlock。在实际的例子方面,已经建设成功的私有云有采用IBM Blue Cloud技术的中化云计算中心和采用Cisco UCS技术的Tutor Perini云计算中心。

(1)构建方式

创建私有云的方式主要有两种。首先是独自构建,通过使用诸如Enomaly和Eucalyptus等软件将现有硬件整合成一个云。这比较适合预算少或者希 望重用现有硬件的企业。其次是购买商业解决方案。通过购买Cisco的UCS和IBM的Blue Cloud等方案来一步到位,这比较适合那些有实力的企业和机构。

(2)优势

由于私有云主要在企业数据中心内部运行,并且由企业的IT团队来进行管理,所以这种模式在下面这5个方面有出色的表现。

* 数据安全。虽然每个公有云的供应商都对外宣称,其服务在各方面都非常安全,特别是在数据管理方面,但是对企业而言,特别是大型企业而言,和业务相关的数据 是其生命线,是不能受到任何形式的威胁和侵犯的,而且需要严格地控制和监视这些数据的存储方式和位置。所以短期而言,大型企业是不会将其关键应用部署到公 有云上的。而私有云在这方面是非常有优势的,因为它一般都构筑在防火墙内,企业会比较放心。

* 服务质量(SLA)。因为私有云一般在企业内部,而不是在某一个遥远的数据中心中,所以当公司员工访问那些基于私有云的应用时,它的服务质量应该会非常稳定,不会受到远程网络偶然发生异常的影响。

* 充分利用现有硬件资源。每个公司,特别是大公司,都会存在很多低利用率的硬件资源,可以通过一些私有云解决方案或者相关软件,让它们重获“新生”。

* 支持定制和遗留应用。现有公有云所支持应用的范围都偏主流,偏x86,对一些定制化程度高的应用和遗留应用就很有可能束手无策,但是这些往往都属于一个企业最核心的应用,比如大型机、Unix等平台的应用。在这个时刻,私有云可以说是一个不错的选择。

* 不影响现有IT管理的流程。对大型企业而言,流程是其管理的核心,如果没有完善的流程,企业将会成为一盘散沙。实际情况是,不仅企业内部和业务有关的流程 非常多,而且IT部门的自身流程也不少,而且大多都不可或缺,比如那些和Sarbanes-Oxley相关的流程。在这方面, 私有云的适应性比公有云好很多,因为IT部门能完全控制私有云,这样他们有能力使私有云比公有云更好地与现有流程进行整合。

(3)不足之处

另外,私有云也有其不足之处,主要是成本开支高。因为建立私用云需要很高的初始成本,特别是如果需要购买大厂家的解决方案时更是如此;其次,由于需要在企业内部维护一只专业的云计算团队,所以其持续运营成本也同样偏高。

(4)对未来的展望

在将来很长一段时间内,私有云将成为大中型企业最认可的云模式,而且将极大地增强企业内部的IT能力,并使整个IT服务围绕着业务展开,从而更好地为业务服务。

3、混合云

混合云虽然不如前面的公有云和私有云常用,但已经有类似的产品和服务出现。顾名思义,混合云是把公有云和私有云结合到一起的方式,即它是让用户在私有云的 私密性和公有云灵活的低廉之间做一定权衡的模式。比如,企业可以将非关键的应用部署到公有云上来降低成本,而将安全性要求很高、非常关键的核心应用部署到 完全私密的私有云上。

现在混合云的例子非常少,最相关的就是Amazon VPC(Virtual Private Cloud,虚拟私有云)和VMware vCloud了。比如,通过Amazon VPC服务能将Amazon EC2的部分计算能力接入到企业的防火墙内。

(1)构建方式

混合云的构建方式有两种。其一是外包企业的数据中心。企业搭建了一个数据中心,但具体维护和管理工作都外包给专业的云供应商,或者邀请专业的云供应商直接 在厂区内搭建专供本企业使用的云计算中心,并在建成之后,负责今后的维护工作。其二是购买私有云服务。通过购买Amazon等云供应商的私有云服务,能将 一些公有云纳入到企业的防火墙内,并且在这些计算资源和其他公有云资源之间进行隔离,同时获得极大的控制权,也免去了维护之苦。

(2)优势

通过使用混合云,企业可以享受接近私有云的私密性和接近公有云的成本,并且能快速接入大量位于公有云的计算能力,以备不时之需。

(3)不足之处

现在可供选择的混合云产品较少,而且在私密性方面不如私有云好,在成本方面也不如公有云低,并且操作起来较复杂。

(4)对未来的展望

混合云比较适合那些想尝云计算的企业和面对突发流量但不愿将企业IT业务都迁移至公有云的企业。虽然混合云不是长久之计,但是它应该也会有一定的市场空间,并且也将会有一些厂商推出类似的产品。

4、行业云

行业云虽然较少提及,但是有一定的潜力,主要指的是专门为某个行业的业务设计的云,并且开放给多个同属于这个行业的企业。

虽然行业云现在还没有一个成熟的例子,但盛大的开放平台颇具行业云的潜质,因为它能将其整个云平台共享给多个小型游戏开发团队,这样这些小型团队只需负责游戏的创意和开发即可,其他和游戏相关的烦琐的运维可转交给盛大的开放平台来负责。

(1)构建方式

在构建方式方面,行业云主要有两种方式。其一是独自构建:某个行业的领导企业自主创建一个行业云,并与其他同行业的公司分享。其二是联合构建:多个同类型的企业可以联合建设和共享一个云计算中心,或者邀请外部的供应商来参于其中。

(2)优势

能为行业的业务作专门的优化。和其他的云计算模式相比,这不仅能进一步方便用户,而且能进一步降低成本。

(3)不足之处

缺点是支持的范围较小,只支持某个行业,同时建设成本较高。

(4)对未来的展望

行业云非常适合那些业务需求比较相似,而且对成本非常关注的行业。虽然现在还没有非常好的示例,但是对部分行业应该存在一定的吸引力,比如上面提到的游戏业。

本文主要在技术层面(特别是在云计算的架构方面)对云计算进行了详细描述,并且介绍了SaaS、PaaS和IaaS这3个云服务层,以及作为云计算中心“大脑”的云管理层,同时也讨论了公有云、私有云、混合云和行业云这4种主要的云计算模式。

判断是不是云计算的三条标准

什么是云计算

到底什么是云计算?这是大家比较关注的一个问题。现在我们发现了有很多种不同的说法,到底什么是 云,什么不是云,让人很费解。有人讲公有云是云,私有云不是云;还有人说支持虚拟化叫云,不支持虚拟化不叫云,但是Google不支持虚拟化,而我们都认 为Google是云;还有人讲有1000台服务器是云,好像999台就不是云。现在有个别高性能计算中心,什么都没变,就是名字改成叫云计算中心啦。为什 么有那么多人要打着云计算的旗号呢?要么赚眼球,要么圈钱,各有各的目的。

作为公众,需要鉴别哪些是真云,哪些是假云。为此,刘鹏教授提出判断是不是云计算的三条参考标准,供大家参考[3]:

用户所需的资源不在客户端而来自网络

这是云计算的根本理念所在,即通过网络提供用户所需的计算力、存储空间、软件功能和信息服务等。

服务能力具有分钟级或秒级的伸缩能力

如果资源节点服务能力不够,但是网络流量上来,这时候需要平台在一分钟几分钟之内,自动地动态增 加服务节点的数量,从100个节点扩展到150个节点。能够称之为云计算,就需要足够的资源来应对网络的尖峰流量,哪怕是突然出现了“贾君鹏”这样的热 点。过了一阵子,流量下来了,服务节点的数量在随着流量的减少而减少。现在有的传统IDC自称也能提供伸缩能力,但需要多个小时之后才能提供给用户。问题 是网络流量是不可预期的,不可能等那么久。

具有较之传统模式5倍以上的性能价格比优势

看了上面一条,有些人在想,没关系,多配一些机器,流量再大也应付得了。但这不是云计算的理念。 我们还有个性能价格比指标。云计算之所以是一种划时代的技术,就是因为它将数量庞大的廉价计算机放进资源池中,用软件容错来降低硬件成本,通过将云计算设 施部署在寒冷和电力资源丰富的地区来节省电力成本,通过规模化的共享使用来提高资源利用率。国外代表性云计算平台提供商达到了惊人的10-40倍的性能价 格比提升。国内由于技术、规模和统一电价等问题,暂时难以达到同等的性能价格比,我们暂时将这个指标定为5倍。拥有256个节点的中国移动研究院的云计算 平台已经达到了5到7倍的性能价格比提升,其性能价格比随着规模和利用率的提升还有提升空间。

PS:

云计算与网格计算的区别

云计算和网格计算本没有任何关系,至于云计算和分布式计算、效用计算等等概念,读者可以以此类推。

狭义云计算是指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的资源 (硬件、平台、软件)。提供资源的网络被称为“云”。“云”中的资源在用户看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。这 种特性经常被称为像水电一样使用IT基础设施。 广义云计算是指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的服务。这种服务可以是IT和软件、互联网相关的,也可以使任意其他的 服务。

云计算不是一种商业模式,不是一种付费模式,不是一种IT技术,不是一类IT产品,不是一种付费模式,不是SOA,不是虚拟化或虚拟化软件,不是简单地将购买变为租赁,不是分布式计算,不是高性能计算,不是网格计算,不是软件即服务(SaaS)。

网格计算是指分布式计算中两类比较广泛使用的子类型。一类是,在分布式的计算资源支持下作为服务被提供的在线计算或存储。另一类是,一个松散连接的计算机网络构成的一个虚拟超级计算机,可以用来执行大规模任务。该技术通常 被用来通过志愿者计算解决计算敏感型的科研、数学、学术问题,也被商业公司用来进行电子商务和网络服务所需的后 台数据处理、经济预测、地震分析等。

网格计算强调资源共享,任何人都可以做为请求者使用其它节点的资源,任何人都需要贡献一定资源给其他节点。网格计算强调将工作量转移到远程的可用计算资源上。云计算强调专有,任何人都可以获取自己的专有资源,并且这些资源是 由少数团体提供的,用户不需要贡献自己的资源。在云计算中,计算资源被转换形式去适应工作负载,它支持网格类型应用,也支持非网格环境,比如运行传 统或 Web2.0 应用的三层网络架构。网格计算侧重并行的计算集中性需求,并且难以自动扩展。云计算侧重事务性应 用,大量的单独的请求,可以实现自动或半自动的扩展。

网格的构建大多为完成某一个特定的任务需要,或者支持挑战性的应用。这也是会有生物网格、地理网 格、国家教育网格等各种不同的网格项目出现的原因。而云计算一般来说都是为了通用应用而设计的。云计算一开始就支持广泛企业计算、Web应用,普适性更 强。网格计算的主要思路是聚合分布的松散耦合资源。而云计算的IT资源相对集中,以Intenet的形式提供底层资源的获得和使用。

在对待异构性方面,二者理念上有所不同。网格计算用中间件屏蔽异构系统,力图使用户面向同样的环 境,把困难留在中间件,让中间件完成任务。而云计算,不同的服务用不同的方法对待异构型,所有传统的方法在这里都可以应用。有的提供基础设施,类似传统的 服务器,用户选择操作系统和应用环境,有的则屏蔽了操作系统、基础设施和系统软件的差异,比如Paas服务。

简言之,云计算和网格没有任何内在联系。网格计算一直在发展,只是它和云计算的出现没有任何关系。网格计算作为一种面向特殊应用的解决方案将会继续在某些领域存在,而云计算作为一场IT变革,则会深刻影响整个IT产业和人类社会

参考文献

https://en.wikipedia.org/wiki/Cloud_computing

http://blog.csdn.net/zhoudaxia/article/details/9021693

http://www.uml.org.cn/yunjisuan/201006212.asp

原文  http://www.elevencitys.com/2016/08/云计算详解/
正文到此结束
Loading...