云安全深度剖析:技术原理及应用实践(txt+pdf+epub+mobi电子书下载)


发布时间:2020-11-03 21:08:57

点击下载

作者:徐保民

出版社:机械工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

云安全深度剖析:技术原理及应用实践

云安全深度剖析:技术原理及应用实践试读:

前言

自2006年Google公司提出云计算概念以来,云计算发展迅速。云计算已经被视为继Web 2.0之后,下一波科技产业的重要商机。特别是近年来,随着信息技术的突破和数据科学的崛起,云计算引起了产业界、学术界和政府部门的高度关注。

目前,云计算已经在大多数企业得到普及和应用。其中,伴随着云计算的快速发展,越来越多的用户将数据托管到云端。但是,由于引入虚拟化技术的云计算系统所特有的服务模式以及其前所未有的开放性、复杂性和可伸缩性等特征,传统的安全技术无法完全保证用户托管到云端数据的安全和云计算平台自身的安全。因此,云计算为信息安全领域带来了新的挑战,也为信息系统引入了新的风险。

如今,云安全问题已成为云计算发展的主要障碍之一。许多涉及云计算的安全问题有待解决,如怎样使云服务提供方和使用方之间相互信任、怎样保证云服务没有风险或低风险等。针对云计算面临的这些安全挑战,国内外研究者对一些关键技术进行了相关的研究。但从整体上来讲,关于云计算安全问题的研究刚刚起步,虽然很多组织和机构都在积极地对云计算的安全问题展开研究,但主要是CSA、NIST和Google等组织与机构所给出的对云计算安全问题的描述和关于云计算安全问题的初步解决方案。

本书全面、系统地对云安全的基本概念、云基础设施安全技术、云安全测试、云服务风险评估方法、数据安全及隐私保护技术等内容进行了深入剖析,对业界云安全实践和云安全标准进行了系统介绍,并给出若干实际例子或思路,具备很强的实践性。全书共包括10章,主要内容如下:

第1章简要阐述了云计算的产生背景、服务模型、部署模型与面临的问题,并重点探讨了云计算的虚拟化技术、编程模式、数据存储管理和资源调度等若干关键技术。

第2章对云计算带来的安全问题进行剖析,并给出了云计算安全的内涵和确保云安全的主流技术,让读者对云安全及其保护技术有一个初步的整体认识。

第3章从全局角度分析云基础设施存在的安全问题,并结合云基础设施的安全需求讨论云基础设施安全性的主要关键技术,重点讨论了虚拟化技术及其安全问题和对策。

第4章概要论述了云环境下数据在全生命周期中所面临的威胁、相应的安全需求以及针对这些需求可以采取的应对措施。

第5章分别从技术、管理和法规角度出发,对数据隐私泄露与保护数据隐私的技术手段及相关法规和管理措施进行全方位的分析。

第6章主要对风险概念、风险类别、风险评测方法以及云服务风险评估等方面的内容给出较详细的阐述,为读者分析云服务中可能存在的安全风险和评估云服务的安全性提供参考。

第7章介绍安全云应用实践,阐述若干典型云服务提供商在安全云应用中所采用的各种技术解决方案。

第8章主要介绍云测试的基本概念和研究现状,同时对云测试目前所面临的挑战、常用的云测试工具以及云测试的解决方案给出论述。

第9章围绕云计算安全标准的研究展开,介绍当前主要的云安全标准组织情况,并就它们各自在云计算安全领域的标准研究成果进行概述。

第10章对云安全研究的主要方向及云安全研究主流技术的现状和发展趋势进行阐述,使读者能够对当前的研究热点和技术发展动态有一个总体了解。

本书部分内容来自作者所在研究小组的研究成果,此处也参考了大量的业界研究成果和相关技术资料。本书由徐保民制订编写大纲,并负责统稿和定稿的工作。徐保民编写了第1~7章,李春艳编写了第8~10章和附录。本书的撰写得到机械工业出版社的大力支持,在此一并表示深深的谢意。

由于作者水平有限,书中难免存在不足之处,欢迎各位读者批评和指正。作者的电子邮箱为xubaomin@gmail.com。作者

第1章 云计算基础

近年来,一种新的分布式计算模式——云计算在学术界和工业界已经成为热点。被视为IT界第三次革命的云计算将带来工作方式和商业模式的根本性改变。然而,云计算到底是什么?它的产生背景是什么?它涉及哪些关键技术?它的发展前景如何?本章将通过对这些问题的阐述,帮助读者对云计算形成一个初步的认识。

1.1 计算模式的演变

利用有限的资源实现效益的最大化始终是计算机科学技术发展和追求的目标之一。例如从基于集群的计算模式发展到网格计算模式,就是一种有效利用有限资源的进步。当前如火如荼的云计算模式,则可以说是一种计算模式的升华。

要了解云计算是什么和不是什么,理解计算模式的演变过程非常重要。所谓计算模式就是指计算机完成任务的一种运行、输入/输出以及使用的方式。在计算技术的发展历史中,随着微处理器技术和计算机网络技术的不断发展,计算模式经过了集中式计算模式、桌面计[1]算模式和分布式计算模式的变迁。

1.1.1 集中式计算模式

自1946年2月14日世界第一台名字叫“ENIAC(埃尼阿克)”的[2]电子计算机在美国宾夕法尼亚大学诞生,到20世纪70年代初,计算机设备不仅庞大和昂贵,而且异常复杂,没有经过特殊培训的人员几乎无法直接使用计算机。因此,当时只有为数不多的机构才有财力购置数量有限的计算机。这些计算机通常都是单独放在特别的房间里,并由专业人员来操作和维护。

为了节约成本,当时的计算机系统大多以一台主机为核心,用户通过终端设备与主机相连。在主机操作系统的管理下共享主机的硬件资源,包括中央处理器、内存/外存、输入/输出设备等。所有的数据存储和计算都在主机上进行,终端设备只负责接收用户的请求和显示计算结果。这就是集中式计算模式。

集中式计算模式的主要特点是可以同时为多个用户服务,主要缺点如下:

1)主机负担过重,所有的计算和存储都集中在主机上。一旦主机出故障,整个系统都将瘫痪。

2)系统扩展不易,当用户数量不断增加时,必须更换主机,否则系统的服务质量就要受到影响。

3)系统的购置、安装及维护等费用较高,不易普及。

1.1.2 桌面计算模式

随着大规模集成电路技术的发展,计算机的小型化成为可能。20世纪70年代,少数科研机构已开始配置供个人使用的微型计算机。但是,个人计算时代真正开始的标志是IBM公司在1981年正式推[3]出的全球首台个人计算机IBM PC。为了推动个人计算机的产业化发展,IBM公司在1982年公开了IBM PC的主要技术。自此,个人计算机得以迅速发展,并由此走入寻常百姓之家。

由于许多PC和工作站已经具备了过去大型计算机的能力,可以存储大量的数据且能进行相对复杂的计算,而价格却非常便宜,因此计算模式的主流从以一台主机为核心转移到以用户桌面为核心的桌面计算模式,也称为单机计算模式或个人计算模式。

1.1.3 分布式计算模式

到20世纪90年代,随着个人计算机的蓬勃发展和局域网技术的成熟,用户通过计算机网络共享计算机资源成为可能。计算机网络的发展促使桌面计算模式迅速向分布式计算方向转移。当时,这种新出[4]现的模式被称为C/S模式。其中,客户机(Client)是一种单用户工作站,提供与业务应用有关的表现、计算、网络连接和各类接口服务;服务器(Server)是一种共享型的多用户处理机,提供业务所需的计算、网络连接、数据库管理和各类接口服务。C/S计算模式会把应用程序所要完成的任务分派到客户机和服务器上,并通过它们之间的协调共同完成。

随着Internet技术的发展和迅速普及,计算机之间的通信和互联超越了地域的限制,改变了人们传统的获取、交换和处理信息的方式。[5]而万维网和浏览器的出现使得互联网从科研机构走向了大众。自20世纪90年代中期开始,一种全新的计算模式(即B/S模式)逐渐形成[6]并发展起来。在这种模式下,用户工作界面是通过浏览器来实现的,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑都在服务器端实现。B/S模式简化了客户端的要求,主要计算工作都在服务器端完成,计算又一次开始向服务器端集中。

伴随着高速网络的不断涌现和计算资源的网络化,拥有个人计算机或工作站的广大用户,迫切需要共享分布于网络上丰富的资源,特别是计算资源。这就使得基于网络的分布式计算模式逐步成为主流的计算模式。简单地说,分布式计算就是让很多计算机同时去帮你做事情、进行计算。

由于分布式计算有着巨大的计算潜力、良好的可扩展性和灵活的体系结构,所以它对于解决大型和小型的科学计算问题都是一种非常[7]合适的模式。从学术角度讲,分布式计算是一种把需要进行大量计算的工程数据分割成小块,由多台计算机分别计算,在上传计算结果后,将结果合并然后得出数据结论的科学。

分布式计算的最早形态出现在20世纪80年代末期的Intel公司。Intel公司利用工作站的空闲时间为芯片设计计算数据集。随着Internet的迅速发展和普及,分布式计算的研究在20世纪90年代后期达到了高潮。目前分布式计算已非常流行。

分布式计算模式的演变历史开始于并行计算,主要经历了集群、网格计算和云计算三大阶段。如图1|1所示。从计算模式的发展趋势来看,网格计算和云计算都是随着计算规模和计算能力的日益提高,以及应用范围的扩大和用户数量的剧增而产生的,是技术和应用发展的必然趋势。云计算作为目前出现的一种最新的分布式计算模式,是由传统的多种计算模型和技术发展而来的,已成为众多企业的一种必然选择和趋势。图1-1 分布式计算模式的发展趋势

并行计算一般是指许多指令得以同时执行的计算模式。在同时执行的前提下,可以将计算过程分解成若干子过程,之后以并行方式来加以完成。并行计算可分为时间上的并行和空间上的并行。时间上的并行是指流水线技术,空间上的并行是指用多个处理器并行地执行计算。任何高性能计算都离不开并行计算技术。

集群是一种并行或分布式多处理系统,该系统是通过将一组松散集成的计算机软件和硬件连接起来作为一个整体向用户提供一组资源。在某种意义上,一个连接在一起的计算机集群对于用户和应用程序而言就像是一个单一的计算机系统。集群系统中的单个计算机通常称为节点,节点可以是连接在一起的,也可以是物理上分散而通过局域网连接到一起的。集群系统通常用来改进单个计算机的计算速度和可靠性。在一般情况下,集群系统比单个计算机(如工作站)的性能价格比要高得多。

20世纪90年代初,网格计算由学术界提出,伴随互联网的兴起而迅速发展。该模式利用Internet把分散在不同地域的计算机组织成一台虚拟的超级计算机,每一台参与运算的计算机即为一个节点,整个计算则是由成千上万的节点构筑成一个网格,因而被称为网格计算。网格计算的焦点在于支持跨管理域计算的能力,这使它与传统的集群系统或传统的分布式计算相区别。

云计算是一种通过互联网提供弹性计算和虚拟资源服务的分布式计算模式。它是网格计算、分布式计算、并行计算、效用计算、网络存储和虚拟化等传统计算机技术和网络技术发展融合所产生一种新的商业计算模式。

1.2 理解云计算

近年来,云计算作为一个新的技术趋势已经得到了快速发展。然而,由于业界一直没有对云计算形成一个统一的定义,稀奇古怪的所谓“云计算”产品不断涌现。

1.2.1 云计算的起源

早在20世纪60年代,美国科学家John McCarthy就提出将计算能力作为一种公共设施提供给公众,使人们能够像使用水电那样使用计算资源。

针对此设想,通过将所有的计算资源集中起来,采用类似“效用计算”和“软件即服务”的分布式计算技术为人们提供“随需随用”的计算资源。在此背景下,用户的使用观念会发生彻底的改变,即从“购买产品”到“购买服务”的转变,因为他们直接面对的不再是复杂的硬件和软件,而是最终的服务。用户不需要拥有看得见、摸得着的硬件设施,也不需要为机房配置专门的维护人员等,只需要把钱汇给所需服务的供应商,就会得到所需的服务。

伴随着互联网技术的发展和普及,特别是Web 2.0的飞速发展,各种媒体数据呈现指数增长,逐步递增的海量异构媒体数据以及数据和服务的Web化趋势使得传统的计算模式在进行大数据处理时,其表现有些力不从心,新的问题不断涌现。比如传统计算模型至少在如下两个方面已经不能适应新的需求:一是计算速度上受限于内核的性能和个数;二是待处理数据量受限于内存和硬盘容量。对此,人们很容易想到,能否将数量可观的计算机连接起来以获得更快的计算速度、更强大的处理能力和存储能力。这种朴素的解决方案可以追踪到分布式计算模式出现之时,只是当时的应用领域局限于科学计算。

针对上述构思的最新解决方案,是在谷歌、亚马逊等著名IT企业的大力推动下,为实现资源和计算能力的共享以及应对互联网上各种媒体数据高速增长的势头,所提出的一种以数据为中心的新商业计算[8]模式——云计算。

术语“云”第一次出现是在20世纪90年代早期,主要是指大型的ATM网络,是对因特网的一种隐喻。而首次在学术上使用“云计算”一词的是1997年的Ramnath Chellappa教授所描述的“云计算是一个动态的计算框架,计算的边界由技术、经济、地区、信息安全需求以及基础服务供应商决定”。

然而,当下流行的“云计算”中“云”的真正发端是在21世纪初,是伴随着云计算鼻祖之一的Amazon公司于2005年所提出的允许小企业和私人租用其所提供的一组包括存储空间、计算能力等资源服务的称为亚马逊EC2的出现而出现的。

已经成为当今最流行词汇的“云计算”是由Google的前首席执行官Eric Schmidt于2006年8月9日在圣何塞(San Jose)举办的全球搜索引擎会议(Search Engine Strategies,SES)上首次提出的。其真正作为一个新兴的技术热门名词被IT业开始认可并进入产品化流程始于2007年左右。此后,IT行业各大厂商和运营商纷纷制订相应的战略,新的概念、观点、产品和服务不断涌现。例如IBM、Google、Amazon、Microsoft和Yahoo等IT行业巨头都顺势推出各自的云计算产品和技术。同时,云计算也引起了政界和学术界的普遍关注。目前,世界各国都把云计算作为未来战略产业的重点。比如2011年2月,美国政府颁布了“联邦云计算战略”,规定“云计算优先(Cloud First)”;日本政府提出“Kasumigaseki Cloud(霞关云计算)”战略;我国“十二五”规划纲要也把云计算列为重点发展的战略性新兴产业。

总之,云计算的出现为信息技术领域带来了新的挑战,也为信息技术产业带来了新的机遇。

1.2.2 云计算的定义

云计算是一种概念性的说法,而非专指某特定的信息系统。对云计算最简单的理解,就是将计算能力提供出来作为一种服务,使企业或个人可以通过因特网取得服务。用户所需要的数据,不用存储在个人计算机上,而是放在网络的“云”上面,在任何可以使用网络的地方都可以使用。云代表了规模庞大的计算能力,由云服务供应商建造大型机房,提供各种软件和应用,让用户随时使用超级计算机的计算能力和最新应用软件,用户却不知道服务器的位置或数据的所在,就像是天上的“云”一般,虚无缥缈又抬头即见。

有人主张将Cloud Computing翻译为“云计算”,但也有人将它解读为“云端计算”。“云”即是我们最常使用的因特网;“端”是指使用者端或泛指用户应用网络服务来完成事情的方式。云计算的目标就是没有软件的安装,所有资源都来自云端,使用者端只需要具备连上云端的设备和简单的接口如浏览器即可。因此云计算是一种基于因特网的计算模式,通过因特网上异构、自治的服务为个人和企业使用者提供“随需随用”的计算资源。

维基百科上给出的云计算定义:“一种基于因特网的计算新方式,通过因特网上异构、自治的服务为个人和企业使用者提供按需即取的计算。云计算的资源是动态、易扩充套件而且是虚拟化的,通过因特网提供的资源,终端使用者不需要了解云端中基础设施的细节,不必具有相应的专业知识,也无须直接进行控制,只需关注自己真正需要什么样的资源以及如何通过网络来得到相应的服务”。

但是,当谈及云计算的定义时,大多数研究者都会引用美国国家标准与技术研究院(National Institute of Standard and Technology,[9]NIST)的定义:“云计算是一种模式,支持根据用户需求通过网络方便地访问可配置的计算资源(如网络、服务器、存储器、应用和服务)的共享池,而该池可通过最少的管理工作或服务供应商干预进行快速配置和交付。”。具体来讲,NIST提供的云计算定义中包括了五个基本特征、三个云服务模型和四个云部署模型,如图1-2所示。图1-2 NIST提供的云计算定义

需要指出的是,由于考虑的角度不同,业界对云计算的提法也稍有不同。IBM、Google和Amazon等公司也都从自身角度出发给出了云计算的定义。尽管各自的表述方式和应用特点不同,但云计算的如下特性是可以被明确认同的:

1)硬件和软件都是资源,可以是物理的,也可以是虚拟的,通过互联网以服务的方式提供给用户。

2)资源以分布式共享的形式存在,以单一整体的形式呈现。

3)资源可以根据需要进行动态的扩展和配置。

4)用户按需使用云中的资源,而不需要管理它们。

综上所述,云计算将所有的计算资源集中起来,并由软件实现自动管理,无须人为参与。这使得应用提供者无须为烦琐的细节而烦恼,能够更加专注于自己的业务,有利于创新和降低成本。

1.2.3 云计算的类别

云计算可分为云计算服务和云计算技术。前者的重点是放在提供信息服务给用户,如Salesforce公司所提供的在线客户关系管理CRM服务及Amazon公司所提供的在线动态虚拟主机EC2服务等云计算解决方案;后者的重点是放在提供高可靠性的信息基础平台,如IBM所提供的蓝云数据中心基础建设服务及即时通信软件Skype所提供的P2P语音计算平台服务等云端计算解决方案。

1.2.4 云计算的特点

由图1-2可知,由NIST给出的云计算的五个基本特征如下:(1)按需自助服务 云用户可以按需自动获得计算能力,如服务器时间和网络存储,而无须与服务供应商的服务人员互动,这种方式有别于传统的服务需要借助人力协调改变。(2)广泛的网络访问 云服务能力通过网络和标准的机制提供,支持各种标准接入手段,包括各种客户端平台如移动设备和笔记本电脑等,也包括其他传统的或基于云服务的使用。目前云端的使用大部分都是通过浏览器进行。(3)资源池 云服务供应商将其计算资源汇集到资源池中,采用多租户模式,按照用户需要,将不同的物理和虚拟资源动态地分配或重新分配给多个用户使用。资源通常包括存储、CPU、内存、网络带宽以及虚拟机等。即使是私有云,在同一组织内部的不同部门往往也趋向将资源池化。资源池化的目的是在众多用户之间实现资源共享。(4)快速的弹性 弹性是指系统能够根据用户对资源需求的动态变化,动态地调节物理机的负载,并维持系统性能。云计算中的物理资源在随时发生变化,为了实时保证云服务的性能需求,就需要云计算系统能够及时地捕捉云中资源的变化情况,并能在某些情况下自动对服务占有的资源进行快速扩容、释放和回收。对于用户来说,云端可供应的服务能力近乎无限,且能依据自身的需求,随时按需购买所需的计算能力。(5)可测量服务 用户购买的服务可以量化并测量。云系统之所以能够自动控制优化某种服务的资源使用,是因为云系统利用了经过某种程度抽象的测量能力,如存储、CPU、带宽或者活动用户账号等。人们可以借此来监视和控制资源使用并产生报表等。

从云计算的概念中还可以得出云计算的特性是大规模、多用户、虚拟化、高可靠性及成本低廉等。(1)大规模 云计算诞生之初的使命就是使用大量的计算机,解决大数据集处理的问题,并存储海量数据。所以无论是从云计算本身的规模,还是其处理数据的规模,云计算的一大主要特性就是大规模。

目前,Google公司云数据中心的服务器已经超过百万台,IBM、Amazon和Yahoo等公司的数据中心也有几十万台服务器。企业私有云一般也拥有数百甚至上千台服务器。(2)多用户 云计算的另一大特性就是将资源分享给许多用户同时使用,其不同于以往的计算模式将特定的资源交付给特定的用户使用。多用户不仅体现在用户数量上,而且体现在用户种类上,不同服务需求的用户也可以同时使用同一个云平台。云计算平台使用虚拟化技术满足不同的用户需求。(3)虚拟化 虚拟化技术是云计算的核心,云计算的虚拟化主要体现在如下两个方面:①将多台服务器虚拟成统一的资源提供给用户,使用户可以透明地使用所需的资源而不需要关心底层的技术实现细节;②将一个物理资源虚拟成多个虚拟主机提供给不同的用户使用,通过虚拟化来隔离用户。总之,通过虚拟化技术,云计算可以将资源统一成资源池,动态地提供给用户使用。(4)高可靠性 云服务供应商会尽量采取多种措施来保障其所提供服务的高可靠性,如基于数据多副本的容错技术和自动失效节点检测技术等。越来越多的实例已经表明依靠云数据中心来处理任务比本地计算机更可靠。(5)成本低廉 由于云计算的特殊容错措施使得其可以采用极其廉价的硬件来构成庞大的云,而云计算所采用的自动化管理技术则显著降低了云数据中心的运营成本。云计算的通用性使得资源的利用率得到大幅提升。对用户而言,云计算不但省去了基础设备的购置运维费用,而且可以按需使用廉价的服务,同时能根据企业成长的需要不断扩展订购的服务,不断更换更加适合的服务,提高了资金的利用率。

1.2.5 云计算的优势

对于没有庞大内部IT资源的中小型企业而言,云计算可以让他们专注于业务经营而不是IT事务。他们可以利用广泛的计算、存储和网络产品组合优势,经济、高效地随企业的发展和需求进行扩展,同时只需很少的前期资本支出。

对云服务提供商而言,由于云计算服务不需要将软件安装在用户的计算机中,降低了商业软件被破解的风险。然而,把数据移到云端,企业可能面临主管当局审查等方面的挑战,加上有些云端服务业供应商可能未把用户数据完全、彻底地删除干净,而使机密数据外泄。

就目前的情况来看,云计算正在颠覆世界各地企业的IT消费方[10]式,采用云计算模式可带来许多好处和优势。比如:

1)节省开支。据统计,信息设备的性能每隔18个月更新一倍,企业IT设备的采购更新是永无止境的竞赛,对于企业来说是一项庞大的资本支出,为了维持企业竞争力而不得不进行更替。若企业采取云计算,便可以省去巨额的信息设备更新费用,企业只需就其本身所需求的服务支付费用给云服务供应商即可。云计算降低的不仅仅是IT设备成本,同时更可以降低人事成本和管理成本等多项管理费用。企业只需专注自己擅长的内容,进而提升企业竞争力。

2)应对需求。随着企业不断发展,云计算环境将随之增长。当需求无法预测时,企业可以相应地增加或减少容量,同时只需为所使用的服务付费。这一切都源于云计算的弹性特性。

3)用户无须担心基础设施运维。云计算服务供应商承担对云计算平台和服务进行全天候的监控和维护。除保证云用户的数据安全以外,他们还将随时按云用户的需求提供创新且实用的解决方案。

4)提高安全性与合规性。云主机托管供应商将从基础设施层面增强弹性和灵活性以控制安全风险,并将与用户合作解决合规性和监管要求。

5)减少碳足迹。在数据中心而不是现场进行托管能充分利用最新的节能技术优势。此外,由于云服务供应商在共享基础设施上托管多个客户,他们可以更有效地利用能源、水和空间等资源。

6)资源的有限共享。用户可以在权限许可下共享云计算平台中的数据。

7)可移植性。这一特性使得云计算服务能够允许云端的节点出现错误甚至是崩溃。因为云计算的可移植性,崩溃节点的任务可以分配到其他的节点而不会影响云计算服务的正确运行。

1.2.6 云计算的挑战与机会

尽管云计算前景一片看好,但是发展云计算必然会面临一些新的[11]挑战。比如:

1)软件授权费问题。目前,Google或其他云服务供应商所提供的服务都是自家的产品,如Chrome操作系统和Gmail邮件服务等。但是从长期来看,云服务提供商应纳入其他软件厂商的产品,届时软件授权费用如何计价,有待软件厂商和云服务供应商协商。

2)安全性与机密性问题。企业和政府机构等群体,在考虑安全性的情况下,不太可能把他们的数据保存在别人那里。因为这涉及政府和企业的机密,所以这些单位通常是自己购买服务器和软件,自己搭建专用云,并服务于内部人员。另外,云使用者的行为、习惯及爱好等被使用者视为隐私的部分,将会更直接地暴露在网络之上。因此,云计算的安全性与机密性是企业的主要关注点。

3)服务移植弹性小。目前云计算并无统一的行业标准,也就是说,企业用户难以从一家云服务供应商转换到其他云服务提供商,即降低了云服务移植的弹性。

4)数据访问速度的稳定性。云端毕竟是在远方,数据的访问速度自然远比不上本地的计算机系统。所以除非客户端联机到云端的速度足够快,否则这也可能会成为推广云计算的障碍。

5)用户被绑架问题。很多云服务提供商都宣称:“如果我们无法提供高质量的服务,你就应该可以离开。作为用户,你应该享受完全的控制权”。然而,正如Hybrid Cloud Gateway公司的创始人Dan Koffler所言:“云计算领域有一种流行的观念,即数据是有重量的,一旦将数据搬进云服务提供商的云端,再要搬出来就很费劲了”。其原因在于:①很多云服务提供商为用户设置了重重障碍,使之难以转用其他服务商所提供的服务;②数据迁移成本高,即使将数据迁出未必很困难,但数据迁出成本有可能会比迁入的成本更高。

1.2.7 云计算与网格计算的差别

云计算和网格计算都是由分布式计算所发展出来的概念。云计算和网格计算之间并没有太大的不同,只是网格计算这个名词出现得比较早,它的重点是异构系统之间计算资源的整合。简单地说,就是让不同类别的计算机或具有不同操作系统的计算机可以沟通,并且分享彼此的计算资源。在因特网还没有今天这么发达之前,许多企业采用网格计算,其原因是为了让组织内部的网络资源达到更好的使用效率,比较知名的网格计算应该是寻找外星人(Search for ExtraTerrestrial Intelligence,SETI)计划。

总体来讲,网格计算与云计算的差别在于:

1)网格计算强调的是资源共享,在网格系统内的任何用户都可以获取其他人的闲置资源,同时也必须贡献出自己的闲置资源给其他人;云计算则是让使用者可以独占资源,这些资源是由少数的机构和组织提供,而且大多数基于云计算的产品都要保证一定的服务质量,一般用户只需要付出一定金额即可租用,而无须奉献出自己的计算资源。

2)网格计算以供专家使用居多,重点放在需要复杂计算的单一任务;云计算则比较偏重大众应用,多数应用不需要进行复杂的计算。但是由于大众的数量相当庞大,所以累积起来的计算需求也相当可观。

3)网格计算通常只是使用专属的应用协议和数据格式,但云计算没有此限制。

4)网格计算着眼于整合众多异构平台。云计算则强调在本地资源有限的情况下,利用互联网获取云端的计算资源。

5)云计算的概念是以Web为前端,数据全部放后端,用户本身不需要保存数据。这样用户可以不用担心不同设备上数据无法同步的问题,也可以随时访问它。为了方便管理并充分运用服务器的效能,云计算通常使用虚拟化技术。但网格计算不存在这些情况。

总而言之,我们可以用“云计算是平民化的网格计算”来说明它们之间的关系。

1.2.8 云计算的发展历程

云计算是引领未来新技术发展的航向标,同时也会给人类的生产和生活带来巨大的变革。了解云计算的发展历程,可以洞悉云计算的发展规律,从中可以更好地洞察云计算技术的发展趋势。下面是对云[12]计算发展历程的简要回顾。

1959年6月,Christopher Strachey发表虚拟化论文,虚拟化是今天云计算基础架构的基石。

1961年,John McCarthy提出将计算能力作为一种公共设施提供给公众。

1983年,Sun公司提出“网络即计算机”的名言,用于描述分布式计算技术带来的新世界,今天的云计算正在将这一理念变成现实。

1997年,南加州大学教授Ramnath K.Chellappa提出云计算的第一个学术定义。

1998年,Vmware公司成立并首次引入x86的虚拟技术。

1999年,Marc Andreessen创建第一个商业化的IaaS平台LoudCloud。

1999年,Salesforce公司成立,宣布“软件终结”革命开始。

2000年,SaaS兴起。

2004年,Google公司发布MapReduce论文。

2004年,Doug Cutting和Mike Cafarella实现Hadoop的HDFS和MapReduce。

2005年,Amazon公司宣布Amazon Web Services云计算平台。

2006年,Amazon公司相继推出在线存储服务(S3)和弹性计算云(EC2)。EC2允许小企业和私人按照自己的需要租用其数据中心的处理能力,即弹性计算云形成了云计算的雏形。

2006年,Sun公司推出基于云计算理论的“BlackBox”计划。

2006年8月9日,Google前首席执行官Eric Schmidt在全球搜索引擎会议上第一次提出云计算概念。Google的云计算源于“Google 101”项目。

2007年10月,Google和IBM公司在美国大学校园内进行云计算的推广计划。Google和IBM公司为斯坦福大学、麻省理工学院、卡内基梅隆大学、马里兰大学及加州大学伯克利分校等大学提供相关的软件、硬件设备及技术支持。此计划的主要目的是降低分布式计算技术在科学研究领域的成本。

2007年3月,Dell公司成立数据中心解决方案部门,先后为全球五大云计算平台中的三个(Windows Azure、Facebook和Ask.com)提供云基础架构。

2007年7月,Amazon公司推出简单队列服务SQS,这项服务使托管主机可以在存储计算机之间传输消息。

2007年11月,IBM公司首次发布云计算商业解决方案,推出“蓝云”计划。

2008年1月,Salesforce公司推出世界上首个PaaS应用。

2008年1月30日,Google公司在中国台湾开启“云计算学术计划”项目。

2008年2月1日,IBM公司决定将在中国无锡建立世界上首个云计算中心。2008年5月10日,此云计算中心投入运营。2008年6月24日,IBM公司在北京IBM中国创新中心成立IBM大中华区云计算中心。

2008年7月29日,Yahoo、Intel和HP公司宣布一项橫跨新加坡、德国和美国的联合研究计划,以此来推动云计算的发展。该计划要与合作伙伴创建6个数据中心作为研究试验平台,其中每个数据中心配置1400~4000个处理器。

2008年10月,Microsoft发布其公有云计算平台Azure,由此拉开了微软的云计算大幕。

2009年1月,阿里软件在江苏南京建立首个“电子商务云计算中心”。

2010年3月5日,Novell公司与CSA共同宣布一项云计算服务供应商中立计划,即“可信任云计算计划(Trusted Cloud Initiative)”。

2010年7月,NASA与包括Rackspace、Intel、AMD、Dell等在内的一些支持厂商共同宣布“OpenStack”计划。与此同时,微软在2010年10月表示支持OpenStack与Windows Server 2008 R2的集成。2011年2月,Cisco正式加入OpenStack计划,并着重研发基于OpenStack的互联网服务。

2011年10月20日,“盛大云(Grand Cloud)”宣布旗下产品MongoIC正式对外开放,这是中国第一家专业的MongoDB云服务,同时也是全球第一家支持数据库恢复的MongoDB云服务。

2012年9月,欧盟委员会发布“释放欧洲云计算潜力”报告,提出建立涵盖标准符合性、互操作性和数据可迁移性等内容的云服务认证体系。

2013年,微软推出云操作系统,包括Windows Server 2012R2、System Center 2012 R2和Windows Azure Pack在内的一系列企业级云计算产品及服务。

2014年,谷歌公司宣布全面支持Hadoop。

1.2.9 云计算国内外发展现状

2007年年底,云计算开始受到关注并迅速得以发展,其发展前景十分广阔。到目前为止,Google、IBM、Microsoft和Amazon等世界级IT大型公司都推出了各自的云计算平台,并把云计算作为他们未来重点发展的最主要战略之一。

Google是云计算技术的领跑者,同时也是云计算技术的最大实践者。Google基于云计算提供了大量的云服务,如Google Gmail、Google Docs、Google App Engine、文件处理系统GFS、分布式计算编程模型MapReduce、分布式锁服务Chubby、分布式结构化数据表BigTable、分布式存储系统Megastore、分布式监控系统Dapper等云计算技术。

作为互联网上最大的在线零售商,Amazon也推出了自己的云产品,如弹性计算云EC2、简单存储服务S3、简单数据库服务SimpleDB、简单队列服务SQS、弹性MapReduce服务、内容推送服务CloudFront、电子商务服务DevPay和FPS,涉及数据均衡和数据冲突处理等云计算技术。其中最具代表性的是S3和EC2。

2007年,IBM推出“蓝云”计算平台。蓝云计算平台包括一系列的云计算产品,它通过架构一个可全球访问的、分布式的资源结构,使数据中心在类似于互联网的环境下运行计算。图1-3为IBM蓝云产品架构。图1-3 IBM蓝云产品架构

由图1-3可知,蓝云计算平台由一个数据中心、IBM Tivoli部署管理软件(Tivoli Provisioning Manager)、IBM Tivoli监控软件(IBM Tivoli Monitoring)、IBM WebSphere应用服务器和IBM DB2数据库组成,采用了PowerVM和Xen虚拟化软件、Linux操作系统映像以及Hadoop。“蓝云”的硬件平台环境与一般的x86服务器集群类似,只是使用刀片的方式增加了计算度。“蓝云”软件的一个重要特点是虚拟化技术的使用。虚拟化的方式在“蓝云”中有两个级别:一个是在硬件级别上实现虚拟化;另一个是通过开源软件实现虚拟化。硬件级别的虚拟化可以借助IBM P系列服务器和IBM PowerVM虚拟化解决方案实现。软件级别上的虚拟化采用开源的Xen虚拟化软件,通过Xen能够在Linux基础上运行另外一个操作系统。蓝云软件平台的另一特点是使用Hadoop。

继Amazon、Google和IBM之后,微软于2008年10月推出了自己的云计算产品,即Windows Azure操作系统。Azure通过在互联网架构上打造新云计算平台,让Windows真正由PC延伸到“蓝天”上。Azure的底层是微软全球基础服务系统,由遍布全球的若干数据中心构成。

除了我们所熟知的IT巨头的云计算平台外,开源云计算平台更是被认为是IT的发展趋势。例如:①Eucalyptus是一种开源的软件基础结构,通过集群或工作站群实现弹性的云计算。它最初是加利福尼亚大学为进行云计算研究而开发的Amazon EC2的一个开源实现,与EC2和S3的服务接口兼容,使用这些接口的所有现有工具都可以与基于Eucalyptus的云协同工作。与EC2一样,Eucalyptus依赖于Xen进行操作系统虚拟化,现在已经商业化,发展成了Eucalyptus Systems Inc。不过,Eucalyptus仍然按开源项目进行维护和开发。②OpenNebula是一款为云计算而打造的开源工具箱。OpenNebula的目标是将一群实体集群转换为弹性的虚拟基础设备,且可动态自适应地随服务器工作负载变化而改变。它允许与Xen、KVM或VMware ESX一起建立和管理私有云,同时提供专门的适配器与Amazon EC2配合来管理混合云。除了像Amazon一样的商业云服务供应商外,在不同OpenNebula实例上运行私有云的Amazon合作伙伴也同样可以作为远程云服务供应商。目前,OpenNebula可支持Xen、KVM和VMware,以及实时存取EC2。它还支持对象文档的传输、复制和虚拟网络的管理。OpenNebula支持多种身份验证方案,包括基本的用户名和密码验证,以及通过SSH协议进行密钥验证。

在中国,云计算的主要增长点在于国内IT企业兴起的云计算中心的建立,以IBM为中心扩展开来。2008年5月10日,IBM在中国无锡太湖新城科教产业园建立中国第一个云计算中心并投入运营。2008年6月24日,IBM在北京IBM中国创新中心成立了中国第二家云计算中心即IBM大中华区云计算中心。

随后,一些国内的IT巨头如中国移动、百度、中国电信、阿里巴巴、腾讯、华为、中兴和曙光等,也对云计算进行了研究和实践。

中国移动自2007年起开始推出“大云(Big Cloud)”计划,目标是建造业务平台云、IT支撑云和公众服务云,在2010年5月21日召开的第二届中国云计算大会上正式发布“大云”1.0版本。该平台包括分布式文件系统、分布式海量数据仓库、分布式计算框架、集群管理、云存储系统、弹性计算系统和分布数据挖掘工具等功能。

2008年11月25日,中国电子学会专门成立了云计算专家委员会。2009年5月22日,中国电子学会组织的首届中国云计算大会隆重举行。

2009年9月10日,在阿里巴巴10周年庆典会上,阿里巴巴云计算团队以独立身份出现,而且命名为“阿里云”的子公司正式成立。该公司主要由原阿里软件、阿里巴巴集团研究院以及B2B与淘宝的底层技术团队组成,主要从事基础技术的研发,并将推出用于电子商务服务的云计算中心。

2009年,世纪互联成立了专门的云计算公司云快线,云快线从IaaS切入云计算,目前,已有CloudEx弹性计算(CloudEx Computing Service)和CloudEx弹性存储(CloudEx Storage Service)两款产品。从技术层面看,CloudEx平台采用了硬件设备虚拟化技术,把物理层面的计算机、服务器和CPU等设备虚拟成为一个资源池。用户的需求是分配和划分虚拟机的唯一标准。它使得运营商可以得到更加便捷的云计算服务,实现了资源的跨地域和跨平台的部署,形成了统一分配机制。[8]

新浪在2009年推出Web应用开发与运行平台SAE,主要面向国内用户,提供集成式开发平台。

2011年6月30日,天津大学与曙光信息产业股份有限公司合作共建“天津大学云计算中心”的协议签订仪式在天津大学举行。这是我国首个高校云计算中心,该中心的目标期望是达到提供每秒计算速度达11万亿次的计算能力。

2013年8月,作为国内首个物联网云计算中心的无锡城市云计算中心正式启用。

2014年1月,曙光公司、NVIDIA公司和思杰公司共同合作推出图形云计算产品,解决了GPU硬件虚拟化的技术难题,这是我国首款真正意义上的专业图形云计算产品。

总体来讲,国内主要是由大型互联网公司提供云计算服务,业务主要是以IaaS+PaaS形式的开放平台服务,其中IaaS服务已经较为成熟,而PaaS服务尚处于起步阶段。

1.3 云计算服务模型

理解云计算的两个重要方面就是理解它的服务模型和部署模型。

1.3.1 SPI服务模型

云计算的主要原则之一就是“as-a-Service”范式的一些服务。这些服务是由服务供应商提供。目前,大家对云计算的服务模型已有了一个相对统一的认识,即在云计算中,根据资源池中资源的类别,把云计算所提供的3类服务(平台即服务、基础设施即服务和软件即服务)归类为SPI服务模型。“SPI”这个缩略词对应SaaS、PaaS和IaaS的首字母。图1-4所示[13]为SPI服务模型框架。其中,IaaS是所有云服务的基础,PaaS建立在IaaS之上,而SaaS又建立在PaaS之上。图1-4 SPI服务模型框架

SPI模型代表服务。不同应用领域和不同部署类型的云都可以用来作为一种服务。SPI框架是目前最被广为接受的云计算分类机制。事实上,NIST、CSA和其他组织都遵循这个框架,绝大部分云服务供应商也支持这个概念。

1.3.2 IaaS模型

NIST对IaaS的阐述是:“提供给用户的能力是云处理、存储、网络和其他基本的计算资源,其中云用户能够部署和运行任意软件,它可以包括操作系统和应用程序。该用户并不管理或控制底层的云基础设施,但是拥有对操作系统的控制、存储及部署的应用程序,并有可能选择网络组件如防火墙和负载均衡器等”。换言之,IaaS供应商提供给用户所需要的计算机硬件、网络和其他必要的基础设施资源。它包括了将资源抽象化的能力,并交付连接到这些资源的物理或逻辑网络连接,终极状态是IaaS供应商提供一组API,允许消费者与基础设施进行管理和其他形式的交互。

IaaS是云服务供应商向用户出租其所能提供的计算能力、存储功能、网络计算和其他多种资源。用户可以利用付费租来的资源去开发和部署属于自己的任意应用程序,如操作系统和软件等。这种服务类型依靠的是云平台上的虚拟计算机集群的计算能力和安全稳定的存储能力。IaaS的最大优势就是用户可以自行申请和释放节点,费用是按照使用的节点量来计算的,即用户只用按需租用相应的计算能力和存储能力,大大降低了在硬件上的开销。在这种情况下,用户对配置的资源有控制能力,但对底层的云基础设施没有控制权。IaaS模型如图1-5所示。

IaaS供应商需提供如下功能:图1-5 IaaS模型图1-6 PaaS模型

1)资源抽象。使用资源抽象的方法能更好地调度和管理物理资源。

2)资源监控。通过对资源的监控,能够保证基础设施高效运行。

3)负载管理。通过负载管理,不仅能使部署在基础设施上的应用更好地应对突发情况,而且还能更好地利用系统资源。

4)数据管理。数据的完整性、可用性和可管理性是对IaaS的基本要求。

5)资源部署。将整个资源从创建到使用的流程自动化。

6)安全管理。保证基础设施和其提供的资源能被合法地访问和使用。

7)计费管理。通过细致的计费管理能使用户更灵活地使用资源。

Rackspace和NASA联手推出的云计算平台OpenStack是典型的IaaS平台之一,为那些希望给用户提供云服务的托管供应商们创造了进入云计算领域的机会。Eucalyptus也是典型IaaS平台之一,通过计算集群或工作站群实现弹性的、实用的云计算。AWS是目前主要的IaaS云服务供应商之一,EC2是其提供的热门服务。

1.3.3 PaaS模型

1.PaaS概述

PaaS模型如图1-6所示。NIST对PaaS的阐述是:“提供给用户的能力是可以使得用户在云平台的基础设施上部署属于自己的应用,用户部署自己应用的同时可以使用供应商所提供的支撑编程工具和程序开发语言。消费者无须管理或控制底层的云基础设施(网络、服务器、操作系统和存储等),但消费者控制对该部署的应用程序和有可能应用托管环境的配置”。

PaaS模型的主要目的是给应用程序开发者提供程序开发平台,也就是提供一个建构、部署与管理的环境,让他们能创造并开发出新的服务或应用,并且快速地将其软件或程序部署在云上。

在PaaS模式中,平台通常包括操作系统、编程语言的运行环境、数据库和Web服务器等。用户完全不需要也不能对网络及服务器等底层基础设施进行管理和控制,但可以控制和部署自己的应用。这种服务模式能够给用户提供更多的、更高效的硬件和软件服务,既可以减少用户自行开发的成本,又可以完全实现软件的重用。

PaaS平台在云架构中位于中间层(见图1-4)。PaaS能将现有的各种业务能力进行整合,具体可以归类为应用服务器、业务能力接入、业务引擎和业务开放平台,向下根据业务能力需要测算基础服务能力,通过IaaS提供的API调用硬件资源,向上提供业务调度中心服务,实时监控平台的各种资源,并将这些资源通过API开放给SaaS用户。[14]

Gartner把PaaS平台划分为两类:一类是应用部署和运行平台APaaS;另一类是集成平台IPaaS。人们经常说的PaaS平台主要是指APaaS,如新浪的SAE、谷歌的GAE、微软的Azure都是其典型例子。其中,Saleaforce公司的Force.com是业界内第一个可以称为PaaS的平台。PaaS的理念也是该公司提出来的。Force.com向企业提供在云端上快速创建和实施业务应用程序所需的一切,包括数据库、无限的实时定制、强大的分析、实时工作流程和审批、可编程云逻辑、集成、实时移动部署、可编程的用户界面和网站功能。GAE为使用者提供Web应用开发平台,并对所使用的资源进行严格分配,使平台上托管的应用拥有良好的自动扩充性以及高可用性。其主要特征:①应用的开发和运行都基于同样的平台,故兼容性问题较少;②开发者无须考虑系统可允许的应用扩充性和服务容量等问题;③可提供运维管理功能以及帮助开发人员对应用进行监控和计费。

为了支撑整个PaaS平台的运行,服务供应商需提供如下功能:

1)友好的开发环境。通过提供IDE等工具使用户能在本地方便地进行应用的开发和测试。

2)丰富的服务。PaaS平台会以API的形式将各种各样的服务提供给上层的应用。

3)自动的资源调度。此特性不仅能优化系统资源,而且能自动调整资源来帮助运行于其上的应用更好地应对突发流量。

4)精细的管理和监控。提供对应用层的管理和监控,如通过精确计量应用所使用和消耗的资源来更好地计费。

这种服务模式的优势,是解决了平台价格昂贵、平台即时升级、用户需求估算不够科学及平台管理复杂等问题。

2.示例

当以传统的方式搭建一个Web网站时,往往需要先购置并托管服务器,然后安装操作系统及各种服务软件等,待所有烦琐的工作都准备好之后才能开始编写代码。而且开发环境与运行环境还会有一定的差别,需要把代码部署到运行环境当中进行测试,当一切都处理好后,网站才能上线。

假如使用PaaS开发和部署一个Web网站,则会使Web部署工作变得极其简单。例如,使用SAE,用户可以在任何时间、任何地点登录到SAE,通过浏览器就可以编写代码,随时随地都可以进行部署调试,只需要单击按钮,切换一下版本就可以上线了,不必购置服务器和搭建各种环境等。

为了实际体会PaaS平台,我们可以注册新浪云SAE,并进行简单的代码开发与发布。SAE支持Python、PHP和Java三种开发语言,支持MySQL和NoSQL两种数据库。同时SAE还具备版本管理功能等,总之,SAE提供了开发一个应用程序所需要的全部环境。

SAE首页、代码编辑界面和代码发布测试界面分别如图1-7~图1-9所示。图1-7 SAE首页图1-8 代码编辑界面图1-9 代码发布测试界面

IT人员,即可通过互联网使用信息系统。就像打开自来水龙头就能用水一样,企业根据实际需要,从SaaS供应商租赁软件服务。

传统的购买软件的方法所涉及的用户加载软件到自己的硬件上,以换取许可费。用户也可以购买一个维护协议,以获得补丁软件或其他支持服务。用户关注的是业务系统的兼容性、安装补丁以及遵守许可证协议。

SaaS供应商以租赁的概念提供客户软件服务,而非购买,比较常见的模式是提供一组账号密码,规定一个使用期限。由于SaaS模式是一个多租户架构模式,这意味着物理后端的硬件基础设施在许多客户之间共享,但在逻辑上是独一无二的单独客户。多租户架构的设计最大限度地提高了资源的跨租户共享,但仍能够安全地区分属于每个租户的数据。总之,SaaS服务模式与传统许可模式软件存在很大的不同,是未来应用软件的发展趋势。

Salesforce的客户关系管理Saleforce CRM、微软的Office Live以及谷歌的Docs都是SaaS的典型例子。其中Salesforce于1999年由当时27岁的Oracle高级副总裁,俄罗斯裔美国人Marc Benioff创办。软件即服务的理念由他首先提出,并运用于客户关系管理服务软件。目前已有约72500家公司采用了Salesforce的Saleforce CRM。

实现SaaS服务,服务供应商需提供如下功能:

1)随时随地访问。在任何时候和任何地点,只要接上网络,用户就能访问SaaS服务。

2)支持公开协议。通过支持公开协议如HTML,能够方便用户使用。

3)安全保障。SaaS供应商需要提供一定的安全机制,不仅要使存储在云端的用户数据处于安全的境地,而且也要在客户端实施一定的安全机制来保护用户。

4)多租户机制。多租户机制不仅能更经济地支撑庞大的用户规模,而且能提供一定的可定制性以满足用户的特殊需求。

这种服务模式的优势是,由服务供应商维护和管理软件、提供软件运行的硬件设施,用户付费使用软件,享有软件使用权。用户只需拥有能够接入互联网的终端,即可随时随地地使用软件。在这种模式下,用户不再像传统模式那样在硬件、软件和维护人员等方面花费大量资金,只需要支出一定的租赁服务费用,通过互联网就可以享受到相应的服务。

但是,SaaS服务模式也有一些缺点,比如:

1)安全性不高。企业,尤其是大型企业,并不热衷于使用SaaS的原因就是其安全问题。他们要保护机密数据,不希望这些机密数据由第三方来保管。

2)缺乏标准化。目前的SaaS解决方案缺乏标准化。这个行业刚刚起步,没有明确的解决办法,不同服务提供商通常拥有不同的解决方案。

2.示例

为了更好地体验SaaS,我们可以在线体验微软Office的在线应用OneDrive。用户只需要一个浏览器,就可以随时随地在任何设备上存储和共享照片、视频、文档及更多内容。例如,可以在线编辑Office Word文档,并存储在OneDrive上,这样就可以随时通过一个浏览器

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载