云计算可以按需提供弹性资源,它的表现形式是一系列服务的集合。结合当前云计算的应用与研究,其体系架构可分为核心服务、服务管理、用户访问接口3层,如图所示:
核心服务层将硬件基础设施、软件运行环境、应用程序抽象成服务,这些服务具有可靠性强、可用性高、规模可伸缩等特点,满足多样化的应用需求。服务管理层为核心服务提供支持,进一步确保核心服务的可靠性、可用性与安全性[1]。用户访问接口层实现端到云的访问。
1.核心服务层
云计算核心服务通常可以分为3个子层:基础设施即服务层(Infrastructure as a Service,IaaS)、平台即服务层(Platform as a Service,PaaS)、软件即服务层(Software as a Service,SaaS)。表10-1对3层服务的特点进行了比较。
表10-1 云计算的3层服务
IaaS提供硬件基础设施部署服务,为用户按需提供实体或虚拟的计算、存储和网络等资源。在使用IaaS层服务的过程中,用户需要向IaaS层服务提供商提供基础设施的配置信息,运行于基础设施的程序代码以及相关的用户数据。由于数据中心是IaaS层的基础,因此数据中心的管理和优化问题近年来成为研究热点。另外,为了优化硬件资源的分配,IaaS层引入了虚拟化技术。借助于Xen、KVM、VMware等虚拟化工具,可以提供可靠性高、可定制性强、规模可扩展的IaaS层服务。
PaaS是云计算应用程序运行环境,提供应用程序部署与管理服务。通过PaaS层的软件工具和开发语言,应用程序开发者只需上传程序代码和数据即可使用服务,而不必关注底层的网络、存储、操作系统的管理问题。由于目前互联网应用平台(如Facebook、Google、淘宝等)的数据量日趋庞大,PaaS层应当充分考虑对海量数据的存储与处理能力,并利用有效的资源管理与调度策略提高处理效率。
SaaS是基于云计算基础平台所开发的应用程序。企业可以通过租用SaaS层服务解决企业信息化问题,如企业通过Gmail建立属于该企业的电子邮件服务。该服务托管于Google的数据中心,企业不必考虑服务器的管理、维护问题。对于普通用户来讲,SaaS层服务将桌面应用程序迁移到互联网,可实现应用程序的泛在访问。
2.服务管理层
服务管理层对核心服务层的可用性、可靠性和安全性提供保障。服务管理包括服务质量(Quality of Service,QoS)保证和安全管理等。云计算需要提供高可靠、高可用、低成本的个性化服务。然而,云计算平台规模庞大且结构复杂,很难完全满足用户的QoS需求。为此,云计算服务提供商需要和用户进行协商,并制定服务水平(Service Level Agreement,SLA)协议,使得双方对服务质量的需求达成一致。当服务提供商提供的服务未能达到SLA的要求时,用户将得到补偿。
3.用户访问接口层
用户访问接口实现了云计算服务的泛在访问,通常包括命令行、Web服务、Web门户等形式。命令行和Web服务的访问模式既可为终端设备提供应用程序开发接口,又便于多种服务的组合。Web门户是访问接口的另一种模式。通过Web门户,云计算将用户的桌面应用迁移到互联网,从而使用户随时随地通过浏览器就可以访问数据和程序,提高了工作效率。