CN111506322B - 一种自动化集成构建开发部署平台及方法 - Google Patents
一种自动化集成构建开发部署平台及方法 Download PDFInfo
- Publication number
- CN111506322B CN111506322B CN202010298529.1A CN202010298529A CN111506322B CN 111506322 B CN111506322 B CN 111506322B CN 202010298529 A CN202010298529 A CN 202010298529A CN 111506322 B CN111506322 B CN 111506322B
- Authority
- CN
- China
- Prior art keywords
- management module
- project
- deployment
- version controller
- construction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种自动化集成构建开发部署平台及方法。所述集成构建开发部署平台包括:界面设置模块、版本控制器管理模块、集成构建管理模块、部署管理模块和项目集成构建管理模块;通过版本控制器管理模块对接各种版本控制器,通过集成构建管理模块对接各种编译器,通过部署管理模块巧妙使用ssh指令的通用性,可对接各种部署服务器和容器。项目集成构建管理模块定时调度集成构建相关指令,实现自动化下载源码、自动编译、自动打包、自动部署。避免了针对不同项目的集成构建开发部署平台的重复建设,通过本平台,可对不同软件项目或产品,实现自动化集成构建部署,从而提高了软件开发效率。
Description
技术领域
本发明涉及软件开发技术领域,特别是涉及一种自动化集成构建开发部署平台及方法。
背景技术
大部分软件公司都沉迷于一些新软件开发框架的使用,在自动化集成构建、部署技术没有系统把握。现有的技术方案,只是针对于具体项目编程技术实现的半自动化的集成构建平台。缺陷:(1)一种技术或一个项目要实现一个集成构建平台,重复性建设,成本高昂。(2)只是对现有开源平台进行简单搭建,因此只能实现半自动化。如何避免针对不同项目的集成构建开发部署平台的重复建设,并实现开发自动化集成构建部署平台的全自动化集成构建部署成为一个亟待解决的技术问题。
发明内容
本发明的目的是提供一种自动化集成构建开发部署平台及方法,以避免针对不同项目的集成构建开发部署平台的重复建设,并实现开发集成构建部署平台的全自动化集成构建部署。
为实现上述目的,本发明提供了如下方案:
一种自动化集成构建开发部署平台,所述集成构建开发部署平台包括:界面设置模块、版本控制器管理模块、集成构建管理模块、部署管理模块和项目集成构建管理模块;
所述界面设置模块分别与所述版本控制器管理模块、集成构建管理模块、部署管理模块和项目集成构建管理模块连接;所述界面设置模块用于接收技术人员对版本控制器管理模块、集成构建管理模块、部署管理模块和项目集成构建管理模块的配置操作,并生成操作指令;
所述版本控制器管理模块、所述集成构建管理模块、所述部署管理模块分别与所述项目集成构建管理模块连接;
所述版本控制器管理模块用于根据所述操作指令对不同版本的版本控制器客户端进行安装和更新管理,获得不同版本的版本控制器客户端的版本控制器信息和使用指令,并将不同版本的版本控制器客户端的版本控制器信息和使用指令发送给所述项目集成构建管理模块;
所述集成构建管理模块用于根据所述操作指令对不同版本的语言集成构建工具进行安装和更新管理,获得不同版本的语言集成构建工具的集成构建信息和使用指令,并将不同版本的语言集成构建工具的集成构建信息和使用指令发送给所述项目集成构建模块;
所述部署管理模块用于根据所述操作指令通过SSH客户端软件对不同版本的软件部署的服务器和容器进行配置管理;获得不同版本的软件部署的服务器和容器的部署服务器和容器信息和使用指令,并将不同版本的软件部署的服务器和容器的部署服务器和容器信息和使用指令发送给所述项目集成构建模块;
所述项目集成构建管理模块用于根据项目需求通过界面设置模块分别对所述版本控制器管理模块、所述集成构建管理模块、所述部署管理模块进行配置,获得版本控制器客户端的项目源码配置信息、语言集成构建工具的项目集成构建配置信息和项目部署的服务器和容器的配置信息,并根据所述项目源码配置信息、项目集成构建配置信息和项目部署的服务器和容器的配置信息分别调用版本控制器客户端的使用指令、语言集成构建工具的使用指令、软件部署的服务器和容器的使用指令,控制版本控制器管理模块、集成构建管理模块和部署管理模块通过版本控制器客户端进行项目源码下载更新,通过语言集成构建工具进行源码编译集成构建,获得软件发布包,通过软件部署的服务器和容器进行软件发布包的更新发布。
可选的,所述版本控制器管理模块,具体包括:版本控制器上传单元、版本控制器安装单元和版本控制器应用单元;
所述版本控制器上传单元用于根据所述操作指令将不同版本的版本控制器客户端上传至指定路径下;
所述版本控制器安装单元用于根据所述操作指令对存储至指定路径下的版本控制器客户端进行安装,并将安装完成的不同版本的版本控制器客户端的版本控制器信息和使用指令进行存储;
所述版本控制器应用单元用于根据所述操作指令将不同版本的版本控制器客户端的版本控制器信息和使用指令发送给所述项目集成构建管理模块。
可选的,所述集成构建管理模块,具体包括:集成构建上传单元、集成构建安装单元和集成构建应用单元;
所述集成构建上传单元用于根据所述操作指令将不同版本的语言集成构建工具上传至指定路径下;
所述集成构建安装单元用于根据所述操作指令对存储至指定路径下的语言集成构建工具进行安装,并将安装完成的不同版本的语言集成构建工具的集成构建信息和使用指令进行存储;
所述集成构建应用单元用于根据所述操作指令将不同版本的语言集成构建工具的集成构建信息和使用指令发送给所述项目集成构建管理模块。
可选的,所述部署管理模块,具体包括:SSH客户端软件、部署配置单元和部署应用单元;
所述部署配置单元用于根据所述操作指令通过SSH客户端软件对不同版本的软件部署的服务器和容器进行配置,并保存不同版本的软件部署的服务器和容器的部署服务器和容器信息和使用指令;
所述部署应用单元用于根据所述操作指令将不同版本的软件部署的服务器和容器的部署服务器和容器信息和使用指令发送给所述项目集成构建管理模块。
可选的,所述项目集成构建管理模块,具体包括:项目源码配置单元、集成构建配置单元、部署配置单元、项目集成构建管理单元;
所述项目源码配置单元根据项目需求通过界面设置模块对所述版本控制器管理模块进行配置,获得版本控制器客户端的项目源码配置信息和源码更新频度;
集成构建配置单元用于根据项目需求通过界面设置模块对所述集成构建管理模块进行配置,获得语言集成构建工具的项目集成构建配置信息;
部署配置单元用于根据项目需求通过界面设置模块对所述部署管理模块进行配置,获得项目部署的服务器和容器的配置信息;
项目集成构建管理单元用于以源码更新频度为频率,根据所述项目源码配置信息、项目集成构建配置信息和项目部署的服务器和容器的配置信息分别调用版本控制器客户端的使用指令、语言集成构建工具的使用指令、软件部署的服务器和容器的使用指令控制版本控制器管理模块、集成构建管理模块和部署管理模块通过版本控制器客户端进行项目源码下载更新,通过语言集成构建工具进行源码编译集成构建,获得软件发布包,通过软件部署的服务器和容器进行软件发布包的更新发布。
可选的,所述版本控制器管理模块、所述集成构建管理模块、所述部署管理模块与所述项目集成构建管理模块连接的接口形式相同。
一种自动化开发集成构建部署方法,所述开发集成构建部署方法应用所述集成构建开发部署平台,所述集成构建开发部署平台包括:界面设置模块、版本控制器管理模块、集成构建管理模块、部署管理模块和项目集成构建管理模块;所述部署方法包括如下步骤:
根据项目需求通过界面设置模块对所述版本控制器管理模块进行配置,获得版本控制器客户端的项目源码配置信息和源码更新频度;
根据项目需求通过界面设置模块对所述集成构建管理模块进行配置,获得语言集成构建工具的项目集成构建配置信息;
根据项目需求通过界面设置模块对所述部署管理模块进行配置,获得项目部署的服务器和容器的配置信息;
以源码更新频度为频率,根据所述项目源码配置信息、项目集成构建配置信息和项目部署的服务器和容器的配置信息分别调用版本控制器客户端的使用指令、语言集成构建工具的使用指令、软件部署的服务器和容器的使用指令,控制版本控制器管理模块、集成构建管理模块和部署管理模块通过版本控制器客户端进行项目源码下载更新,通过语言集成构建工具进行源码编译集成构建,获得软件发布包,通过软件部署的服务器和容器进行软件发布包的更新发布。
可选的,所述以源码更新频度为频率,根据所述项目源码配置信息、项目集成构建配置信息和项目部署的服务器和容器的配置信息分别调用版本控制器客户端的使用指令、语言集成构建工具的使用指令、软件部署的服务器和容器的使用指令,控制版本控制器管理模块、集成构建管理模块和部署管理模块通过版本控制器客户端进行项目源码下载更新,通过语言集成构建工具进行源码编译集成构建,获得软件发布包,通过软件部署的服务器和容器进行软件发布包的更新发布,具体包括:
以所述源码更新频度为频率,定时调用版本控制器客户端的使用指令;
根据版本控制器客户端的使用指令的更新检测指令,判断是否需要进行版本控制器客户端的更新,得到判断结果;
若所述判断结果表示不需要进行版本控制器客户端的更新,则返回步骤“以所述源码更新频度为频率,定时调用版本控制器客户端的使用指令”;
若所述判断结果表示需要进行版本控制器客户端的更新,则根据所述项目源码配置信息调用版本控制器客户端的使用指令,控制版本控制器管理模块通过版本控制器客户端进行项目源码下载更新;
根据项目集成构建配置信息调用语言集成构建工具的使用指令,控制集成构建管理模块通过语言集成构建工具进行源码编译集成构建,获得软件发布包;
根据项目部署的服务器和容器的配置信息调用软件部署的服务器和容器的使用指令,控制部署管理模块通过软件部署的服务器和容器进行软件发布包的更新发布。
与现有技术相比,本发明的有益效果是:
本发明提出了一种自动化集成构建开发部署平台及方法。所述集成构建开发部署平台包括:界面设置模块、版本控制器管理模块、集成构建管理模块、部署管理模块和项目集成构建管理模块;通过版本控制器管理模块对接各种版本控制器,通过集成构建管理模块对接各种编译器,通过部署管理模块巧妙使用ssh指令的通用性,可对接各种部署服务器和容器。项目集成构建管理模块定时调度集成构建相关指令,实现自动化下载源码、自动编译、自动打包、自动部署。避免了针对不同项目的集成构建开发部署的重复建设,实现了开发集成构建部署平台的全自动化集成构建部署。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种自动化集成构建开发部署平台的结构图;
图2为本发明提供的项目源码配置单元的界面图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种自动化集成构建开发部署平台及方法,以避免针对不同项目的集成构建开发部署平台的重复建设,并实现集成构建开发部署平台的全自动化集成构建开发部署。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1所示本发明提供一种自动化集成构建开发部署平台,所述集成构建开发部署平台包括:界面设置模块、版本控制器管理模块、集成构建管理模块、部署管理模块和项目集成构建管理模块。所述界面设置模块分别与所述版本控制器管理模块、集成构建管理模块、部署管理模块和项目集成构建管理模块连接;所述界面设置模块用于接收技术人员对版本控制器管理模块、集成构建管理模块、部署管理模块和项目集成构建管理模块的配置操作,并生成操作指令。所述版本控制器管理模块、所述集成构建管理模块、所述部署管理模块分别与所述项目集成构建管理模块连接。所述版本控制器管理模块、所述集成构建管理模块、所述部署管理模块与所述项目集成构建管理模块连接的接口形式相同。
所述版本控制器管理模块用于根据所述操作指令对不同版本的版本控制器客户端进行安装和更新管理,获得不同版本的版本控制器客户端的版本控制器信息和使用指令,并将不同版本的版本控制器客户端的版本控制器信息和使用指令发送给所述项目集成构建管理模块。
所述版本控制器管理模块,具体包括:版本控制器上传单元、版本控制器安装单元和版本控制器应用单元。
所述版本控制器上传单元用于根据所述操作指令将不同版本的版本控制器客户端上传至指定路径下。具体的,通过界面设置模块,根据需求,将不同版本控制器客户端工具(SVN、Git及CVS)上传到自动集成构建开发部署平台(例如,平台的upload/subversion/路径下)上,并对软件名称、版本等相关信息进行存储管理。
所述版本控制器安装单元用于根据所述操作指令对存储至指定路径下的版本控制器客户端进行安装,并将安装完成的不同版本的版本控制器客户端的版本控制器信息和使用指令进行存储。具体的,通过界面设置模块,解压程序、配置安装路径、环境变量即其他相关信息、执行安装。同时检测是否安装成功,如果不成功,提示用户错误,重新安装;如果成功,对成功安装的软件信息进行管理,即安装成功后,将安装成功的软件元数据信息(类型,名称,版本,安装路径,bin路径及相关执行名)保存在对应的文件subversion.installed中。
所述版本控制器应用单元用于根据所述操作指令将不同版本的版本控制器客户端的版本控制器信息和使用指令发送给所述项目集成构建管理模块。具体的,将版本控制器信息及使用指令,以统一接口形式提供给项目集成构建模块-项目源码配置单元使用。其中,版本控制器信息,即自动化集成构建部署平台已经安装成功的版本的版本控制器客户端信息。使用指令有:连接测试指令,到版本控制器服务器上检查是否有更新指令,下载源码指令。
所述集成构建管理模块用于根据所述操作指令对不同版本的语言集成构建工具进行安装和更新管理,获得不同版本的语言集成构建工具的集成构建信息和使用指令,并将不同版本的语言集成构建工具的集成构建信息和使用指令发送给所述项目集成构建模块。
所述集成构建管理模块,具体包括:集成构建上传单元、集成构建安装单元和集成构建应用单元。
所述集成构建上传单元用于根据所述操作指令将不同版本的语言集成构建工具上传至指定路径下。具体的,通过界面设置模块,根据需求,将主流语言集成构建工具(Java-Maven,Python,C++-GCC++)上传到到自动集成构建部署平台(例如,平台的/upload/compiler路径下)上,并对软件名称、版本等相关信息进行存储管理,即上传成功后,将上传的编译器元数据信息(类型,名称,版本,文件路径)保存在对应的文件compiler.meta中。
所述集成构建安装单元用于根据所述操作指令对存储至指定路径下的语言集成构建工具进行安装,并将安装完成的不同版本的语言集成构建工具的集成构建信息和使用指令进行存储。具体的,通过界面设置模块,解压程序、配置安装路径、环境变量即其他相关信息、执行安装。同时检测是否安装成功,如果不成功,提示用户错误,重新安装;如果成功,对成功安装的软件信息进行管理,即,安装成功后,将安装成功的软件元数据信息(类型,名称,版本,安装路径,bin路径及相关执行名)保存在对应的文件compiler.installed中。
所述集成构建应用单元用于根据所述操作指令将不同版本的语言集成构建工具的集成构建信息和使用指令发送给所述项目集成构建管理模块。具体的,将集成构建信息及使用指令,以统一接口形式提供给项目集成构建模块-集成构建配置单元使用。集成构建信息,即自动化集成构建部署平台已经安装成功的集成构建信息。
使用指令有:清理(clean)、验证(validate)、编译(compile)、测试(test)、打包(package)。
所述部署管理模块用于根据所述操作指令通过SSH客户端软件对不同版本的软件部署的服务器和容器进行配置管理;获得不同版本的软件部署的服务器和容器的部署服务器和容器信息和使用指令,并将不同版本的软件部署的服务器和容器的部署服务器和容器信息和使用指令发送给所述项目集成构建模块。
所述部署管理模块,具体包括:SSH客户端软件、部署配置单元和部署应用单元。
SSH客户端软件的SSH的英文全称是Secure SHell,是一种通用的、功能强大的、基于软件的网络安全协议。支持性广泛,所有版本的Linux服务器操作系统都默认支持,Windows服务器或Docker容器也有主流的软件安装实现支持。软件部署的服务器或容器形形色色,然而可以说几乎所有的服务器或容器都直接或间接支持SSH通信即操作命令。因此,软件部署通过SSH作为统一的软件部署技术手段,简单、通用功能强大且安全。
所述部署配置单元用于根据所述操作指令通过SSH客户端软件对不同版本的软件部署的服务器和容器进行配置,并保存不同版本的软件部署的服务器和容器的部署服务器和容器信息和使用指令。具体的,通过界面化设置,配置发布部署服务器或容器的连接信息:连接地址;用户名和密码;或其他认证形式(如免密登录-rsa非对称加密密钥对)。
所述部署应用单元用于根据所述操作指令将不同版本的软件部署的服务器和容器的部署服务器和容器信息和使用指令发送给所述项目集成构建管理模块。具体的,将发布的部署服务器和容器信息(部署服务器和容器信息为连接信息,例如,服务器IP地址和端口)及指令,以统一接口形式提供给项目集成构建模块-部署管理单元使用。
使用指令如下:
登录指令:ssh主机IP地址;
远程拷贝:scp本地资源路径远程容器部署地址。
所述项目集成构建管理模块用于根据项目需求通过界面设置模块分别对所述版本控制器管理模块、所述集成构建管理模块、所述部署管理模块进行配置,获得版本控制器客户端的项目源码配置信息、语言集成构建工具的项目集成构建配置信息和项目部署的服务器和容器的配置信息,并根据所述项目源码配置信息、项目集成构建配置信息和项目部署的服务器和容器的配置信息分别调用版本控制器客户端的使用指令、语言集成构建工具的使用指令、软件部署的服务器和容器的使用指令,控制版本控制器管理模块、集成构建管理模块和部署管理模块通过版本控制器客户端进行项目源码下载更新,通过语言集成构建工具进行源码编译集成构建,获得软件发布包,通过软件部署的服务器和容器进行软件发布包的更新发布。即,项目集成构建管理模块主要针对具体软件项目,配置源码下载更新地址、集成构建工具、部署服务或容器连接,通过源码更新自动触发项目的源码下载、集成构建、软件部署发布。
所述项目集成构建管理模块,具体包括:项目源码配置单元、集成构建配置单元、部署配置单元、项目集成构建管理单元。
所述项目源码配置单元根据项目需求通过界面设置模块对所述版本控制器管理模块进行配置,获得版本控制器客户端的项目源码配置信息和源码更新频度。具体的,项目源码配置单元的界面图,如图2所示,通过界面设置模块,进行下列程序操作:
输入:应用版本控制器管理模块-应用单元提供版本控制器软件信息。配置:
项目名称、描述信息。
项目源码在集成构建平台上的存储地址。
选择源码版本控制器类型(git|svn|cvs)。
版本控制器服务器地址。
用户名/密码(runa/runa123,或其他形式的认证信息)。
检测源码更新频度(支持cron表达式,如:每月的1日的凌晨2点-0021*?*)。
输出:项目源码配置信息,并保存。
集成构建配置单元用于根据项目需求通过界面设置模块对所述集成构建管理模块进行配置,获得语言集成构建工具的项目集成构建配置信息。具体的,通过界面设置模块,进行下列程序操作:
输入:应用集成构建管理模块-应用单元提供集成构建信息。配置:
选择构建工具类型(如:gcc、maven、python等工具)。
指定项目构建文件地址(如:build.xml、pom.xml、configuration等文件)。
集成构建的组合命令。(如:clean|compile|package、clean|compile|test|package)。
输出:项目集成构建配置信息,并保存。
部署配置单元用于根据项目需求通过界面设置模块对所述部署管理模块进行配置,获得项目部署的服务器和容器的配置信息。具体的,通过界面设置模块,进行下列程序操作:
输入:应用部署管理模块-应用单元提供可部署的服务器或容器信息。配置:
选择发布部署的服务器或容器IP地址。
选择认证信息(用户名|密码,或其他安全认证信息)。
输出:项目部署服务器和容器的配置信息,并保存。
项目集成构建管理单元用于以源码更新频度为频率,根据所述项目源码配置信息、项目集成构建配置信息和项目部署的服务器和容器的配置信息分别调用版本控制器客户端的使用指令、语言集成构建工具的使用指令、软件部署的服务器和容器的使用指令,控制版本控制器管理模块、集成构建管理模块和部署管理模块通过版本控制器客户端进行项目源码下载更新,通过语言集成构建工具进行源码编译集成构建,获得软件发布包,通过软件部署的服务器和容器进行软件发布包的更新发布。具体的,通过界面设置模块,进行下列程序操作:
输入:上述(1)(2)(3)配置单元输出-项目源码配置信息、项目集成构建配置信息、项目部署服务器和容器的配置信息。
流程程序,处理如下:
定时调度:根据项目源码配置单元输出配置信息中更新频度cron表达式,定时调用版本控制器管理模块-应用单元提供的更新检测指令。如果无更新,不触发后续操作;如果有更新执行下列操作。
源码下载更新:根据项目集成构建管理模块-项目源码配置单元输出的源码配置信息,调用版本控制器管理模块-应用单元提供的下载、更新指令。
集成构建:根据项目集成构建管理模块-项目集成构建配置单元输出的集成构建配置信息,调用集成构建管理模块-应用单元提供的集成构建对应指令(clean、compile、package)。
发布部署:根据项目集成构建管理模块-项目部署配置单元输出的部署配置信息,调用集成构建管理模块-应用单元提供的集成构建对应指令。
输出:反馈最终是否成功。如果失败,提供日志查看路径。如果成功,提示成功发布。
一种自动化集成构建开发部署方法,所述开发部署方法应用所述开发部署平台,所述开发部署平台包括:界面设置模块、版本控制器管理模块、集成构建管理模块、部署管理模块和项目集成构建管理模块;所述部署方法包括如下步骤:
根据项目需求通过界面设置模块对所述版本控制器管理模块进行配置,获得版本控制器客户端的项目源码配置信息和源码更新频度。
根据项目需求通过界面设置模块对所述集成构建管理模块进行配置,获得语言集成构建工具的项目集成构建配置信息。
根据项目需求通过界面设置模块对所述部署管理模块进行配置,获得项目部署的服务器和容器的配置信息。
以源码更新频度为频率,根据所述项目源码配置信息、项目集成构建配置信息和项目部署的服务器和容器的配置信息分别调用版本控制器客户端的使用指令、语言集成构建工具的使用指令、软件部署的服务器和容器的使用指令,控制版本控制器管理模块、集成构建管理模块和部署管理模块通过版本控制器客户端进行项目源码下载更新,通过语言集成构建工具进行源码编译集成构建,获得软件发布包,通过软件部署的服务器和容器进行软件发布包的更新发布。具体包括:
以所述源码更新频度为频率,定时调用版本控制器客户端的使用指令。
根据版本控制器客户端的使用指令的更新检测指令,判断是否需要进行版本控制器客户端的更新,得到判断结果。
若所述判断结果表示不需要进行版本控制器客户端的更新,则返回步骤“以所述源码更新频度为频率,定时调用版本控制器客户端的使用指令”。
若所述判断结果表示需要进行版本控制器客户端的更新,则根据所述项目源码配置信息调用版本控制器客户端的使用指令,控制版本控制器管理模块通过版本控制器客户端进行项目源码下载更新;
根据项目集成构建配置信息调用语言集成构建工具的使用指令,控制集成构建管理模块通过语言集成构建工具进行源码编译集成构建,获得软件发布包;
根据项目部署的服务器和容器的配置信息调用软件部署的服务器和容器的使用指令,控制部署管理模块通过软件部署的服务器和容器进行软件发布包的更新发布。
本发明还提供一个具体的实施例,以对本发明的集成构建开发部署平台和方法进行说明。下面以微服务为例进行说明。
微服务主旨是将一个原本独立的系统拆分成多个小型服务,独立部署运行和扩展,实现软件解耦,有效的控制软件开发的风险。也就是说,原本一个单体系统会分解成多个小的微服务系统,开发集成构建部署发布。
1、集成构建环境准备:
(1)源码版本控制器客户端设置
通过界面设置,使用版本控制器管理模块-上传单元,上传版本控制器客户端程序,通过安装单元进行解压、安装、配置环境变量,应用单元将安装成功的程序,安装统一接口对外发布服务。例如:当前公司使用Git版本控制器,上传git客户端服务程序并安装配置,对外提git操作指令。
(2)集成构建工具设置
通过界面设置,使用集成构建管理模块-上传单元,上传集成构建工具,通过安装单元进行解压、安装、配置环境变量,应用单元将安装成功的程序,安装统一接口对外发布服务。例如:当前公司使用Maven构建工具,上传Maven工具并安装设置,对外提供操作指令mvn clean|compile|test|package。
(3)部署服务器或容器设置:
通过界面设置,使用集成构建管理模块-配置单元,通过ssh连接操作技术,配置所有的连接信息。例如:当前公司多个Docker容器部署,将配置多个对应的容器ssh连接(或免密连接信息)。
2、基于项目做具体配置:
通过界面化操作,使用项目集成构建模块管理模块:
(1)项目源码配置
通过界面化设置,通过项目集成构建管理模块-项目源码配置单元配置源码版本控制器及更新定时调度信息,例如:
选择git版本控制器;
版本控制器服务器地址:http://36.7.144.130:81/svn/runa/ms/monitor-service;
用户名/密码:runa/runa123;
源码更新定时任务调度频度设置,*/5****?(每5秒调度一次)。
(2)项目集成构建配置
项目集成构建管理模块-集成构建配置单元配置项目配置项目集成构建信息,如下:
选择Maven构建工具;
构建文件路径${project_path}/pom.xml;
集成构建选择命令:mvn clean install-Dmaven.test.skip=true;
(3)项目部署配置
项目集成构建管理模块-部署配置单元配置要发布的信息,例如:
Docker容器地址:192.168.1.65:2022;
用户名密码:runa/runa456;
部署路径:/;
启动:jar-jarmonitor-service。
与现有技术相比,本发明的有益效果是:
本发明提出了一种自动化集成构建开发部署平台及方法。所述集成构建开发部署平台包括:界面设置模块、版本控制器管理模块、集成构建管理模块、部署管理模块和项目集成构建管理模块;通过版本控制器管理模块对接各种版本控制器,通过集成构建管理模块对接各种编译器,通过部署管理模块巧妙使用ssh指令的通用性,可对接各种部署服务器和容器。项目集成构建管理模块定时调度集成构建相关指令,实现自动化下载源码、自动编译、自动打包、自动部署。避免了针对不同项目的集成构建开发部署平台的重复建设,实现了全自动化集成构建开发部署平台。
本说明书中等效实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,等效实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种自动化集成构建开发部署平台,其特征在于,所述集成构建开发部署平台包括:界面设置模块、版本控制器管理模块、集成构建管理模块、部署管理模块和项目集成构建管理模块;
所述界面设置模块分别与所述版本控制器管理模块、集成构建管理模块、部署管理模块和项目集成构建管理模块连接;所述界面设置模块用于接收技术人员对版本控制器管理模块、集成构建管理模块、部署管理模块和项目集成构建管理模块的配置操作,并生成操作指令;
所述版本控制器管理模块、所述集成构建管理模块、所述部署管理模块分别与所述项目集成构建管理模块连接;
所述版本控制器管理模块用于根据所述操作指令对不同版本的版本控制器客户端进行安装和更新管理,获得不同版本的版本控制器客户端的版本控制器信息和使用指令,并将不同版本的版本控制器客户端的版本控制器信息和使用指令发送给所述项目集成构建管理模块;
所述集成构建管理模块用于根据所述操作指令对不同版本的语言集成构建工具进行安装和更新管理,获得不同版本的语言集成构建工具的集成构建信息和使用指令,并将不同版本的语言集成构建工具的集成构建信息和使用指令发送给所述项目集成构建管理模块;
所述部署管理模块用于根据所述操作指令通过SSH客户端软件对不同版本的软件部署的服务器和容器进行配置管理;获得不同版本的软件部署的服务器和容器的部署服务器和容器信息和使用指令,并将不同版本的软件部署的服务器和容器的部署服务器和容器信息和使用指令发送给所述项目集成构建管理模块;
所述项目集成构建管理模块用于根据项目需求通过界面设置模块分别对所述版本控制器管理模块、所述集成构建管理模块、所述部署管理模块进行配置,获得版本控制器客户端的项目源码配置信息、语言集成构建工具的项目集成构建配置信息和项目部署的服务器和容器的配置信息,并根据所述项目源码配置信息、项目集成构建配置信息和项目部署的服务器和容器的配置信息分别调用版本控制器客户端的使用指令、语言集成构建工具的使用指令、软件部署的服务器和容器的使用指令,控制版本控制器管理模块、集成构建管理模块和部署管理模块通过版本控制器客户端进行项目源码下载更新,通过语言集成构建工具进行源码编译集成构建,获得软件发布包,通过软件部署的服务器和容器进行软件发布包的更新发布。
2.根据权利要求1所述的自动化集成构建开发部署平台,其特征在于,所述版本控制器管理模块,具体包括:版本控制器上传单元、版本控制器安装单元和版本控制器应用单元;
所述版本控制器上传单元用于根据所述操作指令将不同版本的版本控制器客户端上传至指定路径下;
所述版本控制器安装单元用于根据所述操作指令对存储至指定路径下的版本控制器客户端进行安装,并将安装完成的不同版本的版本控制器客户端的版本控制器信息和使用指令进行存储;
所述版本控制器应用单元用于根据所述操作指令将不同版本的版本控制器客户端的版本控制器信息和使用指令发送给所述项目集成构建管理模块。
3.根据权利要求1所述的自动化集成构建开发部署平台,其特征在于,所述集成构建管理模块,具体包括:集成构建上传单元、集成构建安装单元和集成构建应用单元;
所述集成构建上传单元用于根据所述操作指令将不同版本的语言集成构建工具上传至指定路径下;
所述集成构建安装单元用于根据所述操作指令对存储至指定路径下的语言集成构建工具进行安装,并将安装完成的不同版本的语言集成构建工具的集成构建信息和使用指令进行存储;
所述集成构建应用单元用于根据所述操作指令将不同版本的语言集成构建工具的集成构建信息和使用指令发送给所述项目集成构建管理模块。
4.根据权利要求1所述的自动化集成构建开发部署平台,其特征在于,所述部署管理模块,具体包括:SSH客户端软件、部署配置单元和部署应用单元;
所述部署配置单元用于根据所述操作指令通过SSH客户端软件对不同版本的软件部署的服务器和容器进行配置,并保存不同版本的软件部署的服务器和容器的部署服务器和容器信息和使用指令;
所述部署应用单元用于根据所述操作指令将不同版本的软件部署的服务器和容器的部署服务器和容器信息和使用指令发送给所述项目集成构建管理模块。
5.根据权利要求1所述的自动化集成构建开发部署平台,其特征在于,所述项目集成构建管理模块,具体包括:项目源码配置单元、集成构建配置单元、部署配置单元、项目集成构建管理单元;
所述项目源码配置单元根据项目需求通过界面设置模块对所述版本控制器管理模块进行配置,获得版本控制器客户端的项目源码配置信息和源码更新频度;
集成构建配置单元用于根据项目需求通过界面设置模块对所述集成构建管理模块进行配置,获得语言集成构建工具的项目集成构建配置信息;
部署配置单元用于根据项目需求通过界面设置模块对所述部署管理模块进行配置,获得项目部署的服务器和容器的配置信息;
项目集成构建管理单元用于以源码更新频度为频率,根据所述项目源码配置信息、项目集成构建配置信息和项目部署的服务器和容器的配置信息分别调用版本控制器客户端的使用指令、语言集成构建工具的使用指令、软件部署的服务器和容器的使用指令,控制版本控制器管理模块、集成构建管理模块和部署管理模块通过版本控制器客户端进行项目源码下载更新,通过语言集成构建工具进行源码编译集成构建,获得软件发布包,通过软件部署的服务器和容器进行软件发布包的更新发布。
6.根据权利要求1所述的自动化集成构建开发部署平台,其特征在于,所述版本控制器管理模块、所述集成构建管理模块、所述部署管理模块与所述项目集成构建管理模块连接的接口形式相同。
7.一种自动化集成构建开发部署方法,其特征在于,所述集成构建开发部署方法应用权利要求1-6任一项所述的集成构建开发部署平台,所述集成构建开发部署平台包括:界面设置模块、版本控制器管理模块、集成构建管理模块、部署管理模块和项目集成构建管理模块;所述部署方法包括如下步骤:
根据项目需求通过界面设置模块对所述版本控制器管理模块进行配置,获得版本控制器客户端的项目源码配置信息和源码更新频度;
根据项目需求通过界面设置模块对所述集成构建管理模块进行配置,获得语言集成构建工具的项目集成构建配置信息;
根据项目需求通过界面设置模块对所述部署管理模块进行配置,获得项目部署的服务器和容器的配置信息;
以源码更新频度为频率,根据所述项目源码配置信息、项目集成构建配置信息和项目部署的服务器和容器的配置信息分别调用版本控制器客户端的使用指令、语言集成构建工具的使用指令、软件部署的服务器和容器的使用指令,控制版本控制器管理模块、集成构建管理模块和部署管理模块通过版本控制器客户端进行项目源码下载更新,通过语言集成构建工具进行源码编译集成构建,获得软件发布包,通过软件部署的服务器和容器进行软件发布包的更新发布。
8.根据权利要求7所述的自动化集成构建开发 部署方法,其特征在于,所述以源码更新频度为频率,根据所述项目源码配置信息、项目集成构建配置信息和项目部署的服务器和容器的配置信息分别调用版本控制器客户端的使用指令、语言集成构建工具的使用指令、软件部署的服务器和容器的使用指令,控制版本控制器管理模块、集成构建管理模块和部署管理模块通过版本控制器客户端进行项目源码下载更新,通过语言集成构建工具进行源码编译集成构建,获得软件发布包,通过软件部署的服务器和容器进行软件发布包的更新发布,具体包括:
以所述源码更新频度为频率,定时调用版本控制器客户端的使用指令;
根据版本控制器客户端的使用指令的更新检测指令,判断是否需要进行版本控制器客户端的更新,得到判断结果;
若所述判断结果表示不需要进行版本控制器客户端的更新,则返回步骤“以所述源码更新频度为频率,定时调用版本控制器客户端的使用指令”;
若所述判断结果表示需要进行版本控制器客户端的更新,则根据所述项目源码配置信息调用版本控制器客户端的使用指令,控制版本控制器管理模块通过版本控制器客户端进行项目源码下载更新;
根据项目集成构建配置信息调用语言集成构建工具的使用指令,控制集成构建管理模块通过语言集成构建工具进行源码编译集成构建,获得软件发布包;
根据项目部署的服务器和容器的配置信息调用软件部署的服务器和容器的使用指令,控制部署管理模块通过软件部署的服务器和容器进行软件发布包的更新发布。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010298529.1A CN111506322B (zh) | 2020-04-16 | 2020-04-16 | 一种自动化集成构建开发部署平台及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010298529.1A CN111506322B (zh) | 2020-04-16 | 2020-04-16 | 一种自动化集成构建开发部署平台及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111506322A CN111506322A (zh) | 2020-08-07 |
CN111506322B true CN111506322B (zh) | 2023-03-14 |
Family
ID=71867410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010298529.1A Active CN111506322B (zh) | 2020-04-16 | 2020-04-16 | 一种自动化集成构建开发部署平台及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111506322B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112083948B (zh) * | 2020-08-28 | 2022-08-09 | 广州九尾信息科技有限公司 | 一种基于数据配置化的自动化构建部署方法及工具 |
CN111930423B (zh) * | 2020-09-17 | 2021-08-24 | 四川新网银行股份有限公司 | 一种基于微服务的软件发布版本追溯的方法 |
CN112230981B (zh) * | 2020-10-10 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种版本构建自动化的实现方法及装置 |
CN112558972A (zh) * | 2020-12-25 | 2021-03-26 | 北京百度网讯科技有限公司 | 应用管理平台、系统、方法、存储介质和程序产品 |
CN112925555A (zh) * | 2021-02-24 | 2021-06-08 | 成都新希望金融信息有限公司 | 模型管理方法、装置、设备及存储介质 |
CN113110872B (zh) * | 2021-05-18 | 2023-03-28 | 绿漫科技有限公司 | 一种Android自动化配置构建平台及操作方法 |
CN113590182A (zh) * | 2021-08-11 | 2021-11-02 | 广州九尾信息科技有限公司 | 一种基于Git的版本风险管理把控方法、系统及存储介质 |
CN117492869B (zh) * | 2023-11-17 | 2024-06-21 | 北京领雁科技股份有限公司 | 一种可视化自动部署服务系统和方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104793946A (zh) * | 2015-04-27 | 2015-07-22 | 广州杰赛科技股份有限公司 | 基于云计算平台的应用部署方法和系统 |
CN108196825A (zh) * | 2017-12-28 | 2018-06-22 | 新华三大数据技术有限公司 | 软件项目的构建方法及系统 |
CN108388445A (zh) * | 2018-03-09 | 2018-08-10 | 北京四方继保自动化股份有限公司 | 一种基于“平台+应用”模式的持续集成方法 |
CN108647037A (zh) * | 2018-04-28 | 2018-10-12 | 新疆熙菱信息技术股份有限公司 | 基于shell脚本的自动化部署方法和系统 |
CN110489132A (zh) * | 2019-08-08 | 2019-11-22 | 西藏宁算科技集团有限公司 | 一种云计算环境下的分布式软件部署方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9442744B2 (en) * | 2012-02-23 | 2016-09-13 | Microsoft Technology Licensing, Llc | Multilingual build integration for compiled applications |
US10656927B2 (en) * | 2017-10-27 | 2020-05-19 | Intuit Inc. | Methods, systems, and computer program products for automating releases and deployment of a softawre application along the pipeline in continuous release and deployment of software application delivery models |
-
2020
- 2020-04-16 CN CN202010298529.1A patent/CN111506322B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104793946A (zh) * | 2015-04-27 | 2015-07-22 | 广州杰赛科技股份有限公司 | 基于云计算平台的应用部署方法和系统 |
CN108196825A (zh) * | 2017-12-28 | 2018-06-22 | 新华三大数据技术有限公司 | 软件项目的构建方法及系统 |
CN108388445A (zh) * | 2018-03-09 | 2018-08-10 | 北京四方继保自动化股份有限公司 | 一种基于“平台+应用”模式的持续集成方法 |
CN108647037A (zh) * | 2018-04-28 | 2018-10-12 | 新疆熙菱信息技术股份有限公司 | 基于shell脚本的自动化部署方法和系统 |
CN110489132A (zh) * | 2019-08-08 | 2019-11-22 | 西藏宁算科技集团有限公司 | 一种云计算环境下的分布式软件部署方法及系统 |
Non-Patent Citations (1)
Title |
---|
Windows平台的软件自动构建与发布技术研究;于红雨等;《成组技术与生产现代化》;20180628(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111506322A (zh) | 2020-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111506322B (zh) | 一种自动化集成构建开发部署平台及方法 | |
US9760343B2 (en) | Application builder based on metadata | |
KR101831430B1 (ko) | 인프라의 설치와 구성을 자동화하는 장치 및 그 방법 | |
US20040060035A1 (en) | Automated method and system for building, deploying and installing software resources across multiple computer systems | |
NO312269B1 (no) | Fremgangsmåte for automatisering av programvareoppgradering | |
CN105786564A (zh) | 一种Oracle的自动化定制安装部署方法 | |
CN113434158B (zh) | 一种大数据组件的自定义管理方法、装置、设备及介质 | |
US10545747B2 (en) | Application module deployment | |
CN109558147A (zh) | 一种基于Jenkins和Gitlab的持续集成平台构建方法 | |
CN110888655A (zh) | 一种应用发布方法及装置 | |
EP2503449A2 (en) | Single development test environment | |
CN106020896A (zh) | 一种基于私有云的自动化程序发布方法 | |
CN104866338A (zh) | 远程部署软件的方法和装置 | |
US10868714B2 (en) | Configurable device status | |
CN113779477A (zh) | 一种基于PaaS云平台的流水线发布方法及系统 | |
CN113626036A (zh) | 一种基于Jenkins的代码集成管理方法和系统 | |
CN111949276B (zh) | 一种基于容器方式自动部署应用程序的系统及方法 | |
CN112564989A (zh) | 应用部署方法和装置 | |
CN115718606A (zh) | 一种服务器自动化持续集成与部署的方法及系统 | |
CN116820493A (zh) | 一种镜像文件部署方法、系统、设备及存储介质 | |
CN110795105A (zh) | 一种配电自动化主站系统自动编译部署方法与系统 | |
CN104572236B (zh) | 一种Taurus项目快速搭建构造方法 | |
CN111541565A (zh) | 一种基于通信拓扑结构的应用服务可视化快速部署方法 | |
US11249742B1 (en) | Systems and methods for zero-touch infrastructure build automation | |
CN113886008A (zh) | 一种虚拟机管理方法、系统、设备以及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |