陈娜,张金娟,刘智琼
(中国电信股份有限公司广州研究院,广东 广州 510630)
云计算(Cloud Computing)是一种通过网络统一组织和灵活调用各种ICT信息资源,实现大规模计算的信息处理方式[1]。作为未来信息服务体系的核心,其全新的服务方式为企业用户和个人用户带来了革命性的ICT体验。
当前,政府、电信、教育、医疗、金融、石油石化和电力等行业都对云化的实施开展了大量研究,由于行业性质、企业规模和文化等存在各种差异,其云计算的策略和方法也有所不同。总的来说,其实施策略可以归结为2类:对内构建私有云,进行业务系统IT资源整合,提升内部IT资源的利用率和管理水平,降低业务的提供成本;对外搭建公有云,通过云计算构建新兴商业模式的基础资源平台,提供公用IT服务,提升传统经济的效率,并在应用层面推动云计算的落地。本文通过对业界主流的云计算架构进行深入研究,结合电信运营商业务支撑系统的现状,提出一种分层的云管理平台架构,同时对云平台的弹性服务进行了阐述。
结合当前云计算的应用与研究,其体系架构可分为核心服务、服务管理、用户访问接口3层,如图1所示。核心服务层将硬件基础设施、软件运行环境、应用程序抽象成服务,这些服务具有可靠性强、可用性高、规模可伸缩等特点,满足多样化的应用需求;服务管理层为核心服务提供支持,进一步确保核心服务的可靠性、可用性与安全性;用户访问接口层实现端到云的访问[2]。
图1 云计算体系架构
按照核心服务层提供的资源所在的层次,可以分为IaaS(基础设施即服务)、PaaS(平台即服务)和SaaS(软件即服务)等。IaaS以服务的形式,提供计算、存储和网络等基础设施资源,用户无需购买服务器、存储设备、网络设备,通过互联网租赁即可搭建自己的应用系统,帮助削减IT基础设施的建设成本和运维成本;PaaS以服务的形式,提供软件开发、测试、部署和运行环境以及能力开放接口或应用服务引擎,屏蔽软件开发底层复杂的操作,用户可以快速开发出基于云平台的高性能、高可扩展的服务;SaaS以服务的形式,提供各种在线软件,用户不必购买软件,只需按需租用软件[3]。将核心服务层划分为IaaS、PaaS和SaaS,这是典型的云计算架构设计方法。
电信运营商依托网络和数据中心的优势,公有云方面主要通过IaaS服务进入云计算市场;在其私有云的构建上,往往遵循上述典型云计算架构,将其核心服务层分为IaaS、PaaS和SaaS。在建设初期,建设的重点是IaaS和PaaS,其中IaaS的建设需要同时考虑搭建全新环境以及利用遗留IT资产进行改造的场景;PaaS则主要为适用于云的新应用系统提供支撑,以及提供将原有的应用系统迁移至云中的解决方案。在IaaS和PaaS建设初具规模后,可考虑引入SaaS服务,重点将企业多年来信息化建设积累的产品进行云化,以实现由应用到服务的彻底转型[4]。
在初期进行IaaS层构建时,可以同步考虑原有大型复杂应用系统的改造方案。由于这些系统大部分是“烟囱式”独立建设的,甚至部分系统是应急建设的,随着业务的发展和技术的进步,存在应用扩展性差、资源不能共享、开发部署周期长等诸多问题,因此首要工作是设计清晰的分层架构和应用解耦的准备。
采用业务与通用操作分层原则,把与业务无关的资源使用、管控操作这些功能,独立形成资源控制层,以提高系统鲁棒性和资源管控能力。目前的电信业务支撑系统会大量使用底层的内存、进程、消息队列、网络等服务,并且各个应用都有其独立的使用方法。在初期设计资源控制层时,可以先把上述内容纳入统一管理,对上层应用提供标准系统调用,形成平台级能力,允许经授权后的业务支撑系统和其他业务系统访问。
资源控制层的主要能力在未来的云计算环境下可以构成云操作系统(BOSS-OS),如图2所示。其主要目标是对云计算“基础设施”中的资源(计算、存储和网络等)进行统一管理,构建具备高度可扩展性并能够自由分割的ICT资源池;同时,向云计算服务层提供各种粒度的计算、存储等能力。
从一级功能视图看,资源控制层至少包括资源管控、资源使用和自管理三大部分。
(1)资源管控是BOSS-OS的核心,保证其稳定运行,主要完成资源分配、资源监控等管控工作。
(2)资源使用服务主要是基于底层平台资源向外提供服务(如内存服务、存储服务、进程服务、进程间通信服务、网络服务)以及原子能力,向外提供资源基础(原子)能力作为补充手段。另外,还包括数据层访问服务,向外提供统一的数据访问接口。
(3)系统自管理包括配置管理、通信管理、日志输出和系统相关界面管理等。
从二级功能视图看,资源控制层可以再进一步细分为南向接口、资源管控和资源池、北向接口。
(1)南向接口(资源获取)
南向接口面向操作系统层面。通过南向接口实现对系统环境的资源的访问和获取,系统环境的资源包括平台资源和应用资源。平台资源包括内存、存储和网络等;应用资源包括数据库、中间件和其他第三方软件等。南向接口是最底层的封装,向上屏蔽实现细节,屏蔽各种操作系统、数据库和中间件的差异性。
(2)资源管控和资源池
各种资源以资源池形式存在,并由各种资源的基础服务来进行管理和加工;资源管控负责负载均衡、路由转发以及对基础服务层的资源池进行监控。
(3)北向接口(资源提供/分配)
北向接口面向应用层面。通过北向接口向外部应用提供加工后的平台资源和应用资源,主要为服务型接口。
云管理平台的主要功能包含设备管理、资源管理、应用管理和运维管理,为传统IT到云的过渡提供完整的解决方案。资源管控层与云管理平台相结合,可以实现对底层资源池的共享及统一调度、软件自动部署、应用统一监控、系统弹性伸缩,满足企业私有云的业务和管控目标。云管理平台参考架构如图3所示。
云管理平台的流程步骤如下:
a:应用管理节点进行作业的任务切分和分发,如有空闲的资源普通节点,则转d。
b:应用管理节点向资源管理节点申请任务执行的相关资源。
c:资源管理节点根据申请的要求进行各节点的资源分配:
◆如果有相应的资源普通节点,则在分配的节点上部署应用任务的执行环境;
◆如果普通节点资源不够,则向设备管理申请资源(如主机),设备管理对资源进行相关的配置、部署和激活等。
d:在资源普通节点上已部署激活的应用,执行相关的应用任务。
图2 电信业务支撑系统的云化分层架构
图3 云管理平台参考架构
e:云管理平台监控应用管理、资源管理、设备管理的资源状态并提供弹性服务。
(1)设备管理
1)设备分配管理
◆裸机设备资源的注册。
◆裸机设备资源的分配:应用部署时,云管理平台需要能够根据用户设定的资源要求,自动分配所需的服务器资源进行应用的部署。资源申请信息包括但不限于:硬件规格、设备数量、操作系统类型。
◆资源的安装部署:管理平台分配资源之后进行自动远程安装部署,包括但不限于:安装操作系统、配置IP地址等网络属性以及相应的配置、安装、部署、激活。
2)设备监控
◆能够对系统中运行的所有服务器的健康状况和负载状况进行监控,并可在界面上查看到相关的信息。
◆监控信息包括但不限于:CPU状态、内存使用状态、硬盘空间、网卡状态。
监控的方式包括主动心跳检测和接收上报;
需要对性能信息、告警信息进行采集和实时展示;
可以设置性能门限,资源使用超越设置的门限可自动生成告警上报;
提供告警转E-mail、告警转手机短消息功能,使相关人员随时随地了解告警信息。
◆资源回收:对空闲的资源普通节点进行回收处理。
◆资源的动态伸缩:根据资源状态,动态调度资源的使用。
(2)资源管理
资源管理在设备资源之上(实际建设可以考虑将设备管理合并到资源管理),云管理平台需要对其进行管理。
1)资源普通节点需要向云管理平台上报资源使用情况。
2)负载均衡:云管理平台根据应用管理分派的任务,找到空闲的资源普通节点,执行相应的应用任务。如没有空闲的资源普通节点,则需要向设备管理申请投入新的资源。
3)资源节点心跳检测:定期主动检测资源节点的运行状态。
4)资源节点运行监控:对资源节点的运行情况进行统计、分析和展示报告。
5)资源节点动态伸缩:根据设定的策略对资源节点进行激活和去激活。
6)资源普通节点上的应用加载和卸载。
(3)应用管理
1)应用软件拓扑展示
云管理平台需要支持对部署运行的应用提供应用拓扑管理能力,包括但不限于:应用的部署形态(单节点/双机/集群)、应用分别部署于哪些设备之上。
2)应用程序部署
应用部署是云管理平台把用户设计的应用拓扑结构实例化的过程。在这个过程中,统一云管理系统根据用户的软件配置,将软件包构建在资源(物理机、虚拟机、计算资源)上,使应用静态的拓扑结构实例化,成为动态运行的并提供符合设计能力的功能实体。
3)应用升级
云管理平台根据用户提供的升级包、升级配置和脚本,生成节点升级数据,并下发给刚刚建立的节点的客户端代理;客户端代理执行脚本完成升级包安装、配置,并启动升级后的软件包。
云管理平台通知智能路由部件某个业务开始升级,并注册升级后的业务路由地址。智能路由部件不再向业务原有的路由地址转发新的业务请求,而是向新注册的路由地址转发。当业务原有路由地址关联的业务会话结束后,原有路由地址将从路由记录中删除,智能路由通知云管理平台已删除的路由地址,云管理平台对此节点执行节点卸载,回收资源。
4)应用作业管理
对作业进行任务分解,并向资源管控主节点申请资源来执行相应的任务。
(4)运维管理
1)用户管理
对于云管理平台的运维用户的权限进行分权分域的管理控制,通过认证、授权、鉴权和加密等方式保证云管理平台用户帐号的安全性和云管理平台/被管设备运行的安全性。
用户管理提供用户的增删改查功能,可以设置和修改用户所属的角色,同时还可以设置和修改用户的访问控制策略。访问控制策略包括登录时间控制以及登录IP地址控制。
用户的安全策略管理包括用户密码策略、帐户策略和访问控制策略(任务列表、黑白名单等)。通过这些策略,保证用户帐户、密码和云管理平台运行的安全性。
为了避免非法用户攻击系统和监控在线用户的操作,云管理平台提供用户会话监控功能,可以监控当前登录用户以及登录时间、登录IP等信息。管理员可以将某用户强制退出云管理平台。
2)日志管理
为云管理平台管理的应用程序提供日志服务,统一收集应用程序产生的日志,集中存储并提供日志获取、审计分析和前台展示等服务。
3)告警管理
提供告警服务,应用程序和云管理系统在系统发生故障,不能自动修改需要人工干预时,通过告警服务上报告警。
◆业务定义的告警:由业务通过云管理平台提供的告警服务上报的告警,告警的具体含义由业务自行定义。
◆云平台自身产生的告警,包括但不限于:
环境类:温度、湿度、电源、风扇。
资源类:
CPU、内存占用率持续超过设定的阈值,并且无法通过自动伸缩等措施来解决;
VM资源不足,需要人工增加或替换已损坏的单板;
时钟同步告警:云平台中各个物理机器上当前时间不一致,并且自动调整失败。
通信类:
VM或PM间通讯中断,并且在指定的时间内没有恢复;
端口告警,监控的端口持续收到超过阈值的连接请求。
4)支持批量运维操作
支持一次性对多个节点执行同一操作。
例如:用户希望删除一个文件,则选择需要删除的节点,然后一次性删除所有这些节点上的该文件。
用户需要做磁盘整理的操作,则输入该命令,然后选中需要操作的节点,系统自动在所有的节点上执行这些命令,返回的结果输出在文件中。
5)应用参数配置
提供各种系统和应用软件的统一参数配置功能,实现配置一次就更新所有相关或者选中节点的配置。
云计算的独特性在于它是建立在可自我维护和管理的物理/虚拟资源层上,可以按不同的需求动态改变需要访问的资源的种类和数量,包括增加或减少资源的使用。本文提出的云管理平台能够根据系统的负载进行动态伸缩,合理利用资源。电信业务支撑系统应用负载可以分为联机交易处理、计算密集型等,下面以计算密集型的任务如何进行管理和分配为例说明云管理平台如何实现弹性服务。
为了更合理的利用资源,将优势资源应用于关键应用,云管理平台在进行资源分配时需要有灵活的分配策略,形成相应的任务分配机制。计算任务分配的主要思想如下:
(1)外部计算请求到达应用管理节点(A-Master)。
(2)应用管理节点根据任务信息和执行规则,将任务分配给应用执行节点(A-Slave)。
(3)如没有足够的应用执行节点来完成任务,则向资源管理节点(B-Master)请求资源。
(4)资源管理节点(B-Master)部署新的应用执行节点(A-Slave)到资源普通节点(B-Slave)来完成新的任务。
(5)任务分配后,外部计算请求直接和分配的应用执行节点(A-Slave)交互来完成任务。
任务分配机制按照一定的云计算资源调度策略来执行,调度策略是云计算技术的一个重要组成部分,它主要研究如何为用户提交的任务分配计算节点、如何对计算节点进行动态扩展,以及在满足用户服务质量要求并且执行时间最短的前提下负载均衡程度最高,它的效率直接影响整个云计算环境的工作性能。文献[5]和[6]对如何优化现有策略分配算法进行了研究,为虚拟机提供合适的物理资源。后续研究可以参考其优化算法并纳入资源调度的流程。
应用动态伸缩是云计算的一大特色,云管理平台能根据系统的负载进行动态伸缩,合理利用资源。业务应用的动态伸缩主要有以下2个典型应用场景:
(1)业务进程动态增加(N+1)
步骤说明如下:
1)资源管控模块根据应用服务器负载情况(CPU、内存)判断需要增加1台业务服务器。
2)资源管控模块在新服务器上自动部署全部业务应用并启动。
3)资源管理模块修改业务能力状态表,增加服务器。
4)资源管理器根据负载将业务请求分派到新增加的业务服务器上。
(2)业务进程动态减少(N-1)
步骤说明如下:
1)资源管控模块根据应用服务器负载情况(CPU、内存)判断减少1台业务服务器。
2)资源管理器根据策略选择需要停止业务的服务器。
3)资源管理模块修改业务能力状态表,修改服务器状态。
4)资源管理模块通知应用服务器,告知处理完当前业务后退出。
5)应用服务器完成当前业务处理。
6)应用服务器停止业务进程,终止业务能力的提供。
大型企业构建私有云是一个漫长而艰苦的过程。本文从目前电信业务支撑系统的现状出发,提出了一种分层设计方案,深入细致地介绍了企业私有云管理平台的功能架构,为企业应用改造以及向云计算环境的迁移提供了一条可行的路径。后续将会在基于优化策略的应用调度上进一步研究,以满足业务处理的性能需求和提高资源的利用率。
[1] David S Linthicum. 云计算与SOA[M]. 马国耀,译. 北京: 人民邮电出版社, 2011.
[2] 罗军舟,金嘉晖,宋爱波,等. 云计算:体系架构与关键技术[J]. 通信学报, 2011,32(7): 3-21.
[3] 李卫,李济汉,张云勇,等. 电信运营商云计算体系架构思考[J]. 电信科学, 2013,29(3): 123-127.
[4] 伍治平,王磊,毛淑华. 面向传统大型企业集团的私有云解决方案研究与设计[J]. 冶金自动化, 2012,36(5): 1-5.
[5] 田宏伟. 云计算环境下资源分配策略的研究[D]. 济南: 山东师范大学, 2012.
[6] 郭怡. 基于云计算平台的电信业务支撑系统中资源提供策略的研究[D]. 南京: 南京邮电大学, 2012.★