APP下载

Openstack云主机管理的敏捷开发技术*

2019-03-12程文迪刘德民

现代防御技术 2019年1期
关键词:虚拟化信息系统试验

程文迪,刘德民

(1.中国电子科技集团公司 第二十八研究所,江苏 南京 210007;2.信息系统工程重点实验室,江苏 南京 210007)

0 引言

现阶段,指挥信息系统的论证、设计、实现、集成等阶段工作采用分阶段完成,用户在整个研制过程中参与和体验程度低,指挥信息系统各阶段工作成果的正确性验证仍以分阶段的专家评审和系统集成后的测试验证为主,导致系统开发阶段成果未能充分验证,增加了系统研制风险。未来跨军兵种的联合作战指挥信息系统和其他新型指挥系统开发难度大、需求确定难、设计验证难的问题突出。因此,在新一代指挥信息系统建设和发展的道路上,亟需开展敏捷开发研究[1],通过综合应用云计算、虚拟化、服务化等技术,构建一体化、敏捷的指挥信息系统开发平台,提升系统研制的正确性、快速性和有效性。

1 云计算与Openstack简介

在信息技术高速发展的当下,云计算[2-3]是目前研究的重要热点技术,也是敏捷开发技术研究的关键问题之一。维基百科对云计算作了如下的描述:云计算是一种通过因特网以服务的方式提供动态可伸缩的虚拟化的资源的计算模式。虚拟化技术是指一种对计算元件在虚拟的基础上进行简化管理、优化资源的解决方案。虚拟化技术通过类似服务器集群的方式扩大硬件的容量,简化软件部署的配置过程,实现单个CPU模拟多个CPU并行,允许多个操作系统在同一平台同时独立运行,从而显著提高计算机的工作效率。虚拟化技术通过把多台服务器实体构成一个资源池,以共同计算、共享资源的方式为云计算平台的资源管理和整合能力提供重要的支撑[4]。云计算基于虚拟化技术,物理计算机以及其他硬件组成共享计算资源池,按照用户需求提供计算能力、存储能力、网络服务能力等[5]。Openstack作为目前最热门的一种开源IaaS (infrastructure as a service)云计算平台[6],将实际的服务器资源虚拟化,对用户按需提供计算能力、存储能力、网络服务能力,以虚拟机的形式向用户交付服务。

Openstack包含5个最主要的构成部分[7]:计算服务(Nova),对象存储服务(Swift),镜像管理服务(Glance),认证服务(Keystone)以及UI服务(Horizon)。如图1所示。

Nova是Openstack中用于管理虚拟机实例的整个生命周期计算的控制器,负责虚拟机创建、销毁、开机、关机、挂起、重启等操作,同时配置CPU、内存等信息。

Swift是一种非结构化的对象存储系统,它通过内置冗余及高容错机制实现对象的存储,允许进行存储或者检索文件。

Glance是一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式,有新建上传镜像、删除镜像、编辑镜像等基本操作功能。

Keystone是Openstack为其他服务提供身份验证、服务规则和服务令牌等功能的子项目。通过Keystone注册到服务器中的服务,需要通过身份验证来实现互相通信和调用。

Horizon是基于Web的管理门户,用于简化用户对服务的操作,例如:启动和销毁实例、自动分配IP地址、配置访问控制等。

2 系统体系结构

随着软件产品复杂度的提升以及客户需求和期望的提高,软件功能与需求往往会频繁变动[8]。因此软件循序渐进式的迭代过程迫切地需要一整套与软件开发过程实际结合紧密、操作性强、管理高效的软件工程方法[9]。敏捷开发[10-11]作为一种轻量快捷式的开发方法也应运而生。它的主要特点是[12]:①重视迭代。②重视与客户的交流。③重视测试驱动开发和软件持续集成。

图1 Openstack组成结构Fig.1 Composition structure of Openstack

当前,指挥信息系统朝着功能多样化、规模庞大化、交互关系复杂化的趋势发展。指挥信息系统与SOA(service-oriented architecture,面向服务的架构)及云计算技术的深入结合促进了系统技术体制的转变,对指挥信息系统的开发提出了更高的要求。不同的指挥信息系统需求确定难、设计验证难的问题仍然突出,造成开发反复和效率低下,主要有以下几点原因:

(1) 用户本身对军事需求把握不准

在新的作战模式下的很多军事需求本身很难获取。军事作战人员与系统开发人员专业领域的差别,也使得军事需求在系统研制过程中失真很大。

(2) 需求分析与设计过程中用户体验程度低

指挥信息系统研制过程中用户参与度低,基于文档方案的讨论过于抽象,原型系统又偏向于功能性需求的获取,很多系统设计无法尽早获得用户确认。

(3) 模型驱动的系统开发过程缺乏有效测试方法和工具支撑

基于SOA架构的指挥新信息系统的构建是围绕业务流程模型开展的,系统具有的分布程度高、并发性强、服务之间的交互关系复杂等特征,使得传统的手工测试方法难以开展。

(4) 新的建设模式下的大量资源和成果不能很好地重用

目前开发过程中有大量资源和成果不能很好地重用,从代码模块重用、系统设计重用,甚至需求分析模型都存在重用。

综上所述,指挥信息系统需要一种敏捷、高效、一体化的开发方法,能够针对系统论证、分析、设计、集成、验证的全生命周期进行协同开发和同步验证。构建基于云的统一开发平台将指挥信息系统开发过程中的可重用资源有效整合、按需使用,灵活适应不同的开发需求和开发过程,快速构建开发环境、验证环境和测试环境,通过增强用户体验加速需求、设计和开发迭代过程。

总体研究思路如图2体系结构图所示。

(1) 在指挥信息系统敏捷开发过程模型的基础上,构建基于云的基础设施环境,包括存储、计算、网络和数据库,支撑指挥信息系统开发过程中资源存储、服务部署和网络互联。

(2) 构建指挥信息系统开发资源库,包括工具模型、通用服务、数据资源和仿真支撑平台。为了实现系统开发资源统一、集中、高效的管理和使用,根据开发资源类型,建立各类资源的分类体系和描述模型,研究资源虚拟化和服务化方法,实现开发资源的统一建模、注册和管理,形成面向系统开发的资源云;最终建立系统开发资源云池,为系统敏捷开发提供各类服务。

图2 体系结构图Fig.2 Architecture diagram

(3) 设计开发各类资源在开发过程中按需使用服务,包含搜索、推荐、下载、部署和集成。

(4) 开发统一开发门户[13]网站,实现各类资源的统一管理访问和开发过程的管理。

(5) 选取典型指挥信息系统进行模拟开发,充实资源库和平台服务,对敏捷开发过程模型进行验证。

通过对指挥信息系统需求、设计、开发和集成各阶段引入用户体验和测试验证,促进阶段内的迭代反馈,使得设计开发中的问题尽早发现解决,实现指挥信息系统开发过程敏捷开发化。

3 敏捷开发

3.1 仿真验证环境搭建

仿真验证环境是指基于实验任务的内容和实验目的,搭建一组包含实验控制导调、仿真模拟软件、实验数据订阅分发、数据采集、仿真引擎驱动等各功能组件的实验系统环境。

敏捷开发平台采用虚拟化和服务化技术,依托软件配套工具,利用试验资源的共享与协同机制,提供分布式协同开发和验证应用模式,支持一体化的系统设计、开发、验证和测试过程[14]。

利用开发试验平台进行系统设计开发的基本流程如图3所示。各类系统设计开发用户在设计开发门户的支持下,利用开发试验平台提供的各类工具,依据相应的规范要求完成相应的设计开发任务[15]。

(1) 首先进行试验任务需求分析,对系统功能、用途、适用范围初步形成需求文档,进一步形成系统概要设计和详细设计,初步制定实验配置文件,涉及系统规模、基本功能、席位、网络配置等信息,并将配置文件入库。

(2) 与此同时,通过用户名和密码登录门户网站,查询设计开发环境中提供的设计开发支撑工具以及设计开发资源。

(3) 初步确定试验需求之后,创建试验代号,开始进行试验。

(4) 将当前试验代号与配置文件库中的试验配置文件进行关联。

(5) 根据试验配置文件中的系统总设计规划,按照图4创建虚拟机时序图所示的步骤创建并启动相应数量的云主机,并分配好IP。

(6) 根据试验配置文件中的席位设计,从数据库下载各类资源并进行软件部署安装。

(7) 启动仿真流程,通过仿真初始化、仿真开始、暂停、仿真结束等命令控制仿真进程。

(8) 通过仿真试验形成仿真结果。

(9) 根据仿真结果进行需求验证,是否满足用户要求,或者评估结果是否满足预期。如果不完善或者不符合预期,重新反馈到需求分析阶段,更新系统需求设计。

图3 典型试验流程Fig.3 Typical test flow

根据试验任务环境配置信息,系统需要将模型库中参试的各类模型、软件、仿真构件等功能模块,按需动态生成仿真试验验证环境,实现对集成后的新一代系统进行仿真试验、测试和评估。

本文依托敏捷开发技术中云计算和虚拟化的概念,借助Openstack操作管理虚拟机的全生命周期,可以实现仿真实验云环境的快速生成。图4创建虚拟机时序图所示是Openstack创建虚拟机的流程。

(1) Openstack调度控制器从任务列表中读取创建虚拟机的任务,发送创建命令给Nova计算服务控制器。

(2) Nova计算服务控制器通过用户名与密码进行身份验证,然后验证镜像ID是否正确合法,并通过API(application programming interface,应用程序编程接口)获取模板使用的flavor(即虚拟机的的硬件资源配置,如CPU个数、内存大小、硬盘大小等)。

(3) Nova计算服务控制器再向网络管理模块Neutron获取指定可用的网络,为虚拟机绑定网卡(如果指定多个网段,就绑定多网卡);同时绑定一个可用的IP。

(4) Nova计算服务控制器通过Openstack API创建虚拟机,获得虚拟机的ID。

(5) 将新建的虚拟机信息存入数据库。

创建好仿真试验验证环境以后,根据试验任务关联的配置文件中的各类模型从数据库下载各类资源,将试验任务的总体规划包括试验任务中涉及的软件模型类型、模型的属性参数、平台配置参数、主机名信息、IP信息写入软件配置信息脚本,进行软件部署安装。

3.2 仿真验证系统迭代

系统设计开发的迭代流程如图5所示。首先系统设计开发人员接收系统设计开发任务,根据任务需求建立测试目标,以及描述测试需求的任务场景和部署模型,形成相关的设计文档。其次,登录系统设计开发的门户界面,查询发现所需的设计开发工具、搜索可用的系统设计开发资源,也可以通过门户来构建相应的仿真试验系统对自己开发的系统资源。依据相应的规范要求完成相应的设计开发任务,经过模型转换,将上述模型转化为执行引擎可识别的仿真脚本。由于仿真执行引擎还要依赖由模拟程序库所提供的服务模拟器和环境模拟器支持,因此需要进行模拟程序的半自动/自动辅助构建。然后,再将仿真脚本置于仿真引擎中进行测试执行。最后,进行测试结果的整理和分析。

利用开发试验平台进行系统设计开发的基本流程如图5所示。各类系统设计开发用户在设计开发门户的支持下,利用开发试验平台提供的各类工具,依据相应的规范要求完成相应的设计开发任务。通过开发门户对需求论证阶段得到的需求模型进行检验,敏捷开发平台通过对开发资源云池的资源查找,向开发门户推荐相应需求验证工具和资源,构建需求验证原型及需求测试用例。对需求模型进行检验,当用户对检验结果确认无误后,输出需求模型。

图4 创建虚拟机时序图Fig.4 Sequence diagram of creating a virtual host

图5 系统设计开发迭代流程Fig.5 Iterative process of system design and development

4 门户应用

在系统的设计开发过程中,各类角色的工作都是通过系统设计开发门户进行的,系统设计开发门户提供了发现和使用开发试验平台中各种设计开发服务的能力。各类设计开发角色通过门户登录平台,查询和发现所需的设计开发工具,搜索可用的系统设计开发资源。也可以通过门户来构建相应的仿真试验系统,对自己开发的系统资源、系统单元和集成后的新一代系统进行仿真试验、测试和评估,并给出反馈建议。

门户网站是各类服务和资源的用户访问接口,根据开发任务的不同,可以分为几大服务:基础设施管理、资源库管理、服务管理、项目管理和人员管理。

基础设施管理:负责对云资源的访问和管理。

资源库管理:负责对资源库的访问和管理。

服务管理:负责通过将资源库的用于开发或验证环境的资源部署在云资源环境上供开发人员使用。

项目管理:负责按项目管理开发任务。

人员管理:负责人员的注册和权限管理。

根据开发角色的不同,可以分为系统管理员、项目管理员、开发人员和试验人员。

系统管理员:可以对所有资源进行配置,可以对项目管理员权限授权。

项目管理员:可以对项目内所有资源进行配置,可以对开发人员和试验人员进行权限授权。

开发人员:可以对开发资源进行配置。

试验人员:可以对试验资源进行配置。

图6门户网站所示为基于敏捷开发框架的基础上开发的门户网站,包含系统研制的需求阶段、设计阶段、开发阶段、集成阶段、验证与测试等部分。敏捷开发平台通过对资源云池的资源查找,向开发门户推荐相应验证工具和资源,构建验证原型及测试用例。构建原型系统后对系统模型、功能进行集成验证或测试评估,同时将结果验证分析的结果反馈给用户,用户根据反馈结果提出修改意见,再次进行系统改进,直到用户确认结果后,进行系统交付。

采用这种可重用的资源有效整合、按需使用,灵活适应不同的开发需求和开发过程,快速构建开发环境、验证环境和测试环境,通过用户体验加速需求、设计和开发迭代过程。

5 结束语

本文针对任务驱动的仿真能力生成问题,实现基于云架构的仿真试验系统动态构建技术,提出了基于Openstack云主机的敏捷开发平台,通过云计算、服务化技术,任意定制系统开发或测试环境,将可重用的资源快速按需重构,用户参与设计验证,基于持续集成,快速响应系统修改变化进行迭代。

猜你喜欢

虚拟化信息系统试验
建设工程招投标管理中智能化信息系统的运用
2022年信息系统与运营管理专栏征稿
基于排队论的信息系统装备维修保障效能分析
基于并行构件技术的医疗信息系统的设计与实现
基于OpenStack虚拟化网络管理平台的设计与实现
CS95
i6
驭胜S330
试验
服务器虚拟化的安全威胁及防范分析