本节书摘来华章计算机《云计算:概念、技术与架构》一书中的第3章 ,第3.1节,(美)Thomas Erl (英)Zaigham Mahmood 著 (巴西)Ricardo Puttini 龚奕利 贺 莲 胡 创 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3.1 起源与影响
3.1.1 简要历史
“云”中计算的想法可以追溯到效用计算的起源,这个概念是计算机科学家John McCarthy在1961年公开提出的:
“如果我倡导的计算机能在未来得到使用,那么有一天,计算也可能像电话一样成为公用设施。……计算机应用(computer utility)将成为一种全新的、重要的产业的基础。”
1969年,ARPANET项目(Advanced Research Project Agency Network,APRANET,为Internet的前身)的首席科学家Leonard Kleinrock表示:
“现在,计算机网络还处于初期阶段,但是随着网络的进步和复杂化,我们将可能看到‘计算机应用’的扩展……”
从20世纪90年代中期开始,普通大众已经开始以各种形式使用基于Internet的计算机应用,比如:搜索引擎(Yahoo!、Google)、电子邮件(Hotmail、Gmail)、开放的发布平台(MySpace、Facebook、YouTube),以及其他类型的社交媒体(Twitter、LinkedIn)。虽然这些服务是以用户为中心的,但是它们普及并且验证了形成现代云计算基础的核心概念。
20世纪90年代后期,Salesforce.com率先在企业中引入远程提供服务的概念。2002年,Amazon.com启用Amazon Web服务(Amazon Web Service,AWS)平台,该平台是一套面向企业的服务,提供远程配置存储、计算资源以及业务功能。
20世纪90年代早期,在整个网络行业出现了“网络云”或“云”这一术语,但其含义与现在的略有不同。它是指异构公共或半公共网络中数据传输方式派生出的一个抽象层,虽然蜂窝网络也使用“云”这个术语,但是这些网络主要使用分组交换。此时,组网方式支持数据从一个端点(本地网络)传输到“云”(广域网),然后继续传递到特定端点。由于网络行业仍然引用“云”这个术语,所以,这是相关的,并且被认为是较早采用的奠定效能计算基础的概念。
直到2006年,“云计算”这一术语才出现在商业领域。在这个时期,Amazon推出其弹性计算云(Elastic Compute Cloud,EC2)服务,使得企业通过“租赁”计算容量和处理能力来运行其企业应用程序。同年,Google Apps也推出了基于浏览器的企业应用服务。三年后,Google应用引擎(Google App Engine)成为了另一个里程碑。
3.1.2 定义
Gartner公司在其报告中将云计算放在战略技术领域的前沿,进一步重申了云计算是整个行业的发展趋势。在这份报告中,Gartner公司将云计算正式定义为:
“……一种计算方式,能通过Internet技术将可扩展的和弹性的IT能力作为服务交付给外部用户。”
这个定义对Gartner公司2008年的原始定义做了一点修订,将原来的“大规模可扩展性”修改为“可扩展的和弹性的”。这表明了可扩展性与垂直扩展能力相关的重要性,而不仅仅与规模庞大相关。
Forrester Research公司将云计算定义为:
“……一种标准化的IT性能(服务、软件或者基础设施),以按使用付费和自助服务方式,通过Internet技术进行交付。”
该定义被业界广泛接受,它是由美国国家标准与技术研究院(NIST)制定的。早在2009年,NIST就公布了其对云计算的原始定义,随后在2011年9月,根据进一步评审和企业意见,发布了修订版定义:
“云计算是一种模型,可以实现随时随地、便捷地、按需地从可配置计算资源共享池中获取所需的资源(例如,网络、服务器、存储、应用程序及服务),资源可以快速供给和释放,使管理的工作量和服务提供者的介入降低至最少。这种云模型由五个基本特征、三种服务模型和四种部署模型构成。”
本书给出了云计算更为简洁的定义:
“云计算是分布式计算的一种特殊形式,它引入效用模型来远程供给可扩展和可测量的资源。”
这个简化定义与之前云计算行业中其他组织定义的版本是一致的。NIST定义中提到的特性、服务模型与部署模型将在第4章中进一步讨论。
3.1.3 商业驱动力
在深入探究层层云技术之前,首先要理解导致行业领导者进行创造的动机。本节将要介绍若干激励现代云技术的主要商业驱动力。
后续章节中阐述了各种特性、模型与机制,它们的起源和灵感都来源于下面将要介绍的商业驱动力。这些驱动力从两端影响着云的形成和整个云计算市场,注意到这一点是很重要的。它们促使企业为了支持其自动化需求而采用云计算。同时它们也使得其他组织成为云环境和技术的提供者,创造并满足用户需求。
1..容量规划
容量规划是确定和满足一个组织未来对IT资源、产品和服务需求的过程。这里的“容量”(capacity)是指在一段给定时间内,一个IT资源能够提供的最大工作量。IT资源容量与其需求之间的差异会导致系统效率低下(过度配置)或是无法满足用户需求(配置不足)。容量规划的重点就是将这个差异最小化,以便系统获得预期的效率和性能。
容量规划策略分为如下三种类型:
- 领先策略(Lead Strategy)——根据预期增加IT资源的容量。
- 滞后策略(Lag Strategy)——当IT资源达到其最大容量时增加资源容量。
- 匹配策略(Match Strategy)——当需求增加时,小幅增加IT资源容量。
由于需要估计“使用负载”的变化,因此,容量规划颇具挑战性。在不过度配置基础设施的同时,要不断平衡峰值使用需求。比如,若按照最大使用负载配置IT资源,就会出现不合理的资金投入。反之,有限的投资就会导致配置不足,导致由于使用限度降低而出现交易损失和使用受限。
2..降低成本
IT成本与业务性能之间的恰好平衡是很难保持的。IT环境的扩展总是与对其最大使用需求的评估相对应,这可以让不断增加的投资自动支持新的、扩展的业务。大部分所需资金都注入到基础设施的扩建中,这是因为,给定的自动化解决方案的使用潜力总是受限于底层基础设施的处理能力。
需要考虑的成本分为两种:获得新基础设施的成本和保有其所有权的成本。运营开销在IT预算中占了相当大一部分,往往超过了前期投资成本。
常见的与基础设施相关的运营成本有如下几种形式:
- 为保证环境正常运行所需的技术人员。
- 引入额外测试和部署周期的更新和补丁。
- 电源和制冷所需的水电费和资金支出。
- 维护和加强基础设施资源保护的安全和访问控制措施。
- 为跟踪许可证和支持部署安排所需要的行政和财务人员。
- 持续的内部技术基础设施所有权带来的是沉重责任,这会对企业预算造成多重影响。因此,IT部门可能成为一个主要的——有时甚至是绝对的——花钱部门,它能潜在地抑制企业的反应能力、盈利能力和总体发展。
3..组织灵活性
企业需要有适应和进步的能力,以便成功应对由于各种因素而导致的变化。组织灵活性是组织对变化响应程度的衡量。
IT企业常常需要应对行业变化,通常采取的措施是在原来预期或计划的IT资源规模上进行扩展。比如,若预算不足,使得原来的容量规划打了折扣,那么即使预见到使用波动,不足的基础设施也可能妨碍组织对此作出响应。
在其他情况下,变化的业务需求和优先级也会要求IT资源具备更高的可用性和可靠性。比如,即使有足够的基础设施来应对预期的使用波动,也可能由于应用自身的特点降低托管服务器的性能,造成运行异常。由于在基础设施内缺乏可靠性控制,那么,对用户或用户需求的响应可能会导致业务的持续性受到威胁。
从更广泛的范围来说,采用新的或是扩展业务自动化解决方案,所需要的预付投资以及基础设施所有权成本可能会使企业望而却步。企业会勉强接受差强人意的IT基础设施质量,因而降低企业满足现实世界需求的能力。
更糟的是,企业在审查其基础设施预算后,可能决定完全不采用自动化解决方案,原因非常简单,那就是企业无法负担该预算。但是,这种无法应对的结果将使得企业无法紧跟市场需求、对抗竞争压力以及实现其战略目标。
3.1.4 技术创新
成熟技术通常是新技术创新的灵感来源,它是新技术创新衍生和建立的实际基础。本节简要介绍了对云计算产生主要影响的前期技术。
1..集群化
集群是一组互联的独立IT资源,以整体形式工作。由于集群固有的冗余和容错特性,当其可用性和可靠性提高时,系统故障率就会降低。
硬件集群的一个必备条件是,它的组件系统由基本相同的硬件和操作系统构成。这样,当一个故障组件被其他组件替代后,集群仍能达到差不多的性能水平。构成集群的组件设备通过专用的高速通信链路来保持同步。
内置冗余和故障转移是云平台的核心概念。在第8章中,集群概念将作为资源集群(Resource Cluster)机制的一部分来进一步讨论。
2.网格计算
计算网格(或“计算的网格”)为计算资源提供了一个平台,使其能组织成一个或多个逻辑池。这些逻辑池统一协调为一个高性能分布式网格,有时也称为“超级虚拟计算机”。网格计算与集群的区别在于,网格系统更加松耦合,更加分散。因此,网格计算系统可以包含异构的,且处于不同地理位置的计算资源,而集群计算系统一般不具备这种特性。
从20世纪90年代早期开始,网格计算作为计算科学的一部分,其研究工作一直持续着。网格计算项目取得的技术成就影响了云计算平台和机制的方方面面,尤其是通用特性,比如网络接入、资源池、可扩展性和可恢复性。这些特性均以各自特有的形式呈现在网格计算和云计算中。
比如,网格计算以中间件层为基础,这个中间件层是在计算资源上部署的。这些IT资源构成一个网格池,实现一系列负载分配和协调功能。中间层可以包含负载均衡逻辑、故障转移控制和自动配置管理,这些都启发了类似的——有些甚至是更复杂的——云计算技术。因此,有些观点认为云计算是早期网格计算的衍生品。
3.虚拟化
虚拟化是一个技术平台,用于创建IT资源的虚拟实例。虚拟化软件层允许物理IT资源提供自身的多个虚拟映像,这样多个用户就可以共享它们的底层处理能力。
虚拟化技术出现之前,软件只能被绑定在静态硬件环境中。而虚拟化则打断了这种软硬件之间的依赖性,因为在虚拟化环境中运行的仿真软件可以模拟对硬件的需求。
在一些云特性和云计算机制中能发现现有的虚拟化技术的影子,这些技术启发了云计算的某些核心特性。随着云计算的演化,出现了现代虚拟化技术,这些技术克服了传统虚拟化平台在性能、可靠性和可扩展性等方面的局限性。
作为当代云技术的基础,现代虚拟化技术提供了各种虚拟化类型和技术层次,具体内容将在第5章中分别进行讨论。
4.技术创新与使能技术
还有其他几个技术也很重要,它们一直都影响着现代云平台技术。这就是云使能技术(cloud-enabling technology),第5章将具体讨论其中的内容:
- 宽带网络和Internet架构
- 数据中心技术
- (现代)虚拟化技术
- Web技术
- 多租户技术
- 服务技术
在云计算正式出现之前,每种云使能技术都以某种形式存在着。随着云计算的演进,有些技术更加精进了,而有些技术则被重新定义了。