水利工程建设管理信息化技术应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2 云计算技术

2.2.1 概述

云计算的出现并非偶然,早在20世纪60年代,约翰·麦卡锡就提出了把计算能力作为一种像水和电一样的公用事业提供给用户的理念,这成为云计算思想的起源。云计算是继个人计算机变革、互联网变革之后的第三次IT浪潮。

云计算的产生是IT技术进步的必然产物,是分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合后产生的“新一代的信息服务模式”。

云计算是一种“新一代的信息技术服务模式”,是整合了集群计算、网格计算、虚拟化、并行处理和分布式计算的新一代信息技术。云计算最早的概念来自于Chellappa&Gupta。

目前对云计算的概念还没有一个统一的认识。从IBM、Google、Microsoft、Amazon到Wikipedia以及各个领域的专家,都从各自不同的视角给出了超过20种以上的云计算概念。下面列举出其中的几个概念。

(1)IBM。云计算是一种计算模式,在这种模式中,应用、数据和资源以服务的方式通过网络提供给用户使用。云计算也是一种基础架构管理的方法论,大量的计算资源组成资源池,用于动态创建高度虚拟化的资源提供给用户使用。

(2)加州大学伯克利分校云计算白皮书。云计算包含Internet上的应用服务以及在数据中心提供这些服务的软硬件设施,互联网上的应用服务一直被称为软件即服务(Sofrware as a Service,SaaS),而数据中心的软、硬件设施就称为云(Cloud)。

(3)Markus Klems。云计算是一个囊括了开发、负载均衡、商业模式以及架构的流行词,是软件业的未来模式,或者简单地讲,云计算就是以Internet为中心的软件。

从狭义的观点来看,云计算是指通过网络以按需使用和可快速扩展和收缩的方式来使用远程的由云计算服务提供商所提供的基础设施,如计算设备、存储设备和网络带宽,用户不用了解这些设施实现的细节和存放位置,而只需为所使用的资源付费即可。

从广义的观点来看,可以将任何可以集成到云中的服务通过云来交付给用户,即用户通过网络以按需使用和可快速扩展和收缩的方式来使用远程的由云计算服务提供商所提供的服务,服务内容可以是IT基础设施,也可以是软件、应用和其他任何与之相关的服务类型,用户从云中获得的是一种广义的服务,而服务的实现对用户来说则是透明的。

2.2.2 云计算的体系结构

1983年,Sun公司提出了“网络即是电脑”。这是最初的概念构想,然而受限于当时的技术,这个概念一直没有得到很好实现。

2006年,亚马逊提出了弹性计算云,即EC2。这标志着云存储概念得到了实现。同年,在推出EC2服务之后不久,谷歌首先提出了Cloud Computing(云计算)的概念。

2007年,谷歌和IBM开始在美国一些著名高校推广云计算计划,希望这项计划可以降低分布式计算的研究费用。

2008年,惠普、雅虎和英特尔联合宣布将建立Open Cirrus,这是一个全球性的开源云计算研究测试平台,从而鼓励人们对云计算的服务等各方面领域进行研究。

一直到2010年10月,Open Stack的第一个版本Austin发布,标志着云计算平台的研发开始逐步走上正轨。

计算是一个拥有超级计算资源的“云”,用户只要连接到网络中的“云”就可以获得计算资源,并根据需要动态地增加或减少使用资源的数量,用户只需要为所使用的资源付费即可。但从云计算的内部来看,云计算有自己的结构和组成。

云用户端:为用户提供请求云计算服务的交互界面,它也是用户使用云计算的入口,用户通过Web浏览器等简单的程序进行注册、登录,并进行定制服务、配置和管理用户等操作。用户在使用云计算服务时的感觉和使用在本地操作的桌面系统一样。

服务目录:通过访问服务目录,云用户在取得相应权限通过付费或其他机制后,就可以对服务列表进行选择、定制或退订等操作,操作的结果在云用户端界面生成相应的图表来进行表示。

管理系统和部署工具:提供用户管理和服务,对用户进行授权、认证、登录等管理,对云计算中的计算资源进行管理,接收用户端发送过来的请求,分析用户请求,并将其转发到相应的程序,然后智能地对资源和应用进行部署,并且在应用执行的过程中动态地部署、配置和回收计算资源。

监控:对云系统中资源的使用情况进行监控和计量,并据此做出快速的反应,完成对云计算中节点同步配置、负载均衡配置以及资源监控,以确保资源能及时、有效地分配给用户。

服务器集群:由大量虚拟的或物理的服务器构成,由管理系统进行管理,负责实际运行用户的应用、数据存储以及对用户的高并发量请求进行处理。

用户首先通过云用户端从服务目录列表中选择所需的服务,用户的请求通过管理系统调度相应的计算资源,并通过部署工具分发请求到服务器集群中,配置相应的应用程序来执行。

根据服务集合所提供服务的类型,整个云计算服务集合可以划分成3个层次,即应用层、平台层和基础设施层。其划分的顺序是由下而上,按照服务的层次而分的。它们分别是面向底层硬件的设施即服务(IaaS)、面向平台的平台即服务(PaaS)以及面向软件的软件即服务(SaaS),如图2-3所示。

图2-3 云计算服务集合类型

IaaS是指将底层的物理设备网络连接等基础设置资源集成为资源池。每当用户需要资源时,会发送请求。系统在收到请求后会为其分配相应的资源,满足用户的需求。通常而言,IaaS是利用虚拟化技术抽象化底层的基础设备资源,来达到组织现有系统中的CPU、内存和存储空间等资源的目的。这样,就可以在这些方面做到高可定制性、易扩展性和健壮性。而在系统中真正对这些进行控制管理的是系统管理员,整个系统对用户而言是完全透明的。

PaaS是指一个向用户提供在基础设备之上的系统软件平台。它为用户提供支持多平台的软件开发,并提供对应的库文件、服务以及与之相关的工具。用户无需管理底层实现。通常,PaaS是建立在IaaS之上的,而主要用户群体是软件开发者而非普通用户。PaaS的主要作用是让用户无需顾虑底层的物理实现,而专注于平台上的软件开发。

SaaS是指为用户提供使用运行在IaaS上的应用软件的能力。用户可以通过各种终端上搭载的应用,如网页浏览器,来访问这些软件。无需控制管理硬件设备和网络设备,一切都由系统分配部署完毕,软件即连即用。

不仅可以按运行所在的层次进行分类,还可以通过服务对象来划分,可分为公有云(Public Cloud)、私有云(Private Cloud)以及混合云(Hybrid Cloud)。

公有云提供给互联网上用户的云服务,一般而言都是收费性质的。其用户群体一般是中、小型企业或者广大用户。其云服务器一般位于远端。

私有云其目标用户群体是企业内部员工,或者某些特定用户所使用。其云服务器一般位于本地。

混合云是由上述两种同时使用的云服务类型。一般是由于本地的私有云服务因为某些条件限制,不能完全满足用户的需求。从而借助外部的公有云为其资源池进行补充,以满足用户的使用需求。

将SaaS、PaaS、IaaS这3个词组的首字母组合起来的缩写是SPI。这也就是SPI金字塔模型。

2.2.3 云计算的关键技术

如何通过网络更好地共享数据资源和计算资源一直是产业界和学术界重要的研究课题。当前兴起的云计算技术使用相对集中的计算资源为各种分布式应用提供服务,可以极大地提高计算资源的利用率,使用户以简单和低成本的方式来按需使用计算资源,从而为用户提供更优质的服务。云计算是一种新的计算资源提供方式,已经成为学术界和产业界的研究热点。

网格是经过较长时间发展起来的一种重要的计算资源提供技术。网格是指利用互联网把地理上广泛分布的各种资源包括计算资源、存储资源、带宽资源、软件资源、数据资源、信息资源、知识资源等连成一个逻辑整体,就像一台超级计算机一样,为用户提供一体化的信息和应用服务计算、存储、访问等。

云计算(Cloud Computing)被看成是对分布式处理(Distributed Computing)、并行处理(Parallel Computing)和网格计算(Grid Computing)的发展和商业实现,而且云计算和网格都强调将大量分布式的计算资源组合成一个巨大的资源池,并将计算资源作为一种效用提供给用户使用,而不管计算资源是如何和在何处实现的。

由于网格计算目前不能作为一种提供普遍计算资源的工具,而云计算技术使用相对集中的计算资源为各种分布式应用提供服务,实际上承认了资源的异构性,资源由一个云计算平台内同构的计算资源来构成,同时将计算资源服务的对象扩大为各种普适的应用,在当前的技术条件下成为一种可行的计算资源提供方式。

数据中心是现在被大规模采用的主流计算资源提供模式。数据中心可以被分为IDC和DC,数据中心通过网络向网络企业和传统企业提供大规模、高质量、安全可靠的专业化服务器托管、空间租用、网络带宽服务以及各种数据处理业务。但传统数据中心里面的计算资源利用率很低,按照现有统计大概只有15%左右。

而采用云计算技术后,用户只需要一台很简单的网络访问终端就可以即时获得高性能的计算能力、海量的存储和高速的带宽,而当用户对计算资源的需求减少或不再需要时,即可快速取消对资源的占用。

云计算技术具有可以大幅度降低用户使用IT资源的成本,提供强大的计算资源和优质低价的服务等优势。此外,云计算技术还具有以下优势。

(1)虚拟化技术。现阶段云计算平台的最大特点是利用软件来实现硬件资源的虚拟化管理、调度及应用。用户通过虚拟平台使用网络资源、计算资源、数据库资源、硬件资源、存储资源等服务,与在自己的本地计算机上使用的感受并没有什么不同,而在云计算中利用虚拟化技术可极大地降低维护成本和提高资源的利用率。

(2)灵活定制。在云计算平台中,用户可以根据自己的需要或喜好定制相应的服务、应用及资源,云计算平台可以按照用户的需求来部署相应的资源、计算能力、服务及应用。

(3)动态可扩展性。在云计算平台中,可以根据用户需求的增长将服务器实时加入到现有服务器群中,提高“云”的处理能力,如果某个计算节点出现故障,则可以根据相应策略抛弃该节点,并将运行在其上的任务交给别的节点运行,而节点在故障排除后,又可以实时加入现有的服务器集群中。

(4)高可靠性和安全性。在云计算中,用户数据被存储在云中,而应用程序也在云中运行,数据的处理交由云来执行。云提供数据备份和自动故障恢复功能,如果云中的一个节点出现故障,云会自动启动另一个节点来运行程序,这保证了云中应用和计算的正常进行,用户端可以不对数据进行备份,数据可以在任意点恢复。而且为了提供可靠和安全的云计算服务,其本身具有专业的管理团队,以提供良好的数据安全服务。

(5)高性价比。云计算对用户端的硬件设备要求很低,用户端只需要具有简单访问网络的功能和数据处理能力。和云的强大计算能力以及将来高速的网络速度相比,云计算中用户端的处理能力看起来更像一个输入和输出设备。而用户端的软件也不用购买和升级,只需要从云中定制就可以,服务器端则可以用价格低廉的组成云,计算能力却可超过高性能的计算机,用户在软、硬件维护和升级上的投入大为减少。

(6)数据、软件在云端。在云计算平台中,用户的所有数据直接存储在云服务器端,在需要的时候直接从云端下载使用用户所需要的软件并统一部署在云端运行,软件维护由服务商来完成,当用户端出现故障或崩溃时,用户对软件的使用并不受影响,用户只需要换个用户端就可以继续自己的工作。

(7)超强的计算和存储能力。云计算用户可以在任何时间、任意地点、采用任何可以访问网络的设备登录到云计算系统,就可以便捷地使用云计算服务。云端由成千上万台甚至更多的服务器组成服务器集群,提供海量的存储空间和高性能的计算能力。

云计算具有以下关键技术。

1.能源管理技术

在大、中型数据中心中,不仅需要在服务器等计算机设备上消耗电量,而且还要在降温等辅助设备上消耗电量。一般而言,在计算设备上所消耗的电量和在其他辅助设备上消耗的电量是差不多的。也就是说,如果一个数据中心的计算设备耗电量是1,那么整个数据中心的耗电量就是2。而对一些非常出色的数据中心,利用一些先进技术,耗电量最多也就能达到1.7,但是谷歌公司通过一些有效的设计,使部分数据中心到达了业界领先的1.2,在这些设计中,其中最有特色的是数据中心高温化,也就是让数据中心内的计算设备运行在偏高的温度下。但是在提高数据中心的温度方面会有两个常见的限制条件:一种是服务器设备的崩溃点;另一种是精确的温度控制。只要能保证这两点,系统就有能力在高温下工作。云计算界的顶级专家James Hamilton认为,虽然计算机的处理器单元十分惧怕高温,不过与硬盘和内存比起来还是强得多,他希望在将来能够使得数据中心在40℃以下运行,这样不仅可以节省温控的成本,并且对保护环境也非常有利。

2.虚拟化技术

虚拟化技术是实现云计算的最基础的技术,其实现了物理资源的逻辑抽象和统一。利用该技术可以提高物理硬件资源的使用效率,根据用户的需求,对资源进行灵活快速的配置和部署。

在云计算中,通过在物理主机中同时运行多个虚拟机从而实现虚拟化。在云计算平台中,平台始终保持着多台虚拟机的监视以及资源的分配部署。

为了使用户可以“透明”地使用云计算平台,通常使用虚拟化技术来实现分割硬件物理资源的实体。通过切割不同的硬件资源,将这些资源再组合成所需要的虚拟机实例,这样,就通过虚拟化技术在平台上为用户提供了不同的云计算服务。由于以上的解决方法使得一个物理硬件资源不断地被复用,因此也让虚拟化技术成为提高服务效率的最佳解决方案。

一般而言,虚拟化平台可分为三层结构:最底层是虚拟化层,提供最基本的虚拟化能力支持;中间层则为控制执行层,所有对虚拟机进行的操作指令由该层发出;顶层是管理层,对控制层进行策略管理、控制。平台包含虚拟资源管理、虚拟机监视器、动态资源管理、动态负载均衡、虚拟机迁移等功能实体。

3.海量数据管理技术

云计算系统需要高效率地进行数据处理和分析,并且同时还要为用户提供高性能的服务。因此,在数据管理技术中,如何在规模如此巨大的数据中找到需要的数值就成为核心问题。数据管理系统必须同时具有高容错性、高效率以及能够在异构环境下运行的特点。而在传统的IT系统中普遍采用的是索引、数据缓存和数据分区等技术。而在云计算系统中,由于数据量大大超过了传统系统所拥有的数据量,所以传统系统所使用的技术是难以胜任的。

目前,在云平台系统中被广泛使用的是由谷歌公司针对应用程序中数据读操作占比高的特点所开发的Big Table数据管理技术。有了Big Table技术,并结合基于列存储的分布式数据管理模式,就为海量数据管理提供了可靠的解决方案。

4.分布式存储技术

云计算系统由大量服务器组成,同时为大量用户服务,为了能够保证数据的可靠性,采用冗余存储的方式存储海量数据。分布式文件系统就是一种采用冗余存储方式进行数据存放的系统。它是在文件系统上发展起来的适用于云平台的分布式文件系统。对于数据存储技术来说,高可靠性、I/O吞吐能力和负载均衡能力是它最核心的技术指标。在存储可靠性方面,平台系统支持节点间保存多个数据副本的功能,用以提高数据的可靠性。在I/O吞吐能力方面,根据数据的重要性和访问频率,系统会将数据分级进行多副本存储,而热点数据并行读写,从而提高了I/O吞吐能力。在负载均衡方面,系统依据当前系统负荷将节点数据迁移到新增或者负载较低的节点上。云平台提供了一种利用简单冗余方法实现海量数据存储的解决方案。该方案不仅满足了存储可靠性的要求,还有效提升了读操作的性能。