一种监控平台的持续化集成方法及系统与流程

文档序号:19737179发布日期:2020-01-18 04:39阅读:211来源:国知局
一种监控平台的持续化集成方法及系统与流程

本发明涉及一种监控平台的持续化集成方法及系统,属于软件测试部署技术领域。



背景技术:

配网监控平台作为电网运行监视的重要环节,直接面向社会和电力终端用户供电,是电网的重要组成部分。随着经济的发展,人们对供电服务、供电质量的要求越来越高,建设具有信息化、自动化、互动化特点的智能配电网,意义重大、需求迫切,电网监控系统是保障运行系统安全和稳定的重要手段。

目前监控平台在应用开发支撑方面提供了基础技术组件和技术实现框架,也实现了一定层度的领域业务抽象、分层、模块化实现,能支撑业务应用系统产品研制。但仍然缺乏有效的辅助应用开发与设计工具来引导和约束业务应用的开发过程、规范和标准化领域软件复用体系建设,使得应用开发复用度偏低、效率偏低、存在质量隐患等问题。随着监控产品开发实施任务量的增加和定制业务需求的要求下,既有监控平台系统在每次工程应用前都需要大量的进行系统测试,导致工程应用周期增长,测试任务量巨大,耗时耗材耗力。而随着企业业务容量的拓展,服务器数量会急剧增加,软件部署便会面临着巨大压力,而传统的人工手动部署,具有效率低且容易出错等弊端。



技术实现要素:

本发明的目的是提供一种监控平台的持续化集成方法及系统,以解决目前监控平台持续化集成过程中效率低、易出错的问题。

本发明为解决上述技术问题而提供一种监控平台的持续化集成方法,该集成方法包括以下步骤:

1)检测代码库中的代码是否发生更新,若发生更新,则将更新的代码进行编译,生成可执行程序,并将生成的可执行程序进行存储;

2)调用云平台接口,根据配置环境中的全局变量以及不同机器中的变量在云平台中创建测试虚拟机;

3)将步骤1)生成的可执行程序发送到测试虚拟机中进行测试,若测试成功,则将生成的可执行程序发布到正式环境中。

本发明还提供了一种监控平台的持续化集成系统,该集成系统包括动态监测代码版本库变化功能模块、自动编译打包功能模块、差异化自动分发部署功能模块、云平台虚拟机管理功能模块和自动化测试功能模块,所述的动态监测代码版本库变化功能模块用于检测代码库中的代码是否发生更新,若发生更新,则将更新的代码发送给自动编译打包功能模块;所述自动编译打包模块更新的代码进行编译,生成可执行程序,并将生成的可执行程序进行存储;差异化自动分发部署功能模块用于根据配置环境中的全局变量以及不同机器中的变量在云平台中创建测试虚拟机;云平台虚拟机管理功能模块用于提供测试环境;所述自动化测试功能模块用于将生成的可执行程序发送到测试虚拟机中进行测试,若测试成功,则将生成的可执行程序发布到正式环境中。

本发明采用全自动方式代替手工,实现了监控平台的自动编译、部署、测试,极大减少了重复性的系统部署工作,解决了运行维护人员的工作量巨大、效率低、运维出错率高、版本升级风险大等问题。

进一步地,为了方便区分不同版本的可执行程序,所述步骤1)中编译时须从代码库中获取更新代码的版本信息,并将版本信息打入编译后的可执行程序中。

进一步地,为了快速恢复正式版本的通畅运行,当在正式环境中的可执行程序突发有bug时,则触发回滚机制,使该可执行程序回滚到最近的一个可靠版本。

进一步地,为了方便实现对代码的自动检测,所述步骤1)采用自动轮询的方式检测代码是否发生更新。

附图说明

图1是本发明监控平台的持续化集成方法的流程图;

图2是本发明监控平台的持续化集成系统的架构示意图;

图3是本发明监控平台的持续化集成系统功能模块示意图;

图4是本发明中自动化部署界面管理工具架构图;

图5是本发明中自动配置部署总体设计结构示意图;

图6是本发明所采用的部署差异化处理结构示意图;

图7是本发明监控平台的持续化集成系统实施例硬件架构示意图;

图8是本发明各模块之间关系图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步地说明。

方法实施例

本发明针对目前监控平台持续化集成系统采用人工手动部署软件存在效率低、出错率高的问题,提供可一种监控平台的持续化集成方法,这里的持续化集成方法包括编译、部署、测试、回滚为一整套体系的方法,保证开发、测试、运维工作流畅进行。该方法采用全自动的方式代替手工方式,首先检测代码库中的代码是否发生更新,若发生更新,则将更新的代码进行编译,生成可执行程序,并将生成的可执行程序进行存储;然后调用云平台接口,根据配置环境中的全局变量以及不同机器中的变量在云平台中创建测试虚拟机;最后将生成的可执行程序发送到测试虚拟机中进行测试,若测试成功,则将生成的可执行程序发布到正式环境中,从而实现软件全自动部署。该方法的实现流程如图1所示,具体实施步骤如下。

1.检测代码是否更新。

程序员提交代码到代码库中,在提交时填好修改日志以及本次更新需要解决的问题,采用自动轮询的方式监测代码库中的代码,判断代码是否发生了更新。

2.对更新的代码进行编译生成可执行程序。

本实施例采用编译器对发生更新的代码进行编译,在编译过程中自动从代码库中获取当前编译代码的版本信息并把版本信息打入编译后的可执行程序中,以区分不同的版本可执行程序;同时触发存储机制,存储本次编译打包的可执行程序并记录版本信息。

3.创建虚拟机。

通过云应用技术调用云平台提供的外部接口,在云平台中开辟新的集群环境进行自动化部署工作及测试,根据配置创建虚拟机。虚拟机创建过程需要根据特定配置来差异化地部署不同的模块,利用配置环境中的全局变量以及不同机器中的变量,来执行精细化的单个主机或主机组的部署工作。部署分类中包括所有机器的基础环境配置及配置生效、主备版本服务、开源的集群式服务(kafka、zookeeper等)。差异化自动分发部署原理:持续集成管理工具会自动识别配置文件中的配置变量,其中的配置变量内容项包含:对应主机的所属主机组、主机识别号、主机本身特殊配置项。其中主机组代表共性配置,主机本身特殊配置项则为差异化分发部署依据。

4.对可执行程序进行测试。

将步骤2中生成的可执行程序发送到虚拟机中进行测试,server服务器会自动的在虚拟机中执行特定模块的测试工作,并自动判定测试结果且发送结果到代码库的代码维护者手中。当可执行程序通过测试时,经过开发人员确认后,将该可执行程序分发到正是运行环境中。如果在正式运行环境中的可执行程序突发有重大bug,则触发回滚机制,本实施例采用手动触发,根据实际需求也可采用自动的方式,使该可执行程序要回滚到最近的一个可靠版本,以完成重大bug的应对。其中最近指的是版本号最接近,可靠指的是在正式运行环境中没有发生重大bug的可执行程序。

系统实施例

本发明的集成系统包括动态监测代码版本库变化功能模块、自动编译打包功能模块、差异化自动分发部署功能模块、云平台虚拟机管理功能模块和自动化测试功能模块,所述的动态监测代码版本库变化功能模块用于检测代码库中的代码是否发生更新,若发生更新,则将更新的代码发送给自动编译打包功能模块;所述自动编译打包模块更新的代码进行编译,生成可执行程序,并将生成的可执行程序进行存储;差异化自动分发部署功能模块用于根据配置环境中的全局变量以及不同机器中的变量在云平台中创建测试虚拟机;云平台虚拟机管理功能模块用于提供测试环境;所述自动化测试功能模块用于将生成的可执行程序发送到测试虚拟机中进行测试,若测试成功,则将生成的可执行程序发布到正式环境中。

监控平台的持续化集成系统的硬件架构如图7所示,包括代码版本服务器、编译服务器、历史版本存储工具和部署服务器,其中代码版本服务器一般使用svn或者git,编译服务器以及部署服务器使用常规linux内核操作系统,历史版本存储工具使用文件管理工具或者版本管理工具。在现有的集成系统硬件架构基础上,本发明增加了持续集成管理工具和分发部署工具,并引入云平台系统作为临时测试环境,如图2和图8所示,用以自动化完成编译、打包、分发部署、测试、发布等一系列动作。

如图3所示,本发明监控平台的持续化集成系统的软件部分包括用于提供底层的操作单元,操作单元包含大部分的业务逻辑操作的单元,中间层提供脚本工具协调和调用业务逻辑操作单元,最上层提供界面设计工具,并在界面后台提供生成脚本功能,能够自动启动并生成测试脚本。

如图4所示,自动分发部署工具提供界面交互平台,用户可根据交互平台实现部署细节的调整、服务的分布等工作。底层的部署细节通过约定好的配置文件与部署server端进行沟通。自动化部署工具界面交互平台使用b/s架构实现,分为前端ui、后端服务、数据源三个模块,前端ui使用bootstrap、echart、jquery等插件,后端使用spring容器,数据访问使用javaio接口操作文件。

如图5所示,对于自动分发部署工具,用户通过webui来触发集成server端的job接口,来调用响应的job来执行任务,job调用deployserver的接口进行具体任务的实施。本发明采用ssh通讯方式即无agent的方式远程操作客户机。

开源服务多为集群模式,集群模式中各个节点的配置纷繁复杂,因此,本发明的自动分发部署工具提供部署差异性配置,如图6所示,开源环境依赖包的分发依据特定配置文件的描述,使用deployserver向client的分发运行包文件,开源环境的配置文件差异性配置,使用template模板的方式进行差异性处理,模板中的变化的数据使用参数代替,在传输向目标机器时,替换掉参数为与目标机器有关的数据。

上述系统的工作过程如下:

1、程序员提交代码到代码版本服务器上,在提交时填好修改日志以及本次更新需要解决的问题。

2、持续集成管理工具检测到代码有更新,锁定更新代码工程,并更新对应的版本变化的编译服务器程序代码。

3、持续集成管理工具进行自动化编译,编译过程中把本次编译的版本信息一同打入到可执行程序中;触发存储机制,存储本次编译打包的程序包并记录版本。

4、持续集成管理工具通知远程操作工具执行测试剧本。

5、自动分发部署工具按照剧本执行剧本任务(测试环境部署:在云平台创建新的虚拟机,执行分发、配置、启动等整套安装部署动作)。

6、持续集成工具触发测试动作,进行自动化测试,记录测试报告并分发测试结果到通知邮箱。

7、持续集成工具触发扫描程序对测试报告进行扫描,判定程序测试是否通过。

8、如果测试扫描结果表示测试通过,则把测试版本作为正式版本发布到一套正式的环境中。

9、测试版本转换到正式环境后,突发情况发现最新的正式版本有重大bug未被检测到,需要紧急下线并回滚。

10、销毁测试虚拟机。

本实施例的监控平台持续化集成系统使用全自动方式代替手工实现方式,实现监控平台的自动编译、部署、测试、通知的全自动动作。其中包括动态监测代码版本库版本技术、自动编译打包技术、差异化自动分发部署技术、云平台虚拟机管理技术、自动化测试技术,整合上述技术实现监控平台的持续化集成,并提供版本回滚、集成日志实时监测、集成历史记录查看及告警提醒等功能。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1