1. 快速部署
为了提高云环境中虚拟机的部署速度,我们需要考虑并行部署和协同部署。
首先看一下并行部署,它是将虚拟机同时部署到多个物理机上, 理想情况下,并行部署可以成倍地减少部署所需时间,但这种方式容易受网络带宽和云部署服务器读写能力的影响。例如,在网络带宽有限的情况下,云部署服务器同时运行多个部署任务,这些任务就会争抢网络带宽,当网络带宽被占满后,部署速度就不能再被进一步提高。在这种情况下,协同部署技术可以用来进一步提高部署速度。
协同部署的思想是将虚拟机镜像在多个目标物理机之间的网络中传输,而不是仅仅在部署服务器和目标物理机之间传输,从而提高部署速度。协同部署技术能够大大提高系统部署的速度,由于物理机之间存在大量的共享带宽,所以该方案不会受到竞争网络带宽的影响。
2. 资源调度
云计算的海量规模为资源调度带来了新的挑战。资源调度需要考虑到资源的实时使用情况,这就要求对云计算环境的资源进行实时监控和管理。云计算环境中资源的种类多,规模大,对资源的实时监控和管理就变大十分困难。此外,一个云计算环境可能有成千上万德计算任务,这对调度算法的复杂性和有效性提出了挑战。
从调度的粒度来看,虚拟机内部应用的调度是云计算用户更加关心的。如何调度资源满足虚拟机内部应用的服务级别协定也是目前待解决的一个难题。
3. 多租户技术
与传统的软件运行和维护模式相比,云计算要求硬件资源和软件资源能够更好的被共享,具有良好的伸缩性,任何一个企业用户都能够按照自己的需求对SaaS软件进行客户化配置而不影响其他用户的使用。多租户技术就是目前云计算环境中能够满足上述需求的关键技术。
目前普遍认为,采用多租户技术的SaaS应该具有一下两项基本特征:第一点是SaaS应用是基于Web的,能够服务于大量的租户并且可以非常容易地伸缩;第二点要求SaaS平台提供附加的业务逻辑使得租户能够对SaaS平台本身进行扩展,从而满足更大型企业的需求。而多租户技术面临的技术难题包括数据隔离,客户化配置,架构扩展和性能定制。
数据隔离是指多个租户在使用一个系统时,租户的业务数据是相互隔离存储的,不同租户的业务数据不会相互干扰。对多租户的数据管理有三种方式:给每个租户创建单独的数据库;多个租户的数据存入同一个数据库,使用不同的Schema来区分;多个租户不仅存入同一个数据库,并且使用同一个Schema,也就是说将数据保存在一个表通过租户的识别码来区分。
客户化配置是指SaaS应用能够支持不同客户对SaaS应用的配置进行定制。
架构扩展是指多个租户服务能够提供灵活的,具备高可伸缩性的基础框架,从而保证在不同负载下多个租户平台的性能。
性能定制是指对于一个SaaS应用来说,不同的客户对性能的要求可能是不同的,如何为不同客户在这一套共享资源上灵活地配置性能是多租户技术中的难点。
4. 海量数据处理
最流行的海量数据处理的编程模型是由Google公司设计的MapReduce编程模型。MapReduce编程模型将一个任务分成很多细粒度的子任务,这些子任务能够在空闲的处理节点之间调度,使得处理速度越快的节点处理越多的任务,从而避免处理数度慢的节点延长整个任务的完成时间。
5. 大规模消息通信
云计算的一个核心理念就是资源和软件功能都是以服务的形式进行发布的,不同服务之间经常需要通过消息通信进行协助。由于同步消息通信的低效率,我们只考虑异步通信。如Java Message Service是J2EE平台上的一个消息通信标准,J2EE应用程序可以通过JMS来创建,发送,接收,阅读消息。
异步消息通信已经成为面向服务架构中组件解耦合及业务集成的重要技术。
6. 大规模分布式存储
分布式存储的目标是利用多台服务器的存储资源来满足单台服务器所不能满足的存储需求。分布式存储要求存储资源能够被抽象表示和统一管理,并且能够保证数据读写操作的安全性,可靠性,性能等各方面要求。
下面是几个典型的分布式文件系统:
Frangipani是一个可伸缩性很好的高兴能分布式文件系统,采用两层的服务体系架构:底层是一个分布式存储服务,该服务能够自动管理可伸缩,高可用的虚拟磁盘;上层运行着Frangipani分布式文件系统。
JetFile是一个基于P2P的主播技术,支持在Internet这样的异构环境中分享文件的分布式文件系统。
Ceph是一个高性能并且可靠地分布式文件系统,它通过把数据和对数据的管理在最大程度上分开来获取极佳的I/O性能。
Google File System(GFS)是Google公司设计的可伸缩的分布式文件系统。GFS能够很好的支持大规模海量数据处理应用程序。
在云计算环境中,数据的存储和操作都是以服务的形式提供的;数据的类型多种多样;必须满足数据操作对性能,可靠性,安全性和简单性的要求。
在云计算环境下的大规模分布式存储方向,BigTable是Google公司设计的用来存储海量结构化数据的分布式存储系统;Dynamo是Amazon公司设计的一种基于键值对的分布式存储系统,它能提供非常高的可用性;Amazon公司的Simple Storage Service(S3)是一个支持大规模存储多媒体这样的二进制文件的云计算存储服务;Amazon公司的SimpleDB是建立在S3和Amazon EC2之上的用来存储结构化数据的云计算服务。
7. 许可证管理与计费
目前比较成熟的云环境计费模型是Amazon公司提供的Elastic Compute Cloud(EC2)和Simple Storage Service(S3)的按量计费模型,用户按占用的虚拟机单元,IP地址,带宽和存储空间付费。