为了提高云环境中虚拟机的部署速度,我们需要考虑并行部署和协同部署。首先看一下并行部署,它是将虚拟机同时部署到多个物理机上, 理想情况下,并行部署可以成倍地减少部署所需时间,但这种方式容易受网络带宽和云部署服务器读写能力的影响。例如,在网络带宽有限的情况下,云部署服务器同时运行多个部署任务,这些任务就会争抢网络带宽,当网络带宽被占满后,部署速度就不能再被进一步提高。在这种情况下,协同部署技术可以用来进一步提高部署速度。以下介绍云计算。
协同部署的思想是将虚拟机镜像在多个目标物理机之间的网络中传输,而不是仅仅在部署服务器和目标物理机之间传输,从而提高部署速度。协同部署技术能够大大提高系统部署的速度,由于物理机之间存在大量的共享带宽,所以该方案不会受到竞争网络带宽的影响。
1.资源调度
云计算的海量规模为资源调度带来了新的挑战。资源调度需要考虑到资源的实时使用情况,这就要求对云计算环境的资源进行实时监控和管理。云计算环境中资源的种类多,规模大,对资源的实时监控和管理就变大十分困难。此外,一个云计算环境可能有成千上万德计算任务,这对调度算法的复杂性和有效性提出了挑战。从调度的粒度来看,虚拟机内部应用的调度是云计算用户更加关心的。如何调度资源满足虚拟机内部应用的服务级别协定也是目前待解决的一个难题。
2.多租户技术
与传统的软件运行和维护模式相比,云计算要求硬件资源和软件资源能够更好的被共享,具有良好的伸缩性,任何一个企业用户都能够按照自己的需求对SaaS软件进行客户化配置而不影响其他用户的使用。多租户技术就是目前云计算环境中能够满足上述需求的关键技术。
目前普遍认为,采用多租户技术的SaaS应该具有一下两项基本特征:第一点是SaaS应用是基于Web的,能够服务于大量的租户并且可以非常容易地伸缩;第二点要求SaaS平台提供附加的业务逻辑使得租户能够对SaaS平台本身进行扩展,从而满足更大型企业的需求。而多租户技术面临的技术难题包括数据隔离,客户化配置,架构扩展和性能定制。
数据隔离是指多个租户在使用一个系统时,租户的业务数据是相互隔离存储的,不同租户的业务数据不会相互干扰。对多租户的数据管理有三种方式:给每个租户创建单独的数据库;多个租户的数据存入同一个数据库,使用不同的Schema来区分;多个租户不仅存入同一个数据库,并且使用同一个Schema,也就是说将数据保存在一个表通过租户的识别码来区分。
客户化配置是指SaaS应用能够支持不同客户对SaaS应用的配置进行定制。架构扩展是指多个租户服务能够提供灵活的,具备高可伸缩性的基础框架,从而保证在不同负载下多个租户平台的性能。性能定制是指对于一个SaaS应用来说,不同的客户对性能的要求可能是不同的,如何为不同客户在这一套共享资源上灵活地配置性能是多租户技术中的难点。
3.海量数据处理
最流行的海量数据处理的编程模型是由Google公司设计的MapReduce编程模型。MapReduce编程模型将一个任务分成很多细粒度的子任务,这些子任务能够在空闲的处理节点之间调度,使得处理速度越快的节点处理越多的任务,从而避免处理数度慢的节点延长整个任务的完成时间。以上介绍云计算。
【编辑推荐】