伯克利的云计算报告(中)

4.云计算的机遇


建造和运维超大规模的商用数据中心是云计算最关键的助推器,同时新技术趋势和新商业模型也起到了很重要的作用。云计算一旦“起飞”,一些过去看来不现实的新应用和使用模型找到了出路。

新技术和新的商业模式推动了云计算的发展。伴随Web2.0出现的,是从“high-touch, high-margin, high-commitment”的提供服务到“low-touch, low-margin, low-commitment”的自助服务的转变。比如,在Web1.0时代,接受陌生人的信用卡支付需要一份合约。这种合约适合大型商业关系,不适合个人用户和小型商业活动。PayPal出现后,任何个人接受信用卡支付无需合约,无需长期承诺,只需要适度的交易费。这些服务几乎不提供任何客户支持和关系管理,但是和为用户提供的便利相比,这微不足道。类似,个人网站现在可以利用google广告联盟获得收入,而不是与一家广告中介公司建立合作关系。这种商业模式对Web2.0应用同样适用。个人用户现在可以使用Amazon CloudFront实现内容分发,而不需要与Akamai建立合作关系。



Amazon Web Serice利用这个观察,在2006年推出了pay-as-you-go计算,售卖硬件级虚拟机,允许用户自主选择软件,而不影响其它用户。

虽然现在还没有看到云计算催生出新的应用,但是有几类应用与云计算结合后,可能变得更有吸引力,进而推动云计算的发展。Jim Gray在2003年说,出于经济的考虑,应该让数据更接近应用,因为带宽成本的下降速度远低于计算和存储成本。下面,本文从Jim Gray的视角,分析哪类应用对于云计算是很好的机遇。
  • 移动交互应用。Tim O'Reily相信“未来是属于能向人或其它传感器提供及时响应的服务”,这种服务是非常适合云计算的,因为它们不仅需要高可用性,而且需要大数据中心妥善存储大量数据。对于依赖多个数据源和其它服务的服务就更是如此。移动设备存在的一个问题是不会全天候连接到云端,但是离线操作的问题在其它领域已经很好解决了,所以这不是大问题。
  • 并行批处理应用。云计算为批量处理和TB级数据分析带来了独一无二的机遇,使用云计算只需要数小时就可以完成作业。如果应用本身具有足够的并行性,那么就可以利用云计算的一个重要特性:使用100台计算机1个小时和使用1台计算机100个小时,收费是一样的。现在,Google MapReduce及其开源实现Hadoop可以隐藏协调数百台服务器并发执行的复杂性,程序员可以通过MapReduce轻松表达此类并发应用。然而,从Jim Gray的角度分析,成本/效益分析需要考虑将数据迁移到云端的成本,只有当并行加速得到的效益超过数据迁移的成本才划算,后面会对这部分进行分析。
  • 业务分析。业务分析是一类计算密集型批处理应用。虽然大型数据库产业一般用于事务处理,但是这种需求已经不再增长了。现在越来越多的计算资源被用于理解客户、供应链、购买习惯、排名分析等等。因此,数据库处理的资源平衡点正在从事务向业务分析转移。
  • 计算密集型桌面应用的扩展。数学软件Matlab和Mathematica的最新版本可以通过云计算进行复杂的评估计算。其它的桌面应用可能同样可以无缝地扩展到云。和前面一样,成本/效益分析需要考虑数据迁移的成本。
  • 地域限制应用。一些应用可能非常适合云计算的弹性和并行性,但是因为数据迁移的成本或者数据传输的延迟而不得不放弃云计算。比如,长期财政决策非常适合云计算,但是股票交易不适合。除非广域网传输的成本和延迟下降,否则这类应用不太适合云计算。

5.云计算的分类


任何应用都需要一个计算模型、存储模型和传输模型。实现弹性计算和无限资源假象所必需的统计复用需要先将资源虚拟化,使得程序员感觉不到在和他人分享资源。不同的云计算供应商可以根据抽象的等级和资源管理的级别进行分类,下面是一个云计算频谱。



Amazon EC2在频谱的一端。一个EC2实例看起来就像物理硬件,用户可以控制内核以上的所有软件栈。EC2对于应用没有限制,虚拟化的层次很低,提供原始的CPU周期、块设备存储、IP网络,程序员可以干任何想干的事情。另一方面,这也使得Amazon很难提供自动扩展和容错。频谱的这一端意味着低层次的抽象,更少的资源管理。

在频谱的另一端,是Google AppEngine和force.com(SalesForce商业软件开发平台)。AppEngine专门针对传统Web应用,应用结构的灵活性很差,不适合通用目的的计算。但是AppEngine的这些限制,也成就了它的自动扩展和高可用性,以及专用的MegaStore存储。类似,force.com只支持商业应用。频谱的这一端意味着高层次的抽象,更多的资源管理。

MS Azure则位于频谱的中间,权衡了灵活性和编程方便。Azure应用依赖.net库,被编译为CLR,支持通用目的计算。用户可以选择编程语言,但是不能控制底层操作系统和运行环境。提供了一定程度的自动网络配置、容错和可扩展性。

每一种云计算都有存在的价值,应用需求的多样性导致了不同云计算都能找到自己的市场。而且,高级抽象的云计算可以实现在低级抽象的云计算之上。

6.云计算经济学


pay-as-you-go这个词可以很直接地表达云计算对用户的经济效益,用户只需要为他使用的资源付费。虽然表面看,从云计算购买一小时的计算资源,会比使用购买的同等计算机一小时的成本更高,但是考虑到云计算的弹性和风险转移,云计算的实际成本会低许多。

云计算的特点就是弹性计算,所谓弹性指的是云计算可以细粒度地增加和删除资源(比如EC2以实例为单位),并且只要短短几分钟就可以让你的计算资源更符合当前的工作负载。一个运转中的数据中心的服务器利用率只有惊人的5%到20%,但是考虑到负载的峰值一般是平均值的2到10倍,这又不足为奇了。很少有企业会提供比峰值负载的需求更少的资源,企业一般都会提供比峰值负载的需求更多的资源,平时就让多余的资源空闲着,这无疑是很大的浪费。下面一副图说明了为什么云计算可以节约成本;企业的负载是在不停变化的,每天不同时间段负载不同,季度和节假日也会影响负载;白色区域是实际需要的计算资源,灰色区域是浪费的计算资源,虽然云计算在白色区域的单位计算价格更高,但是因为浪费的资源更少,所以实际成本可以更低。左图的例子无疑很糟,高估了峰值。



企业还可能低估峰值,使得峰值来临时,有客户不能正常访问服务。这种情况比高估峰值要复杂,而且潜在的问题更大,因为这可能会流失客户,直到企业的最大计算能力重新匹配负载峰值。下图说明了低估峰值的危害,白色区域是企业的收入,灰色区域是用户无法访问服务导致企业损失的收入,而且随着用户的数量不断下降,白色进一步萎缩。



云计算的弹性对老字号公司和初创公司都很有价值。初创公司Animoto(视频剪辑服务)通过facebook发布了自己服务,他们对计算的需求在三天之内从50台服务器暴涨到3500台。没有人能够预见到资源需求每12小时翻一倍。过了这段热潮后,负载下降到了一个稳定的水平。Target是美国第二大零售商,使用AWS运行他们的网站。每逢“黑色星期五”大抢购(感恩节后一天),其它零售商都会遇到严重的性能问题,甚至间歇地无法访问,而Target和Amazon只是比平时慢50%。

下面使用一个简单的公式量化分析云计算的成本优势。



公式两边分别代表了云计算和静态数据中心的利润,哪边高就说明利润更大。revenue是用户使用服务一小时带来的收入,两边是一样的;Cost_cloud是云计算提供这一小时服务所需的成本,Cost_datacenter是私有数据中心提供这一小时服务所需的成本(包括电费、人工费、购买机器等等),一般来说,后者要便宜一些;UserHours代表了用户使用服务的总时间,因为存在供应不足的情况,左边会大于或等于右边;因为私有数据中心的计算容量是固定的,所以必须为Cost_datacenter除以一个平均利用率Utilization。

显然当Utilization接近1时,使用私有数据中心会更划算些。但是根据排队论,当Utilization接近1时,系统的响应时间为无限,一个实际的数据中心的可用资源只有0.6到0.8,而前面更是提到真实利用率只有5%到20%。如果企业选择提高利用率来节约成本,那么考虑到供应不足的风险,云计算对于提高利润仍然具有很大的潜力。

例子:假设中午的峰值负载需要500台服务器,午夜只需要100台服务器,平均负载需要300台服务器。为了满足峰值封在的需求,企业必须提供500台服务器的计算能力,因此整体的利用率只有0.6。当租用云计算三年(一台服务器的寿命)的价格低于购买服务器的价格的1.7倍时,使用云计算就能节省成本。

posted on 2013-09-10 16:22  OpenNaive  阅读(363)  评论(0编辑  收藏  举报

导航