云计算:大数据时代的系统工程试读


Evernote 首席执行官菲尔·利宾(Phil Libin)的故事告诉我们,及时且认真查收邮件非 常重要。 Evernote 是一家笔记软件公司,最简单的解释是,这是一家帮助人们轻松记录、查找和 分享“笔记”(包括文字、图像、语音等)的公司,公司的产品是一种在线笔记存储和管理软 件。 菲尔·利宾对自己的这款产品有过各种描述,比如“转存大脑记忆的服务器”,“生活内容 的谷歌”,或者一个将手机从消磨时间变成节约时间的工具等等;但中心大都集中在一点上, Evernote 在尝试帮助人们更好地进行“记”和“忆”。 由于有限的记忆能力,人们会记住很多事情,但忘记的事情更多。大多数人对过往的记 忆都不会有太多关注细节。当一个念头或名词闪过脑海,人们有时会被唤起许多相关的记忆, 有时却会苦苦思索而不得,比如曾经读过的一段资料的出处,或一张明信片背后的邮寄地址。 Evernote 的定位就是一个可作为使用者“第二颗大脑”的平台。 Evernote 支持通过电脑或智能手机,创建和管理包括文字、图片和音频在内的笔记内容, 并支持网页内容剪辑和图片文字识别,用户也可以通过添加“标签”(Tag)来创建自己记忆 的“关联点”,然后在需要时通过这个被托管在云端的“第二颗大脑”快速找到各种所需资料。 这种描述很容易让人回想起美国科学家范内瓦·布什 ( Vannevar Bush)于 1945 年在其所 著《诚如所思》(as We May Think )中提到的一个“MEMEX”的东西。在这个承载了当时人 们科学理想的设备中,“人们在其中存储他所有的书、记录和信件,同时可以很高的速度和 极强的灵活性完成检索。作为辅助设备,它是人脑的无限扩大……人们已经建立了如此复杂 的文明,以至于必须把知识机械化才能从中得到符合逻辑的结论,而不至于因为记忆耗尽而 难以自拔。” 布什构想的“MEMEX”似乎更像是一张可用手杆操控档案的、具备存储功能的大桌子。 “桌子上有一个透明的平板,可以较长期地存放注释、注解、照片、备忘录等各种材料。把 材料放在上面,按下一个按钮就可以对其照相,存到 MEMEX 的胶片库中下一个空白的位 置……” [6] 这样,这个存储器能容纳上百年的资料,包括备忘录、注解和图片,然后通过进行“相 关索引”,将相关的项目连接起来,从而可以快速找到所需资料,或发现各类资料之间的相 关性。 当 Evernote 正式推出,向人们提供“笔记”服务时,这看起来就像是一个拉长了周期的制 作工序,花了 60 多年时间把布什的理想描绘、塑造、打磨,然后交由菲尔·利宾呈现出一个 清晰的实体。 Evernote 目前支持网页浏览器访问,也具有 Windows、Mac OSX 等计算机操作系统的 客户端,同时还支持 iPhone、android、BlackBerry、Windows Mobile 等移动设备,这意味着 在任何一个设备上通过 Evernote 来保存构思、关注和喜爱的东西之后,人们就可以快速在 所有适用设备上来找到他们。 虽然人们现在已经认可这种建立在远端服务器之上的云笔记服务,但在创业之初, Evernote的产品理念并非人人理解,而且差点儿因为缺乏资金而被迫关闭。具有戏剧性情节 的是,就在菲尔·利宾打算放弃之时,一个瑞典的用户发来一封电子邮件,表达了对公司产 品的喜爱之情,并在邮件的最后说,如果公司需要资金的话他愿意有所帮助[7] 。 …… 从目前来看,如果我们想要完整的认知云计算,应该从“服务”和“平台”两面去理解, 即云计算涵盖云计算平台和云计算服务这两个概念,如图 3-1 所示。 如前所述,云计算服务代表一种新的商业模式,对于任何一种商业模式而言,除了理论 上可行之外,还要保证实践上可用。对于云计算服务来说,要面向海量用户提供永远在线、 随时访问的可用服务,而且支持多用户按需获取服务资源,并保证服务的可靠性,就要求底 层 IT 系统能够支持这样的服务模式。 因此,伴随着云计算服务理念的发展,云计算也形成了一整套技术实现机制,而云计算 平台则是这套机制的具体体现。 云计算平台在本质上类似一个操作系统,管理着一个“可扩展的网络超级计算机”。这 个 操作系统通过一些技术将大量分布于各地的计算机通过网络连接起来,使之在逻辑上以整体 的形式呈现。在不同的应用需求出现时,系统可快速调动各种软、硬件资源协同工作,完成 计算、存储和沟通任务,而用户无需关注实现细节。网络超级计算机的“可扩展”性,就是指 根据需要可对计算资源进行添加或者删减,同时这个虚拟的计算机所展现出的性能会相应呈 近似线性的变化。 云计算平台和云计算服务的关系,如同底层基础和上层建筑。通过搭建“平台”,可以 将 大量计算资源集中起来,协同工作,对上层“服务”的运行进行支撑。而“服务”的丰富和扩展, 又对底层“平台”提出不断发展的要求。虽然如此,仍需要明确的是,这两者之间并没有必然 的对应关系。 云计算服务以商业服务模式为主要的推动力,底层技术平台的选择可以起到辅助和提升 的作用,它仍然可以运行在传统的底层架构(非云计算平台)之上。同样,云计算平台强调 的是通过先进的技术手段构建全新的基础平台或是改造旧有的底层架构,它可以为所有的应 用或计算服务提供底层支撑而并不局限于云计算服务,比如现在很多人正在研究如何把用于 科学研究中大规模模拟计算的并行计算框架在云计算平台上实现,又或者将云计算平台用以 解决企业面临的海量数据存储或系统管理问题。 尽管如此,由于云计算平台本身在设计上就针对了“大用户”、“大数据”和“大系统”的问 题——这也是提供云计算服务会遇到的典型问题,提出了解决办法,所以由云计算平台支撑 的云计算服务,不仅可以提高服务的效率,而且还会充分发挥出平台的能力和优势。可以说, 云计算平台在目前更适合推广云计算服务,只有二者的完美结合,才能实现在大规模用户 聚集的情形下以较低的服务成本,提供高可用和高可靠的服务,从而保持业务的持续发展性 和在商业竞争中的优势。 …… 我们每个人都同时存在于多个组织结构之中,要承担着不同的角色分工。为了达成一个 统一的目标,所谓“组织”必须考虑如何合理、有效地进行规划、分工、协调、制衡等,以期 顺利达成目标。 云计算创新性地将大量计算资源组织在一起,协同工作,意味着云计算必须在信息技术 的层面,给出一种针对大规模系统的科学管理办法。我们已知面对大规模系统时,单纯人工 管理的无力,于是云计算采取了一种自动化管理的办法,即机器管理机器。这意味着在一个 大的数据中心里,只需少数人员的巡视就能完成所有的日常维护工作。 美国管理学教授斯蒂芬·罗宾斯将管理描述为“一个协调工作活动的过程,以便能够有效 率和有效果地同别人一起或通过别人实现组织的目标”。“效率”是指以尽可能少的投入获得 尽可能多的产出,而“效果”是指尽可能达成组织目标。 对云计算来说,这直接指向了从根本上要面临的两个挑战:在增加节点、扩大系统规模 的同时,如何保证系统性能的近线性提高?系统任何一个部分都有可能出问题,如何保证系 统的稳定运行?除此之外,云计算还面临第三个根本问题,在面临不同的业务需求时,如何 快速将资源重新组织,以新的架构适应变化? 作为云计算技术的具体实现,云计算平台应对这三个挑战的就是其三个根本的技术思想: 弹性、透明和积木化。而为了实现这三点,云计算平台还包含另外三个技术思想:动态、通 用和多租赁。 动态是指,当组织内个体情况发生变化时,可以及时察知信息,进行调整,即“控制” 管理来确保系统设计的正常运行;通用意味着,针对不同的业务性质,底层系统都能提供支 撑,即便需要调整,也不必大动;而多租赁则保证在底层系统所构建的“云”上,可以支持各 种应用,每种应用又都支持大量用户。 弹性、透明、积木化、动态、通用和多租赁,是云计算平台的六大核心技术思想。依 此,云计算平台可在实现包括服务器、存储、网络、应用等在内的虚拟化基础上,将事件驱 动及协同合作机制相结合,设计出具有自动监控、反馈和处理机制的智能服务管理平台系统, 基于这种跨平台、可扩展的系统,对大规模计算资源进行自动化智能管理和监控。而且系统 负责对所有服务器上运行的软件服务提供自动部署、自动升级、自动配置、可视化管理和实 时状态监控,还可以根据环境和需求的变化或异常情况的出现,对之进行动态调度和自动迁 移。 这意味着,对于上层多变的应用需求而言,云计算平台提供了一个行之有效的支撑环境, 并实现了 IT 自动化管理,以机器管理机器。 很明显这是一个系统工程,非单项技术可独立完成,需要综合使用多种技术或架构理念 来实现目标。所以说,云计算在技术上的革命性,一是给出了一种资源组织的方法,使整个 IT 系统的结构发生了变化;二是创新性地将各种信息技术组合起来,完成了一件系统工程 的工作。 …… 前文已经说到,云计算技术是 SOA 理念在硬件和系统层面的延伸,可调度的资源更多, 灵活性也更大。在云计算平台中,通过对状态机的描述所转换出的编程语言,如果经由一个 分布式工作流引擎(Distributed Workflow Engine)进行读取,则系统即可按流程图的指示来 执行指令。 工作流引擎就像大脑,通过数据传输机制,将调度命令传输给各器官,然后根据处理结 果,进行反馈和下一步的处理。这意味着所有的工作,只要流程图画出来,经过解释语言描 述之后,计算机会自动完成资源、模块的调度工作。如同乐高积木,比照图样,选择“模块”, 一步步组合下去,就能搭出一个形状。 乐高积木之所以能够快速随意组合,关键在于其通用的拼插接口。云计算平台通过跨平 台互操作技术,实现了这种通用性。跨平台技术如前文所说,以通用访问层屏蔽底层硬件资 源的差异,可以调动所有计算资源,而互操作技术就是指通过定义一致各类模块都能理解的 接口,使不同的应用之间可以固定的协议进行数据的交换和传输,从而调动业务模块。 在此之前,企业需要针对每一个事务进行单独编程,针对每一个处理,都要编写判断和 执行语句。而云计算平台对状态机描述和工作流引擎的使用,使企业可以将精力放在业务逻 辑这类原子操作的开发上,然后将读、写、数据处理等类似操作进行“模块化”处理,在底层 只要利用工作流引擎根据事件驱动来进行调用,即可实现业务流程,这无疑极大扩展了代码 复用的可能性,实现所谓“积木化”的特点。 因此,在云计算平台中系统可以通过定义良好的接口和契约将系统的应用和资源联系起 来,然后根据需求进行分布式部署、组合和使用,使这些应用和资源转变为可共享的标准服 务,并实现这些服务模块的“即插即用”。这也引申出“积木化”的另一个重要意义,即通过将 资源的快速重组,来满足不同的业务需要,带来业务革新的可能性。 …… 在“泛网络化”时代,企业大多希望自身的信息系统可以有效地支撑更多的业务发展方向。 仍然以零售业为例,我们会发现这些方向体现为类似泛零售模式、实时供应链管理和数据驱 动的经营决策等具体的经营行为。 泛零售模式。由于顾客购物渠道选择的多样化,当前零售企业的销售渠道已经向实体零 售店面、电子商务网站和移动终端的购物应用并存的复合模式发展,即所谓的泛零售模式趋 势。因此,当物品的销售不再局限于固定的营业时间内和有限的实体店中,企业不可避免地 会遇到这样的问题,企业的信息系统如何对多个同等重要的销售渠道同时提供有效支撑? 电子商务网站需要高度动态、高度延展的支撑体系来满足可能(也是期望)出现的爆发 式用户增长,需要有能力提供让用户宾至如归的个性化内容、商品以及服务;移动终端应用 则对信息系统的实时性和感知性提出了更高的要求,需要满足海量用户具有个体特性的“此 时、此地、此景”的即时需求;而零售实体店在希望提高商品管理效率的同时,能更有效地 整合先进的零售设备和客户服务技术,充分发挥与客户面对面零距离交流的机会,发掘多方 积累的用户脸谱化信息,最大限度地实现商品销售。与此同时,如何无缝实现“线上与线下”、 “虚拟与实物”有效结合的客户获取、商品推广以及商品销售,也是企业对其信息系统提出的 重要需求。 实时供应链管理。供应链是零售企业的生命线,其组成通常包括了上游供应商,自身的 仓库、物流和门店,以及下游分销商等多个实体形成的多个环节。高效精准的供应链管理对 零售企业商品销售及利润都有重大的影响。 通常所说供应链管理的目标主要是 6R,即所谓的将顾客所需的正确产品(Right Product) 在正确的时间(Right Time),按照正确的数量(Right Quantity)、正确的质量(Right Quality) 和正确的状态(Right Status)送到正确的地点(Right Place),并使总成本最小。这就要求 上下游供应商、分销商和零售商等能形成一个合作共赢的网络整体,彼此之间快速准确地传 递信息,共享资源,缩短产品的流通周期,加快物流配送的速度,从而在最短的时间内满足 客户的个性化需求。 具体到信息系统中,高效的供应链管理就必须确保供应链中各个实体可以有效协作,信 息共享,以及供应链中各个环节数据的准确和实时反馈。特别是当企业向泛零售模式发展时, 供应链管理不仅需要具备单一商品在整个供应链中流动的可跟踪性、可视性能力,而且在多 渠道、多模式销售的环境中,也必须能够通过系统整体的商品分配和流通的精准规划,来实 现销售和利润的最大化。这些都对企业信息系统的支撑能力提出了要求。 数据驱动的经营决策。如同任何一个行业,零售企业面临的经营决策通常是多种目标之 间的妥协。以零售业的库存计划为例,库存过高,将会占用过量的资金,增加商品的存储成 本,还可能导致商品积压并引发商品贬值,而库存过低,则会导致供不应求,客户满意度下 降,并影响销售。 合理的库存规划是综合考虑多个相关因素后,针对多个可能互相矛盾的经营目标做出最 优化决策。对于零售行业来说,这无疑是一个具有挑战性的任务,通常需要处理海量的历史 数据,构建复杂的数学统计和分析模型(想象一下冬天的气温水平对特定厚度的羽绒服销量 的影响),并针对大量的商品之间的关联性做出高效正确的处理,支持数据更新带来的重新 评估。如果没有一个有力的信息系统支撑,这样的任务几乎不可能完成。 很明显,如上种种经营行为的需要,对企业的信息系统也产生了更多需求。 …… 如果我们从更深的层次来看,云计算的出现,是信息社会向智能化社会转化的必然。随 着社会和经济的发展,人们对信息的需求朝着更全面、个性化和深层次的方向发展,简单信 息的需求已经转化为对有用信息和知识的需求,这就对信息服务系统质量和服务水平提出了 更高的要求。所有的这些都在驱动着另一场变革的开始——将服务和知识带给所有人。 “云计算”就是推动这场变革的力量。 在熊彼特的创新理论中,经济变革以创新、企业家的活动和市场力量为中心。作为经济 变革的关键因素,创新所产生的市场力量能够比凯恩斯所说的“看不见的手”和价格竞争带来 更好的结果。社会学家曼努埃尔·卡斯特(Manuel Castells)认为,“信息主义的精神”是一种 “创造性的破坏”的文化,而且已经被加速至光电信号在线路中的处理速度,“熊彼特在网络 企业的网络空间遇到了韦伯(Weber)。 ” 过去的三十年间,ICT产业的成长像杰克脚下的那个通天豆茎,快速将人们的生活带到 一个全新的世界。对于单机系统来说,信息存储空间越来越大,主频处理速度也越来越快, 但存储和CPU的发展在高处总有个天花板,如C++标准委员会主席赫伯(Herb Sutter)所说 , “尽管摩尔定律预言了指数式增长,但我们很清楚这种增长不可能永远维持,毕竟硬件有物 理极限约束,光速不可能更快。这种增长最终会减慢然后终结。” [6] [7] 云计算将“光电信号”有选择地进行了聚集,以更加有目标的创新意识,影响着这个社会 的方方面面。这取决于使用云的方式不同,用户——个人、企业和跨国公司——拥有几乎无 限可能的创造力。 人们对硬件性能快速增 长的需求,似乎就这样困在了各种大小体积的方块中。 “有了云计算,用户可以方便地通过租用来获得各种有特色的应用,进入软件开发和部 署环境,使用类似数据存储和处理的联网计算基础设施。”[8] 就像印刷术的发明,云计算在加速知识传播的同时,也极大降低了知识的传播成本。而 且在云计算中,通过对数据的集中和整合、转换,使信息变成了知识,知识变成智慧。在这 样的过程中,生产效率极大提高,创新成本获得极大降低。 人们可以不再需要购买、安装 计算机和软件,各个公司也不再需要部署自己的服务器和信息管理系统,如前文所述,从“买 计算机”到“买计算”,“买服务器”到“买服务”,云计算极大简化了信息制造、存储、传输和 获取的流程,将信息流转演变成为一种社会的公共基础设施。无论是企业还是个人用户,都 能通过云计算节约成本、享受便利。 从更宏大的角度来说,云计算的真正影响在于民主和平等。在云计算的推动下,“计算” 的使用将会更加便捷和廉价,或许将来每个人以一本书的价格即可拥有一个云的终端——背 后的支撑是一个超级计算机的能力。基于如此简单即可使用的巨大计算能力,无论是个人还 是公司,无论是大企业还是资源有限的新创公司,都有了公平的创新机会,都可以在平等的 基础上检测业务的可行性。 所以,云计算不仅给了普通人梦想的机会,还有实现梦想的力量。云计算降低了信息服 务的获取成本、实现了 IT 服务的规模化生产,并促进了整个社会的创新进程。其核心意义 同每一场变革最根本的核心意义一样—— 使生活更加方便、成本更加低廉、知识更加民主 化。 …… 从云计算发展环境来看,中国和美国在两方面存在较明显的差异:社会环境和行业发展 状况。 社会环境的差异性主要体现在信用体系上。美国的信用体系比较完善,表现之一就是更 重视保护消费者合法权益。美国涉及对消费者权益保护的法律主要有《消费信用保护法》、 《统一消费信用法典》、《隐私权法》和《信用机会平等法》等,因此对于数据隐私的保护性 做得比较好。另外,各方面也比较关注在云计算发展过程中,应用所产生的安全问题。美国 支付卡行业安全标准委员会(Payment CardIndustry Security Standards Council)曾在 2011 年 表示将关注通过云计算来进行的在线零售或其他支付方案中的卡类数据安全风险。这种关注, 是美国社会信用体系建设的一部分,背后是整体社会对诚信问题的重视。 如果简单将本地数据放于“云”中的行为与将资金存放于银行中相比,我们会较容易理解 社会信用体系的重要性。银行业服务的发展也经历了一个从无到有,从简单到复杂的过程。 在现代银行业中,由于一些显而易见的原因(比如风险问题),在任何司法管辖区,监管都 是金融系统的关键部分。各种有关银行经营和财务状况的审慎要求,使银行违约的可能性大 大降低。这样,当资金的安全性可以得到保障时,即银行的信用值得信赖时,人们才会倾向 于使用银行所提供的付款、投资、借款和风险管理服务。 同样,在整个社会的信用体系较为完善的情况下,当云计算服务商提供一些“云”服务的 时候,如果用户觉得此提供商的信用值得信赖,就会愿意选择尝试其服务。美国用户对公有 云的安全问题并非毫不担心,但在信用体系较为完善的情况下,社会诚信度相对较高,用户 会乐于尝试一些公有云服务。 相比之下,中国目前社会整体的信用体系建设仍处于快速发展的过程,用户对于数据在 外部“云”中的存放仍有明显的顾虑,这种顾虑也影响了用户对某些公有云服务的接受。 行业发展状况的差异会更具体,这包括中国的 IT 系统普遍较新,成熟度不太高,以及 中国各行业中系统的条块分割较为严重,而美国的企业 IT 系统使用相对比较成熟。 在中国,企业 IT 系统的使用期普遍较短,在建立时也多是为解决某些特定目标而进行 的设计,通用性不强。企业发展较快的时候,企业本身战略会相应做出调整,折射到系统层 面,对 IT 系统的要求就会发生相应改变。 另外,以中国国内的国企和政府机构为典型的组织机构,在 IT 系统的建设和使用上还 有一个普遍特点,即条块分割比较严重。 前言: 什么是云计算 很多人觉得云计算应该是个具体的事物,所以初听到云计算时,总会先问一句:“什么 是云计算”? 什么是云计算?问的人轻松,回答的人却很费力,仿佛描绘一种味觉,感觉强烈,却不 知如何抓住要领呈给面前的人看个仔细。倘若尽心给出一种解释,或画出一张架构图,听众 可能还是一脸茫然,回答的人多半会急得皱眉跳脚,也有人会撂下一句:“你记得是 IaaS、 PaaS 和 SaaS 即可”。 话虽好说,理却难明。即使听懂了解释,还是有许多人会不知道“云计算”缘何而来,用 于何处。 1. “云计算”一词最早被大范围的传播应该是在 2006 年。2006 年 8 月,在圣何塞举办的 SES (搜索引擎战略)大会上,谷歌的 CEO 施密特(Eric Schmidt)在回答主持人提出的一个有 关互联网的问题时说:“……现在出现了一种新的商业模式……人们还没有意识到这个机遇 有多大。这种模式的前提是,数据服务的架构应该在他们称为‘云计算’的服务器上,即在某 处的云里,如果你有合适的浏览器或接入方式,那么不论你有什么设备,你都可以访问这些 数据。” 很多人认为云计算自此出现,因为从此之后各种有关云计算的概念层出不穷, “云计算” 开始流行。 但 2006 年出现的只是“云计算”这个词,仿佛一个幕后工作人员忽然被主持人介绍到台 前拿了奖,在媒体长篇累牍的报道下,一夜成名。而实际上,云计算本身无论是商业模式还 是技术都已经发展了很长时间,并在实践的过程中逐步演进。在 2006 年时,云计算本身未 必发生质变,但既然人们对云计算的认知发生了质变,所以将其理论化、体系化势在必行。 德国政治学家伊丽莎白·诺艾尔-诺依曼(Elisabeth Noelle-Neumann)提出过一种“沉默的螺旋” (spiral of silence)的理论,认为人们在表达想法和观点的时候,如果觉得自己的观点是公 众中的少数派,就不愿意传播自己的看法,但如果看到自己赞同的观点受到广泛欢迎,就会 乐于公开表示自己的观点或态度。这样,多数派的声音会越来越大,形成一种螺旋式上升的 模式。云计算概念的忽然兴起或许就与此相仿。 虽然谷歌为云计算命名,但真正明确云计算商业模式的是亚马逊。在施密特态度鲜明地 提出“云计算”这个词的几个星期之后,亚马逊推出了 EC2(动态计算云)服务,将“云”这个 名词包含在内。 亚马逊是个神奇的公司,销售包括图书、DVD、电脑、软件、电视游戏、电子产品、 衣服、家具、计算资源等一切适合电子商务的“商品”。在推出 EC2 的时候,亚马逊也面临 不少“这个零售商为什么想做这些”的质疑,但 CEO 贝索斯对商业的概念理解明显要宽泛很 多。贝索斯无疑认为不管是“PC+软件”,还是这种从“云”里取得服务的方式,不仅关乎技术 的问题,还都是一种“商业模式”。最早时,为了让网站能支持大规模的业务,亚马逊在基础 设施建设上花了很大功夫,自然也积累了很多经验。为了将平时闲置的大量的计算资源也作 为商品出售,贝索斯的亚马逊公司先后推出了 S3(简单存储服务)和 EC2 等存储、计算租 用服务。贝索斯表示,“我们认为在某一天这也会是一项非常有意思的业务,所以我们这么 做的目的很简单:我们认为这是个好业务。”[1] 虽然媒体认为这是贝索斯安全度过 互联网泡沫之后的一笔冒险赌注,“亚马逊的 CEO 想要用他网站背后的技术来运行 你的业务,但华尔街只想他看好自己的店面。”[2] 但 EC2 确实影响了整个行业,也影响了 很多人,当时业界明显受到了震动。 在亚马逊之前,虽然有不少服务按现在来看都有云计算服务的特征,但即使是谷歌所提 供的服务,仍然可以看做是互联网服务意义内的一种商业模式。而亚马逊推出 IaaS(基础设 施即服务)之后,仿佛给互联网世界开了一扇窗,告诉人们,还可以这样来运营计算资源, 还有一种新的商业模式,叫云计算。而那些与传统互联网服务形似神离的服务模式,也终于 可以独立出来,找到自己归属的阵地——云计算服务。 2. 云计算起源于互联网公司。虽然互联网公司给人的印象大多是钱多烧不完,但其实多数 互联网公司都很注重成本控制。尤其是早期不少互联网公司都起源于学生宿舍,费用的掣肘 使这些公司尽可能合理地利用每一个硬件,最大程度地发挥机器的性能。所以早期的互联网 公司都会自己选主板、硬盘等配件,然后进行组装,完成服务器硬件的设计。这种传统沿袭 下来,就是现在硬件定制化日趋流行的原因。如今谷歌、Facebook 都会自己动手设计和生 产服务器,以最少的配件最大可能地支持特定功能需求,并降低服务器的能耗。 对于硅谷工程师而言,超级家电连锁店 Fry's 或许是最值得逛的“购物天堂”。硅谷有不 少 Fry's 的连锁店,由于 Fry's 占地面积很大,东西齐全且便宜,理论上一个技术人员可以在 这里买到所有的零配件,然后组装一个主板,所以这里很受工程师的欢迎。雅虎的工程师们 也曾是 Fry's 的常客。 2000 年,互联网经济处于第一波热潮中。这时全球互联网用户人数已经从 1995 年的几 千万增至数亿,并仍在不断快速增长。快速增长的用户数量,使许多网站感受到了系统支撑 的压力。雅虎也一样。当时雅虎经常面临的一个问题是,一个频道设计完成之后,在上线之 前测试可支撑一定数量的用户(比如 10 万人),但第二天一上线就出现达到指标的情况。怎 么办?只有增加设备,尽可能提高系统对服务的支撑能力,因此即刻购买设备然后连夜组装 机器的情形并不少见。到 Fry's 选买配件是不少工程师的工作内容之一,当然也是乐趣之一。 雅虎的共同创始人之一大卫·菲洛(David Filo)至今还喜欢组装机器,不知道是不是一种习 惯使然。 为了支撑业务运转,满足用户需求,服务器的整体性能在不断上升,相应地,服务器的 数量也在不断增加。这很自然会引出一个问题,数十台机器可以手动组装维护,上千台机器 如何处理?甚至,如果机器数上万呢?人能管理的机器数量始终有限,即使劳作不休,所能 承受的负荷也有一定的极限。每一个大型互联网公司,都曾遇到过这个问题:如何管理和维 护成千上万台服务器? 很多事情在讲述的时候似乎很有意思,但当时经历的时候会让人觉得绝望。“大系统” 的压力对于系统维护工程师而言,就是这样的事情。2000 年初,笔者(注:此处指姚宏宇博 士。)当时在雅虎公司编程之外做的最多的两件事,现在听起来或许还有些“土”:一件是组 装机器,一件是维护机器,而这只是为了保证在足够多且可靠的硬件支撑下,业务系统能够 有效应对不断快速增长的用户需求。在当时,笔者加班到晚上十点钟左右是常有的事,然后 还要从加利福尼亚州的桑尼维尔(Sunnyvale)开车回家,再和朋友一起找地方吃饭。由于 住的地方位于南圣何塞(South San Jose),附近是越南人聚集地,太晚的时间只有越南米粉 (Pho)可以吃,于是以越南米粉果腹的时间持续有半年之久,以致现在对“牛 肉粉 ( Beef Pho)” 产生排斥感。吃完饭之后回去还要继续工作,凌晨两、三点才能睡觉。美股的开盘时间是东 部时间 9:30~16:00,这意味着在此之前必须保证交易网站服务的正常运行,所以必须每天早 上 6 点准时起床,来检查系统的运行状态。很多人每天都会收到大量邮件,但早上刚起床就 看到上万封邮件和几百条呼叫(Pager)信息,并且全部来自机器的情况并非人人都有体会, 虽然是专职于此的技术人员,这种极大的压力状况还是很容易让人产生无力感,持续下去会 有崩溃的感觉。怎么办?只有把雅虎财经频道大部分的底层代码进行重写,找回些生活。 现在看来,大量用户带来的大流量的压力,以及大系统的问题不仅对于每一个互联网公 司来说仍然普遍存在,而且已经开始越来越多的出现在其他传统企业中。谷歌在 1998 年时 的访问量约为每天 1 万次,但到 2007 年时,日访问量已达到 5 亿多次,机器数量也已经超 过 50 万台。对于大多数互联网企业而言,虽然服务器规模不至于如此庞大,但随着用户规 模的增加,少则数百台,多则上千台的服务器仍然对企业的运维管理能力提出了挑战。 对于企业来说,随着系统越来越大,维护人员却不能对应成比例增长——企业要考虑人 力成本,还要顾及运维效率的问题——即便如此,雅虎在某一阶段有过半的成本都耗在旧有 设备和系统的维护上,而无法把大部分资金投入到新业务的开发中。公司能创造新价值的部 分越来越少,创新也越来越少,只能求变。 除了大规模系统的维护之外,海量数据的存储问题同样是互联网公司头疼的问题所在, 随着网络技术和服务的快速发展,用户平均在线时间的延长和用户网络行为的多样化,导致 各类数据在不断涌现,移动终端的出现更是扩充了网络服务的内容与范围,这些都大大增加 了互联网公司需要承载的数据量。大量的用户数据对每一个公司而言都是宝贵的信息财富, 但是如果只是购买邮箱存储设备一年就要花费几亿美金的话,每个 CEO 都会再权衡一下, 于是雅虎后来有了 Hadoop 的研发。 因此,在流量和服务器数量都高速增长的情况下,“一个能够与网页增长速度保持同步的系 统”[3]必不可少,这也是谷歌三篇有关分布式的论文*(注:这三篇论文分别是有关 GFS (Google File System)分布式存储系统、MapReduce 分布式处理技术和 BigTable 分布式数 据库的论文,下文也有所提及。)之所以具有重要指导意义的原因——一切均出自实践。 随着信息经济的发展,许多传统企业现在也在加速向互联网化转型。最初存在于互联网 企业的压力也出现于其他组织机构中,对大数据的管理和处理需求也在这些组织中产生。比 如一个政府部门,如果考虑到信息中心和各垂直部门的信息资源,可能会有数千台服务器和 数百套业务系统需要整合和管理,而且多数分布于不同的地理位置。如何对这些资源进行集 中统一管理? 或许,这些组织也可以考虑选择云计算。 3. 对于大多数中小型组织,甚至于个人而言,云计算的魅力来自那些灵活、弹性和随时随 处可用的云计算服务,比如亚马逊的计算资源租用服务,或者一些针对企业和个人的“云存 储”服务。这些服务是大多数人与云计算最直接的接触,也形成了他们对云计算的直观认识。 但是我们知道,云计算应该包含两方面的内容:服务和平台。云计算既是商业模式,也是技 术。 美国加州大学伯克利分校在一篇关于云计算的报告中,就认为云计算既是指在互联网上 以服务形式提供的应用,也是指在数据中心里提供这些服务的硬件和软件,而这些数据中心 里的硬件和软件则被称为“云”[4]。 云计算服务代表一种新的商业模式,SaaS(软件即服务)、PaaS(平台即服务)和 IaaS (基础设施即服务)是这种商业模式的代表表现形式,美国国家标准与技术研究院(NIST) 就曾于 2011 年发布过一份《云计算概要及建议(草案)》 (DRAFT Cloud Computing Synopsis and Recommendations)的 报告 ,对 SaaS、PaaS 和 IaaS 等进行了详细说明。很多人认为 SaaS 必须运行在 PaaS 上,PaaS 必须运行在 IaaS 上,但实际上三者之间并没有绝对的层次关系, 它们都是一种服务,可以有层次叠加关系,也可以没有。 对于任何一种商业模式而言,除了理论上可行之外,还要保证实践上可用。因此,伴随 着云计算服务理念的发展,云计算也形成了一整套技术实现机制,而云计算平台则是这套机 制的具体体现。 但云计算服务和云计算平台之间并没有相互依存的必然关系。即如果以传统的底层架构, 或类似超级计算等实现的服务具备云计算服务的三个特点:大用户群、永远在线,以及随时 随地可接入,也可称为云计算;而云计算平台本身在设计上就针对了“大用户”、“大数据” 和“大系统”的问题提出了解决办法,这也是在提供云计算服务时会遇到的典型问题;所以, 以云计算平台支撑的云计算服务,不仅可以提高服务的效率,而且还会充分发挥平台的能力 和优势。 很多人会把服务和平台模糊起来进行介绍,也有很多人因此会混淆对云计算的认知。看 到云计算,眉眼之间都觉得熟悉,便以为是旧识,不待招呼细聊,引手就向别人介绍,这是 云计算,以前是…… 按照“选择性认知(selective perception)”的理论,人们在处理信息时都有一种选择性倾 向。人们不可能吸收他们所观察到的所有信息,而只能从接收到的零碎信息中依据自己的兴 趣、背景、经验和态度主动地进行选择性接受。因而知识结构、看问题的视角和商业利益的 各不相同,就使各个群体对云计算形成了多种解读方式。 从技术角度而言,云计算最早的出身,应该是超大规模分布式计算。比如雅虎为了解决 系统对大规模应用的支撑问题,而设计的超大规模分布式系统,目的就在于将大问题分解, 由分布在不同物理地点的大量计算机共同解决。但随着技术不断的发展和完善,云计算在解 决具体问题时,借鉴了不少其他技术和思想,包括虚拟化技术、SOA(面向服务架构)理念 等,所以很多人乍看之下会觉得相似。但云计算与这些技术有根本性的差别,不仅体现在商 业应用上,还体现在实现细节上,本书将在之后的章节对此进行较为详细的说明。 我们知道,所有科学的认识都是以一种层次递进、螺旋上升的方式发展的,每一种技术 都有其适用的场景和范围,比如量子力学不会否认经典力学在一些物理问题上的作用。所以, 对于云计算来说,糅合了各种技术不代表云计算比其他技术更优秀,而是说明云计算技术确 实是针对“大用户”、“大数据”和“大系统”发展出来的一种新的实现机制。 另外,为了区分云计算的部署使用方式,现在经常提到的还有“公 有云 ( Public Cloud)”、 “私有云(Private Cloud)”和“混合云(Hybrid Cloud)”的概念。 公有云通常是指开放给公众使用的云基础设施。可以是企业、院校、政府机构,也可以 是一些合作机构来持有、管理和运营公有云。私有云通常是指为一个客户单独使用而构建的 云基础设施,因而提供对数据、安全性和服务质量的最有效控制,并可以控制在此基础设施 上部署应用程序的方式。通常,多数中小型企业可以从不同服务商提供的各种公有云服务中 受益,而鉴于现在企业所需面对的用户量、数据量及系统复杂度都在快速增长,即便是一个 小企业所面临的压力,从过去的大型企业的角度来看也都已经是“大”问题,因此通过建设私 有云来应对系统压力、满足业务系统需求,正在成为越来越多企业和组织的选择,并且随着 企业规模的增加,私有云建设所能带来的收益也在愈发突显。 从现实情况看,公有云和私有云的区别主要体现在商业应用方面,技术上应该是互通的, 区别不大。技术层面最根本的区别是访问权限和访问模式的控制,即可访问的范围决定了“云” 的业务性质。如前所述,通常意义下,私有云所面向的是一个组织机构,而非公众,但这界 限其实并不绝对和清晰。比如谷歌的云操作系统,对内使用而言是私有云,而对外提供 Google App Engine 时,就变成了公有云的 PaaS 服务。混合云也并非半“私有”半“公有”,而 是在某一块资源不够的情况下,从另一处借用而已。比如游戏服务提供商 Zynga 有自己的“云” 运行服务,但在用户使用高峰期时,又会租用亚马逊的 IaaS 服务。 长远来看,公有云是云计算的最终目的,但私有云和公有云会以共同发展的形式长期共 存。好比银行服务的出现,货币从个人手中转存到银行保管,是一个更安全、方便的过程, 但也会有人选择自己保管,两者并行不悖。 4. 云计算的一个特别之处,在于从技术上创造性地给出了一种灵活可靠的组织机制,通过 将各种资源进行快速调度和组合,来满足不同业务应用的需求。这种不但适用于业务模块, 而且适用于底层硬件资源的“积木式重组”思想,重新定义了反映在上层的计算资源的使用方 式、服务的提供方式,以及社会化大生产的协作过程,为我们解决互联网带来的“大”问题和 创新服务模式带来了一种全新的思路。也就是说,云计算带来了一种组织和实现机制,使我 们可以组织资源以服务,组织技术以实现,组织流程以应变。 通过云计算技术的使用,大量的硬件资源可以通过虚拟化技术结合成一个有机整体,然 后通过数据传输、负载均衡等技术来相互依赖,相互作用,完成预设功能,形成一个标准概 念上的“系统”。这个系统的特征,是在物理上分散,在逻辑上集中,也就是我们说的分布式 集中。 比如,当听说亚马逊 EC2 云基础设施平台分布在全球 7000 多个机架上,或者谷歌在全 球有将近 100 万台服务器时,你或许会有些惊讶,因为对于不同地区的访问者而言,相应的 服务在使用体验上感受不到任何的差别。对于企业来说,不论有多少台服务器,分布在全国 多少地方,只要可以联网,则在资料存储和管理、系统使用和维护上,都可以实现“集中” 化。 这种大量资源的逻辑集中,一是意味着通过技术手段充分利用这些资源,我们可以满足 “大用户”的需求,解决“大数据”的问题;二是通过对不同资源(硬件、应用)进行调度,我 们可以基于一个平台提供多种服务,即各种 IaaS、PaaS 和 SaaS,以 及 XaaS(一切皆为服务), 满足各类用户的需求。 有组织,必然有管理。既然云计算创新性地将大量计算资源组织在一起,协同工作,则 云计算必须在信息技术的层面,给出一种针对大规模系统的科学管理办法。这种方法能够解 决资源组织管理过程中的各种问题。比如:在增加节点、扩大系统规模的同时,还能保证系 统性能的近线性提高。在系统任何一个部分都有可能出问题的情况下,保证系统整体的稳定 运行。在面临不同的业务需求时,快速将资源重新组织,以新的架构适应变化。这些都要求 云计算创新性地将各种技术组织起来,“调和”实现各种功能。所以,从某种意义而言,云计 算是信息技术的“系统工程”。 我们知道,系统总是处在一定的环境背景中,与环境保持着某种程度的质量、能量和信 息的交换。一个庞大的信息系统内部会产生多种变化,外部的需求和环境也随之而改变,所 以整个系统必须不断自我管理和调整应对变化。反映在应用层面,则是指大量计算资源组织 在一起,必须通过系统内部资源的整合来支撑各种应用,并可通过快速重组来应对变化,通 用于各种网络服务。为此,作为底层技术支撑的云计算 平台具有六大技术思想:弹性、透明、积木化、通用、动态和多租赁。这六大技术思想 的灵活使用,决定了云计算平台可以通过虚拟化技术整合各类软硬件资源,可以借鉴 SOA 的理念实现系统和硬件层面的松耦合,进行计算、存储和应用的自由调度,以及可以通过负 载均衡等方法解决“大”问题。 如同乐高积木模块之间可随意拼接的“松耦合”性,在一个高弹性可迁移的体系架构下, 通过工作流引擎等方式,云计算平台可实现硬件资源和应用模块的动态调用。在这种我们称 为“积木化”的技术思想下,云计算平台可以将资源和模块重新组合,快速形成新的流程来应 对业务需求变化。这样,企业在业务转型或业务拓展时,如果需要底层 IT 系统提供信息化 支持,则只需明确业务流程,即可由云计算平台快速实现业务系统的重构,为业务革新带来 新的可能。 可以说,云计算扩大了我们对服务的定义,并带来了一个全新的计算资源管理思路,以 及一种信息技术的系统工程理念。 5. 云计算的发展起源自互联网公司,但由于各互联网公司的业务方向不同,也造成了各公 司发展云计算技术的路线并不相同,有如不同的技术流派,各有特点。 在互联网普及的早期,最知名的互联网公司有雅虎,亚马逊、谷歌和 eBay 四家,其中 前三家都有其独特的云计算技术理念。 雅虎以搜索引擎起家,随着商业理念的转变,很快发展到门户网站的模式。早期的雅虎 基本上代表了互联网的全部形态,包括服务内容和广告模式等,雅虎一应俱全。所以对于雅 虎来说,其支撑平台必须适应互联网上的所有应用,从某种角度而言,这也是所谓云计算平 台真正意义的体现。因此雅虎初期在发展大规模分布式系统的时候,考虑最多的是通用性, 即支持各种应用,而非存储的问题,因此造成了在一段时期内雅虎在邮箱存储方面成本极高。 为解决邮箱存储和搜索效率的问题,2006 年初,在邀请道格·卡廷(Doug Cutting)加入之 后,雅虎开始推动 Apache 软件基金会 Hadoop 项目的发展,并自此成为 Hadoop 发展的最主 要推动力量之一。Hadoop 是一个能够对大量数据进行分布式处理的软件框架(其 logo 如图 1 所示),主要由 HDFS(文件系统)、MapReduce(计算系统)和 Hbase(数据库)等组成。 其黄色小象的标识,据说原型是经典儿童读物《霍顿与无名氏》(Horton Hears A Who )里 的小象霍顿(Horton)。道 格 ·卡廷起初只是想把 Hadoop 应用于搜索领域,但当时雅虎负责 Hadoop 团队的巴尔德施维勒(Baldeschwieler)则认为,雅虎之所以选择 Hadoop 并将其开 源,是因为“意识到 Hadoop 将成为一种‘通用’技术”[5]。不管怎样,Hadoop 的发展超出了所 有人的想象,亚马逊、Facebook、eBay 等都在使用 Hadoop,雅虎基于 Hadoop 驱动的服务 也不止搜索引擎一项。但如果说技术思想,Hadoop 却应归属于谷歌派。比如 HDFS 对应 GFS 的开源实现,MapReduce 对应 Google MapReduce,HBase 对应 Google BigTable。 谷歌早期的业务主要是搜索,所以整个系统的设计主要是为了保证大块(大文件和大数 据块)数据的查询和搜索的效率和可用性,所以谷歌早期的技术理念以存储为根本,并在此 之上建立所有的体系。2003 年,谷歌在 SOSP(操作系统原理会议)上发表了有关 GFS 分 布式存储系统的论文,而后又先后于 OSDI(操作系统设计与实现会议)上发表了有关 MapReduce 分布式处理技术和有关 BigTable 分布式数据库的论文。这三篇论文促成了之后 雅虎系 Hadoop、HDFS、Hbase 等开源技术产品的诞生,以及 Facebook 数据库系统 Cassandra 的实现。但由于 GFS 主要为搜索而设计,不是很适合后来推出的一些新产品,所以谷歌之 后的新文件系统在设计时有所改变。 亚马逊以电子商务为主,所以其底层架构的核心作用就是要保证在线交易的不中断。与 GFS、HDFS 相比,亚马逊的存储平台 Dynamo 更适于“存储相对较小的对象(小于 1M)”[6], 这使得亚马逊可以处理更多用途的数据,比如电子商务处理中的购物车信息,以及其他交易 系统的数据等。另外在存储数据时,Dynamo 采用了哈希算法切分数据,将数据在一个节点 “环”内均匀存储,分担压力,与 GFS、HDFS“一个主控服务器(Master)+多个子表服务器 (Chunk Server)”的构成方式有所区别。虽然亚马逊的分布式系统不是很通用(针对应用层 面而言),但亚马逊的云计算平台融合了多方的技术,属于混合派。 除此之外,在提供云计算解决方案的厂商中,技术起源比较清晰的还有 VMware。 VMware 成立之初,主要是向企业客户提供虚拟化解决方案,这决定了其技术路径是自单机 虚拟化做起,向上发展出更高层面的虚拟化技术来部署云计算平台。在云计算方面,与谷歌、 亚马逊等公司会借助平台技术提供云计算服务相比,VMware 当前的定位主要是向企业客户 提供云计算平台产品和云计算解决方案,帮助客户构建和管理云。自 2008 年保罗·马里兹 (Paul Maritz)任职 VMware CEO 后,VMware 实施了多项收购行动来强化其云计算战略, 以确保自身在“虚拟化和云计算基础架构领域”的领先地位,这包括对应用程序开发框架供应 商 SpringSource、托管电子邮件厂商 Zimba,以及网络虚拟化软件供应商 Nicira 的收购等。 目前看来,借由虚拟化技术实现的各种硬件资源的“池化”,以及在此基础上不断丰富完善的 配 置、调度和管理功能,是 VMware 云计算平台的基本特点。 但如果我们换个角度来看,分布式系统的核心理念,是通过网络将物理上分散的计算资 源连接起来解决问题。解决了网络问题,就可以解决分布式系统中的“距离”问题。因此,如 果能在总结各方经验的基础上,重新梳理云计算平台在实际应用中遇到的问题,以一种从整 体而言更为合理的架构来开发云计算平台,不失为发展和应用云计算技术的一条新途径。 简言之,即以网络协同为基础,在此之上建立资源的调度、存储体系,同时在网络层就 解决网络的协同问题,为上层开发打基础。这样,如果我们可以针对“通信”、“存储”和“管 理”提供一整套解决方案,即可实现云计算平台的“通用”性。当然,尽管各种“流派”的技术 理念和实现方法都不一样,但其目的都是为了解决“大数据”、“大系统”的问题,并为上层业 务应用提供支撑,所以在优劣上没有可比性。对于用户而言,适合自己的才是最好的,在选 择云计算技术服务时,需要从业务场景、开发能力、以及资金预算等各方面综合考虑。 6. 有些人觉得云计算“云里雾里”,是忽悠。这是一种误解。 首先从服务的角度说,云计算的落地是已然确定的,大家使用到的 Saleforce.com 的在 线 CRM 应用,苹果的 iCloud,谷歌的 App Engine,亚马逊的 S3、EC2 等都是云计算服务。 作为互联网服务的一种延伸,云计算服务或许可被称为 Internet 2.0。云计算服务很自然有一 些互联网服务的特征,但也有自己的特点,形成了新商业模式,比如“按需使用”、“多租户 支持”等。这种服务方式已经在用其产生的市场力量影响着人们的生活和工作,影响着企业 的业务模式和经营思想,以及社会的方方面面。 比如美国总务管理局(GSA)在将门户网站 USA.org 迁移至一家公司提供的云服务中 之后,网站升级时间从包括设备采购在内的九个月,缩减至最多一天。传统的主机设置下, 每月的宕机时间大概为 2 小时,而在云的解决方案下,宕机时间基本为零。按其旧有设置, 美国总务管理局每年要为 USA.gov 支付 235 万美元,这包括共计 200 万美元的硬件更新和 重新获得软件许可的成本,以及 35 万美元的人力成本。而在迁移到云服务之后,总务管理 局目前在 USA.gov 上一年支付费用仅为 65 万美元,这意味着节省了 170 万美元的所有相关 费用。[7] 其次,从技术应用的角度看,云计算平台给出了一种新的计算资源的使用和管理思路。 在云计算之前,购买更多更高性能的服务器,是企业应对大用户、大数据问题时的唯一选择。 而云计算的出现,创新性地以“分布式集中”的方式,将分散的廉价计算资源组合在一起,发 挥“群体”的功能,来应对大用户和大数据的压力,从而形成了新的“机器管理机器”的思路, 在技术实现上有完整的体系架构。 除去亚马逊、谷歌、Salesforce.com 等互联网企业使用云计算平台构建自己的业务系统 不说,在中国国内的各领域中,云计算平台也已经落地使用,服务各类组织机构。比如我们 曾帮一个全国性的政府机构构建数据云系统,把分布于全国数百个地市内的业务系统中生成 与维护的业务数据,进行集中存储管理,并保证系统整体性能,以及高可靠性和高可用性。 也曾帮助某电网公司通过对现有 IT 系统的部分子系统进行云化改造,实现了对分布于不同 地区的业务系统的集中管理和统一调度,以及所有业务数据的统一存储。 因此,不论对于个人生活,还是企业应用,云计算都产生着深刻的影响。一些人认为云 计算还有些“虚”,一是因为云计算还处于普及推广的过程中,云计算应用的大量“落地”需要 时间;二是因为就公有云而言,很多人或者企业从心理上还没做好接受云计算服务的准备, 不放心将数据“存放”在他处。然而,回顾信息技术的发展历史,我们可以发现,不论是从大 型机到个人电脑,将电脑带给所有人的阶段,还是从个人电脑到互联网,将信息带给所有人 的阶段,新的信息技术从出现到普及应用都有一个渐进的过程。 如同一种进化,社会自身会不断向前推进发展,并因此而产生不同的递进式的服务模式 和技术需求。人们对计算的需求,促进了计算机的普及发展;沟通分享的需求,又促进了互 联网的诞生。云计算也是一种社会需求推动的结果。在获取知识、不断创新和分享的渴望下, 人们对信息服务和产品不断提出新的要求。云计算的出现,一方面解决了系统层面日趋突显 的压力问题,另一方面拓宽了网络应用的范畴和创新的可能性,在极大降低人们创造知识和 分享知识成本的前提下,进一步满足了人类社会获取、创新、分享知识的需求。因此,云计 算是信息社会发展的必然产物。随着应用环境的发展,云计算会越来越普及,带来一个全新 体验的信息社会。 通常所说工业革命的意义之一,在于使人们摆脱了生产条件的束缚,极大地解放了物质 产品和有形服务的生产力。云计算的出现,也在逐步使人们摆脱使用计算资源和信息服务时 的束缚,降低知识获取的成本,也使知识的产生变得更容易、分享变得更方便,革命性地改 变了信息产品与知识服务的生产力。或许云计算与蒸汽机、内燃机及电力有同等重要的意义, 会带来一场信息社会的工业革命。 现在来看,云计算仍然在发展的过程中,未来会发展到什么高度还未知。我们还在不断 摸索和深化对云计算的理解,毕竟对于新事物都有一个听闻而知见的过程。对于现阶段的云 计算而言,最需要的支持,最怕的是轻视,或如管窥蠡测地轻下结论。但无论如何,云计算 已经对社会生产和生活的一些领域产生了积极的影响,相信随着技术的发展和服务的创新, 云计算的时代将会很快到来,并最终影响到我们每一个人。 第一章 信息需求的新菜谱 “所有的进步都是不稳定的,一个问题解决了,我们不得不面对又一个新问题。” ——马丁·路德·金 2 2 云计算:大数据时代的系统工程 出于对获取、分享信息和知识的渴望,人们总是不断地在对信息产品和服务提 出要求。从大型计算机到个人电脑,从互联网到云计算,总会有不同的商业模式,满 足人们的需要。 云计算的出现和普及,是互联网快速发展之下,人们对信息生产工具不断变革 的要求,例如要更方便、更快捷、性能更高和成本更低,反映到底层支撑系统上, 则需要解决为了满足人们需求而产生的“大”压力,即大用户、大数据和大系统 问题。 任何新技术从出现到成熟应用,都有一个过程。类似云计算的想法很早已经出 现,但直到近几年,随着相关技术的发展,以及应用环境的成熟,云计算才形成自己 快速发展的生态系统,并发展出自己特有的技术思想和服务理念。 “不成功”的产品 Oracle的CEO拉里·埃里森(Larry Ellison)在1995年曾大力推广一种叫做网络 计算机(Network Computer)的设备,每台500美元,最主要是不必安装微软操作系 统。埃里森说,“个人电脑(PC)是一种可笑的设备”,人们真正要想要的是像插 入墙上的插座能获得电力一样,即插即能获得数据。[1]网络计算机的功能有些类似于 现在的瘦客户端,外观也相似,搭载一个微操作系统,基本无需应用程序,通过网络 连入服务器,然后下载运行使用Java语言编写的小应用(applets)。英国Acorn公司曾 经生产的网络计算机如图1-1所示。 【图1-1】英国Acorn公司曾经生产的网络计算机 3 3 第一章 信息需求的新菜谱 硅谷的各方人士们对埃里森的观点大为赞赏并投入了大把金钱,大批公司包括 IBM、Sun、Netscape等都加入了支持阵营。网景(Netscape)公司的创始人、投资人 马克·安德森(Marc Andreessen)是最早的一批拥护者之一,当时在Sun任职CTO的 埃里克·施密特(Eric Schmidt)也是。 埃里森推广的网络计算机的概念,被很多人看作是现在云计算的早期雏形。 模糊比较起来,瘦客户端、即插即用、网络应用,处处都相似,却又仿佛少了什么 东西。 那款概念新颖、且获得众多业内厂商支持的设备最终没有取得成功,并在1999 年时就基本用市场表现宣告了失败。Oracle负责网络计算机业务的子公司损失了将近 两亿美元[2],并最终脱离出来成为了自由科技公司(Liberate Technologies),制作机 顶盒软件,然后逐渐转型,直至基本与IT业无关。 人们总结了很多网络计算机惨淡收场的原因,比如当时家庭联网的Modem拨号 上网速度仅为28.8 kbit/s,当时Java编写的应用在数量和表现上远不能与运行在个人电 脑上的程序相抗衡,上市产品性能不佳,个人电脑快速降价等等;也有人认为网络 计算机“生不逢时”——在竞争激烈的商业环境里,时机不对的想法不啻于一个坏想 法;或者引申美国达特茅斯学院罗恩·阿德纳(Ron Adner)的观点,埃里森未能管 理好网络计算机的“创新生态系统”。[3] 不管怎样,埃里森和Oracle之后获得了足够的关注,并将精力重新集中于数据 库业务中,远离了这个“错误”且失败的产品。但埃里森有关互联网终端的想法, 却在很多人心里播种发芽。其中有贝尼奥夫,也有施密特。贝尼奥夫1999年离开 Oracle,创立了Saleforce.com,定位为“传统软件的终结者”。而施密特当时在Sun任 职CTO。 网络计算机失败之后,Sun Labs开展了一个名为NewT的研究项目,并演化成产 品开发计划Corona(日冕)。[4]与通用消费设备不同,Corona的目标是企业用户,宣 传口号也是“零管理成本”。Corona最终衍生出了Sun Ray的产品,以时任信息应用 4 4 云计算:大数据时代的系统工程 和网络桌面部门首席科学家的诺斯卡特(J. Duane Northcutt)的说法,“客户端无需 计算,所有的一切都发生在服务器那里”。[5]市场数据不得而知,但Sun Ray的产品 系列延续至今,其中包括Sun被Oracle收购之后推出的Sun Ray 3(一种新型的低成本 瘦客户端)等产品。 而施密特后来任职于Novell,再后来去了谷歌。2010年底,谷歌正式发布Chrome OS,一个最初为上网本设计的轻量级开源操作系统。在发布会上,施密特提到了网 络计算机,他说:“我们总是对那些旧想法抱有感情,或者是因为我们实在很爱它 们,而它们也总是有效,或者是因为我们明知道它们是对的,但曾经没能去实施。” 虽然好点子不一定带来好产品,好产品也未必促生一个蓬勃的市场;但很显 然,即使是一个失败的产品,背后也有一个或多个需要满足的市场。人们确实希望互 联网服务可以随时随处可用,可以支持各种联网设备,可以满足各种需求,并且好用 不贵。 “成功”的新应用 Evernote首席执行官菲尔·利宾(Phil Libin)的故事告诉我们,及时且认真查收 邮件非常重要。 Evernote是一家笔记软件公司,最简单的解释是,这是一家帮助人们轻松记录、 查找和分享“笔记”(包括文字、图像、语音等)的公司,公司的产品是一种在线笔 记存储和管理软件。 菲尔·利宾对自己的这款产品有过各种描述,比如“转存大脑记忆的服务 器”,“生活内容的谷歌”,或者一个将手机从消磨时间变成节约时间的工具 等等;但中心大都集中在一点上,Evernote在尝试帮助人们更好地进行“记”和 “忆”。 由于有限的记忆能力,人们会记住很多事情,但忘记的事情更多。大多数人对 过往的记忆都不会有太多关注细节。当一个念头或名词闪过脑海,人们有时会被唤起 5 5 第一章 信息需求的新菜谱 许多相关的记忆,有时却会苦苦思索而不得,比如曾经读过的一段资料的出处,或一 张明信片背后的邮寄地址。Evernote的定位就是一个可作为使用者“第二颗大脑”的 平台。 Evernote支持通过电脑或智能手机,创建和管理包括文字、图片和音频在内的 笔记内容,并支持网页内容剪辑和图片文字识别,用户也可以通过添加“标签” (Tag)来创建自己记忆的“关联点”,然后在需要时通过这个被托管在云端的“第 二颗大脑”快速找到各种所需资料。 这种描述很容易让人回想起美国科学家范内瓦·布什(Vannevar Bush)于1945 年在其所著《诚如所思》(As We May Think)中提到的一个“MEMEX”的东西。 在这个承载了当时人们科学理想的设备中,“人们在其中存储他所有的书、记录和信 件,同时可以很高的速度和极强的灵活性完成检索。作为辅助设备,它是人脑的无限 扩大……人们已经建立了如此复杂的文明,以至于必须把知识机械化才能从中得到符 合逻辑的结论,而不至于因为记忆耗尽而难以自拔。”[6] 【图1-2】范内瓦·布什设想的存储设备“Memex” 6 6 云计算:大数据时代的系统工程 布什构想的“MEMEX”似乎更像是一张可用手杆操控档案的、具备存储功能的 大桌子。“桌子上有一个透明的平板,可以较长期地存放注释、注解、照片、备忘录 等各种材料。把材料放在上面,按下一个按钮就可以对其照相,存到MEMEX的胶片 库中下一个空白的位置……” 这样,这个存储器能容纳上百年的资料,包括备忘录、注解和图片,然后通过 进行“相关索引”,将相关的项目连接起来,从而可以快速找到所需资料,或发现各 类资料之间的相关性。 当Evernote正式推出,向人们提供“笔记”服务时,这看起来就像是一个拉长 了周期的制作工序,花了60多年时间把布什的理想描绘、塑造、打磨,然后交由菲 尔·利宾呈现出一个清晰的实体。 Evernote目前支持网页浏览器访问,也具有Windows、Mac OSX等计算机操作 系统的客户端,同时还支持iPhone、Android、BlackBerry、Windows Mobile等移动设 备,这意味着在任何一个设备上通过Evernote来保存构思、关注和喜爱的东西之后, 人们就可以快速在所有适用设备上来找到他们。 虽然人们现在已经认可这种建立在远端服务器之上的云笔记服务,但在创业之 初,Evernote的产品理念并非人人理解,而且差点儿因为缺乏资金而被迫关闭。具有 戏剧性情节的是,就在菲尔·利宾打算放弃之时,一个瑞典的用户发来一封电子邮 件,表达了对公司产品的喜爱之情,并在邮件的最后说,如果公司需要资金的话他愿 意有所帮助[7]。 50万美元的支票对于一个公司而言并不算太多,但却可以使Evernote继续下去, 并按照自己的理念完善产品、提供服务。然后这款基于云计算的服务产品在短短几年 之内就得到了快速发展,现在在全球的用户数已经超过3000万。 分合向前的IT变革 回顾历史我们可以发现,在社会的发展过程中,人们在生产生活中总会遇到 7 7 第一章 信息需求的新菜谱 各种困扰,于是对生产和生活工具会提出不断变革的要求,这包括要更方便、更快 捷、性能更高和成本更低。这些困扰和需求推动人类历史的不断发展前进,并带来两 次工业革命的发生。而在信息时代,人们在获取知识、创新和分享的渴望下,对信息 服务和产品也在不断提出新的要求。 “网络计算机”和“Evernote”无疑都是这种新要求下的产物,只不过持续迅猛 发展的信息科学技术给了菲尔·利宾更顺手地打造梦想的工具。 在过去的30多年间,芯片每18个月集成度翻番、价格减半(“摩尔定律”), 信息科技融入我们生活的速度也翻番。现在回过头看,整个信息产业大约每隔十五年 便会发生一次技术上的以及因此带来的商业模式上的巨大转变:从20世纪50年代计算 机的出现,到60年代后各种大、中、小型机的一统天下,而后80年代个人电脑兴起, 直到90年代掀起的互联网革命,影响延续至今,人们的生活方式也因此随着巨大的科 技巨轮的转动不断发生巨大转变。 20世纪50~60年代,是以IBM产品为代表的主机时代,计算资源高度集中,计 算机就像铁轨和运行之上的火车,由专门机构所拥有。人们能做什么以及什么时候 做,都像打孔的调度表,固定、有序,不灵活。当一家名为Busincom的日本公司于 1969年要求Intel为其一款打印式计算器制造12个定制芯片时,或许没有想到自此会拉 开一扇通往新时代的大门。 得益于当时硅栅技术的发展,Intel用一种新的设计方法,制造出了世界上第一 个单片微处理器,也是第一个商用微处理器——Intel 4004。4004在3/4毫米的区域 内,集成了2300个晶体管,每秒能运行92 600条指令[8],并可于多种产品。现在看 来,Intel于1971年11月在电子信息杂志上(Electronic News Magazine)上的广告语毫 不夸大,Intel 4004宣示“集成电路的新纪元”,意味着“芯片上的电脑”成为一种 可能。 紧接着,在1974年Intel又推出其有史以来最成功的8位微处理器8080。8080集成 了约4800个晶体管,每秒可以执行29万条指令。这种芯片及其仿制品在市场上的成 8 8 云计算:大数据时代的系统工程 功,引发了汹涌澎湃的微电脑热潮,从此拉开了PC发展的帷幕。 1976年的愚人节,史蒂夫·乔布斯(Steve Jobs)和史蒂夫·沃兹奈克(Steve Wozniak),这两个土生土长的硅谷人用1300美元创业资金,在乔布斯家的汽车库里 创立了苹果(Apple)电脑公司,也创造了大多数人的未来。随着苹果电脑带来的巨 大收益,苹果公司在短短5年时间内创造了神话般的奇迹。1982年2月15日,“留着胡 子的孩子气的”乔布斯,头顶着苹果,和苹果II一起登上了《时代》周刊的封面,眼 光坚定,嘴角上扬,如图1-3所示。 【图1-3】《时代》周刊1982年2月15日刊封面 IBM虽然在这一波的计算机革命浪潮中步子慢了半拍,但最终后来居上,首创了 个人电脑(Personal Computer)的概念,IBM PC也成为早期个人电脑的代名词。IBM PC的普及还催生了为它生产处理器芯片的Intel公司和为它提供DOS磁盘操作系统的 微软公司这两大PC时代的霸主。PC产业由此诞生,个人电脑以前所未有的广度和速 度面向大众普及,并在人们的工作与生活中扮演不可或缺的角色。 9 9 第一章 信息需求的新菜谱 如果说PC是强健有力的个人,互联网就是一个社会。从大型机到个人电脑的过 渡,使人人都可以拥有计算设备;而从个人电脑时代向互联网时代的发展,则进一步 将信息带给了所有人。 互联网始于美国于1969年实施的ARPANET计划,ARPA是美国“高级研究计划 署”的简称,这个计划的目的是建立分布式的、存活力强的全国性信息网络。之后网 络技术在实践中得以快速发展,20世纪80年代初,在统一采用TCP/IP进行网络间通 信之后,互联网得以诞生并获得快速发展,分散的个人电脑又连接在一起。 1995年5月,比尔·盖茨写了一篇致公司管理层的备忘录:《互联网浪潮》。他 在这篇文章里对互联网发展的重要性、趋势、竞争对手及战略对策都做了解释和分 析。“互联网是自IBM 1981年引入个人电脑的概念以来最重要的成就,甚至比图形 用户界面(GUI)还重要”,他说,“公网解决问题的速度,比专用网络还要快,这 太令人震惊了……互联网粉丝们在讨论一种可怕的可能性,是否应合力创造一种比 PC廉价得多,但是足够用于网络浏览的平台。” 比尔·盖茨说:“互联网是一波浪潮。它改变了规则”。几个月之后,微软推 出了Internet Explorer 1,然后是革命性的Windows 95。 毫无疑问,在1995年时,对于大多人来说互联网世界的精彩才刚上演,当时的 人们对于互联网应用还没太多需求,人们要求产品具有一般的联网功能即可。或许当 时的埃里森如先知一般预测到了人们通过互联网有更高的“自我实现”需求,但在 埃里森推出“网络计算机”的概念时,全世界只有不到四千万互联网用户,在当年6 月,全世界只有2.35万个网站[9],大部分人在使用Win 3.1或Win3.11。这一年,雅虎 刚引起人们的注意,网景公司的浏览器基本统治了网络浏览器市场,Amazon.com也 刚上线运营。 就像刚登上探索新大陆的航船,人们大多还在熟悉各种环境和工具,还在兴奋 地从各处获得信息,还没有想到未来的方向,没想到船上的用户会越来越多,有一天 积累的数据量会过载,也没有想到系统会难以承受信息处理的压力,互联网这艘大船 10 10 云计算:大数据时代的系统工程 可能会需要一些新的动力。 而在Evernote发布正式版的2008年,全球互联网用户数已超过10亿,宽带网络正 在大范围普及。随着社会和经济的发展,人们对信息的需求已经朝着更全面的、个性 化的和深层次的方向发展,简单信息的需求已经转化为对有用信息和知识的需求,这 就对信息服务系统质量和服务水平提出了更高的要求。 作为新一代互联网服务模式下涌现的典型应用之一,Evernote进一步扩展了人们 对信息技术应用的想象,满足了人们创造、分享和管理知识的需求。菲尔·利宾也用 Evernote对十几年前人们思考的一些问题做出了自己的回答:未来的信息技术将会如 何发展?未来的信息服务将会呈现何种形态?人们将以怎样的形式进行沟通、分享信 息和知识?这些问题持续如夜晚独行时远方闪烁的灯火,既使我们迷惑,又指引我们 向前,驱动着新一场变革的开始。 新经济的特点 在经济学家熊彼特(Schumpeter)的《经济发展理论》中,技术创新就是把一种 从来没有过的关于生产要素和生产条件的“新组合”引入生产体系。一种创新通过扩 散,会刺激大规模的投资,引起经济高涨,是直接推动经济增长的原因。 美国自二战之后一直重视科学技术的创新,并在全球率先进行了以计算机和互 联网的发展等信息技术为代表的技术革命。这种信息技术革命以新的供给创造了新的 需求,又以新的需求推动了新的供给,促进了社会总供求的良性互动,推动了经济的 持续稳定增长。[10]20世纪90代年中后期,美国经济获得强劲增长,在这种高增长、低 通胀和低失业率所带来的乐观情绪下,“新经济”的说法在当时得以流行。2001年4 月,当时的美国总统比尔·克林顿在“白宫新经济会议”上致辞,“新经济的表现以 技术为动力,以创意为引导,源于创新和进取心。它打开了机遇的大门,改变了我们 每个人对经济的理解”。[11] 美国20世纪90年代中后期的发展,是信息化浪潮推动经济增长的典型示例。在 11 11 第一章 信息需求的新菜谱 这一阶段,互联网技术得以快速发展,互联网经济的概念也开始崛起。1996年雅虎正 式上市,股票最初定价13美元,但由于交易太过狂热,股价一度飙升至43美元,最终 以33美元收盘,雅虎市场价值达到8.5亿美元,互联网衍生出的巨大商业利益开始引 起人们的注意。 作为知识经济的一种,互联网经济具有典型的快捷性、直接性、高渗透性等特 征,会对其他经济形态产生直接或间接的影响。而且,由于人们普遍通过互联网获取 和分享更多的信息,更大的网络规模意味着可以向用户提供更大的价值,即互联网经 济表现出明显的网络外部性(Network Externality)。依据梅特卡夫法则(Metcalfe's Law),网络价值以用户数量的平方的速度增长。随着用户数量的增长,网络的价值 会越大,并进一步吸引用户联网。 毋庸置疑,越来越多的人开始通过网络进行交流和认知这个世界,各种以互联 网为基础的网络服务也开始层出不穷。对于用户来说,互联网像是一个无限丰饶的 沃土,可以不断挖掘出新的服务体验;而对于服务提供商来说,要满足并支撑用户的 期望,就要不断改进服务质量,增加服务内容,创新服务模式,并时刻保证服务的可 用性。 互联网下的“大”压力 从服务方式上来看,当前的客户端应用程序模型大致分为两种:C/S(客户端/ 服务器模型)和B/S(浏览器/服务器模型)。 在C/S 模式中计算机被分为两类:服务器(Server)和客户端(Client)。一般 而言,客户端是个人计算机,而服务器是特定配置的具有更高处理能力的计算机。在 C/S模式下,客户端会处理一些工作,然后将结果提交给服务器,因此对客户端的硬 件配置有一些基本要求,而且客户端上配置了大量应用软件,同时要承担软件的变 动、升级等工作,所以客户端会日趋臃肿。一般而言,这种承担了大多处理任务的客 户机也被称为胖客户端。 12 12 云计算:大数据时代的系统工程 B/S模式是指基于浏览器(Browser)、Web服务器和应用服务器(Server)的计 算服务模式。在B/S模式下,由服务器端负责主要的应用逻辑和业务规则实现,从而 使客户端的硬件要求大大降低,功能设计也极为简单,通过浏览器即可实现业务应 用。此外,由于主要维护和安装工作都在服务器端,因此整体系统的维护成本大大降 低。与C/S的胖客户端相对,这种客户端被称为瘦客户端。 由于方便、快捷,且少受终端约束,随着Web技术的日益成熟,B/S结构成了当 前互联网服务的主要方式,而C/S结构中服务器端承担的处理任务量也在逐渐提高。 这些都要求网络连接快速可靠,也要求服务器端能够处理大量并发访问。 我们知道,对于网站来说“数据量”有两层意思:一个是总量,一个是流量 (并发量)。总量会越来越大,就要求企业必须持续不停地购买存储设备来进行存 储;流量更可怕,因为流量代表并发访问压力。当访问量不是以百、千来计的,是以 百万、千万、亿来计算时,应用服务器必须满足每个人对信息不同的需求。这意味 着,服务器端必须时刻完成大海捞针的工作——从海量数据里,找出用户关心的一 小部分的信息。例如,雅虎财经在2000年时处理的股票交易信息每秒钟约为几百次, 2006年,这个数字已经远超过20万次/秒。 随着移动应用的普及,以及各种智能终端(手机、GPS、游戏机、多媒体播放 器)的使用,互联网服务面对的客户越来越多,所需要提供的服务模式,也更多样 化,远不止“刷新页面”和“点击链接”那么简单。客户的一个请求,可能会引致后 台上百次的API请求发生。 “能力越大,责任越大”,蜘蛛侠皮特·帕克没说另一个意思,“责任越大, 你必须能力够大”。很明显,B/S模式对服务器端的计算和存储能力提出了非常高的 要求。首先就是要支持大量用户的访问需要。 现在一个网站需要满足多少用户的要求?Facebook给出的答案是超过7.5亿。虽 然1995年时全世界的互联网用户还不到四千万,但现在一个网站有上千万用户已经司 空见惯。据说京东商城在2011年底时注册用户已达3000万,而新浪微博在1年时间内 13 13 第一章 信息需求的新菜谱 注册用户数增长到3000万,不到2年的时间里注册用户数突破2亿大关,数量仍然保持 高速增长。 海量用户意味着巨大的经济收益可能性,也意味着巨大的并发访问压力,海量 的数据存储,以及大规模的系统支持。 所谓需要处理大量并发访问是指,用户不是排队提出服务请求,而是以一种并 发的方式,向网页服务器施加压力。压力有多大?2009年时Youtube就达到了每天10 亿次的访问量,也就是说,每秒至少有11 574次访问,每小时41 666 667次。 2010年12月1日下午,新浪微博发布了一条声明:“……今天上午10点20分,由 于微博系统压力过大,导致用户不能正常访问新浪微博,持续时间较长。……新浪微 博用户量以及每日的微博发布量激增,给微博系统带来了一定压力,这也是导致本次 故障的诱因。随后,我们将通过多种举措来确保系统稳定,以应对不断提高的大规模 数据处理需求……”,同样遭遇过类似问题的还有Twitter,南非世界杯期间这家全 球最大的微博平台的服务曾数次中断,Twitter公关部门给出的解释是世界杯赛期间 流量突然激增而Twitter的应对措施不够得力。[12] 很明显,伴随着用户数量的增长,网站的后台系统开始难以承载激增的大规模 的计算和存储需求。 “大用户”带来的另一个主要问题是“大数据”。除非有意为之,网络化将是 计算机这种节点的常态。与单机相比,网络加速了数据产生、传播和增长的速度,具 体表现为外在频繁地共享和交换。 在互联网出现之前,信息的总量与终端数大致呈线性关系,而在网络环境下, 信息的增长模式开始发生变化,一个节点与其他任一节点的每一次交互都会产生数 据信息,线性增长就跃升至指数增长,数据增长速度呈可怕态势。IDC的一份报告认 为,2011年全球被创建和被复制的数据总量为1.8ZB,这相当于每个美国人在Twitter 上每分钟发3条微博,持续26 976年;相当于2000亿部时长2个小时的高清电影,1个 人7天×24小时不间断地看4700万年……[13] 14 14 云计算:大数据时代的系统工程 对于企业来说,这些快速增长的大数据一方面带来了存储的大压力,以Facebook 为例,Facebook将数据存储在Hadoop分布式文件系统(HDFS)上,主要靠Hive来完 成数据分析,2010年,Facebook有世界上最大的Hadoop集群,存储容量超过20PB, 2011年3月份,这一数字升至30PB,大约是(美国)国会图书馆容量的3000倍。[14]另 一方面则造成了信息处理的压力,以雅虎财经为例,这个世界上最大的交易所数据的 整合和展示平台,最初处理的信息流量为每秒钟几百条记录,后来每秒流量超过了数 十万条,然后开始呈现指数增长,并且“幂”也在涨,2N,3N,4N…… 并非只有互联网企业才有大数据的压力,通信运营商和一些传统企业也都在感 受大数据的威力。一个省级电信运营商的DNS日志数据存量可能会超过100TB,并且 每天还要面临新增近百亿条新数据、峰值每秒几十万条的入库速度的压力。一个省级 电力公司,在长期的日常运营中可能会积累上亿的工程技术文档、图片、日常办公文 档及影像、音频、视频等文件,需要统一进行管理和访问。一个平安城市的建设,视 频监控系统采集到的实时视频数据的存储,在容量上往往达到数百个PB,在性能上 还要满足持续的Tbps量级的读写要求。 “人们总是觉得数据、信息越多越好,这在信息匮乏的年代非常正确,在信息 丰富的今天却导致了数据超载和信息管制。”[15] 为了吸引更多的用户,企业通过拓展服务模式,方便用户访问和使用网站服 务,而为了支撑大用户的访问需求,存储不断增长的数据资料,企业又花费重金建 立了IT支撑系统。但生活就是这样,一个问题解决了,我们又不得不面对一个新问 题。 雅虎在早期只有上千员工时,其中绝大部分人都集中精力在创新上,因此能快 速推出新产品,开辟新市场。后来雅虎的员工数达到上万,却有超过半数的人在维 护系统运行……很明显,公司能创造新价值的部分越来越少,创新也越来越少。但 是,系统维护是必要的,每一个组成都构成了系统生命的一部分,特有、重要且在不 断增长,企业必须投入更多的人来精心照顾这些提供服务、支撑业务的生命组件,然 15 15 第一章 信息需求的新菜谱 后看着这些系统最终变得庞大无比。最后,企业会意识到,需要有一种新的技术来解 决大系统的压力问题。 在中国的企业里,IT系统规模最大的企业应该是运营商,机房里每人平均维 护的机器数量通常只有几十台,在雅虎有几千台,谷歌则更多,而且随着技术的发 展,个人维护机器的数量还会增长,更优的IT体系架构的需求会更强烈。 很明显,设备的管理已经远不能单纯靠人来进行,因此,借助机器进行自我管 理的各种方案已被各企业采纳。这些方案要求能应对数据容量的激增,满足海量数 据的处理能力要求,还要能承受因服务多样性和高覆盖率而带来的压力,更要具有高 可靠性和高可用性,这样,在更换硬盘时(谷歌每三年会更换一次),非技术因素 断网、断电时(如果某个粗心的员工不小心踩到电源),企业仍然能提供连续、稳 定、可靠的服务。 即,“系统由许多廉价的普通组件组成,组件失效是一种常态。系统必须时刻 监控自身状态,迅速地侦测、承受并恢复失效的组件”[16],在人的能力有限时,我们 需要有一种机制,来实现机器管理机器。 云计算的生态系统 回顾过去,我们可以发现,类似“云计算”的一些想法早已出现,一些基础技 术也早已存在。 1961年,美国计算机科学家约翰·麦卡锡(John McCarthy)在麻省理工学院百 年校庆上首次公开表示,计算机分时技术的出现,将带给人们一个通过通用商业模式 (像水和电一样)销售计算力和各种应用的未来。 这种按需、自由使用计算机或信息的想法在20世纪60年代末期曾经非常流行, 但随着个人电脑的兴起,人们的注意力开始转移。自20世纪90年代以来,网络和互联 网技术的高速发展提供了充分的技术储备和应用需求,人们又开始关注这种像水和电 一样使用计算和存储资源的概念,比如埃里森推广的网络计算机就是这种想法下的 16 16 云计算:大数据时代的系统工程 产物。 之所以自2006年之后云计算才蓬勃兴起,或许是因为自那时起,云计算才真正 形成了适合自身快速发展的环境。与每一次具有重要意义的变革相同,环境里各因素 的共同推动,促进了云计算的产生和进一步快速发展。 首先是技术因素。20世纪80年代之后,光纤作为通信媒质的使用,使极高速率 和极长距离的宽带通信成为可能。信息的传递成本大大降低,短时间内传递的信息量 大大提升。宽带网络的普及,对分布式系统的应用发展起了重要推动作用。各节点之 间通信的畅通,使硬盘等计算资源的位置不再重要,距离也不再成为问题。随着虚 拟化技术的发展,一个分布式系统软件可以对多个CPU、存储等计算资源进行调度 管理,这使得大量物理分布的计算资源可以在逻辑层面上以一个整体的形式呈现, “集中”起来,以整体的力量应对“大”问题。 这样,随着分布式计算技术和广泛实践的大型通用分布式系统的快速发展,以 及在宽带技术、虚拟化技术的推动下,云计算的技术应用快速成熟。 同样快速发展的还有Web技术。2005年2月,美国用户界面设计师杰西·詹姆 斯·盖勒特(Jesse James Garrett)的文章,使许多人感受到内心深处力量的涌动及想 要分享的喜悦。《Ajax:网页程序的新出路》,盖勒特在这篇文章里有些得意地宣 布:“网页交互设计师多少都会对设计桌面程序的同事有点儿嫉妒。桌面程序有Web 远不能及的丰富性和响应能力,使网页可以快速扩散的简易特性,也造成了我们可 以提供的体验与用户能从桌面程序那里获得体验的巨大差距……现在,差距不存在 了。”[17] Ajax是Asynchronous JavaScript XML(异步的JavaScript与XML技术)的缩写。Ajax 的出现意味着当服务器对用户端提交的表单做出回应时,不必再因为部分更改而进行 所有页面内容消失再出现的刷新,而仅需返回更改必需的数据——因为在服务器和浏 览器之间交换的数据大量减少,这样,用户能看到回应更快的应用,同时很多的处理 工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。占 17 17 第一章 信息需求的新菜谱 用带宽减少,响应速度更快,只需善用框架和工具,就可轻易做出桌面操作效果的高 互动网页。 此外,随着Linux,Apache,MySQL,PHP/Per/Python……这些本身各自独立的 程序,在使用的过程中拥有了越来越高的兼容度,Web应用程序平台“LAMP”得以 出现。由于免费和开源,LAMP使开发者在软件方面的投资成本极大降低,从而贡献 了现在互联网上绝大多数的访问流量,也极大降低了云计算部署的成本。可以说, Ajax、LAMP的出现,推动了Web应用开发的快速发展,这意味着通过互联网服务提 供软件应用的丰富性得到了极大的保证。 其次是商业模式的因素。虽然以Salesforce.com为代表的企业很早就推出了“软件 即服务”的口号,但在真正归集于“云计算”的范畴之前,这些服务更像是互联网服 务的延伸。云计算从真正意义上具有一种独立的、可以自成一类的“商务模式”,应 当是从亚马逊推出简单存储服务(S3)开始,仿佛开了一扇新世界的窗口,更多的企 业和个人从亚马逊的产品服务中,发现了互联网服务新的生命力。 同时,当Web技术的发展使用户从信息的获得者变成了信息的贡献者,也让富互 联网应用(Rich Internet Application,RIA)成为网络应用的发展趋势时,我们越来越 习惯从互联网上获得所需的应用与服务,也开始习惯将自己的数据在网络上进行共享 与保存。依靠个人电脑上完成的工作,慢慢转移至网络的另一端来完成。个人电脑渐 渐从为用户提供应用、保存用户数据的中心,蜕变成为接入互联网的终端设备。 这时,人们开始重新审视以SaaS为代表的商业模式,也开始重新关注支撑这种商 业模式下的系统架构,云计算服务的概念日渐流行。 需求是另一个驱动因素。一方面,服务型企业需要不断完善服务来满足网络用 户的需求,这既包括在“大用户”情形下完善服务质量,保持服务的高可靠性和高可 用性,也包括快速重组资源,提供各种新业务,以满足用户的新需要。另一方面,许 多组织机构(不仅仅是互联网企业)在日常经营过程中,已部署了大量的IT基础设 施,并随着业务的快速增长,开始面临“大数据”和“大系统”的管理维护问题。还 18 18 云计算:大数据时代的系统工程 有一些企业,面对昂贵复杂的IT系统建设,或者大量IT资源(硬件、软件)的突发 性使用问题,有弹性部署计算资源的需求。 伴随着互联网的快速发展,这些需求开始变得日趋迫切。当现有的技术手段难 以解决,或者所需成本过高时,人们就期待一种新技术或者新服务的出现。 这就像一个自然演进的过程,人们的需求滋养了各类技术和商业模式的发展成 熟,然后在彼此的共存中形成一个新的信息生态系统。按照施密特所说的,“忽然 之间,你的客户端已经可以支持一种新的程序模式……我们从一个有可靠硬盘和不可 靠网络的世界,来到了一个靠得住的网络和基本不需要硬盘的世界。这在架构上是一 种巨大的改变——现在有了HTML5,我们已经有可能在浏览器平台上创造出像PC或 Macintosh上那样强大的程序。”[18] 创新的新菜谱 美国经济学家保罗·罗默(Paul M. Romer)将经济体系中的产品创造过程,比 作在厨房里以廉价的原料按菜谱做菜的过程。 “每个时代都感受到增长的极限,如果没有新的菜谱或创意,我们总会面对资 源有限和令人讨厌的副作用问题。而我们每一代都低估了找到新菜谱和新创意的可 能性,我们总是忽略有多少创意有待挖掘。要知道,发展的可能性不是简单的加法问 题,而是乘法问题。”[19] 人们需要随时随处可用的互联网服务,需要计算资源和信息的获得成本更低。 而对于企业来说,与此相关的大数据和大系统的问题还在不断膨胀。在可用的计算资 源有限的情况下,为适应发展的需要,社会需要一些新菜谱或新创意。云计算就是信 息社会的“新菜谱”。 在云计算服务出现之前,出于成本控制和资金使用的考虑,对于资产负债表固 定资产科目里的一些项目(如IT基础设施),有些企业会通过租赁的方式(如托管 19 19 第一章 信息需求的新菜谱 租用)来使用其功能,这样做适合有限的使用需求,可以避开某些借贷问题,也不必 担心设备很快过时,而且可以增加企业的现金流和消除表外收益。当一些固定投入牵 涉到生产人员和业务流程时,有些公司会把相关的内容全部打包交给一些专业的公司 去做,专注于自己的核心业务上,即“外包”。一些外包除了可以使企业集中于核心 业务,强化同业竞争优势地位之外,还可以通过压缩资产项目来提高资产利润率。在 强调分工的社会里,外包的优点很容易被放大,以至于媒体们纷纷对外包这种模式大 加称赞,“那些借助了全球人才来改变自己和自己所在产业、为每个人创造更好工作 机会的公司才会取得成功。”[20] 电脑的投入也算在固定资产中,由于价格不高又太容易过时,企业很难通过租 用来获得其使用价值,而且核心业务也必须自己完成,所以企业多会购买大量的电 脑来满足工作需求。但是从购买之后算起的整个产品生命周期内,这些设备至少有一 半的时间在关停的状态,从投资回报的角度看,这好比一个企业在银行里存了一年 钱,但最终只收取半年利息。 随着互联网尤其是宽带网络的发展,以及虚拟化技术的完善,人们开始意识到 “网络即是计算机”这一新理念,即可以把计算能力、存储能力集中起来放在“网 络”中,按需使用。云计算服务的出现,就带来了这种可以随时获取、按需使用、随 时扩展、按使用付费的资源使用方式。 对企业(尤其是中小企业)来说,选择云计算服务,可以在几乎没有预付资本 投资情况下即时使用计算资源,无需提前规划就可按需获取看似无限的计算资源并大 幅降低企业的运营成本,此外,采用云计算技术架构的企业还可以根据客户需求动态 地扩展他们的服务规模和资源需求,这无疑降低了企业创新在IT方面的门槛,促进 企业创新。 现在还出现了一种服务,即企业可以在某一平台注册成为云提供商,然后在不 影响其正常业务和标准定价的前提下,通过该平台来销售其闲置资源,增加业务和收 入,也可以成为买家通过比价在这里找到性价比最高的计算资源,最低价每小时不到 20 20 云计算:大数据时代的系统工程 1美分。虽然这样的交易市场还没有吸引到那些大型电子商务企业,而且在一个市场 上购买的各种云服务不能一起使用(这对资源管理提出了更高要求),但我们依旧可 以看到一种商业模式的创新。 对用户来说,云计算服务将对资源的占有方式从唯我所有变成唯我所用,将对 资源的使用方式从特定环境变成随时随地,将对资源的消费模式从固定支出变成按需 付费。大多数云计算服务如同使用Evernote一样,用户可以随时随处接入来获取、存 入信息,享用各种互联网服务。 就目前的发展趋势而言,亚马逊、谷歌与Salesforce.com在云计算上的表现,使 越来越多的人看到了科技应用的新的可能性,创新的意识每天都在不断催生出新的 公司,然后打开一扇又一扇云计算应用的大门。就像报道里说的,“(亚马逊的) AWS正疯了似的发展,……整整一代互联网公司的生存都离不开它。Netflix的电影流 帝国在这里,社交游戏公司Zynga使用它来应对突发的峰值使用。硅谷新创企业生活 的一部分,实际上就是风险投资人在向企业家派发亚马逊的礼品卡。”[21] 现在,越来越多的企业开始面对大数据、大规模系统的挑战,也有更多的企 业开始关注精细化使用计算资源的可能性,他们都需要一个可无限增长的计算机体 系,可平滑扩展、动态分配资源,可自容错,也可自管理。他们越来越清楚地知 道,他们需要的是云计算。或许对于一个意味着信息革命的技术来说,如果在商业应 用上的顾虑能得到有效解决,云计算的影响可能会不亚于互联网。 “企业间的竞争不是产品间的竞争,而是商业模式之间的竞争。” ——彼得·德鲁克 第二章 一切皆可为服务 22 22 云计算:大数据时代的系统工程 市场总是在期待一种能更好满足人们需要的新产品和新服务出现。云计算的出 现,将互联网服务“简单、方便、低成本”的特点进一步放大,更大程度地满足了 人们便捷获取、分享和创新知识的需求,并极大降低了成本。与早期的互联网服务不 同,云计算形成了自己特有的商业模式。 云计算支持用户以“租用”的方式消费和使用信息化产品,这种方式使用户在 IT方面有了极大的灵活性,能够以最低的成本享受到信息服务的核心价值。而且, 云计算的“通用”性,为商业协作提供了新的可能性,也给予了企业创新变革的新 平台。 传统软件的“终结者” 马尔科·贝尼奥夫(Marc Benioff)有些胖,下巴厚实,嘴唇却很薄,深深的眼 眶使眼神看起来很锐利,这样,即使在他看着远方思考的时候,你也能感觉到他心里 其实已经打定了主意。 1998年,贝尼奥夫已经在Oracle工作了12年,担任着高级副总裁的工作。受到亚 马逊的启发,贝尼奥夫打算以一种新的方式提供企业软件服务,“当时互联网刚兴起 不久,亚马逊在以一种全新的方式使用应用——可针对每一位用户定制简洁、友好的 界面”,贝尼奥夫后来回忆说,“我想,为什么企业软件不能这样?”[1]经过一番筹 备之后,在旧金山一间租来的公寓里,贝尼奥夫开始了创业。 公司的名字叫做Salesforce.com,最初提供在线客户关系管理(CRM)服务,贝 尼奥夫将公司的使命定位于“终结软件”。他的想法就是以在线企业应用服务的方 式,取代以往公司使用复杂软件的模式,即通过“一个百分之百由Salesforce.com维护 的逻辑系统”[2],同时为全球所有公司提供管理信息的服务。Salesforce.com最早使用 的标签一直是“按需供应(On Demand)”,因为贝尼奥夫坚信“商务即服务”,用 户真正需要的不是软件本身,而是软件所提供的功能服务。在新的服务模式下,用户 只需每月支付一定的费用,便可以通过网络享受到最新版本的软件服务,而且无需受 到升级维护的困扰,试用风险和购买成本也大大降低。 23 23 第二章 一切皆可为服务 【图2-1】Salesforce.com“终结软件”的公司logo Salesfore.com最初的客户多是一些无力承担高昂软件费用的小型企业,但这种服 务模式的优点很快吸引到更大的组织机构,戴尔电脑公司、星巴克、安联保险等大 型企业都成为了Salesforce.com的客户,与埃森哲、毕马威等咨询公司的合作,也为 Salesforce.com赢得了大量的客户群。 现在Salesforce.com已经有超过10万名客户,主要的竞争对手是SAP、Oracle、微 软和IBM等传统的软件服务提供厂商。虽然“客户端软件”(On Premises)目前看来 还未被贝尼奥夫终结,但他的竞争对手们在提供“客户端软件”之余,也开始提供与 Salesforce.com一样的“按需供应”(On Demand)服务。 SaaS、PaaS和IaaS 贝尼奥夫提供的这种服务模式,后来发展成现在所说的软件即服务(SaaS),而 Salesforce.com也已经成为迈克尔·戴尔口中“软件即服务(SaaS)行业的开拓者和领 军标兵”。[3] 软件即服务(SaaS)是现在常说的三种云计算服务模式的一种,另外两种是平台 即服务(PaaS)和基础设施即服务(IaaS)。简单地说,如果SaaS是以互联网提供软 件服务,PaaS就是通过互联网提供应用程序运行平台服务,IaaS通过互联网提供基础 24 24 云计算:大数据时代的系统工程 设施服务。 软件即服务(SaaS):SaaS这个简写最早应出现于美国软件信息产业协会 电子商务分会在2001年内部出版的“软件即服务:战略背景简报”(Software as a Service:Strategic Backgrounder)一文中,当时指的还是应用服务提供程序 (Application Service Provider,ASP)模型。ASP是20世纪90年代出现的一种集中计算 类型,是20世纪60年代IBM和其他主机提供商主导的商务应用集中托管(也被称为 时分或效用计算)的互联网延伸。ASP以托管特定商业应用的服务方式向客户提供业 务,以通过集中管理和解决方案提供商在特定商业应用上的专业性来降低成本。虽 然Salesforce以“软件的终结”这种说法表示与传统的“客户端软件”不同,并被视为 SaaS的领军角色,但直到2005年,作为管理咨询服务公司Riseforth的总裁,约翰·科 尼格(John Koenig)才在当时还名为SD Forum的SVForum(硅谷论坛)上,提出了 我们现在所理解的“SaaS”。 SaaS指各种互联网及应用软件即是服务。有时也被称为“按需提供的软件服 务”,是一种通过互联网提供软件及相关数据的模式。用户可以按使用付费,通常使 用浏览器通过互联网远程访问并使用的特定软件,无需购买软件,并将其安装于电脑 之上。 NIST对SaaS的定义:在此服务模式下,提供商可将运行在云基础设施上的应 用提供给消费者使用,消费者可通过类似Web浏览器(如基于Web的电子邮件) 等瘦客户端界面,在各种客户端设备上访问这些应用。除了一些有限的特定于用 户的应用配置的设置之外,消费者不会直接对底层云基础设施进行管理或控制, 这包括网络、服务器、操作系统、存储,甚至单个应用的功能。 SaaS的初期使用费一般低于同类企业软件。与传统客户端软件销售永久性的证 书并预先收费不同,SaaS提供商通常采用会员费(subscription fee)的方式来定价, 并按月或年来收取。这时,服务提供商会按某些使用参数来为应用定价,比如用户 数、业务数或其他价值单位。对一些服务提供商来说,多租户环境下创建用户的较低 25 25 第二章 一切皆可为服务 成本使其可以以免费增值(freemium)的模式来提供应用服务,即有限功能或有限 程度的服务免费,加强功能或更大程度的服务则收费,也有一些SaaS应用会对用户完 全免费,从其他途径盈利(比如广告)[4]。 SaaS现在已经是多数商业应用如财务、CRM(客户关系管理)、ERP(企业资 源计划)和协同软件等服务的常见交付模式。这其中,最典型的代表就是Salesforce. com的在线CRM系统。 通过在Salesforce.com的网站上注册,用户可获得三十天免费的全功能产品体验。 如果客户选择付费成为Salesforce.com的用户,则按照服务企业的规模、所需的CRM 组件,以及要求的自定义和集成级别,Salesforce的CRM服务也会分成不同版本。比 如销售云(Sales Cloud)会分为Contact Manager、Group、Professional、Enterprise和 Unlimited几个不同等级的套餐,不同套餐在集成的功能种类、用户数量、数据和文 件存储容量等方面都有差别。 按照所交付的服务内容不同,Salesforce.com的CRM解决方案也分为销售云、服 务云(Service Cloud)、数据云(Data Cloud)和协作云(Collaboration Cloud)等。 用户可通过任意接入网络的移动设备或者计算机来访问销售云。在登入服务主 页之后,用户可以通过点击联系人、帐户、商机、文件或者控制面板等不同标签来获 得相应服务信息。同时,用户可以在主页上选择显示一些个人收藏的控制面板,以直 观获得类似个人绩效的实时视图。 Chatter是Saleforce.com于2010年推出的一款具有社交功能的服务平台。在销售云 中,Chatter会向用户推送其所订阅的所有信息的更新,包括账户、潜在客户、市场活 动、控制面板等。同时,利用Chatter,销售代表可以与客户进行实时沟通,获取所需 信息以共享议程和进行协作。 Saleforce.com收购社交客户服务公司Assistly之后,销售云在跟踪潜在客户方面做 得更细致。如果销售代表所在企业的Facebook、Twitter等页面中发现一个客户提出问 26 26 云计算:大数据时代的系统工程 题,销售代表将自动获取客户姓名、Facebook 账号、电子邮件、具体问题等信息, 并采取行动及时处理(比如利用服务云中的知识库功能等)。销售云还可以自动跟踪 客户在其他社交媒体中的会话,从而使销售代表可以时刻掌握用户需求。 对于用户来说,只要联网接入Salesforce.com的服务主页,即可随时随地管理自己 的客户任务、约会和电子邮件,并将之与自己的电子邮件应用程序保持同步,还可 以与所需的所有人和事物保持联系,并设置自动邮件提醒,使团队时刻获知最新信 息,尽可能地赢得销售交易。 平台即服务(PaaS):PaaS以服务的形式交付计算平台和解决方案包,提供应 用创建、应用测试及应用部署的高度集成环境,用户无须购买和管理底层的软、硬 件,也无须具备设备管理能力。在开发和交付网页应用、服务的完整生命周期内, PaaS完全通过互联网来提供所有的设施支持。 在此服务模式下,提供商可将运行在云基础设施上的应用提供给消费者使用, 而消费者可通过类似Web浏览器(如基于Web的电子邮件)等瘦客户端界面,在各种 客户端设备上访问这些应用。同样,除了一些有限的特定于用户的应用配置的设置之 外,消费者不会直接对底层云基础设施进行管理或控制,这包括网络、服务器、操作 系统、存储,甚至单个应用的功能。 NIST对PaaS的定义:在此服务模式下,消费者使用提供商所支持的编程语言 和工具,将自己创建或获取的应用部署到云基础设施上。消费者不会对底层云基 础设施进行管理或控制,这包括网络、服务器、操作系统或存储等,但可以控制 所部署的应用,并有可能控制配置应用的托管环境。 在这种模式中,由服务提供商负责硬件资源的管理和扩展,并提供应用服务平 台的编程接口,开发人员只需根据服务接口进行应用程序开发即可。这类似于一些大 型的综合商场将场地租给商家使用,商场负责基础设施建设,由商家自行设计、搭建 27 27 第二章 一切皆可为服务 门店并提供服务。但是,“谁的地盘谁做主”,入驻商家在门店搭建、业务运营及资 金结算时,都要遵循一定的规则和条件限制。 所以,用户在使用PaaS服务时,通常情况下,也必须遵守该平台特定的规则和 限制,即使用特定的编程环境并遵照特定的编程框架和数据存储模型等。因此,不 同PaaS云之间应用开发的可移植性也是PaaS推广时常被提及的问题之一。除此之外, PaaS服务还面临浏览器的信息泄漏风险,以及网络依赖性和用户隔离的问题,随着这 种服务模式的成熟,类似问题带给客户的疑虑在不断减少。但用户在选择PaaS服务 时,还需要结合自己的开发习惯、业务发展预期等方面综合考虑。 PaaS的定价通常取决于平台组件的使用数量和使用次数。如对一般用户限制一个 最大登录次数,每次登录都会收取一个标准价格,而对于登录更频繁的用户来说,则 可能会按月收取一个较高的固定费用,但不限制登录次数。也有一些服务提供商会采 用类似免费增值(freemium)的模式来提供应用服务,如果超出限额,则企业再向 服务提供商购买额外的使用资格。 【图2-2】Google App Engine 图标 目前最典型的PaaS就是Google App Engine(GAE),其图标如图2-2所示。作为 一个开发、托管网络应用程序的平台,GAE于2008年4月发布了第一个beta版本,使 用谷歌管理的数据中心。 28 28 云计算:大数据时代的系统工程 “通过使用 GAE,开发者可以在谷歌基础架构上运行网络应用程序。App Engine 应用程序易于构建和维护,并且可随着通信量和数据存储需求的增长而轻松扩展。” “GAE支持使用几种编程语言编写的应用程序。通过使用 App Engine 的 Java 运行时环境*,你可以使用标准 Java 技术构建应用程序,包括 JVM、Java Servlet 和 Java 编程语言或任何其他使用基于 JVM 的解释器或编译器的语言(如 JavaScript 或 Ruby)。App Engine 还提供一个专用的 Python 运行时环境,其中包括快速 Python 解释器和 Python 标准库。建立的 Java 和 Python 运行时环境旨在确保快速安全地运行 应用程序,而不会受到系统上的其他应用程序的干扰。”[5] 谷歌为应用开发人员提供了详细的开发指南,对于一个应用开发人员来说,要 使用GAE,步骤很简单:注册一个谷歌App Engine 账户(也可以使用谷歌账户),下 载并安装开发所用语言所对应SDK,然后再创建、运行并测试自己的项目,并在为应 用程序注册应用程序ID后,就可以使用 Eclipse 插件或 SDK 中的命令行工具将其上传 到 App Engine。 对于开发者来说,App Engine提供了一个完整的平台,包括完整的SDK(如 Eclipse插件)和服务,开发者只需为使用的资源付费,没有设置成本,也没有日常 性费用,通过App Engine提供的管理面板,开发者可轻易地对应用程序进行维护和升 级,这对急于实现自己绝妙想法的开发者来说,非常诱人。 但GAE也有一些引起争议的地方,如只能使用谷歌的Big Table,开发者对操 作系统、硬件、存储的控制有限,以保证平台不会被某个应用程序绑架。这样,在 开发者要使用线程,或写文件系统的应用时就会受到限制。另外,对Java、Python 以外的其他语言的支持不足也是一个问题,无法使用类似Hibernate的其他Java工具 和框架,这无疑为那些以其他语言编写的现有项目制造了重新编写程序的门槛。而 且,一旦花大力气在GAE上发展出了大量用户,开发者还会担心被锁定在谷歌平台 之上。但从目前来看,谷歌已经给出了包括数据迁移在内的指南,而且AppScale及 * 注:运行时环境(Runtime Environment),指一种把半编译的执行码在目标机器上运 行的环境。 29 29 第二章 一切皆可为服务 typhoonae等开源平台的出现,也为App Engine上应用的迁移提供了有限但可用的 解决方案。 基础设施即服务(IaaS):亚马逊于2006年3月推出的S3(简单存储服务), 应该是最早的IaaS服务。IaaS有些像企业将计算基础设施服务“外包”给了服务提供 商,由这些服务提供商在线提供计算、存储、服务器或网络组件等基础计算资源。 NIST对IaaS的定义:在此服务模式下,消费者获得处理能力、存储、网络和 其他基础计算资源,从而可以在其上部署和运行包括操作系统和应用在内的任意 软件。消费者不对云基础设施进行管理或控制,但可以控制操作系统、存储、所 部署的应用,或者对网络组件(如防火墙)的选择有部分控制权。 由于IT硬件的投入数字在费用表上往往非常显眼,所以,IaaS的“按需使用并 付费”的意义就会非常明显。以Forrest Research的评论来说,“你绝对不会在睡觉时 也开着卧室里的每一盏灯。这明显是种浪费。那么为什么大多数公司即便应用需求 有清楚模式时,也会按峰值能力部署基础设施,然后一天24个小时不停运转?…… 因为他们别无选择。应用开发者和基础设施运维人员都会按满足峰值需求来确定基 础设施。”[6]但企业的计算峰值是不会持续存在的,比如电子商务网站需要应付的 峰值可能只是在节假日的促销活动时来临,而其余大部时间这些资源都处于闲置状 态,所以这种固定投资既导致了大量的IT资源浪费,也导致了企业营运资本的无效 占用。 在IaaS中,在几乎没有预付资本投资情况下,用户就能即时使用计算资源,并且 可以按需获取看似无限的计算资源,从而无需提前进行固定计算资源的规划,这无疑 消除了前期资本投入和成本费用,而按使用计费的方式,也大幅降低了运营成本,使 企业可以更好地运用资金于核心业务之上。这也是人们对云经济投入极大兴趣的原因 之一——你可以仅在需要时才为资源付费,按需增减设施规模。 租用基础设施服务的用户可以是软件公司,也可以是独立的软件开发人员。 30 30 云计算:大数据时代的系统工程 用户根据自身需要向IaaS服务提供商购买基础设施,并在此基础上构建相应的网络 应用。目前,以租用基础设施这种方式构建的网络应用几乎涉及到互联网的各种服 务,包括网站托管、数据存储备份、电子商务、高性能计算、搜索引擎、虚拟主机服 务等。 IaaS的定价通常有按次收费和统一收费两种方式。按次收费指对所提供的服务进 行计量,按应用使用的基础设施服务来付费,一般会以吞吐量(throughout)作为参 考量,但也有服务商按服务器时间来计费。统一收费指根据预订配置按月、季度或年 收费。[7] 在具体实践上,多家大型IT厂商都推出了为用户提供基础设施的服务产品,最 具代表性的是亚马逊公司提供的IaaS服务。 亚马逊的AWS(Amazon Web Services)提供了一系列的云计算服务,以便用户 可以通过Web界面访问亚马逊的计算基础设施。对于用户来说,提供这些Web服务 的所有硬件设施由亚马逊进行维护,用户只需根据使用的资源付费,不需要提前付 费,因而具备极高的可靠性和可用性。 通过在亚马逊的AWS网站上进行注册,用户即可开始使用亚马逊提供的云计算 服务。AWS包括了存储、计算、消息传递(SQS)和数据集(SimpleDB)等服务内 容,其中EC2和S3是最为知名的IaaS服务。 EC2提供了可定制化的云计算能力。通过使用 EC2,用户可以在几分钟内获得虚 拟机器,并只需根据实例(Instance)的类型和每小时的实际使用量付费。在这种模 式下,用户可以用非常低廉的价格获得计算及存储资源,并且可以方便地扩充或缩减 相关资源,有效地应对诸如流量突然暴涨之类的问题。对于资源有限且经常会有不定 量的计算需求的公司来说,EC2提供了极大的灵活性,EC2按需使用实例的定价表如 图2-3所示。 31 31 第二章 一切皆可为服务 【图2-3】亚马逊EC2按需使用实例(On-Demand Instance)的定价表(东海岸:2012年8月6日) EC2中有两个基本概念,AMI(亚马逊机器镜像)和Instance(实例)。简单 而言,AMI是AWS提供的在EC2中使用的一种镜像文件,包含了启动应用软件时 所需的所有信息,亚马逊提供了多种AMI可供选用。而Instance则是指基于AMI运 行的系统,基于AMI产生,可以基于同一个AMI产生多个实例,共同对外提供服 务,一个Instance通常对应一个虚拟机。Instance分为三种类型:按需(On-Demand Instances)、预定(Reserved Instances)和拍卖(Spot Instances),并因此区分价格, 比如当亚马逊的资源剩余很多的时候,用户可以通过选用spot instance以较低的价格 获得计算资源的使用时间。 默认情况下,如果关停了EC2服务,则上面运行的所有资料都将丢失。对于有存 32 32 云计算:大数据时代的系统工程 储需求的用户来说,亚马逊另外提供了EBS(弹性块存储)和S3的存储服务。 S3是一款在线存储服务,用户可以用它存储各种数据文件,比如文档、图片、 视频、镜像等。通过S3提供的Web服务接口,用户可以使用亚马逊运行其网站的基础 设施,来随时随地联网存储和检索任意数量的数据。S3的目的,在于将规模效应带来 的收益最大化,并将之传递给用户。一个S3帐号可以有多个存储区(bucket),每一 个存储区的存储容量和文件数量都不受限,但是单个文件的最大尺寸为5TB。[8] 目前来看,EBS和S3有一些明显的差别:比如EBS账户的容量有限,而S3却没 有这个规定。EBS只能通过同一可用区(availability zone)下的EC2实例进行访问, 而S3上的镜像快照(snapshot)可通过任意可用区访问。EBS在同一时间只能由一 台机器进行访问,而S3上的快照可以进行共享。而且,EBS上的差错率随着其卷 (volume)的规模的增加呈递增趋势,所以一般而言,从容灾的角度考虑,用户应 在S3保留快照,或将内容在其他地方进行备份,以便能快速恢复。[9] 亚马逊向新客户免费提供了一些服务,比如EC2、S3、EBS等,以使用户更好地 适应AWS。而对于有更多需要的客户而言,亚马逊网站上对每项可用服务都有明确 的定价说明,这些各自独立定价的服务,使用户有了较大的灵活性,可以根据项目需 要按需选择相应功能,然后根据使用情况进行付费。并且,用户可以随时启用或停止 使用一款产品,根据使用情况付费,而无需签订长期合约。 区别和联系 作为云计算服务的三种典型模式,SaaS、PaaS和IaaS俨然已经成为了人们认知 云计算的“识记卡片”。很多人会以一种层次化的方式来看待这三种服务模式的关 系,比如SaaS运行于PaaS之上,PaaS运行于SaaS之上。虽然这样能使听众产生直观的 联想,但这种说法其实并不太准确。 从服务的对象来看,SaaS面向的服务对象与普通单机应用程序的客户并无明显区 别,PaaS 提供的是平台服务,因此用户对象是开发人员,需要了解平台提供环境下 33 33 第二章 一切皆可为服务 应用的开发和部署,而IaaS 提供的是最底层的IT基础设施服务,因此它面对的用户是 IT 管理人员,即先由IT 管理人员来进行配置和管理,然后才能在上面进行应用程序 的部署等工作。 因此,从与终端用户连接的紧密程度来看,SaaS、PaaS和IaaS这三种服务模型分 别处于不同层次,云计算服务的三层架构图如图2-4所示,所以在初次介绍云计算服 务时,它们往往会以层级的关系呈现在图示上。这说明它们彼此之间可以有一定的依 赖关系,但不代表它们之间一定有依赖关系,因为这三者任何一种都可以独立对外提 供服务,而云计算服务提供商也可以直接从底层硬件平台开始构建自己要提供的服 务。即,在提供SaaS服务时,一个服务提供商可以自己建造数据中心,搭建服务运行 环境,也可以选择其他服务提供商的PaaS平台,然后开发应用服务提供SaaS。区别在 于,后一种情况下该服务提供商可以把精力集中于构建应用服务的业务逻辑上面。同 样,最终用户、SaaS 提供商和PaaS 提供商都可以直接选择IaaS服务,获得应用所需的 计算能力。 【图2-4】云计算服务三层架构图 另外值得注意的是,虽然人们习惯上会根据服务商所提供的内容对服务进行划 34 34 云计算:大数据时代的系统工程 分,但这三种服务模式之间并没有绝对清晰的界限。一些实力比较雄厚的云计算服务 提供商可能会提供一些兼具IaaS与PaaS特征的产品,还有一些厂商尝试提供一整套云 计算服务,进一步模糊三种服务模式在层级上的差异。 互联网服务的新方向 之所以将以上三类服务称为云计算服务,是因为它们有一些共同的特点,通常 提供这些服务的系统架构在所谓“云计算”的服务器上,即在某处的“云”里,如果 客户有合适的浏览器或接入方式,则不论客户从何处接入,有什么设备,都可以通过 网络访问这些服务。支撑这些服务所需的软硬件资源,以及相应的软件升级和硬件维 护等复杂操作,由服务提供商来考虑。作为使用者,客户可根据需要选择服务,然后 根据使用情况来付费。 这种只为功能使用付费,而不必获得其所有权的商业模式,在很多行业中都已 早有实例。比如自来水公司提供用水服务于公众,大型商场提供营业场地于商家, 或者就像一个企业在进行不定期的产品快速运输工作时,会租用物流公司的运输服 务,由物流公司承担购车和养护成本,而非自己额外购车以供不时之需。 云计算服务提供的也是这种“租赁”般的服务模式,所以在云计算服务中 有多租户支持一说,即一个软件实例可以供多个“租户”使用。这种“租赁”特 性,可以给使用者极大的方便。此外,支持用户以“拥有但不占有”的方式消 费和利用信息化产品的服务模式,使用户在IT服务费用的投入方面享有更高的 灵活性,并可最小限度地担心软件或设备过时,以最小的成本享受到服务的核 心价值。因此,一旦安全性和可靠性都能得到保障,云计算服务就会吸引很多 用户。 在具体实践方面,亚马逊在2006年将计算资源的对外租用,在云计算服务的发 展历程上具有标志性意义。因为这使人们忽然意识到通过互联网提供的服务有无限 多的可能性,也使众多企业仿佛醍醐灌顶,甘露洒心,突然发现互联网服务的新方 向,于是在SaaS、PaaS、SaaS之外,又出现一些新的服务形式名称,比如商业流程即 35 35 第二章 一切皆可为服务 服务(Business Process as a Service)、数据库即服务(Database as a Service)和安全即 服务(Security as a Service)等。 不可否认的是,这些新兴的云计算服务延展了互联网服务的概念,以更符合商 业发展规律的方式提供信息化服务。如果说互联网的出现极大地满足了人们对知识的 快速获取和分享需求,云计算服务就在传统互联网服务的基础上更大程度地满足了人 们便捷获取、分享和创新知识的需求,并极大降低了成本。 而这种通过互联网以“更简单、更方便、更低成本”满足各种需求的“商业模 式”的理念广泛化之后,一切可以通过互联网提供给用户的服务都在逐渐被服务提 供商尝试“云”化,所以现在有了一个名词XaaS(发音|za:s|)来代表“一切皆可为 服务”,其中X指Anything或者Everything。现在看来,各种新的可能性在商业上的实 践,又不断发展、丰富着云计算服务可能蕴含的意义。 虽然各种冠以“云计算”头衔的服务概念层出不穷,但并非每一种服务都可以 划归于云计算服务的范畴。如何判断一项服务是否是真正的云计算服务?通常来说应 该看是否同时满足以下三个条件。 首先,服务应该是随时随地可接入。用户可以在任何时间、任何地点,通过任 何可以连接网络的设备来使用服务,而无须考虑应用程序的安装问题,也无须关心这 些服务的实现细节。 其次,服务应永远在线。偶发问题可能出现,但一个真正的云计算服务应时刻 保证其可用性和可靠性,即保证随时可通过网络的接入,并正常提供服务。 再次,服务拥有足够大的用户群。这即是所谓的“多租赁”,由一个基础平台 向多个用户提供服务的“租赁”。虽然没有明确的数量来进行划分,但只是针对少数 用户的服务,即使使用了云计算相关的技术来支撑其基础系统架构,也不应该归为云 计算服务。因为只有庞大的用户群,才会产生海量数据访问压力,这是云计算出现的 最根本原因,也是云计算服务区别其他互联网服务的标志之一。 36 36 云计算:大数据时代的系统工程 新服务的潜力 在1995年之前,一家传统书店绝对不会想到会有来自网络书店的竞争压力。而 在2000年之前,一家传统的家电连锁零售商,在扩充实体卖场数量之余,也很少会想 到需要在网上开店拓展渠道。大多数情况下,市场需求反馈方式的变化总是促使企业 谋求变革的主要原因,也是新的商业模式出现的原因。 美国哈佛商学院教授西奥多·莱维特(Theodore Levitt)曾提出“营销短视症” (Marketing Myopia)理论,大意是指,过于关注产品或技术,而忽略顾客需要的 变化,结果导致企业丧失市场失去竞争力。经常会举到的一个例子是,“一个1/4 英寸钻头的制造商可能认为自己的顾客需要钻头,但顾客真正需要的是1/4英寸的 洞。”[10]产品或服务只不过是满足市场消费需要的一种媒介,市场总是欢迎能够更好 或更便宜地满足顾客需要的新产品和新服务出现。 亚马逊的网上书店所代表的电子商务,是一种典型的互联网服务。与实体书 店相比,亚马逊在网上销售图书,虽然扩展了人们对渠道的概念,也创新了服务方 式,但消费者最终得到的仍然是书籍。区别在于,人们获取这个产品的过程更简 单、更方便,成本也可能更低。 同样,从服务的角度看,虽然Salesforce.com提供的仍然是CRM,不过贝尼奥夫 认为这具备了传统软件所不具备的三个特点:产品易用性、风险分担的商业模式和 低风险承诺。[11]贝索斯也认为不管是“PC+软件”,还是这种从“云”里取得服务的 方式,不仅关乎技术的问题,还都是一种“商业模式”,亚马逊提供的IaaS仍然是计 算、存储和数据分析等服务。与传统的服务交付模式相比,云计算服务提供的仍然 是服务,但更好地满足了人们的需求——获取服务的过程更简单、更方便,成本也 更低。 对于服务提供商来说,这种新的服务模式意味着更多的成长机会和盈利空间。 Rackspace的首席执行官拉纳姆·纳皮尔(Lanham Napier)认为,云计算这种大规模 的技术革命,给予多数公司难得一次的抓住时机、采取主动并引领革命的机遇,而 37 37 第二章 一切皆可为服务 Rackspace的目标就是引领革命。[12] Rackspace是一家较早向云计算转型的主机托管服务提供商,成立于1998年, 最初只是一家普通的ISP(网络服务提供商),但现在已经成为IaaS领域继亚马逊之 后的另一个领导性厂商。Rackspace现在拥有超过8万台服务器,为全球18万客户提 供服务,托管IT服务组合包括主机托管、云托管和电子邮件托管。其中,云托管方 面业务的快速增长为Rackspace公司收入保持稳定增长的主要推动力。2011财年, Rackspace的总收入超过10亿美元,同比增幅超过30%。对于Rackspace来说,云计算 带来的已经是一个潜力巨大的市场机会。 而在另外的一些人看来,云计算的真正潜力还有待挖掘。比如分析师霍格尔 (Holger Kisker)认为,“云计算的真正潜力并非通过资源共享而降低营运成本,而 是通过在知识和流程上的协作,实现商业创新”[13]。 “通过共享资源而降低营运成本”的云计算服务,是指类似SaaS、PaaS和IaaS 的 “传统的”云计算。在霍格尔看来,在“传统的”云计算服务中,即使用户从同一个 服务提供商所提供的“云”处共享同样的资源,但出于明显的安全问题考虑,多租户 架构会对不同用户业务进行隔离,用户之间并没有任何的协作存在。而通过共享有关 产品、库存和物流的信息,以促成商业合作伙伴协作的Knowledge as a Service(知识 即服务),或者在商业伙伴之间以相同服务平台共享业务流程的商业流程即服务,则 是新的云计算服务方向。 虽然这种说法还有待云计算的发展进一步验证,但起码我们已经看到云计算服 务所给予人们的广阔的想象空间。当一些人尝试借助云计算服务将想象转换成可实践 的商业模式时,另一些人更关注的是云计算服务背后的东西,即,为云计算服务提供 动力的新技术体系——云计算的技术体系。
还剩53页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

opentangkun

贡献于2013-06-23

下载需要 5 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf