云计算的架构及核心技术

2014-04-29 00:50薛慧丽
智能计算机与应用 2014年4期
关键词:核心技术云计算

薛慧丽

摘要:云计算的核心技术主要包括云架构体系、云核心技术、云的未来走向等三各方面,其中云架构体系部分,主要包括SaaS、PaaS、IaaS在内的云服务层,以及包括用户层、机制层、检测层在内的云管理层。云核心技术主要包括MAP-Reduce编程模型、海量数据分存技术、海量数据管理技术、虚拟化技术、云计算平台管理技术等五大内容。“云计算”的未来走向目前仍存在着挑战与机遇。

关键词:云计算; 架构体系; 核心技术

中图分类号:TP308 文献标识码:A文章编号:2095-2163(2014)04-0063-05

Abstract:The architecture of the system and its core technology of cloud computing are introduced and analyzed in the paper. Cloud architecture system is divided into two parts: cloud services, including SaaS, PaaS, IaaS layer and cloud management, including user layer, mechanism layer, detection layer. After that, the paper clarifies the top five core technologies of cloud computing, which are respectively: MAP-reduce programming model, mass data storage technology, massive data management technology, virtualization technology and cloud computing platform management technology. Finally, there still exist challenges and opportunities for the future of cloud computing.

Key words:Cloud Computing; Architecture System; Core Technology

0引言

云计算是近年来的一个热门词汇,其含义已经跨越了学术和科技界,并且融入到许多社会行业之中。根据美国国家标准与技术研究院(NIST)的定义[1],云计算是一种利用互联网实现随时随地、按需、便捷地访问共享资源池(如计算设施、存储设备、应用程序等)的计算模式。

近年来,新一代大规模的互联网应用的发展势头极为迅猛,其中主要包括数字城市、网络教育、网络传媒、搜索引擎、电子商务、电子政务、在线视频、产业应用、主题应用等,这些应用的最大特点就是数据存储量大、增长速度快、以及维护费用高。据统计,传统企业在IT建设中所投入的费用,用于软硬件更新与商业价值提升的费用仅占其中的20%,而用于系统维护的费用则占到了80%。另据2006年IDC对200家企业的统计,部分企业的信息技术人力成本已达到l 320美元(每人/每台服务器),而部署一个新的应用系统则需要花费5.4周[2]。面对如此庞大的数据和高昂的成本等现实问题,如果能引入“云计算”的技术和方法,相应问题即有望获得根本性的解决。本文即对“云计算”的架构体系及其核心技术展开深入的探讨与剖析。

1云计算的架构体系

云计算这种新的应用技术虽然涉及到非常多的产品与技术,且貌似错综复杂,但是如果对云计算系统进行深入分析,其架构体系仍是清晰且确定的,云计算的具体架构体系概略如图1所示。该架构体系主要分为“服务”和“管理”两大组成部分。

1.1云计算的服务设计

在服务设计中,所提供的主要是基于云计算的各种云服务,其中共包括三个服务层。一是Software as a Service层(简称SaaS),软件即是服务,其作用就是将各种应用软件以Web的方式提供给广大用户;二是Platform as a Service(简称PaaS),平台就是服务,其作用则是将应用开发与部署这个大平台作为一种服务提供给各种用户;三是Infrastructure as a Service(简称IaaS),基础设施就是服务,相应作用就是将最底层、最基础的各种计算和存储等功能以及其他资源作为一种服务提供给广大用户。虽然这三个服务层所提供的服务完全不同,但是各层之间却是相互独立,又相互依存的关系。如:软件服务层(SaaS)的产品和服务,必须依赖平台服务层(PaaS)以及基础设施服务层(IaaS)的各种技术与资源。下面即对各层的功能性质进行全面的阐述和呈现。

1.1.1软件服务层(SaaS)

这是最先出现、也是最常见的云计算服务。在该种服务模式下,用户只要能进入互联网,就可以通过浏览器直接使用或运行放置于云层上的资源或应用。云层上的软件配置和硬件设施都由SaaS云供应商负责统一的管理和维护,供应商可以设置用户免费使用,也可以设定用户按需使用并收取一定的费用。这种云服务最大的好处就是用户勿需再为软件的安装、升级以及病毒防护等问题付出考虑,而且更重要的则是免除了用户在硬件和软件方面的高昂费用支出。SaaS的前身其实就是ASP(Application Service Provider,应用服务提供商),但是其概念和思想已经和ASP相差甚远。Salesforce.com 和Netsuit都是最早的ASP厂商。直到2003年后,当时的ASP 企业在Salesforce的带领下转向了SaaS的研发,并随着技术和商业的不断成熟,国外的一些SaaS的企业(如Salesforce、WebEx和Zoho等)已经获得了可观的成功,而国内的一些企业(诸如用友、金算盘、金碟、阿里巴巴和八百客等)也正积极地加入到SaaS这一行列中来,以尽快提升其科研实力。

1.1.2平台服务层(PaaS)

因为PaaS的整合率非常惊人,诸如Google App Engine这样的一台服务器,即能够支撑成千上万个应用,也就是说,PaaS是最经济的一种平台服务模式,为此PaaS面向的用户主要是技术开发人员。而且不论在什么时候、什么地点,用户都可以在PaaS这个平台上编辑各种文档,以及对SDK(Software Development Kit,软件开发工具包)进行测试和部署等。并且尤为重要的是用户在使用过程中,已经不再需要关注服务器、网络、存储以及操作系统等资源的运行和维护。2007年由Salesforce公司开发的Force.com是业界的第一个PaaS服务平台,但在云计算三个服务层中却是最晚出现。通过这个平台,用户不仅可以对Salesforce所提供的各种开发工具进行轻松的设计与应用,而且还可以将各种应用在Salesforce的基础设施上进行直接部署,并获得良好实现。2008年4月,Google公司推出了Google App Engine,由此PaaS平台的服务范围,开始从在线商业应用层面扩展到普通的Web应用层面,这就使得越来越多的用户开始了解、熟悉并逐渐体验到了PaaS服务的强大功能。

1.1.3基础设施服务层(IaaS)

用户可以通过IaaS基础设施服务层,从云计算供应商处获得所需要的计算、存储、网络、服务器以及操作系统等资源及应用,并且用户只需按资源租用量付费,而其余所有的维护与管理工作只需要交给IaaS供应商去完成即可。其实,类似于IaaS的想法早就问世,诸如VPS(Virtual Private Server,虚拟专用服务器)和IDC(Internet Data Center,互联网数据中心)等,只是,在IaaS出现前,相应的关键技术并未得到有效解决,因而使得该种服务除了价格高昂之外,在其性能和使用等方面都还存在许多问题,这就决定了基础设施服务层(IaaS)在大中型企业的用户中并未获得广泛采用。直到2006年底,Amazon权威发布了EC2(Elastic Compute Cloud)这一IaaS云服务之后,并且由于EC2具有着技术、价格和性能等诸多方面的明显优势,才使该种服务得到了业界的广泛认可和接受,随之IaaS就开启了其高速发展之路,纽约时报就是率先采用IaaS技术与服务的著名大型企业之一。

1.2云计算的管理设计

整个云计算中心能否得到有效的管理,能否安全、稳定地运行,这就是云计算管理层的任务,相应地也是其功能所在。云计算管理层属于云计算的核心部分,而与过去的数据中心相比,云计算的鲜明优势即在于云管理具有出众的优越性。同时,这一层也是前面三个云服务层的重要基础,可为云服务的每一个层面提供管理、维护、安全、运行等多方面的功能和各种重要的技术支持。具体实现如图2所示,云计算管理层一共由九个模块组成,而这九个模块又可以再分为三层——用户层、机制层和检测层。下面即对各层展开逐一的分析和介绍。

1.2.1用户层

这是面向云用户的功能管理层,云管理人员通过各种不同的功能为用户提供优质的服务。该层面共包括四个模块:用户管理、客户支持、服务管理和计费管理。具体地,用户管理是各个系统的通用问题,云计算也概莫能外。并且云计算中最为核心的关键问题就是要使每一个云用户均能得到舒畅、而又方便的客户体验。客户支持模块的主要任务则是要建设一套基于云计算技术的、非常完善的客户支持系统,能够按照问题的轻重缓急或者用户的优先级别依次帮助用户解决各类疑难问题。而服务管理模块就是按照SOA(Service-Oriented Architecture,面向服务的架构)的设计规范,将云上各种应用的不同功能进行服务拆分,再通过定义良好的接口和契约将已经拆分出来的服务进行排列,这样做就可使整个系统更加灵活,从而能够更具效果地、以及更方便、快捷地为各种不同类型、多种不同需要的客户实现高效、定制的服务。此外,计费管理模块即是利用检测层的监控系统采集到的相关数据,有针对、有目的地将不同用户所使用的不同资源或者不同服务进行有效统计,并通过完善、详细的报表形式向各个用户收取准确费用。

1.2.2机制层

要对云计算进行有效的管理,就离不开云管理的机制层。如果没有云管理机制的有效运维与整体部署,云计算中心内部就不可能拥有更安全、更环保、更自动的现代管理。和上面的用户层一样,机制层也包含了四个模块:运维管理、资源管理、安全管理和容灾支持。其中,机制层的运维系统越强健,自动化程度越高,云计算的运行就会越出色。资源管理模块主要是对服务器、存储设备、网络设备等物理节点的管理,其功能分别表现为自动部署、资源调度、资源池管理等三个方面。而安全管理模块主要实现对用户账号、数据以及服务平台上的各种应用等IT资源的全面保护,并且能够保证云上的各种基础设施以及云中心所提供的各种资源,可以由用户合法地访问和使用,另外更重要的还要使这些设施和资源免受犯罪分子、恶意程序的侵害。安全管理模块在具体细分上则有访问授权、数据加密、数据备份、安全审计、安全策略、物理安全、网络隔离等七种机制。最后的容灾支持就主要涉及了数据中心级别和物理节点级别两个层面。

1.2.3检测层

这一层涉及到云计算中心各个方面的检测与监控,其主要功能是采集各种相关数据,以供应云管理中的用户层和机制层的选择和使用。对云计算中心的检测与监控主要牵涉三个层面。一是物理资源层,主要任务是检测与监控物理资源的运行状况,比如CPU使用率、内存利用率和网络带宽利用率等;二是虚拟资源层,主要任务是检测与监控虚拟机的CPU使用率和内存利用率等;三是应用层,主要任务是检测与记录每个应用每次请求的响应时间(Response Time)和吞吐量(Throughput),以判断相关应用是否可以满足预先设定的SLA(Service Level Agreement,服务级别协议)。

2云计算的核心技术

云计算系统运用了多种实用技术,最为关键的则有五种,分别是:MAP-Reduce编程模型、海量数据分存技术、海量数据管理技术、虚拟化技术和云计算平台管理技术。下面即对这五大核心技术进行重点研究,并给出综述。

2.1MAP-Reduce编程模型

云计算中编程模型的最高原则与要求就是简单易用。编程模型只有简单,用户的操作才会轻松,编程模型也只有易用,用户才能享受到云服务的更大便利,才能对其善加利用,并根据自己的某种特定需要或某个特定目的编写一些简单而且易于实现的小程序,但是前提却必须对用户和编程人员保证后台复杂任务调度和并行执行的完全透明。

例如,针对用户大规模数据集(大于1TB)的并行运算,Google公司就开发了java、Python、C++等编程模型,这不仅是一种简化了的分布式编程模型,而且也是一种高效的任务调度模型。云计算环境下的编程在严格、良好、实用的编程模型的支持下即变得十分简单、便捷。Map-Reduce编程模型就是基于Map(映射)和Reduce(化简)的理论和技术对要执行的问题予以分解,其中的Map程序将相关数据区进行块式切割,并调度或分配给大量的计算机实现相应的数据处理,进一步地Reduce程序即将分布式运算所得到的结果进行汇总与输出。

正是因为MAP-Reduce存在着严格、良好、实用等许多优势,可以使云用户享受到更简单、易用、便捷的服务,为此几乎所有的IT厂商当前采用的编程模型,都是基于MAP-Reduce的先进思想而开发得到的编程工具。Map-Reduce编程模型不仅对云计算来说高度适用,而且对多核、多处理器、cellprocessor、异构机群也具有良好的适用性,并表现了与云计算同样良好的性能。Map-Reduce编程模型的缺点则是只适用于内部松耦合的编写任务,以及能够高度并行化的程序。所以改进编程模式,使其也可适用于内部紧耦合的编写任务,并且能够更为高效地调度和执行任务,就成为Map-Reduce编程模型在未来很长一段时间内研究及发展的重要方向。

2.2海量数据分存技术

数据量的发展已不容忽视,目前的数据库技术已经无法应对这些蜂拥而至的数据浪潮,并且在各个领域均呈现严峻的挑战趋势。这就是人们积极寻找构建新的云存储,即云数据库的原因,期待藉此来容纳海量数据。现有的云数据库系统大体可划分为三类:一类是基于Google开创的GFS(Google File System谷歌文件系统)[3],主要运用了分布式储存的方式;另一类是以DYNAMO为主体,采用了P2P处理结构;第三类则是Hadoop团队开发的HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)[4]。大部分IT厂商,包括yahoo、Intel的“云”计划采用的都是HDFS的数据存储技术。迄至目前为止,该领域开发的具有代表性的云数据库系统主要有:HADOOPDB、HBASE和CASSANDRA。

当前,数据管理面临的挑战在于:如何去应对不断发展的数据规模,如何提供一种良好的可扩展性,并且如何提供一种有着良好成本效益的服务,同时如何去支持在这种模式下具备的良好容错能力,以及形成一种可持续研发的机制。因此未来的数据管理系统,其主要的研究方向即定位在:可扩展性、成本效益和容错性,持续的简化能力和易于管理等等,更重要的还有构造的云数据管理必须能支持多种形式的应用,但这却是一个很复杂的问题,因为每种应用需求都不一样,目前构建的云存储只是针对某种应用或者某种情况而具体设置的,带有一定的局限性,所以支持多种形式的应用将是云数据库研究的核心重点内容。

2.3海量数据管理技术

海量的数据应该怎样进行处理、分析,这就是云计算数据管理技术必须解决的重要问题。而海量的数据集群要怎样才能更好、更快地找到某个特定的数据,则成为云计算数据管理技术首要攻关的技术难题。云计算的最大特点就是对自身存储的海量数据,需要进行大规模的读取、处理和分析,也就是说云数据的读操作频率非常之高,所以云计算海量数据的管理其实就是一种读优化的数据管理模式。

在目前,云计算的海量数据管理技术主要包括由Goog1e公司开发的BT(BigTable)数据管理技术,以及由Hadoop团队开发的开源数据管理技术(HBase)。针对BigTable,Google公司给出了如下定义:BigTable是一种为了管理结构化数据而设计的分布式存储系统,这些数据可以扩展到非常大的规模,例如在数千台商用服务器上达到PB(Petabytes)规模的数据。实际上,云计算海量数据的管理就是一种读优化的数据管理模式,所以BigTable需解决的关键问题就是采用列存储的方式,对海量数据的读操作进行最大限度的优化,从而最充分地提高海量数据的准确读取率。BigTable管理的数据存储结构为: string。其中的基本元素是:行、列、记录板和时间戳。由此可以非常清楚地看出,数据库领域中的列存储数据管理模式就是云计算系统海量数据管理所采用的核心技术,也就是将云上的海量数据按列划分后,再进行有序存储。

综上所述,云计算海量数据管理技术在未来的发展进程中需要解决的关键问题则是应如何提高列存储方式的数据更新速率和随机读取速率。

2.4虚拟化技术

虚拟化技术不仅是云计算基础设施服务层(IaaS)的重要组成部分,而且更是云计算所表现出来的最为重要的特性。根据对象的不同,云计算系统中的虚拟化技术可分为计算虚拟化、存储虚拟化、网络虚拟化等。其中,计算虚拟化还可进一步细分为应用虚拟化、系统虚拟化及桌面虚拟化。鉴于海量数据为云计算提供了规模庞大的各种资源,为了使基础设施服务实现按需分配,最有效的解决方法就是采用虚拟化技术。虚拟化技术最强大的作用就在于可以让软件应用与底层硬件彼此隔离的情况下,不但可以通过裂分模式实现将单个资源划分为多个虚拟资源,还可以通过聚合模式实现将多个资源接合成一个虚拟资源。在这里主要介绍虚拟机在线迁移技术和虚拟机快速部署技术。

2.4.1虚拟机在线迁移技术

在线迁移技术是在2005年由Clark等人提出的一种具有重大意义的IT技术,当时主要是采用了迭代的预复制(pre-copy)策略进行迁移的。虚拟机的在线迁移技术对整个云计算系统的有效管理,以及云平台中各种服务的实现都具有决定性的重要意义。所谓在线迁移就是指虚拟机在运行状态下实现从这台物理机移动到另一台物理机上的技术。该技术主要有以下三个优点,分别是:

(1)有利于提高云系统的可靠性。这种可靠性主要体现在两个方面,一是当物理机要进行维护时,在线迁移技术可以将该物理机的虚拟机转移到另外的物理机上。二是当主虚拟机发生异常或出现错误时,在线迁移技术可将云服务无缝切换至备份虚拟机,Remus系统即是实现虚拟机在线备份的先行者。这一技术最可称道之处就是当主虚拟机出现异常或错误时,系统的无缝切换不但不会影响任务的执行,而且还将提高系统的可靠性。

(2)有利于优化性能、均衡负载。当物理机的负载过重时,在线迁移技术可以将过重的负载进行部分转移,此时的虚拟机即起到了均衡负载,优化性能的作用。

(3)有利于节能、环保。在线迁移技术还可将零散、空闲的虚拟机予以集中,并进行充分利用,而在虚拟机运行与工作的同时,部分的物理机则可相应地关闭或进入休眠,从而达到节能、环保的目的。

此外,在线迁移技术还可以在不影响服务质量的情况下对云计算的数据中心进行全面的优化和管理。

2.4.2虚拟机快速部署技术

针对怎样的速度才算快这一实际问题,Lagar-Cavilla等人研究了分布式环境下的并行虚拟机fork技术[5],这种技术最大限度可以在1s内完成32台虚拟机的快速部署。

一般情况下,传统的虚拟机部署要经过创建虚拟机、安装操作系统与应用程序、配置主机属性(如网络、主机名等)、启动虚拟机等四个阶段,这就导致部署速度太慢,完全达不到云服务的高强度、高弹性的性能要求。于是因为受到操作系统fork原语的启发,即有学者提出了基于fork思想的虚拟机部署方式,也就是利用父虚拟机迅速克隆出大量子虚拟机的部署方式。基于fork思想方式下的子虚拟机可以完全继承父虚拟机的所有内存状态信息,还可以在创建后即时可用。快速部署技术最需要解决的就是速度,为此当虚拟机要进行大规模的部署时,可以并行创建多个子虚拟机,而且能在不依赖于父虚拟机的情况下,维持其独立的内存和空间。为了进一步提高速度,就要减少文件的复制开销,“写时复制”(COW:copy-Oil-write)技术则提供了该问题的解决之道:子虚拟机在执行“读操作”与“写操作”时,将会判断该文件是否已被更新,若已更新即将更新后的文件写入本机磁盘。

基于fork思想的虚拟机部署技术是一种即时(on-demand)部署技术,虽然提高了部署速度与执行效率,但通过这种技术所部署的子虚拟机却不能实现持久性保存。

2.5云计算平台管理技术

因为云计算所聚集的资源非常之多,要处理的数据更是非常庞大,所以云计算系统需要的服务器数量也是非常惊人的,并且这些服务器都可能放置在不同的地点,还要同时运行着成百上千种不同的应用。怎样才能更有效地管理这众多的服务器,怎样才能更好地保证整个系统随时随地都能提供不间断的云服务,这对于云计算来说是一个堪称严峻的巨大挑战。云计算平台管理技术所要解决的最为关键的问题就是怎样才能使众多的服务器可以协同工作,从而以最便捷方式的进行各种业务部署,并以最快的速度发现和恢复系统的故障,再通过智能化、自动化的手段使规模庞大的系统实现并获得最可靠、稳定的运营。

云计算管理系统中至为关键的一环是如何解决系统的可扩展性问题。系统的可扩展性包含两个维度。第一个维度是节点规模的可扩展性,管理系统应该能够管理几万甚至几十万节点规模的云计算平台;第二个维度是网络拓扑的可扩展性,由于监控系统、部署系统等模块需要通过多种网络协议直接对硬件资源进行管理,因此管理系统必须能够适应各种不同的网络拓扑结构,甚至能够管理跨数据中心的云计算平台。

搭建一套云计算平台,强大的监控管理系统是必不可少的。当然,任何工具都不是万能的,专业人员在实际维护过程中发现,云计算平台管理的三大利器Nagios、Ganglia和Splunk也经常会出现误报,如果规则定义得不好,大量的警报邮件将如潮水一样涌来,反而掩盖了真正的问题。可以说,在云计算平台的运维管理上,表现了明显的动态性质,也就是随着规模的不断增大和应用的日益多样,还需要进一步地实践和不断总结[6]。

3云计算的挑战与机遇

我国《北京“祥云工程”行动计划》提出将在2015年,使“云计算”的三类典型服务——基础设施服务、平台服务及软件服务形成500亿元产业规模,由此带动云计算产业链形成2 000亿元产值[7]。据IDC预测,用于云计算服务上的支出在接下来的5年间可能会出现3倍的增长,2012年可达420亿美元的市场规模,并占据IT支出增长总量的25%份额。Gartner公司也同时预测,云计算服务将在2014年得到强势增长,全球云计算服务市场营收总额将达到1 000亿英镑[8]。这一切均已表明,云计算已经成为IT产业未来发展的重要趋势和潮流方向。如今,亚马逊的云计算系统已经完成了从理论到应用的转化,其云计算部门(AWS)2010年的销售收入即已达到5亿美元,2011年的销售收入也达到了7.50亿美元,到2014年,亚马逊AWS部门的销售收入可将达到大约25亿美元。

4结束语

虽然云计算模式拥有众多优点,但是存在的问题也非常明显,比如数据的隐私问题、信息的安全问题、软件的许可证问题、网络的传输速度问题等等,而这些都需要IT业界公司在今后的产业化进程中对其不断地发展和完善,从而避免一些不必要纠纷与问题的发生。

参考文献:

[1]MELLP,GRANCE.The NIST definition of cloud computing[R]. National Institute of Standards and Technology,2011.

[2]GILLENA,BROUSSARDFW,PERRY R,et at. Optimizing infrastructure:the relationship between it labor costs and best practices for managing the windows desktop[EB/OL]. http://download.Microsoft.corn/download/a/4/4/a4474b0c-57d8-41a2-afe6-32037fa93ea6/IDC-windesktop_IO_whitepaper.pdf 2007.

[3]GHEMAWAT S,GOBIOFF H,LEUNG P-N-T. The Google file system[C]// Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles, Oct. 2003.

[4]Hadoop:http://hadoop.apache.org/.

[5]ANDRH,LAGAR-CAVILLAS,WHITYJA,et at.Snow Flock: virtual machine cloning as a first class cloud primitive[J].ACM Trans Comput Syst,201l,29(1):1-45.

[6]张志宏.云计算平台管理系统的研究与实现[J].电信工程技术与标准化,2012(4):21-25.

[7]新华网[EB/OL].http://news.xinhuanet.com/2010-10/06/c_12632881.htm.

[8]eNet硅谷动力[EB/OL].http://www.enet.com.cn/article/2010/0624/ A20100624674376.shtml.

猜你喜欢
核心技术云计算
烧结矿低硅均质慢烧核心技术研发与应用
习近平:坚决打赢关键核心技术攻坚战
提升变电站一次检修核心技术的研究
颠覆式创新: 集汽车级十项核心技术的ROBYF1
志愿服务与“互联网+”结合模式探究
云计算与虚拟化
基于云计算的移动学习平台的设计
实验云:理论教学与实验教学深度融合的助推器
云计算中的存储虚拟化技术应用
通用网络教学系统及其核心技术研究