第2章 云计算参考架构、标准及平台实践

2.1 云计算参考架构

2.1.1 NIST云计算参考架构

美国国家标准与技术研究院(National Instituteof Standardsand Technology,NIST)的云计算定义已经被业界广泛接受,该定义包括了云计算的三种基本服务模式(SaaS、PaaS、IaaS)、四种部署模式(公有云、私有云、社区云和混合云)以及五个基本特征(按需自助服务、便捷的网络访问、资源池化、弹性灵活、服务可计量)。作为云计算定义的延伸,NIST在2011年发布了云计算参考架构,列出了云计算架构的核心元素。

1.云计算参与者

NIST的云计算参考架构定义了云计算中的五个主要参与者:云消费者(Cloud Consumer)、云服务提供商(Cloud Provider)、云审计者(Cloud Auditor)、云代理(Cloud Broker)、云运营商(Cloud Carrier),如图2.1所示。

图2.1 NIST的云计算参考架构

NIST云计算参考架构中对各参与者的定义如表2.1所示。

表2.1 NIST云计算参考架构中对各参与者的定义

由于本书侧重于从云服务提供商的角度探讨云计算平台的架构及实践,因此下面重点介绍云服务提供商角度的架构模型,包含服务编排、云服务管理、安全及隐私四个方面。

2.云服务提供商角度的架构模型

1)服务编排

服务编排指的是为了支撑云服务提供商对计算资源的安排、协同和管理等行为,对系统组件进行的组合,使其能够为云消费者提供服务。图2.2描述了支撑云服务的这种组合的通用堆栈图。

图2.2 云服务提供商-服务编排

如图2.2所示,服务编排使用了一个三层的模型,将系统组件分为三类,云服务提供商需要将这些组件组合以交付它们的服务。

顶层为服务层(Service Layer),云服务提供商在此定义云计算的访问接口,并允许云消费者通过接口访问云计算资源。在服务层中,SaaS应用可以构建在PaaS组件之上,PaaS组件也可以构建在IaaS组件之上,但这种依赖结构并不是必要的。纵向堆栈结构表示了这种依赖管理,每个服务模型的垂直方向代表每个服务模型都可以直接独立地存在于资源抽象和控制层之上。例如,一个SaaS应用程序可以在IaaS提供的虚拟机中实现和托管,也可以抛开IaaS直接构建在云基础设施之上。

中间层是资源抽象与控制层(Resource Abstraction and Control Layer)。这一层包含各种系统组件,这些组件经过软件抽象后,为云服务提供商提供对物理计算资源的访问,并允许云服务提供商管理物理计算资源。这一层的“资源抽象”通常包括如虚拟机管理程序(Hypervisor)、虚拟机、虚拟数据存储和其他对计算资源进行抽象的软件元素。对资源的抽象需要保证底层物理资源高效、安全和可靠地使用。这一层普遍使用了虚拟机技术,但同时也不排除其他能够提供必要的软件抽象的方法。这一层的“控制”主要指负责资源分配、访问控制、使用监控等的软件组件。这些组件将大量的底层的物理资源与它们的软件抽象联系在一起,从而实现资源池、动态分配和可度量的服务等功能。目前有各种开源或商业云计算软件可以作为这一层的中间件。

框架的最底层是物理资源层(Physica lResource Layer)。这一层主要包含了硬件资源(Hardware),如计算机(CPU、内存),网络(路由器、防火墙、交换机、网络链路等),存储组件(硬盘)以及其他的物理基础设施(Facility)。它还包括一些辅助资源,如HVAC(散热通风空调)、电力、通信和其他方面的物理设备。

按照系统架构的惯例,纵向的位置,即分层的结构,在模型中代表依赖关系。上层组件的功能实现需要依赖与其相邻的底层的功能。在本书的架构中,资源抽象和控制层构建在下层的物理资源层之上,向上层暴露虚拟的云资源,为服务层提供支撑;服务层向云消费者提供云服务接口,它并不能直接访问物理层。

2)云服务管理

云服务管理包括所有面向云消费者提供的有关服务的服务管理和操作功能。如图2.3所示,云服务管理可以从业务支撑、分配及配置、可移植性和互操作性三个角度来描述。

图2.3 云服务管理

(1)业务支撑。

业务支撑应包含一套与业务相关的服务,能够处理客户的业务并支持业务流程。它包括面向客户的业务操作的组件,各组件及其功能如表2.2所示。

表2.2 业务支撑相关的云服务管理组件

(2)分配及配置。

分配及配置的相关组件及功能如表2.3所示。

表2.3 分配及配置的相关组件及功能

(3)可移植性和互操作性。

云计算能够节约基础设施的开销,并提供快速的软件升级,这使云计算快速地发展。很多大型公司及组织都很希望能够将其系统向云计算迁移。然而,云计算如何解决用户对安全、可移植性和互操作性方面的担心,很大程度上决定了云计算能否被用户采纳。

对于可移植性,预期用户非常关心他们是否能够在不同的云环境之间以低开销和最小的业务中断时间迁移他们的数据或应用。而从互操作性的角度,用户更关心的是不同的云之间的通信能力。

云服务提供商应该提供能够支持数据可移植性、服务互操作性和系统可移植性的机制。数据可移植性是指云消费者与云之间复制数据对象以及使用磁盘进行大块数据传输的能力。服务互操作性是指云消费者在多个云服务提供商之间以统一管理的接口使用它们的数据和服务的能力。系统可移植性允许从一个提供商向另一个提供商迁移完全停止的虚拟机实例或者虚拟机镜像,以及包含其内容(状态)在内的应用程序和服务。

3)安全

云计算参考模型各个层面在安全方面都存在交集,从物理层面的安全到应用层面的安全都是参考模型需考虑的问题。因此,云计算架构中的安全问题不单单在云服务提供商的范畴,同样也包括云消费者和其他相关的参与者。基于云的系统仍需解决传统的安全需求,如认证、授权、可用性、保密、身份管理、完整性、审计、安全监控、故障响应及安全策略等。本书将站在云计算的角度讨论这些安全需求,以帮助分析和实现云计算系统的安全性。

例如,对物理资源层的保护需要“物理上的”安全策略,包括禁止未经认证的人员出入数据中心,访问其中的设施、资源及存储的信息。云服务提供商应该保证托管云服务的设施的安全性,以及对它的员工背景做适当的调查。对于迁移到云端的数据和应用程序来说,确保云计算能够满足安全性需求和保证遵守法规是很重要的。因此,在云计算的安全模型中,应该有一个独立的云审计者来介入对云服务提供商遵从规章及安全策略情况的评估。

4)隐私

云服务提供商应保护其中的个人信息(PI)和个人可认证信息(PII),包括对这些信息安全、适当、一致地收集、处理、通信、使用和丢弃。

PII可以被单独地使用,也可以与其他的个人或识别信息联系到一起使用,这些信息可以与一个特定的信息链接,如出生的日期或地点等。通过PII,系统可以辨别和追踪身份,如名字、社保号码、生物识别记录等。尽管云计算为资源、软件和信息共享提供了一个灵活的解决方案,但它也对使用它的用户的隐私保护带来了新的挑战。

2.1.2 国标云计算参考架构

国家标准《信息技术云计算参考架构》为云计算提供者和开发者搭建了一个基本的技术实现参考模型,该国家标准等同采用国际标准ISO/IEC17789《信息技术云计算参考架构》(Cloud Computing Reference Architecture,CCRA)。

1.角色

角色是一组具有相同目标的云计算活动的集合。CCRA基本参考模型涵盖云服务客户、云服务提供者和云服务协作者三类角色。不同角色之间通过统一规范接口进行交互。表2.4展示了云计算角色及其包含的子角色和活动。

表2.4 CCRA角色、子角色和活动

2.共同关注点

CCRA还有一个很重要的概念就是共同关注点。共同关注点指的是需要在不同角色之间协调,且在云计算系统中一致实现的行为或能力。共同关注点包含可审计性、可用性、治理、互操作性、维护和版本控制、性能、可移植性、隐私、法规、弹性、可复原性、安全、服务水平和服务水平协议等。

3.功能架构

CCRA采用分层框架来描述云计算功能架构。CCRA的分层框架包括四层,以及一个跨越各层的跨层功能集合。这四层分别是用户层、访问层、服务层和资源层。跨越各层的功能称为跨层功能。CCRA的高层次功能架构如图2.4所示。

图2.4 CCRA的高层次功能架构

1)用户层

用户层是用户接口。通过该接口,云服务客户和云服务提供者及其云服务进行交互,执行与客户相关的管理活动,监控云服务。

2)访问层

访问层提供对服务层进行手动和自动访问的通用接口,将经过验证的请求传递给服务层组件。

访问层负责将云服务能力通过一种或多种访问机制展现出来,例如,通过浏览器访问一组Web页面,或在安全通信的基础上,通过编程的方式访问云服务。

访问层还提供云服务能力的安全访问功能。例如,通过用户证书来验证用户请求是否被授权访问以及负责加密处理以检查请求的完整性等。

访问层还负责对来自用户层(例如,提交给云服务提供者的服务请求)和流向用户层的(例如云服务的输出)流量实施QoS策略。

3)服务层

服务层包含对云服务提供者所提供服务的实现。服务层包含和控制实现服务所需的软件组件(但不包括底层的虚拟机管理程序、主机操作系统、设备驱动程序等),并安排通过访问层为用户提供云服务。

4)资源层

资源层驻留各类资源,包括数据中心通常使用的设备(例如服务器、网络交换机和路由器、存储设备等)和服务器上运行的非云特有的软件,以及其他设备,例如主机操作系统、虚拟机监控器、设备驱动程序、通用系统管理软件。

5)跨层功能

跨层功能包括一系列功能组件。这些功能组件与上述四层的组件进行交互以提供支撑能力。这些支撑能力包括但不限于:

(1)集成能力(连接不同组件以实现所需的功能);

(2)安全能力(认证、授权、审计、验证、加密);

(3)运营支撑系统能力(运行时管理、监控、供应和维护);

(4)业务支撑系统能力(产品分类、计费和财务管理);

(5)开发功能能力(包括服务和服务组件的创建、测试和生命周期管理)。