云计算(CloudComputing)是分布式处理(DistributedComputing)、并行处理(ParallelComputing)和网格计算(GridComputing)的发展,或者说是这些计算机科学概念的商业实现。云计算的基本原理是,通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将更与互联网相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。云计算的蓝图已经呼之欲出:在未来,只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。从这个角度而言,最终用户才是云计算的线云计算的起源
“云计算(http:\/\/.cloudcomputing-china\/\o)(cloudcomputing)”是一个相对较新的概念,但事实上它的起源可追溯到互联网诞生之初。就目前来看,云计算概念最具革命性的Kaiyun平台 开云体育官方入口并不在其本身,而是许多与之相关的条件,随着这些条件逐渐成熟,云计算已越来越成为经济发展过程中的一种必然选择和趋势。
云计算的概念其实相当简单:即通过互联网提供软件与服务,并由网络浏览器界面来实现。用户加入云计算不需要安装服务器或任何客户端软件,可在任何时间、任何地点、任何设备(前提是接入互联网)上随时随意访问,业界称这种服务模式为“软件即服务(SaaS)”,而对大多数用户来说,它不过就是一个网络。
云计算的基本原理是,通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器(http:\/\/.hudong\/wiki\/%E8%BF%9C%E7%A8%8B%E6%9C%8D%E5%8A%A1%E5%99%A8\o远程服务器\t_blank)中,企业数据中心的运行将更与互联网相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。
有了网络的支持,有了虚拟化手段,有了资源优化的需要,有了量级延展的需求,那么这个大环境就有了云计算的气候。用户不会管数据中心是多么复杂,云里雾里是无所谓的,用户只需要知道用起来简单方便就行。
从Google的发展历史来看,Google原先因为没有投资,只能自己攒机,很差的机器不可能发挥服务器的性能和稳定性,于是只有去想该如何提高可靠性,如何利用很多破烂机器获得更高的性能。这就有了云计算的雏形。
我们都知道今天Google的规模,而如果我们不去认清云计算的强大,我们就不知道互联网的未来和规则。Google在98年的时候被迫发现了这一规则,然后我们看到了聚合的力量,今天微软\/corpCenter\/507.html\t_blank)、IBM、雅虎、百度、亚马逊这些企业看到了规则,于是开始进入云计算领域。云计算是巨大的商机。
作为一个IT技术新的焦点,“云”有许多定义(详见[A001]),这些定义反映了人们对“云”的理解和侧重面。其中主要有两类:侧重于计算的定义(“云计算”)和侧重于服务的定义(“云服务”)。
狭义云计算:是指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的资源(硬件、平台、软件)。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。这种特性经常被称为像水电一样使用IT基础设施;
广义云计算:是指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的服务。这种服务可以是IT和软件、互联网相关的,也可以是任意其他的服务。这种资源池称为“云”。“云”是一些可以自我维护和管理的虚拟计算资源,通常为一些大型服务器集群,包括计算服务器、存储服务器、宽带资源等等。云计算将所有的计算资源集中起来,并由软件实现自动管理,无需人为参与。这使得应用提供者无需为繁琐的细节而烦恼,能够更加专注于自己的业务,有利于创新和降低成本;。
云服务是能够通过Internet以按使用付款和按需访问的服务。云是一个能够容易地通过利用低接触、按需的业务模式来消费高度可伸缩和弹性服务的工具。作为HP观点最近的宣示,“一切皆服务”、云服务和基于internet的供应模式为企业IT和其它服务供应商提供不同的新机遇;它是一个技术法则、它针对不能由现有的技术供给解决的问题。重要的要了解云与internet、SaaS、公共服务计算有关,但与它们并不完全相同。此外,云非常适合于某些类型的服务,但不能取代传统的企业应用和基础设施。
云计算不是一个单一的实体。它可以划分成多种的风格/服务,每一种服务于一个特定的目的。下面介绍不同类型的云。
提供计算服务是云计算的基本目的。今天存在的超级计算机满足军事、情报机构、一些大学/研究机构和大型公司解决复杂问题的需要。云计算的目的是通过Web为这一群体提供此类计算能力。虽然通过Web提供超级计算服务看起来有点像是空想,但是HP,IBM,Yahoo和Google等业内巨头已经采取巨大的步伐来实现这一目标。它们计划利用专门的联接设备把大量使用低成本PC技术的服务器联网、来承担巨大的数据处理任务。通过在许多桌面PC和服务器之间平衡和分散计算工作负载,可以跨越Web把超级计算能力提供给用户。当前有大量研究机构和公司正在从事把超级计算提供给用户群体,人们预计很快将取得成功。
云存储是最流行的云计算形式之一,得到Google和Microsoft等业内大公司的密切关注。所有喧嚣声后面的原因是云存储能够提供的好处。下面的例子说明云存储如何发挥作用:
场景1: 一个刚起步的公司需要若干TB的存储空间。对如此大量的存储,这一新公司需要投入大量资金来安装存储基础设施。这是很困难的,因为刚起步的公司一般受到资金的约束、投入大量资金开发存储基础设施是一个风险很大的举措。
场景2: 一个刚起步的公司在一段时间内(如1年)需要若干TB的存储。一年后,这一存储空间和构建它的投资最终将被浪费掉。
在这两个应用实例中,云存储能够提供帮助。初创企业不必投资建立存储基础设施,而能够租用第三方云存储厂商提供的存储空间,象水电一样按照公共服务方式为所使用的空间付款。这显然对无论大小规模的企业都有很大的好处,因为它们不必担心投资于建立自己的存储基础设施。除了节约前端开支外,企业也不需要担心维护存储基础设施。云厂商将承担维护任务和客户无需指定人员来维护基础设施和解决问题。结果,企业能够节约大笔资金、用以扩展和发展它们的业务。
这是另一个关键类kaiyun体育全站 Kaiyun登录网页型的云计算。基于云Web Services厂商提供应用编程接口(API),使得开发者能够通过Internet取用功能、而不必开发全部的应用。一个知名的例子Xignite
(总部在加州San Mateo)的Web 服务,它使得用户能够按照需要访问财务数据,在几分钟内方便地直接集成到关键任务应用中。类似地,StirkeIron(总部在NC的Cary)也有一个Web服务,允许把活动的数据直接集成到任何应用、分散到多个应用或一个Web 网站。
基础设施即服务(IaaS)云提供必要的服务器、存储、联接和工具,支持按照公共服务模式从零开始建立一个应用环境。IaaS 云是SaaS 云和PaaS云的下层基础设施。IaaS 云一般使用起来很复杂,但提供高度的可伸缩性,更重要的是提供高度的灵活性。这些云的主要好处是快速供应。公司不必等待较长时间就能设置和部署新的服务器。相反,它们可以只从一个厂商以服务方式租用基础设施,立即使用它。另一个好处是云厂商承担维护服务器和基础设施。因此,租用的公司不必担心其基础设施。客户完全不必了解有关基础设施的任何细kaiyun体育全站 Kaiyun登录网页节。
虽然有些专家认为SaaS不是云计算,但把它分类为云计算是聪明的。SaaS 是一种流行的模式,多种应用由一个SaaS供应商托管在Web上,对基于Web 服务感兴趣的客户付款访问它们。业内人士说:SaaS和计算的差别是模糊的,把云计算视为提供SaaS的架构是明智的。为了证实这一事实,考虑 Google 检索或任何其它检索引擎。从它们所提供的可伸缩性和无所不在的服务,简单的基于Web的检索引擎显然是基于云的。于是,我们可以得出结论,云计算是SaaS的推动力或主干。
这是SaaS的一个变种。PaaS厂商不提供单个Web应用,而是提供一个基于云的软件开发环境。使用PaaS的公司可以利用供应商所提供的基础设施来为客户构建和提供应用。最大的好处是使用云平台的公司不需要投入可贵的资金于软件许可证和其它基础设施。但是,这些服务仅限于云厂商的设计和功能,结果开发者并没有完全的自由度。PaaS 是一个新概念,预期将随着越来越多的开发者开始使用这些服务取得很大的发展。这一概念最著名的例子之一是 Salesforce的 Force。Force 提供支持用户构建应用并和在Salesforce的基础设施上运行。
集成服务能够实现应用和数据之间方便的联接。这包括通信服务、运行控制集成的工作流的能力。虽然仍被认为处于早期,已经有若干个公司提供云中集成。Amazon 的 SQS 基于云集成服务很好的例子。它提供一个可靠的托管队列、可用于存储在计算机之间来回传输的信息。通过使用它,开发者能够方便地在他们的应用的分布式部件之间传输数据,而不会丢失信息。
迄今为止,我们已经看到云已经表现出何种属性?在云计算中,动态的共享计算资源被虚拟化、通过一个API作为服务来使用。云使用户能够通过把应用部署到一个虚拟化数据中心来运行它们。物理资源本身可以驻留在机构内部或外面、在本地硬件或者在企业数据中心、或者免费或以按使用付费方式从某个远程或管理服务供应商得到。要点是用户不需要知道、也不必关心。关键的是云计算是基于IP联接从一个逻辑资源、而不是电缆联接/物理资源提供服务的部署模式。服务供应者不管是内部或外面的都没有关系、只要提供的服务在信息、功能和处理质量等方面都符合预期的要求就可以了。
让我们一一介绍这些属性。最终的目标是能够根据这些属性来评估声称是云的各种实施,把它们与云区分开来。严格地说,云应当具有如下的属性,没有其中任何一个属性就不是云。
甚至在一个企业内部也是如此。用户知道他们要支付的款项,也知道他们将得到什么,就像每月支付信用卡或电话费一样。
如果没有API,那么它就不是一个服务。云把资源(如CPU和存储等)虚拟化为一个服务。因此云必须有API,即使仅仅作为装入、启动一个应用或停止它的工具;
正如在别处提到过那样,如果必须掌握40页文档用户才能起步,这就不是一个云。
云推动资源整合,使得操作者和用户能够得益于经济规模,多个用户共享一个服务器基础设施意味着更加有效地管理成本。
灵活的管理使得用户能够移动计算、内存和存储资源,同时提供完整的管理以及对最终用户透明的收费。拨号联接和切断资源使用、当作业结束时在不同任务之间移动资源、创建在部署和生产等活动之间有效的可移动边界,这些能力全部都是推广云技术的关键。
用户在希望时也可以过渡到不同的云。这是为什么私有云的思想有一点可疑。真正的云不预防客户搬家和移动到一个提供较好条件的服务供应商。由于客户很可能这样做,内部IT服务部门只能建立这种程度的零售原则。它们能够做的是为用户提供可供选择的不同类型服务。
云由定义一系列政策的服务等级协议动态管理,包括要求多快提供对请求的响应、收费多少和每天或每晚什么时间提供服务等;
云系统构建成多个客户可以共享基础设施,客户不会感觉到共享的影响、也不会危及每个客户数据的私有性和安全性。
应用可以使用和重复使用服务来构成,这些服务是松散耦合和彼此独立的。系统容忍服务故障、确保一个服务出故障不会影响其它服务;
这也许是最大的挑战。云系统在应用扩展时必须是可预测和高效的,允许用户根据需要随时增加和降低负载。位置对交易系统和复杂集群等许多应用是一个重要因素,因为位置影响延迟。但此时一个服务的延迟属性应当明确地作为与用户协议的组成部分。用户也许愿意为较低的延迟或较高的吞吐能力支付更多的费用;
为了达到这个目的,那么云计算的基础架构,还有他们的中间件和应用开发平台就应该具备以下这些特性:
在出现故障的时候,应该有一个应用实例的热备份来接替原来的应用,而不会出现中断或宕机。这也意味着,当我定好了一个策略,比如说所有的应用都有一个备份,当出错的时候,备份就代替原来的应用,然后系统会启动一个新的备份,从而维持我的整个可靠性策略。
系统要由服务水平协议(service-level agreements,SLA)来实现动态管理,这个协议定义了这样一些策略,比如多长时间内要对需求进行响应。如果系统正处于峰值负载阶段,就需要在更多的服务器上创建额外的应用实例,以保证事实定好的服务水准,即使是对低优先级的应用也是如此。
系统应该允许多个用户共享基础架构,而且对用户来说是透明的,并且不能威胁到每一个用户的数据隐私和安全性。
系统允许把多个离散的服务地组合在一起,但服务之间是保持独立的。某一个服务的改变或出错不会影响到其他的服务。这也意味着我可以不断重新使用这些服务。
应用和底层的硬件是相互隔离的。多个应用可以跑在一台计算机上面(比如通过VMWare进行的虚拟化),或者是多个计算机可以用来跑一个应用(如网络计算)。
这可能是最大的挑战。在应用扩展、增加的时候,系统应该可以实现可预测,并且保证效率。打个比方说,如果一台服务器每秒能够处理1000次交易,那么两台服务器每秒就应该可以处理2000次交易,以此类推。
数据管理是上述这几个方面的基础和关键,包括数据的分发、划分、安全和同步。一些新的技术如Amazon的SimpleDB能够解决一部分问题,但对于大型 关系型数据库来说还做不到。注意别让SimpleDB的字面意思(简单的数据库)把你迷惑了,我的同事Nati Shalom也曾说过,SimpleDB不是真正意义上的数据库。还有一种新的方法是内存数据网格(in-memory data grid)。
云计算的概念越来越流行,但这个概念也有被人滥用的趋势。现在,有一些人将云计算、网格、虚拟化、Web 2.0、软件即服务(SaaS)、在线备份和企业网格等概念混为一谈。尽管人们还无法明确定义云计算,但有些东西肯定不应被称为云。云计算概念已经被我们扭曲了,现在的云计算概念几乎包括了我们要做的一切。你甚至找不到一家不宣称自己是云计算的。有些技术和方法经常与云计算混淆在一起、应当把它们区分开来,从而澄清一些误解,进一步说明什么是真正的“云”。
网格有API,并且是线性可伸缩的。它们是SLA驱动、自愈、多人租赁和面向服务的-网格是一个把新工作负载作为共享服务的平台。无怪有一个普通的看法,认为云是网格或公共服务计算的一个子集。我们不接受这一看法,因为网格的确需要掌握40页文档、用户才能够起步使用它。云是一个抽象层、让真正的最终用户不需要担心网格的复杂性。网格与虚拟化一样是云Kaiyun平台 开云体育官方入口的关键实现技术。但是,云是交易模型、让最终用户不需要成为网格专家就能够消费象网格一样的服务。云允许消费者外包使用的专业技术。它隐藏网格的复杂性、使用起来非常方便(关于网格与云的区别详见[A003]);
事实恰恰相反,云集中所有必要的支持基础、使得SOA能够最后实现长期不能实现的承诺;
虽然公用计算和云计算经常被混在一起来谈,但其实上他们之间的区别是至为紧要的。公用计算指的是一种商业模式,这种模式决定应用基础架构的软硬件资源是如何分配的;而云计算指的是我们设计、构建、部署和运行应用的方式,这些应用在一个虚拟化的环境中执行,共享资源,可以动态地伸缩,可以实现自我愈合。