本文内容参考《Above the Coulds: A Berkeley View of Cloud Computing》
云计算(IaaS)采用与否的经济学分析主要包含了以下几个方面:
1. 如果用长远的眼光来审视是否采用云计算来提供基础架构服务,云计算模式提供的弹性计算能够转嫁部分投资风险。相比于决定是否要购买和搭建硬件和网络系统的决策,按需付费的云计算经济模式使这类决策更加简单。
2. IT基础设施建设中,硬件成本将会持续的下降。事实上,不同硬件成本下降的速度是不一致的,例如计算机和存储成本将会比网络设备成本下降的快的多。采用云计算模式能够比企业建立自己的数据中心更加有效的跟踪这些变化,并将其反映到业务系统建设成本和业务服务定价上。
3. 现有应用系统转向云计算服务时,最需要考虑的因素是:业务系统预期的平均资源使用情况和业务系统峰值资源使用情况。特别是业务系统在不同的时间段对资源的需求具有很大弹性的情况下,我们必须对比一下所购买设备的实际使用情况以及在云计算环境下的运维成本。
一、利用弹性计算和资源的可伸缩性来转嫁风险
电信运行商在经营网络宽带的销售业务上,利用了按需服务和按使用计费的灵活销售模式(即按照使用资源情况进行付费)。这种按需服务和按使用计费的服务提供方式在云计算服务提供上将更加表现的淋漓尽致。云计算服务购买的计算时间可以用不同的方式来实现,比如1000台机器计算一个小时或者1台机器计算1000小时。
云计算的按需服务和按使用计费的模式准确的描述了云服务购买者所能看到的经济方面的好处,云计算将基础设施建设的“资金支出”转变成为“运营服务支出”。
以亚马逊的云计算服务为例,用户使用亚马逊的云计算服务,3年租用一台服务器的钱比购买一台服务器(假设每台服务器的使用期限是3年)的价钱还要贵,但是在考虑到云计算在弹性计算和转嫁风险方面的经济优势后,按需服务,按使用计费的云计算服务架构还是非常值得用户选择的。云计算最大的一个特点就是能够避免客户自己部署iT系统时很容易就出现的资源不足或者资源过剩的问题。
现在大多数的数据中心的服务器利用率在15%~20%之间。可能有人觉得这个数据不可性,低的吓人。但是考虑到大多数业务系统的峰值工作量比平均值工作量要高2~10倍,就比较能够容易理解数据中心的服务器利用率低的问题了。很少有用户在部署IT系统的时候低于该系统的峰值需求,这就必然导致了非峰值时间资源的哦浪费。系统负载的波动性越强,导致的资源浪费就越多。IaaS云计算可以非常细粒度的添加和移除业务系统使用的资源(比如以服务器或者CPU为单位),资源的使用时间的计算单位是分钟而不是周或者月,这将使业务系统的负载和计算资源形成很好的匹配。这就是IaaS平台的弹性计算的价值所在。
二、从成本的角度考虑,我们应该转向云计算吗?
对于企业来说,一个很重要的问题就是:从经济角度考虑,是该奖现有的基于数据中心的服务转向云计算,还是继续驻留在数据中心?
下表是AWS为参考的2003年和2008年的计算资源成本,给出了2003年和2008年1美元(AWS以美元作为结算货币)所能购买资源的比较结果,并且给出了2008年的价格基础上,与AWS上使用1美元价值的资源其实际成本的对比:
|
互联网带宽/按月
|
CPU小时(所有核)
|
存储
|
2003年设备
|
1Mbps
|
2GHz CPU,2GB内存
|
200GB,50Mb/s 速率
|
2003成本
|
$100/月
|
$2000
|
$200
|
1美元购买力
|
1GB
|
8CPU小时
|
1GB
|
2008年设备
|
100 Mbps
|
2 GHz,2路4核,
4 GB 内存
|
1TB,115 Mb/s速率
|
2008年成本
|
$3600/月
|
$1000
|
$100
|
1美元购买力
|
2.7GB
|
128 CPU小时
|
10GB
|
性价比提升
|
2.7倍
|
16倍
|
10倍
|
2008年AWS上租用价值1美元资源开销
|
$0.27-$0.40
|
$2.56
|
$1.20-$1.50
|
上表使我们可以比较过去5年间云计算核心技术相关成本花费的变化情况。注意,过去5年间,三个因素中广域网成本改进最小,而计算成本改进最大,但能够使用额外计算能力是建立在程序能够在计算机中用满所有核的假设基础上。这个假设上,效用计算(用多虚拟机服务成千上万用户)比一个单一公司来运行一个数据中心服务要更加具有优势。
有的人可能会提出疑问:上表中数据看,2008年1美元的硬件采购将比租用1美元相同硬件的要有优势。这是因为这个简单的分析遗漏了许多重要的因素:
1. 每个资源单独支付。
大多数应用所使用的计算、存储和网络带宽都不是相同的;一些应用主要使用CPU,另外的主要占用网络资源等等,并且这些应用都不能充分用满一个单一资源。直接购买云计算能够将应用与各种类型的资源隔离开来,能够降低不能充分利用资源的浪费。精确的节约成本是依赖于应用的,假定一个应用在网络能够承受的范围内,只能利用50%的CPU计算能力,那么作为一个数据中心,你必须要支付2倍的CPU机时成本来运行这个应用。因此,不是2.56美元租用一个价值一美元的CPU资源,其更精确的表述应该是用2.56美元租用了价值2美元的CPU资源。
2. 电力、制冷和场地成本。
电力、制冷和放置硬件的场地成本,这些因素在我们的分析中并未考虑。据粗略估计:在分摊放置硬件的建筑物的使用周期成本后,将会使CPU、存储和带宽的成本增加1~2倍。根据这个估计结果,在2008年购买128CPU小时的成本是2美元而不是1美元,相比EC2的成本2.56美元。同样,10GB的存储所成本也是2美元而不是1美元,相比S3的成本1.20到1.50美元每月。最后,S3为了耐用性和性能需要将数据至少被复制3次,第一次为了确保耐用性,第二次是为了性能,第三次是对于数据的高要求。这也就是说,使用S3的存储服务的实际成本应折算为6美元,而用户实际只需花费1.20到1.50美元。
3. 运维成本。
当前用于运维硬件的成本是十分低的——重启系统非常简单(可以按IP地址或者分组控制电源开关),而且经过简单培训的维护人员就可以进行服务器或者机柜级的损坏组件更换。一方面,由于效用计算是采用虚拟机而不是物理机,从云用户的观点来看,这些工作是云供应商应该承担的。另一方面,基于实现虚拟的层次,大多数软件管理成本将会依旧存在——升级、打补丁等。
带着上述考虑,下面给出是否该转向云计算的例子。
例子:假设一个生物实验室每进行一次实验将会产生500GB的新数据。一台和EC2实例同等处理能力的计算机处理新数据的速度为2小时每GB。该实验室内部拥有相当于20个EC2实例处理能力,因此处理一次实验的时间是500×2/20也就是50小时。当然,他们也可以在AWS上花1小时使用1000个实例来进行数据处理。处理数据的成本将是1000×$0.10也就是100美元再加上500×$0.10也就是50美元的网络传输费用。到目前为止一切顺利。他们估计从实验室到AWS的传输带宽是20Mbit/s。那么传输时间就是(500GB×1000MB/GB×8bits/Byte)/20Mbits/sec=4,000,000/20=200,000秒就是55个多小时。因为,在本地我们将花费50个小时而转向云计算则花费55+1=56个小时,因此不会转向云计算来进行数据处理。
一个相关的问题是软件的复杂性和迁移企业应用数据到云计算的成本。数据迁移仅是一次性的工作,迁移工作量通常较大,应该被作为决定是否使用云计算的一个考量因素。