3.4信息保密
信息保密与信息安全有所不同,信息安全是指信息不会被攻击、篡改,而信息保密是指信息的内容不应该被未经过授权的人得到。云计算服务商认为,对于云计算、云环境的信息保密问题,用户是可以放心的。因为,数据在云的大规模分布式存储机制中,完整的数据实体通常是被打散成一些“块”或者“碎片”存储在不同的服务器上的,每个块甚至包含来自不同数据实体的内容。因此,一个块可能是一个很大的逻辑文件的一部分,也可能包含多个很小的逻辑文件。如果一个非法用户想要窥探云中的数据,他必须获得大量的存储服务器的访问授权,而这个工作是非常困难的。进一步地说,用户还可以将数据以分块切割,然后以冗余备份的方式分别存储在多个不同的云储存服务上。即便如此,上述方法只是增加了非法用户访问信息的难度,而没有根本解决问题。非法用户可以通过暴力破解所有的存储服务器来收集信息,他甚至会破解云存储系统的数据分发逻辑,从而精准地找到每一个块。同时,多个文件可能共同存储在一个大块里,这增加了数据泄漏的风险。解决这些问题的根本做法是从逻辑上,甚至从物理上将多个用户的数据隔离。
信息保密还需要考虑不同国家相关法律、法规之间的差异。目前,如果同一个云的多台服务器放置在不同国家,它们面对的IT管制政策会有所不同。比如,某些国家要求经过法律授权的机构有权查看存放在数据中心里的数据,而另外一些国家会严格保证用户的数据隐私。由于存在这种区别,用户在使用云服务时,会提出对于数据保密的个性化要求,比如,要求数据一定要保存在严格保证隐私的国家的服务器里,或者用户会要求将涉及国家安全、企业利益的敏感信息,必须存放在某个国家、某个网段里,并拥有附加的保密服务。
多家云计算厂商已经关注到了信息保密的问题。IBM公司表示会制定更多的相关管理流程与技术标准来保证客户的数据不被泄霹。Google公司也正在研究如何处理用户对于数据存放位置的个性化需求。
3.5高性能
通过对大量服务器的整合和调度,一个云计算环境能够为用户提供远远超过传统计算环境的计算、存储和通信性能。但是,云环境所承担的计算、存储和通信方面的负载也远远大于传统的计算环境。不同的云环境所采用的技术可能完全不同,本节将着重分析当前云环境中最流行的技术的性能,包括服务器虚拟化技术、大规模数据处理技术和分布式存储技术。
服务器虚拟化是云计算基础设施层的重要技术,它的性能会影响整个云中几乎每一个节点的性能,因此虚拟化的性能就成了云计算性能的关键部分。根据多家机构的测试,在目前主流的半虚拟化系统中,Xen和V Mware ESXd的虚拟机管理系统只会带来少量的额外CPU开销;而内存的性能开销问题则较为严重,因为内存作为一个物理设备机的共享资源,其操作逻辑相对简单,多个虚拟机访问物理设备的同一块内存时,很容易出现访问冲突,一旦出现冲突,虚拟机管理系统就要接管虚拟机与物理设备内存的I/O操作,并负责内存资源的调度,这个过程叫做陷入。陷入后的内存操作性能远低于虚拟机对物理机内存直接操作的性能。在某些情况下,半虚拟化的虚拟机监视器会产生较大的内存开销。因此,对于现在的虚拟化技术来说,原有的CPU密集型的应用能够比较好地迁移到虚拟化平台,而原有的内存或I/O密集型的应用,例如数据库,就会遇到比较大的性能问题。
作为云计算大规模数据处理的事实标准框架,Map Reduce也存在性能问题:(1)适用性导致的性能问题。由于Google公司设计的MapReduce主要针对Google搜索引擎的索引、搜索、排序等服务,并不是从完全通用的出发点考虑的。因此Map Reduce在使用中存在着适用性的问题,尤其是在传统的数据管理及数据处理的场景中,Map Reduce缺乏数据库提供的很多核心功能,如索引、事务、视图等,也因此无法与很多现有的工具和系统进行衔接。(2)Map Reduce的原语设计也会导致性能问题。从Map Reduce算法的流程来看,Reduce操作需要等大部分Map操作完成才能够继续,如果Map操作耗费非常长的时间,那么Reduce操作会一直等待。在某些情况下,采用Map Reduce比集中的数据处理并不会快多少,出现这种情况的原因可能是计算的分布不均匀,或者某些Map节点的计算能力远远低于其他Map节点。(3)由于Map Reduce运行在分布式系统上,系统中的节点通过网络进行连接,因此在Map Reduce运行过程中需要大量的网络消息通信。比如,一个Map Reduce计算环境中有M个Map节点和N个Reduce节点,那么可能的通信链路就有M*N条,这些链路上的数据交换会给网络带来大量的负载。目前大部分数据中心的网络架构还是基于共享带宽、中心交换和路由的,而不是理想的点对点连接方式。因此,较高的负载会带来额外的通信开销,甚至影响到其他节点之间通信的性能和可用性。以上这些问题,都是采用MapReduce框架,或者实现MapReduce技术的系统需要考虑的技术挑战。(4)分布式系统常用的分布式存储在云计算环境中面临着更严重的性能问题。相对于原有的本地存储、集中存储或者网络存储,云计算分布式大规模存储面对的是一个网络不可控的环境。对于典型的MapReduce加上分布式存储的云计算场景,每一个Map或者Reduce计算节点都需要从分布式存储中读取或者保存数据,由于计算网络与存储网络是分别搭建的,绝大多数情况下计算所需要的数据存取操作都不会发生在计算节点的本地,而是被分发到分布式存储网络的其他节点上。在最坏的情况下,一个计算节点及其对应的存储节点可能分别处在地球的两端,这会导致严重的性能问题。解决这个问题的方式之一是对数据安全性、可用性和数据同步要求不高和数据量比较小的应用采用本地文件系统,对规模比较大的应用采用可以感知位置甚至上层应用的网络存储系统,这样就可以减少上述性能问题的发生。
3.6集成与标准化
越来越多的企业在构建自己的云计算平台,也有越来越多的企业和个人在使用云计算平台。从云计算平台提供者的角度来说,大部分云计算的平台是只能提供一类或者几类功能的,比如提供开发测试功能、海量计算功能,或者分析优化功能等。虽然Google、Amazon等公司试图提供一个大而全的云计算平台,但是他们的云计算平台提供的功能更多的是满足规模用户的需求,而不能完全满足用户的个性化需求。从云计算用户的角度来说,由于不存在一个能完全满足用户所有要求的云计算平台,当用户使用云计算时,很有可能要同时使用多个云计算平台,而为了维护业务的连续性和一致性,用户需要维护多个云之间的数据同步、应用版本同步,或者使得应用在多个云之间能够互操作。应对这种需求,最理想的情况是多个云的操作方式和操作接口都是统一的,或者说这些云是同构的,那么用户就可以通过统一的操作方式来访问。但在大部分情况下,多个厂商提供的云是异构的,在这种情况下,就需要通过一种方法来将多个云抽象成一个,提供统一的操作方式和操作接口,以此来降低使用的复杂性。根据业界多年来的经验,这个工作只能通过标准化来完成。
云计算为客户创造价值不仅仅局限于公有云服务,比如通常要求客户将自己的核心业务迁移到公有云中是不可行的,原因是泄露商业机密的风险变大了,其中成本和迁移的不确定性也会在一定程度上增加业务风险。因此,很多有实力的公司一方面将非关键业务迁移到公有云中降低运营成本,另外一方面在公司内部打造私有云来提高关键业务的服务质量和管理的自动化程度。很多时候公有云和私有云中的业务需要交换数据,这就需要一种集成服务将这些业务集成起来。如云集成服务需要VPN等技术将企业内外的网络链接起来。更重要的是,云集成服务需要访问云平台的API对不同云中的应用进行管理和数据访问。不难想象,如果没有云计算的标准化,那么云集成服务将会变得极为复杂,甚至无法通用,只能根据具体解决方案开发专用的云集成服务。这无疑会大大增加客户使用云计算的成本。
云计算技术目前还在起步阶段,关于云计算的标准化工作还在酝酿之中。按照常规的技术生命周期,一般一个技术要在出现一个或几个市场占有率较高的厂商之后,才会在这些厂商的带领下制订出相关的技术规范和标准。目前云计算还在发展初期,还没有开始进行正式的标准化工作,但是众多厂商已经在朝着这个方向努力了。
在云的基础设施领域,虚拟化的主要厂商之一VMware在发起一个叫做vCloud的接口规范,这个规范希望通过对基于虚拟化的数据中心(企业里的私有云)与其他“云”(其他企业的私有云、公共云)的接口进行标准化定义,来抢占云计算标准化的先机。VMware公司引领vCloud标准的优势在于它是虚拟化领域的先进厂商,拥有大量的合作伙伴以及一个包括了大量应用的虚拟器件仓库。从本书的讨论中我们已经了解,虚拟化虽然是云计算重要的组成部分,但并不是云计算的全部,VMware公司在制订标准时如果过多地从虚拟化角度及自身产品的角度来考虑问题,可能会导致应用云及平台云厂商在vCloud计划中找不到自己的位置。