云计算的实现采用分层架构,其中的关键技术包括虚拟化技术、分布式数据存储技术、资源管理技术、云计算平台管理技术和多租户隔离技术等。
虚拟化是云计算的核心技术之一,它为云计算服务提供基础架构层面的支撑,是ICT(信息通信技术)服务快速走向云计算的最主要驱动力。虚拟化作为云计算的重要组成部分,最大的好处是能增强系统的弹性和灵活性,降低成本、改进服务、提高资源利用率。通过虚拟化技术可实现软件应用与底层硬件的隔离。虚拟化技术根据对象的不同可分成存储虚拟化、计算虚拟化、网络虚拟化等,计算虚拟化又分为系统级虚拟化、应用级虚拟化和桌面虚拟化。从表现形式上看,虚拟化又分两种应用模式,它包括将单个资源划分成多个虚拟资源的裂分模式,也包括将多个资源整合成一个虚拟资源的聚合模式。这两种模式的核心都是统一管理、动态分配资源、提高资源利用率。
通过将数据存储在不同的设备中,能实现动态负载均衡、故障节点自动接管,具有高可靠性、高可用性和高可扩展性。因为在多节点的并发执行环境中,各个节点的状态需要同步,并且在单个节点出现故障时,系统需要有效的机制来保证其他节点不受影响。这种模式不仅摆脱了硬件设备的限制,同时扩展性更好,能够快速响应用户需求的变化。它利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息。
云计算需要将分布式的海量资源进行池化,然后提供给用户使用,因此,云计算的关键技术还包括资源管理技术。资源管理技术主要包括两个方面:一是对海量资源的统一管理,二是对资源的弹性管理。云计算环境下,主要通过基于概率预测的负载均衡技术、基于遗传算法的资源调度技术、双向竞拍资源竞价技术等,来有效地对动态、异构、分布以及自治等的云计算资源进行管理。
云计算资源规模庞大,服务器数量众多并分布在不同的地点,同时运行着大量应用,如何有效地管理这些服务器,保证整个系统提供不间断的服务,是一项巨大的挑战。云计算系统的平台管理技术能够使大量的服务器协同工作,方便地进行业务部署和开通,快速发现和恢复系统故障,通过自动化、智能化的手段实现大规模系统的可靠运营。
与传统的软件运行与维护模式相比,云计算要求硬件资源与软件资源能够更好地被共享,具有良好的伸缩性,任何一个企业用户都能够按照自己的需求对SaaS软件进行客户化配置而不影响其他用户的使用。目前多租户隔离技术是云计算环境中能够满足上述需求的关键技术。
目前人们普遍认为,采用多租户技术的SaaS应该具有以下两个基本特征。
1)SaaS应用是基于Web的,能够服务于大量的租户,并且可以非常容易地进行伸缩。
2)要求SaaS平台提供附加的业务逻辑,使得租户能够对SaaS平台本身进行扩展,从而满足更大型企业的需求。
多租户技术面临的技术难题包括数据隔离、客户化配置、架构扩展与性能定制。
数据隔离是指多个租户在使用一个系统的时候,租户的业务数据是相互隔离存储的,不同租户的业务数据不会相互干扰。对多租户的数据管理有三种方式。
1)给每个租户创建单独的数据库。
2)多个租户的数据存入同一个数据库,使用不同的Schema来区分。
3)多个租户不仅存入同一个数据库,并且使用同一个Schema,也就是说将数据保存在一个表中,然后通过租户的识别码来区分。
客户化配置是指SaaS应用支持不同客户对SaaS应用的配置进行定制。架构扩展是指多个租户服务能够提供灵活的、具备高可伸缩性的基础框架,从而保证在不同负载下多个租户平台的性能。性能定制是指对于一个SaaS应用来说,不同用户对性能的要求可能是不同的,怎样为不同用户在这一套共享资源上灵活地配置性能是多租户技术中的一项关键技术。