云计算 频道

真正的革命:通过实例解析云计算本质

    【IT168 专稿】云计算本身并没有一个标准的定义,然而它却是对分布式计算机集群、提供实时资源和服务的网络以及数据中心的扩展性和可靠性等方面的一个形象的描述。本文将通过比较实际中的不同类型的云来介绍云计算的概念、创新之举以及它的优缺点。

    目前云计算的两大租用形式

    云计算主要有两种租用形式:按需提供运算机体和按需提供运算能力。两者使用的平台一致,但前者侧重于为客户提供需要的运算机体,而后者则被设计为适于提供高强度数据运算的能力。

    Amazon的EC2 服务(www.amazon.com/ec2)属于第一类云计算范畴。一个小型的EC2虚拟运算机体大致配置如下:1.0~1.2GHz 2007年Opteron或是2007年Xeon处理器;1.7G的内存、160G硬盘空间,具备中等的I/O性能,收费标准为一小时$0.10美元。另外一个按需提供运算机体是Eucalyptus系统,它与Amazon的EC2具有同样的API接口。

    Google的MapReduce则属于第二种类型的云计算。它强大运算能力可有最近一次实验中窥见一斑。研究人员用1800台服务器搭建了一个集群平台,其中每台服务器配备2GHz Intel Xeon处理器,4G内存和2个160G IDE接口磁盘。将MapRedue系统运行于平台之上,并启动TeraSort运算测试工具(http://research.microsoft.com/barc/SortBenchmark),运算目标是为1010个100字节(大致为1TB)的记录数据进行排序。最终整个过程只花费了大约850秒。开源系统Hadoop(http://hadoop.apache.org/core)调用了MapReduce实现了同样的功能。

    按需提供运算能力的云模式造就了SaaS(软件在线服务)的兴起,比如Salesforce.com及其他的在线软件产品;另一种即是类似于Amazon EC2的PaaS(硬件在线服务)。

    云计算的三大特性

    在线服务的概念在互联网上早已有之,然而云计算相比有三大特性,因而备受瞩目。

    (1) 扩展性:一些公司云计算架构的可以扩展到几个甚至更多数据中心的规模;

    (2) 简约性:在云计算之前,实现高性能分布式运算的编程十分复杂,需要有网格式服务、节点间的信息传递以及其他一些特殊的方法才能实现。而现今,大多数人都觉得云存储服务API和MapReduce式的云计算API实现起来要简单一些。

    (3) 经济性:云计算实现了按需计算的收费模式。比如说,你需要在增加1000个运算单元处理1小时,那么你只需购买这1000个运算单元1小时的运算能力,而无需购置设备。这是个革命性的突破,意味着:通过Google File System和MapReduce或Hadoop Distributed File System,调用1000个节点进行10TB数据运算的大型工程变得容易实现。目前大多数的工程还没有达到这个规模的运算量。

    私有云 vs. 公共云

    云计算的管理、成本和安全性取决于用户是自身创建内部云还是购买第三方服务。私有云一般归单一组织内部管理和使用,也可托付于第三方对云进行管理。因此,私有云可以是自有,也可租借。相反,公共云都是由一个组织负责运作,然后将云服务提供给各个需要的客户。比如,Google的GFS、MapReduce和BigTable组成的内部云即是私有云,目前为止,这些服务不对外开放。而向对公众开放、按需收费的Amazon EC2、S3和SimpleDB即是公共云的一部分。

    值得说明的是,Google私有云也对外提供了一些公共云的服务,如email和在线办公服务等。
 

    基于使用型的弹性收费模式

    前面提及,云计算是以使用的运算资源收费,实行的是一种弹性的按需收费模式。用户如遇临时需要增加运算能力的情况,可以通过云随时获得所需的计算能力。在这点上类似于水电等公共设施,因此云计算又被称为公共计算。Amazon S3和EC2就是采用此种收费模式。

    企业组织得到云服务有多种途径,包括建立内部私有云,或是购买第三方的按需收费模式的云。这种计费方式优点在于:

    (1) 无需前期投资,用户可以根据能力按需购买;

    (2) 随时满足用户多变的运算需求。比如说在Web 2.0时代的应用运算中,可能头一天只需处理100个用户请求,第二天就猛增到10,000个,只有云计算才能适应这种变化。

    为了更好的理解公共计算的概念,我们来举个例子。假设你在未来3年内需要100台服务器,第一种方式是采用云计算,每台服务器每小时$0.40,一年8760小时,三年下来的费用大约为:

    100×0.40×3×8,760 = $1,051,200

    另一种方式可以是投入资本购置软硬件搭建系统。假设每台服务器成本$1,500,聘请系统管理员2名,每名的年薪为$100,000。每台服务器的功率为150W,每度电的价格为$0.10,这样一算100台服务器每年的能耗成本为$13,140。3年的总成本计算公式如下:

    100×1,500 + 3×13,140+ 3×2×100,000 = $789,420.

    所以由上得知,如果你想让服务器保持100%的使用效率,那么自己购买硬件显得比较划算,但是如果只能保持75%的使用效率,那么购买按需收费的云计算比较实惠。

    当然,以上的估算并没有包含所有的成本入内,但即使这样简单的估算也可以从中看出云计算的收费模式适应许多场合的需要。

    对用户来说的优势与劣势

    云计算的出现对当前用户一次性购买服务器硬件、自己管理的模式提出了挑战,它具有传统模式所不具备的优势。首先,最引人瞩目的就是它的收费模式,这种模式能够减少前期资本的投入,降低系统建立的门槛,并可根据需要随时扩展系统的规模,同时支持海量存储。

    第二,云服务能带来超越服务中心的经济性和高效性,比如云服务在提供服务的同时,也提供了所需的操作系统,技术支持以及更为有效的配置和更加安全的环境。因此,使用云服务的单位成本通常是低于企业上门直接提供服务的。

    云计算的劣势在于:⑴由于云服务通常是远程的,因此应用上容易受延迟和带宽问题的影响;(2)由于云服务是多客户在同一硬件体系下的应用,因此一旦某一客户的应用出现故障,必然危及同一体系下其他用户的使用;(3) 访问第三方供应商的产品有可能带来安全性和兼容性问题。

    层式服务协议栈

    存储云(Storage Cloud)能提供基于块或基于文件的存储服务,数据云(Data Cloud)能提供数据管理服务,而计算云则提供运算服务。通常它们分层分布建立起云服务协议栈,用以支持基于云的应用服务。见下图:

    无法避开的安全问题

    安全问题对云计算来说是个绕不开的坎。如果使用的是公共云服务,那么首先面对安全问题就是第三方负责数据的存储和保护。从好的方面考虑,将数据委托专业人士保管可以提高安全等级以及节省管理费用,尤其对一些小公司来说。但是,自己的数据存在别人的空间上并由他人管理,无论如何都无法不担心数据被盗看的情况发生。

    对于某些云应用,自身的安全机制就存在隐患。以Hadoop为例,目前还没有用户级的访问控制机制,虽然有消息称下一版本将会补上这个漏洞。不过不用担心,技术上实现安全机制并不难。比如说Sector也可提供按需计算的云服务,并有审计、管理和访问控制等安全机制的保障。根据TeraSort测试结果,Sector要快于Hadoop。(http://sector.sourceforge.net).
 

     统一的标准、通用语言与评测手段尚需时日

    开发云应用的组织机构目前希望自己的应用能从一个云很轻松的转移到另一个,并可对不同云服务进行互操作。比如说,在建立了合适的互操作架构后,一种云应用可从某一云服务供应商迁移到另一个收费更低、服务更多的云服务供应商中去。

    Amazon的API成为目前提供按需运算机体类型云计算的实质标准。云应用可利用这些API实现便捷性和互操作性。比如,Eucalyptus使用这些API之后,那么运行于Amazon EC2上的服务就也可以运行在Eucalyptus云上。不过,对于云存储来说,实现便捷性和互操作性的难度更大一些。Hadoop是最流行的云存储平台,但目前运行在Hadoop MapReduce上的应用无法迁移到另一个以C++编写成的云存储平台上。

    虽说涵盖所有云计算标准的出台还为时尚早,但Cloud Computing Interoperability Forum (www. cloudforum.org)和Open Cloud Consortium (www.opencloudconsortium.org)一直为此在努力。基于服务的构架设计也初露头角。Thrift是一款开发可扩展交互式语言服务的软件架构,具备代码生成引擎(http://incubator.apache.org/thrift)。Thrift可使不同云存储的访问应用变的简单,比如前面提及的Hadoop和Sector。开发一种为应用提供互操作的通用语言也可使不同云间的访问变的容易。目前已有多人为MapReduce并行编程模式开发语言,设计中包含了一些扩展SQL用以支持这种编程模式,但还没有形成统一的标准。

    当前最紧迫的工作是要建立不同云间互操作的标准。也许我们可以从互联网的发展历程得到一些启示,当初各网络的标准不一导致无法互连,后来引入了标准的TCP/IP等协议才推动了互联网的发展。今天,我们又面临着相似的情况,虽说现在标准化的进度缓慢,但相信解决了不同云间的访问后,云计算的未来无可限量。

    与云的标准化和通用语言的发展一致,云计算也没有统一的评测手段。目前流行的衡量云计算平台整体性能的工具有TeraSort。针对按需提供运算机体的云计算,最近有一款Cloudstone的评测工具。Cloudstone工具包包含了一个开源Web 2.0应用,一套负载生成部件,一系列性能监控部件,还有可以对给定的云进行每人每月花费的量化计算法。如果是云存储的评测,可以考虑MalStone (code.google.com/p/malgen/)。

    总结一下云计算可以发现,计算的单位已由单台电脑、集群服务器扩至数据中心。云计算不仅仅是计算规模的扩大,同时它带来了软件、系统和编程模式上的改变,大大降低了计算资源的复杂程度和使用成本。最为重要的一点,它开创了基于用户使用的灵活收费模式,用户仅需为他所使用的计算机体或存储空间付费。因此我们说,云计算是一次真正意义上的革命。

0
相关文章