LI Xingguo,LIN Xia,and REN Yimei.A design of cloud computing resource lifecycle management framework based on micro-services[J].Journal of Shenzhen University Science and Engineering,2020,37(Suppl.1):207-211.[doi:10.3724/SP.J.1249.2020.99207]
1)四川大学信息化建设与管理办公室,成都 610065; 2)北京晓通宏志科技有限公司,成都 610065
1)Information Construction and Management Office, Sichuan University,Chengdu 610065,Sichuan Province, P.R.China2)Beijing Xiaotong Hongzhi Technology Co. Ltd, Chengdu 610065,Sichuan Province, P.R.China
DOI: 10.3724/SP.J.1249.2020.99207
备注
随着云计算的普及和完善,其资源的生命周期管理中各种功能模块存在着交互分散和数据不统一的情形,这造成了系统维护和升级困难以及数据各自为政等问题. 本设计对云计算资源生命周期各功能进行了分析. 采用了基于本体的语义理论对模块间异构数据进行整合,同时,采用微服务架构对各模块进行统一管控.
With the popularization and improvement of cloud computing, there are many problems in the life cycle management of cloud computing, such as the dispersion of interaction and the inconsistency of data, which lead to the difficulties of system maintenance and upgrade, and the problems of data independence. In this paper, we analyze the functions in the life cycle of cloud computing resources. The ontology based semantic theory is used to integrate heterogeneous data among modules. Micro-service architecture is used to control all modules.
引言
1 虚拟机的全生命周期管理
云计算资源包括计算资源、网络资源和存储资源,这些资源在使用者眼中具体表现为虚机. 很多云管平台对于虚机的生命周期仅局限于创建和销毁。但随着虚拟化运维内容的日渐丰富,急需在它的使用和维护中加入更多的功能,如对性能的监控、对性能和告警的管理、对访问账号的管理、对网络安全的配置甚至对虚拟机的备份等。虚拟化管理者传统的管理模式中,往往是在管理体系建设过程中逐个建设各种管理模块,逐步完善生命周期的管理闭环. 但这形成了各个组成部分之间独立运作的问题. 数据方面存在着概念不统一,结构不一致,功能方面存在着重复、分散的问题. 因此需要进行数据治理、功能整合. 云计算资源的生命周期管理模块如图1.
在整个生命周期管理中各个阶段都调用了虚拟机基础管理的模块来进行虚机的创建、扩容、缩容和销毁等基础管理,也用到了周边的辅助模块,它们为虚拟机的网络安全、数据安全和访问渠道提供了必要的协助功能.
2 云管平台异构环境的基本概念抽象
和简化
云平台所涉及的模块众多,供应商也不尽相同,因此会产生数据异构的情况. 数据异构有以下几个方面:
1)数据组织形式的异构,即数据资源表现形式,可分为全结构化数据(如表格)、半结构化数据(如JSON或者XML)和非结构化数据(如文本和图像音视频). 如果有的软件不具备此特点,则需要新建接口转换的模块.
2)数量单位异构,即同一概念的数据表述采用不同单位,致使数据间的分析存在不一致性.
3)语义的异构,即数据在概念含义层面存在歧义,同一个事物可能有多种表述,而同一种表述也可能代表不同的事物. 语义的异构是最常见最难以避免的,因为虚拟机生命周期管理的各个模块不完全是同一家供应商的产品,而即使是同一家的产品,由于研发团队不同,研发时期不同,差异依然存在.
以VMware产品为例,在数量单位方面,各模块对内存和磁盘大小数据既有用GB的也有用MB和KB. 另外VMware自身的体系中每个虚机的描述都是不尽相同的. vRA、 vROps和vCenter中表示虚机对象的名称都可能不一致,他们的UUID也不同. 虚机在vCenter中以独立概念存在,而在vRA中虚机是以部署的明细记录的方式出现,虚机、蓝图和部署等概念一起归属在资源类. 在vROps中可以指 “虚机”,也可以指“在虚机中安装的代理”.
虚机生命周期管理涉及到的基本概念主要有部署、虚机、CPU、内存、磁盘、网络、安全规则和备份等. 而我们建立平台的首要任务就是对这些基本概念进行统一的抽象和简化.
3 基于本体的数据抽象与整合
对数据内容的整合,建立在本体论基础上. 本体的核心是知识共享和重用,通过减少特定领域内概念或术语上的分歧,使不同的用户之间可以顺畅的沟通和交流并保持语义等效性,同时让不同的工具软件和应用系统之间实现互操作.
针对异构数据的整合目前已取得了一定的研究成果. 陈星宇等[1]提出如何提取管理对象的概念、分类及非分类关系,清晰地表征管理对象. 成欣等[2]提出一种基于本体的异构数据语义抽取方法. 制定了领域相关的语义转换与抽取规则,并基于此将异构数据间的关联关系映射为领域本体,实现了领域异构数据的统一管理. 虞为等[3]将本体论引入文献管理模式框架,分析了具体的处理流程和应用方案 为提供方便高效的文献管理服务提供了方法和思路. 借鉴前人经验,本研究采取的办法是:
1)制定语义转换及抽取规则,将不同来源的数据转化为统一概念的形式,并在此基础上针对表达相同涵义的数据内容进行合并、映射等处理,从而初步构建并形成领域本体.
2)对数据进行Mashup. 也就是指网络的应用聚合,其内涵是将多个外部数据源提供的网络信息资源的内容和功能融合到统一的网络环境中,为资源使用者提供满足个性化需求的面向服务应用系统. 从聚合的层面来看,主要分为数据层面的内容聚合和功能层面的服务聚合. 内容聚合是以虚机为主体对资源、网络、性能和告警等各种信息进行集中信息展示. 服务聚合则是将虚机的扩容、缩容、启停、快照和备份等功能集中管理.
利用各虚拟化产品厂商API提供的编程接口,构建如图2的逻辑结构.
对每个虚机基础管理功能,都会有一个代理,把相应代理的数据抽象为基于本体的统一概念表达. 代理从基础管理功能得到的数据后,不进行任何逻辑处理存储在本地缓存数据库中. 生命周期管理功能则根据代理中统一概念对象进行mashup数据整合进行个性化呈现,并且以统一概念方式下发命令给代理,由代理翻译成具体的指令下发到对应得管理功能.
代理起到的作用是在操作虚拟机及周边辅助功能模块和生命周期管理功能之间架起一个桥梁,让具体数据抽象为统一概念数据,让生命周期管理功能可以不改变业务逻辑的情况下实现以下类型的系统重构:① 接入新功能; ② 原有功能模块版本更新; ③ 相同功能模块替换为新的品牌; ④ 多个模块协同完成以往某个模块完成的任务.
以上系统需求需要引入一种新的系统架构,要求功能模块之间耦合度更低. 模块间不应该硬编码进行关联,在同类的多个服务节点可以进行均衡负载. 在某个服务节点出问题时应该将其隔离,不影响其他节点的运行. 因此传统的单体架构不能满足要求,需要引入微服务架构[4]以支持上述特性,基本结构如图3.
虚机基础管理功能包含虚机管理和周边辅助功能侧重于虚机一侧. 而生命周期管理功能则是站在用户管理的角度提供个性化的服务. 为了便于两者之间在应用层次的解耦,在微服务基础上进一步进入了代理来桥接两者之间的业务逻辑.
4 使用微服务
微服务是一种架构风格,将大型复杂应用分解为多个微服务. 系统中的各个微服务可被独立部署. 每个微服务仅关注于完成一件任务. 各个服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API). 在微服务的平台上,每一个元素都是可热插拔的. 而且某一个服务的服务水平降级不应该显著影响整个系统的使用. 即使部分非关键类别的服务全都停止工作也不会让整个系统停止运行.
微服务系统的关键在于:各个微服务之间是松耦合的,各个模块并不以硬编码方式来编排服务之间的调用关系,而是通过注册为服务,并提供标准接口来实现服务之间的隔离[5].
微服务架构在本管理框架的设计中发挥着关键的作用,因为它有如下优势:
1)可扩展性好.在增加业务功能时,传统架构需要对整体架构做较大调整,而微服务架构只需要增加微服务节点,并调整关联的微服务节点的调用配置. 在增加业务处理能力时,传统架构需要进行整体升级扩容,而微服务架构仅需要扩容业务能力不足的微服务节点.
2)容错性高.系统发生故障时,传统架构需要进行整个系统的修复,将会降级或停止整个系统的服务,而微服务架构仅仅需要有问题的服务进行变更和服务的停止. 其他服务可通过熔断机制实现应用层面的容错.
3)技术选型灵活.微服务架构下,每个节点可根据需求功能的不同和研发团队的特点选择最适合的技术栈,传统架构会受到单一技术栈的制约.
4)研发运维效率高.每个微服务节点都运行于单一进程,专注于单一功能,并通过定义良好的接口清晰表述服务边界. 由于体积小、复杂度低,每个微服务可由一个小规模团队或者个人完全掌控,易于保持高可维护性和开发效率.
目前世面上的微服务框架较多,如Spring Cloud和Istio等,基本由图4所示模块组成.
1)服务治理.
服务治理模块是微服务框架最为重要的模块. 由两个组件组成:服务端和客户端. 服务端用作服务注册中心,支持集群部署. 客户端用来处理服务注册与发现. 在应用启动时,客户端向服务端注册自己的服务信息,同时将服务端的服务信息缓存到本地. 客户端会和服务端周期性的进行心跳交互,以更新服务租约和服务信息. 由于服务的注册和发现机制,使得系统对某种功能的服务需求不依赖某个具体的服务,用“服务名称”来将两者隔离. 为系统中具体服务的更替打下基础.
2)负载均衡.
负载均衡模块会根据同类模块的各个具体服务节点的健康状况和负荷,来决定谁成为下一个服务请求的执行者. 该模块将调用转向最适合处理它的节点,使整个系统更良好的运转.
3)API网关.
对服务的调用和具体服务之间的隔离又网关来完成. 网关根据请求的url,路由到相应的服务. 当添加API网关后,在调用者和服务提供方之间就创建隔离墙,根据服务注册的情况、各个具体服务节点的运行情况和权限配置的情况,将服务请求分发给合适的服务节点.
4)熔断隔离.
为了保证其高可用,单个服务通常会集群部署. 如果单个服务出现问题,则它的就会出现阻塞,甚至导致服务瘫痪. 而由于服务之间的依赖性,造成故障阻塞会传播到其他服务,形成服务的“雪崩”,对整个微服务系统造成灾难性后果. 断路器会使出问题的服务从系统中断开,不影响其他服务的执行,同时记录下对该服务的请求,待该服务回复后回放执行,以保证数据统一性.
5 生命周期管理功能架构
在本架构中,虚机基础管理功能和生命周期管理功能的所有模块都以微服务的形式出现,它们之间结构关系如图5.
虚机的基本管理由虚拟化平台(如VMware和KVM)完成,包括虚机管理申请服务、蓝图管理服务、虚机性能检测服务和网络安全服务等. 虚机访问账号管理服务由堡垒机软件[6]完成,堡垒机是虚机运维必备工具,本平台通过对堡垒机的主机信息,给需要管理的人员开授权,若人员不存在,则先添加人员. 虚机销毁以后,撤销人员授权.
虚机备份与恢复由虚机备份系统[7]完成. 虚机备份不是简单的对虚机文件进行备份. 对于在运行中过的虚机,进行备份的时候其虚机文件处于读写中. 这样备份出来的文件不具有一致性,很可能无法正常回复,而且也没办法做到增量备份,必须使用专用的备份工具,而这些工具必须具备相应的RESTful API才能被我们的框架所使用.
虚机用户交互模块由云门户模块提供,审批流程由流程管理模块提供,安全和备份策略配置由策略中心提供,而用户使用部门和人员的基础信息则由用户组织的基础信息管理模块提供.
另外服务间也需要进行一定的数据缓存. 比如系统需要展示一次蓝图部署所对应的虚机列表及其性能图表. 那么云门户门口需要访问虚机管理模块获取部署对应的每一个虚拟机,然后调用性能监控模块获取每个虚机的性能数据,并进行缓存. 在性能数据的刷新周期内(一般是5 min)云门户将重复利用这些数据以免进行无谓的操作.
API网关将是整个系统各模块的协调者,例如:云门户模块接到用户的申请虚机的请求,随即将此请求发送到API网关; 网关根据申请的虚机类型来选择转发到某个虚机管理微服务节点. 该虚机管理节点会创建一台虚机,创建完成后该节点会发送完成信息到API网关,由网关转发给云门户微服务节点和策略中心,策略中心调用相应模块完成后续虚机周边的配置工作,并将结果汇总到云门户以展示给用户.
而熔断隔离模块会在某一类服务完全不可用的情况下对该服务进行熔断隔离,并在日志中体现. 这样可以不影响后续服务的执行. 例如:在申请虚机的时候,如果堡垒机服务不可用,则可以将堡垒机账号配置的命令记录到日志中,其他申请步骤可以继续进行,不会使整个系统在此服务节点等待,从而无法完成整个操作. 等待堡垒机服务恢复后,再完成账号的配置工作. 又比如安全策略服务不可用,则可依据虚机的安全级别,判断是否可以先跳过对虚机安全策略的配置步骤而继续进行下面的步骤.
利用微服务平台的这种特性我们可以构建出健壮安全的虚机管理平台.
6 结 语
对云计算资源的生命周期做了阐述,对生命周期的各个环节需要的功能模块进行了分析,在处理多个模块之间的异构数据整合的问题上采用了基于本体的语义理论对数据对象的一致性进行了分析. 并利用服务代理程序,实现服务的统一抽象表达. 在此基础上利用微服务框架设计了一个云计算资源生命周期管理的框架,达到了在服务模块升级、更替、故障等各种情况系统平滑过度且不影响框架的即插即用特性.
- [1] 陈星宇,黄俊文,周 展,等.基于本体论的大数据下用户需求表征[J].深圳大学学报理工版,2017,34(2):173-180.
- [2] 成 欣,李 扬.一种基于本体的异构数据语义抽取方法[J].计算机与现代化,2014(6):1- 6.
- [3] 虞 为,陈俊鹏.基于本体的云计算文献管理模式研究[J].情报杂志,2011,30(2):142-146.
- [4] 辛园园,钮 俊,谢志军,等.微服务体系结构实现框架综述[J].计算机工程与应用,2018,54(19):10-17.
- [5] 杨海涛,徐志伟.服务计算模式的耦合性与隔离性[J].计算机工程,2008,34(2):22-24.
- [6] 石宏宇.基于堡垒机技术的运维安全管控系统设计与应用[J].中国管理信息化,2016,19(24):44- 45.
期刊信息
深圳大学学报理工版
JOURNAL OF SHENZHEN UNIVERSITY SCIENCE AND ENGINEERING
(1984年创刊 双月刊)
主 管 深圳大学
主 办 深圳大学
编辑出版 深圳大学学报理工版编辑部
主 编 李清泉
国内发行 深圳市邮电局
国外发行 中国国际图书贸易集团有限公司(北京399信箱)
地 址 北京东黄城根北街16号
邮 编 100717
电 话 0755-26732266
0755-26538306
Email journal@szu.edu.cn
标准刊号 ISSN 1000-2618
CN 44-1401/N