上次 IT 行业向企业交付外包共享资源计算,还是在 20 世纪 80 年代的 分时系统,当时它发展成为一种高超的艺术,提供了企业要求的可靠性、性能和服务。今天,云计算准备好满足同一市场的需求,这基于新技术的革命、企业数据中心中大量未使用的计算能力以及高度强大的互联网数据通信基础设施的发展。从集中式共享基础设施交付计算的规模经济,让客户期望云计算成本将大大低于他们自己提供计算所产生的成本。再加上开源软件的部署成本降低以及远程计算的完全竞争特性,这些期望为云服务提供商持续降低价格奠定了基础。
这种定价压力导致云服务商品化,从而降低了企业需求的重要性,例如有保证的性能水平、正常运行时间和供应商响应速度,这与 Web 托管行业的情况非常相似。尽管如此,企业管理层期望通过使用云计算来替代新的和现有的 IT 基础设施来降低运营费用。期望与行业在当今接近零的价格点上可以交付的产品之间的这种差异,代表着一个技术和组织上的挑战,必须克服这一挑战,以确保企业大规模采用云计算。
这就是我们回到原点,分时系统重生的原因。与 30 年前使分时系统成为可行选择的相同力量正在发挥作用:计算成本高昂(远远超过物理系统的成本)以及保持其良好运行所需的高度专业化的劳动力。满足这些需求的云计算的基本特征是:4
云分为三个基本服务模型,每个模型都满足特定的业务需求。
IAAS(基础设施即服务)。 这是最基本的云服务模型。最终客户购买的是原始计算、存储和网络传输。此类产品作为服务器上的操作系统交付,并具有一定的存储和网络传输量。这些产品可以作为单个服务器交付,也可以作为集成到 VPDC(虚拟私有数据中心)中的服务器集合的一部分交付。
PAAS(平台即服务)。 这是更高的一层,最终客户在裸机基础设施之上购买应用程序环境。这方面的示例包括应用程序堆栈:Ruby on Rails、Java 或 LAMP。PaaS 的优势在于开发人员可以购买功能齐全的开发和/或生产环境。
SAAS(软件即服务)。 这是当前云堆栈中的最高层。最终客户购买的是工作应用程序的使用权。这方面的示例包括 NetSuite 和 SalesForce.com。(本文的重点不是此服务。)
根据我们提供云服务的经验,许多当前的云最终客户都将价格作为其主要决策标准。因此,服务提供商的产品往往趋向于最低公分母,这由以尽可能低的价格提供云服务的现实所决定。与此同时,云计算市场变得越来越拥挤,大型提供商纷纷进入这个领域,都试图将自己与已经确立地位的参与者区分开来。许多提供商在高度价格竞争的环境中竞争交付非常相似的产品的结果,在经济学家看来被称为完全竞争。完全竞争的市场(例如牛奶、汽油、飞机座位和手机服务市场)的特征是许多供应商行为旨在避免完全竞争的弊端,包括
当这些因素应用于云计算市场时,会导致产品无法满足企业对确定性行为和可预测定价的要求。由此引发的价格战可能会威胁到云供应商的长期生存能力。让我们仔细看看完全竞争如何影响云计算市场。
我们经常看到云计算的广告突破了以前的虚拟服务器实例的价格底线。这让人想知道云服务提供商如何做到这一点并继续经营下去。答案是他们过度承诺了他们的计算资源并削减了基础设施成本。结果是虚拟基础设施的性能可变且不可预测。5
许多云服务提供商对其用于向最终客户交付虚拟服务器的底层硬件和软件堆栈的具体细节含糊其辞,这为过度承诺创造了条件。过度承诺硬件的技术包括(但不限于)
除了使用过度承诺之外,供应商还能够通过限制对基础设施资源的访问或选择价格较低、性能较低(且可能较旧)的基础设施来以极低的价格提供云计算。在发现由于其他供应商的云计算服务偷工减料,我们无法向客户保证企业级性能后,我们进入了云服务提供商业务。以下是我们多年来看到的一些策略
广告价值与实际提供价值之间的这种差异之所以成为可能,是因为云计算交付了抽象的硬件,从而免除了客户管理硬件的责任,从而为此处列出的情况的发生提供了机会。正如我们在市场中的经验所表明的那样,客户群在购买这种商品方面经验不足,并且在选择和确定服务成本方面感到不知所措,并且还受到缺乏准确的基准测试和报告工具的阻碍。客户对价格水平的强调超过了结果,这推动了对性能不佳的云产品的选择。然而,企业不会对这种状况感到满意。
例如,入口和出口带宽通常单独收费,并且使用不同的费率;超出包含的基线存储或带宽量的超额部分按远高于广告基本费率的价格收费;对存储系统上使用的 IOPS(每秒输入/输出操作数)的数量收费;以及对 HTTP 收费get/put/post/list操作,仅举几例。最终用户在评估服务时无法预测这些额外费用;它们是云服务提供商能够赚取维持业务增长所需的资金的另一种方式,因为他们对计算收取的费用无法支持提供服务的成本。原始计算的价格已成为亏损领导者。
到目前为止,承诺还不是云客户与供应商关系的一个突出特征,甚至到了评论员会告诉您“无承诺”是云计算定义的基本组成部分的地步。然而,以低利润率提供云计算的经济学正在改变格局。例如,AWS(亚马逊网络服务)推出了需要一到三年承诺的预留实例。
其他行业以几乎相同的交付模式提供服务,最明显的是蜂窝电话提供商,在某种程度上还有电力公用事业。然而,出于某种原因,云计算的交付方式与过去一百年来为交付电力而开发的定价模型不同。这些提供商都使用长期承诺来确保其经济可行性,方法是将定价与其客户资源使用情况相匹配,后者决定了他们的成本。长期承诺(换句话说,合同)允许分时段定价和批量折扣。我们认为这些特征将在不久的将来成为云计算的普遍特征。对于作为 SaaS 交付的云计算,长期承诺已经很普遍。
当今以价格为中心的云计算市场正在迅速走向完全竞争,这对最终客户购买能够满足其需求的服务提出了挑战。这种第一代云产品,本质上是 Cloud 1.0,要求最终客户了解服务提供商为以如此低的价格提供计算而做出的权衡。
云计算服务提供商通常将 SLA(服务级别协议)定义为服务器、平台或应用程序在多长时间内可用的某种保证。在云市场领域,有意义的 SLA 很少见,即使供应商确实有 SLA,大多数时候它也是没有约束力的。例如,一家知名的云服务提供商保证 99.999% 的正常运行时间可用性水平,即每年五分钟的停机时间,对于任何未达到该可用性的月份,服务费可享受 10% 的折扣。然而,由于其基础设施并非旨在达到五个 9 的正常运行时间,因此它实际上是在提供 10% 的服务折扣,以换取声称该可靠性水平的好处。如果客户真的需要五个 9 的正常运行时间,那么 10% 的折扣甚至无法接近因信誉问题造成的收入损失、最终用户服务级别违规或市场份额损失的成本。
服务提供商对客户玩的另一个伎俩是以年度为基础计算 SLA。这意味着客户只有在一年过去后才有资格获得服务积分。显然,最终用户应密切关注所提供的 SLA 的详细信息,并权衡服务提供商未达到承诺的 SLA 会对业务产生什么影响。根据我们在过去四年提供 IaaS 和 PaaS 的经验来看,大多数客户并不十分了解他们的业务可以容忍多少停机时间,或者此类停机时间的成本是多少。这在云社区中营造了一种嘉年华氛围,在没有实现更高 SLA 所需的尽职调查的情况下,以更低的价格提供更高的 SLA,这又是另一场逐底竞争。
要利用 Cloud 1.0 的低价格,最终客户需要诚实评估实际需要的可靠性水平。
共享基础设施的危害之一是,一个客户的使用模式可能会影响其他客户的性能。虽然客户之间的这种干扰可以通过系统设计来消除,但是解决这个问题是一项成本,供应商必须在销售价格与成本之间取得平衡。因此,云性能的可重复基准测试很少见,因为它们不易实现,而且 Cloud 1.0 基础设施很少能够达到企业习惯的性能水平。
虽然询问云服务提供商的基础设施设计在直觉上是有道理的,但是为了实现 0.03 美元/小时的实例价格而限制性能的可能性范围超出了简单的分析,即使对于精通硬件的消费者也是如此。充其量,询问性能 SLA 是有意义的,尽管目前我们尚未在行业中看到任何性能 SLA。在大多数情况下,确定服务是否满足特定应用程序需求的唯一方法是在生产环境中部署和运行它,这对于大多数组织来说成本高昂。
以我的经验,大多数客户在决策过程中都将 CPU 小时定价作为其主要驱动因素。虽然由此产生的性能对于许多应用程序来说是足够的,但是我们也看到许多企业级应用程序在 Cloud 1.0 上无法令人满意地运行。
云计算的最大吸引力之一是,它通过向更大的商业社区开放生产计算,从而使生产计算的访问民主化。此外,消除对物理硬件的责任消除了对数据中心管理人员的需求。因此,负责生产计算但没有系统管理背景的人员越来越多,这产生了对全面的云供应商支持产品的需求。全天候实时支持人员成本很高,而商品云定价模型无法支持该成本。许多商品云产品仅提供电子邮件或基于 Web 的支持,或者仅支持其服务的使用,而不是最终客户的需求。
当您在为新客户进行重要演示之前无法访问您的服务器时,您该怎么办?由于云客户所需的支持级别与 Cloud 1.0 供应商提供的支持级别之间存在不匹配,我们已经看到许多客户用云取代了内部 IT,解雇了他们的系统管理员,但很快又聘请了云管理员。运行生产应用程序的商业企业需要有保证的 SLA 下提供的电话支持的快速响应。
在跳到 Cloud 1.0 之前,考虑支持其在您的业务中部署所涉及的成本是合适的。
当前对价格的短视关注创造了一种云计算产品,对于寻求企业级结果的客户来说,这种产品还有很多不足之处。虽然许多业务问题可以通过 Cloud 1.0 充分解决,但是今天在专用数据中心中运行的大量业务应用程序而言,以价格为中心的基础设施和交付模型将无法满足需求。因此,我们看到需要一种新的云服务产品,专注于为 SME(中小型企业)和大型企业市场提供价值。这种第二代基于价值的云专注于为业务关键型生产应用程序提供高性能、高可用性和安全计算基础设施,这与当今企业 IT 部门的任务非常相似。
这种新模型将专门设计为满足或超过企业期望,这基于企业真正的成本不仅仅以每个 CPU 周期的成本来衡量的认知。行业调查中 CIO 最常给出的阻止采用当前公共云产品的原因是,它们无法解决复杂的生产应用程序需求,例如合规性、监管和/或兼容性问题。为了解决这些问题,基于价值的云将专注于提供解决方案,而不仅仅是计算周期。
任务关键型企业应用程序会带来高昂的停机成本。1 实际上,许多 SaaS 供应商为其客户提供昂贵的停机时间保证。因此,企业通常需要四个 9(每年 52 分钟不可用)或更高的正常运行时间。高可用性计算成本很高,从历史上看,每增加一个 9 的可用性,交付该服务的成本就会增加一倍。这是因为构建为提供五个 9 可用性的基础设施没有单点故障,并且始终部署在多个物理位置。当前的云部署技术使用 n+1 冗余来改进这些经济性,最高可达三个 9,但它们仍然统治着这一点。由于可靠性的成本随着接近 100% 标记而呈几何级数增长,因此许多人认为五个 9 及以上是几乎无法实现(且负担不起)的,仅适用于最关键任务的应用程序。此外,满足企业性能要求存在重大基础设施挑战,这大大提高了资源价格。
Cloud 2.0 提供商面临的首要问题是向其企业客户提供能够满足其专用数据中心习惯的性能和可靠性的存储,且价格点要低得多。当传统存储技术用于云基础设施中时,它们无法提供足够的性能,因为工作负载的可预测性远低于它们的设计用途。特别是,磁盘访问的随机性以及工作集大小都与存储系统一次服务的不同应用程序的数量成正比。传统上,SAN(存储区域网络)通过使用 RAM 缓存解决了磁盘读取缓存问题。然而,在云应用程序中,设计的最大 RAM 缓存大小完全不足以满足缓存所有客户应用程序的总工作集的要求。这个问题在写入方面变得更加复杂,缓存传统上是电池支持的 RAM,这导致存储供应商转向 SSD(固态硬盘)技术来支持云应用程序。
一旦存储缓存问题得到解决,下一个问题是将云应用程序的大量数据从 SAN 传输到服务器。传统互连(例如大多数 SAN 当前附带的光纤通道)无法满足数据密集型 Cloud 2.0 基础设施的需求。以太网和 InfiniBand 都提供了更高的性能,目前出货的 InfiniBand 技术保持着最快可用互连的称号。避开 InfiniBand 的存储供应商正在将其产品降级为 Cloud 2.0 世界的二线地位。此外,快速互连是服务器之间的虚拟要求,因为企业应用程序通常部署为协作实例的虚拟网络,无法保证它们位于同一物理服务器上。3
随着越来越多的云部署在私有数据中心或中小型 MSP(托管服务提供商)中,亚马逊用于构建云的方法(其中硬件和软件都是内部开发的)不再实用。相反,云是使用商业技术堆栈构建的,旨在使云供应商能够快速进入市场,同时提供高质量的服务。然而,找到在成本上具有竞争力,同时提供可靠性、24/7 支持、足够的质量(尤其是在软件方面)和易于集成的组件技术非常困难,因为大多数传统技术并非为云部署而构建或定价。因此,我们预计会出现一些引人注目的 Cloud 2.0 技术故障,就像 Cloud 1.0 的情况一样。这种方法的另一个问题是,技术堆栈必须在云配置中提供本机可靠性,而云配置实际上提供了云供应商广告宣传的可靠性。
透明度是建立关系信任的第一步之一。如前所述,以价格为中心的云将其运营细节隐藏在其定价模型之后。对于 Cloud 2.0,情况不能如此。最终客户必须对云的行为有一个量化模型。云服务提供商必须在 NDA(保密协议)下提供其云架构内部运作的详细信息,作为与客户建立更紧密关系的一部分。深入了解云服务提供商的路线图和目标,也可以让客户参与到提供商云基础设施的演进过程中。透明度使客户能够获得对基础设施和供应商预期性能的信任。采取这一步骤对于供应商满足企业合规性和/或监管要求也可能是必要的。
只有当 Cloud 2.0 的计费模型清楚地传达了使用该服务的价值(以及因此避免的成本)时,才能实现这种透明度。为了实现这种清晰度,云供应商必须能够衡量和计费客户执行的计算操作的真实成本。然而,今天的硬件以及管理、监控和计费软件并非旨在提供此信息。例如,在多租户环境中对 IOPS 进行计费是一个非常深奥的技术问题,不仅影响云服务的设计,还影响其所依赖的技术,例如操作系统、设备驱动程序和网络基础设施。另一个例子是计算和最小化计算资源在一个或多个计算节点集群中的碎片成本,同时考虑到各个客户负载和资源需求的时间依赖性。
当云基础设施降低了部署障碍时,还有什么阻碍了部署?那将是服务,例如持续管理、事件响应、SLA 保证、软件更新、安全加固和性能调整。由于 80% 的停机时间是由硬件以外的因素引起的2,因此服务对于可靠的生产计算至关重要。传统上,这些服务由企业的 IT 部门提供,而仅仅用云中的远程服务器替换服务器并不能解决服务问题。由于与云计算一起交付的服务必然是外包的,因此它们必须在长期承诺的背景下交付,以便供应商熟悉客户的需求。这将改变当今 Cloud 1.0 客户对几乎或没有承诺的期望。与此同时,向长期承诺的转变将促使供应商关注客户满意度,而不是完全竞争市场中更普遍的客户流失。
SLA 是 Cloud 2.0 的关键。企业客户通常有义务在约定的 SLA 内向其客户提供服务。服务交付基础设施的 SLA 必须满足或超过企业已承诺提供的服务级别。服务交付基础设施的所有方面(计算结构、存储结构和网络结构)都应由监控系统监控。此外,还应监控客户的所有云实例。VM(虚拟机)必须在系统级别以及应用程序级别进行监控。然后,监控系统的丰富数据收集机制将作为服务提供商流程的输入,以便他们可以管理服务级别合规性。用于定义和呈现 SLA 合规性数据的丰富报告功能对于企业客户至关重要。
通常,SLA 由一定数量的 SLO(服务级别目标)组成,然后将其汇总以计算总体 SLA。值得记住的是,总体 SLA 取决于整个价值交付系统,从供应商的硬件和软件到供应商的支持和运营服务产品的 SLO。为了向企业客户提供真正的价值,云服务提供商必须与客户协商,以适当的抽象级别交付其服务,以满足客户的需求,然后将这些服务管理到总体应用程序 SLA。
为了获得高质量并最大限度地降低成本,基于价值的云必须依赖高度自动化。在 SaaS 云的早期,当作者构建 NetSuite 数据中心时,超过 750 台物理服务器被划分为三个主要功能:Web 交付、业务逻辑和数据库。机器映像模板用于创建每个层中的每个服务器。然而,随着时间的推移,由于临时更新和修复,系统会偏离模板映像。然后,在部署窗口期间,更新将应用于生产站点,这通常会导致其崩溃,从而导致违反最终客户 SLA。因此,人们花费了大量精力来寻找失败更新的随机原因。根本原因是 QA(质量保证)测试是在与模板完全相同的服务器副本上运行的;但是,一些生产系统是唯一的,这导致了部署窗口期间的故障。这些类型的问题甚至会破坏最严格的部署流程。这个故事的寓意是永远不要登录到服务器。这只能通过自动化所有例行系统管理活动来实现。
当今市场上有一些数据中心运行手册自动化工具,可用于企业数据中心。这些工具允许从创建虚拟基础设施到扩展、服务级别管理以及在客户完成系统后处置系统,对服务器生命周期的每个方面进行完全自动化。虽然自动化在企业数据中心中取得了重大进展,但在云中仍处于起步阶段。然而,为了取代企业数据中心,Cloud 2.0 必须包含自动化。此功能使云服务提供商和客户都能够获得一些前所未有的好处
通过提供超越简单提供 CPU 周期的价值,云提供商正在成为最终客户业务的一部分。 这需要与雇用员工或外包运营相当的信任程度。 您知道您在雇用谁吗? 这位供应商合作伙伴必须了解企业认为重要的东西,并且必须能够以支持云最终客户业务的方式运营。 通过承担企业运营服务提供商的角色,供应商使最终客户能够获得云计算的所有好处,而无需运行生产数据中心所需的专业技能。 然而,期望以今天的云计算价格交付消除内部人员配置需求的外包 IT 是不现实的。
为了使云 2.0 革命得以实现,必须发生两个转变,我们已经在我们的销售和营销活动中看到了这些转变:云供应商必须准备好为企业提供价值,以吸引他们离开其专用数据中心和专有 IT 部门;客户必须感知并要求云供应商提供快速可靠的云计算与最终用户所需运营服务的组合。
Q
1. Hiles, A. 五个九:追逐梦想?; http://www.continuitycentral.com/feature0267.htm。
2. Jayaswal, K. 2005. 管理数据中心:服务器、存储和 IP 语音。 Chicago, IL: John Wiley & Sons; http://searchdatamanagement.techtarget.com/generic/0,295582,sid91_gci1150917,00.html。
3. Merritt R. EE Times Asia. Sun 为以太网竞争准备 InfiniBand; http://www.eetasia.com/ART_8800504679_590626_NT_e979f375.HTM。
4. National Institute of Standards and Technology. 2009. NIST 云计算定义; http://csrc.nist.gov/groups/SNS/cloud-computing/。
5. Winterford, B. 2009. 压力测试给 Amazon 的云泼冷水。 IT News (8 月 20 日); http://www.itnews.com.au/News/153451,stress-tests-rain-on-amazons-cloud.aspx。
喜欢它,讨厌它?请告诉我们
Dave Durkee ([email protected]) 是 ENKI 的创始人兼技术总监,ENKI 是一家位于 Mountain View, California 的托管云计算服务提供商。 Durkee 在 IT 基础设施、网络、业务应用程序开发和执行公司管理方面拥有超过 25 年的经验。 他曾担任多个高级管理 IT 职位,包括托管 ERP 应用程序服务提供商 NetSuite.com 的 CIO。
© 2010 1542-7730/10/0400 $10.00
最初发表于 Queue vol. 8, no. 4—
在 数字图书馆 中评论这篇文章
Marc Brooker, Ankush Desai - AWS 系统正确性实践
构建可靠和安全的软件需要一系列方法来推理系统正确性。 除了行业标准测试方法(例如单元测试和集成测试)之外,AWS 还采用了模型检查、模糊测试、基于属性的测试、故障注入测试、确定性模拟、基于事件的模拟和执行跟踪的运行时验证。 形式化方法一直是开发过程的重要组成部分 - 也许最重要的是,形式化规范作为测试预言机,为 AWS 的许多测试实践提供了正确的答案。 正确性测试和形式化方法仍然是 AWS 的关键投资领域,并且这些领域的投资已经看到了出色的回报,从而加速了这些领域的投资。
Achilles Benetopoulos - 数据中心计算机的中间表示
我们已经到了分布式计算无处不在的地步。 内存应用程序数据大小正在超过单台机器的容量,因此需要将其分区到集群中; 在线服务具有高可用性要求,只有通过将系统部署为多个冗余组件的集合才能满足这些要求; 高持久性要求只能通过数据复制来满足,有时甚至跨越广阔的地理距离。
David R. Morrison - 模拟:分布式系统中未被充分利用的工具
模拟在人工智能系统的出现中发挥着巨大作用:我们需要一种高效、快速且经济高效的方式来训练人工智能代理在我们的基础设施中运行,而模拟绝对提供了这种能力。
Matt Fata, Philippe-Joseph Arida, Patrick Hahn, Betsy Beyer - 从公司到云:Google 的虚拟桌面
超过四分之一的 Googlers 使用内部的、数据中心托管的虚拟桌面。 这种本地产品位于企业网络中,允许用户从世界任何地方远程开发代码、访问内部资源和使用 GUI 工具。 其中最显着的特点是,虚拟桌面实例可以根据手头的任务调整大小,具有持久的用户存储,并且可以在公司数据中心之间移动以跟随出差的 Googlers。 直到最近,我们的虚拟桌面都托管在使用名为 Ganeti 的自研开源虚拟集群管理系统的 Google 公司网络上的商用硬件上。 如今,这项重要且对 Google 至关重要的工作负载在 GCP (Google Compute Platform) 上运行。