CN113391827B - 一种基于自动化脚本的应用软件发布方法及系统 - Google Patents
一种基于自动化脚本的应用软件发布方法及系统 Download PDFInfo
- Publication number
- CN113391827B CN113391827B CN202110943599.2A CN202110943599A CN113391827B CN 113391827 B CN113391827 B CN 113391827B CN 202110943599 A CN202110943599 A CN 202110943599A CN 113391827 B CN113391827 B CN 113391827B
- Authority
- CN
- China
- Prior art keywords
- software
- script
- acquiring
- library
- automation
- 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/60—Software deployment
- G06F8/65—Updates
-
- 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
本发明公开了一种基于自动化脚本的应用软件发布方法及系统,包括:获取到待发布软件的软件运行环境、软件开发语言和软件技术架构;配置待发布软件的目标服务器;获取软件运行环境相关的目标支撑组件,从支撑组件库中获取匹配的自动化脚本,通过运行自动化脚本在目标服务器上安装软件运行环境;从自动化脚本库中分别获取与软件开发语言匹配的开发语言类脚本和与软件技术架构匹配的技术架构类脚本,通过运行开发语言类脚本和技术架构类脚本在目标服务器上发布待发布软件。该方法及系统通过自动化脚本进行软件的运行环境安装、自动化发布和自动化部署,能够确保软件运行的安全性和可追溯性,且适应于各类软件。
Description
技术领域
本发明涉及软件发布技术领域,尤其涉及一种基于自动化脚本的应用软件发布方法及系统。
背景技术
现有的一些软件自动化发布方法和系统,都需要为每个软件定制解决方案,也即为每个软件搭建运行系统和自动化运维所需的各种配置,无法自动适应各类软件的自动发布运维需求。
在自动化运维运维时,通常使用自动化运维工具例如SaltStack、Ansible,需要运维人员大量编写常见的运维脚本,当出现新技术或新架构时,需要重新编写或改进运行脚本,增加了脚本编写及调试的工作量,降低了软件运维效率。此外,软件运维管理的规范性取决于运维人员的个人技能与职业素养,若软件运维管理不规范,则可以对运维脚本不加以审查随意修改,甚至对待安装软件不加以病毒检测直接安装,容易导致运维事件难以追溯的问题。
发明内容
本发明实施例的目的在于提供一种基于自动化脚本的应用软件发布方法及系统,以解决背景技术中的上述至少一个问题。
基于上述目的,本发明实施例提供一种基于自动化脚本的应用软件发布方法,包括:
获取待发布软件的软件基本信息;其中,所述软件基本信息包括软件运行环境、软件开发语言和软件技术架构;
配置所述待发布软件的目标服务器;
获取所述软件运行环境相关的目标支撑组件,从支撑组件库中获取匹配的自动化脚本,通过运行所述自动化脚本在所述目标服务器上安装所述软件运行环境;
从自动化脚本库中分别获取与所述软件开发语言匹配的开发语言类脚本,以及与所述软件技术架构匹配的技术架构类脚本,通过运行所述开发语言类脚本和所述技术架构类脚本在所述目标服务器上发布所述待发布软件。
优选地,所述基于自动化脚本的应用软件发布方法,还包括:
接收软件更新升级后发送的运维指令,根据所述运维指令运行获取的软件运维脚本将升级软件更新至所述目标服务器;
获取溯源日志,根据所述溯源日志进行溯源追踪;其中,所述溯源日志包含安装日志、发布日志、运维日志。
优选地,所述接收软件更新升级后发送的运维指令,根据所述运维指令运行获取的软件运维脚本将升级软件更新至所述目标服务器,包括:
接收包含运维参数的运维指令;其中,所述运维参数包含所述目标服务器、原软件对应的升级软件等;
获取软件运维脚本,将所述目标服务器、原软件对应的升级软件添加至所述软件运维脚本;
通过运行所述软件运维脚本将所述升级软件更新至所述目标服务器,并获取所述升级软件的目录结构;
在接收到与所述目录结构相关的控制指令时,对所述升级软件的目录结构执行对应的控制操作,并获取所述升级软件的操作日志;
在所述目标服务器重启之后,获取所述升级软件的运维日志。
优选地,所述基于自动化脚本的应用软件发布方法,还包括:
获取应用软件的各类自动化脚本,构建自动化脚本库;其中,所述各类自动化脚本包含运行环境类脚本、开发语言类脚本和技术架构类脚本;
获取各类支撑组件以及关联的自动化脚本,构建支撑组件库。
优选地,在所述各类支撑组件包含常用类支撑组件和扩展类支撑组件时,所述获取各类支撑组件以及关联的自动化脚本,构建支撑组件库,包括:
获取常用类支撑组件,从所述自动化脚本库中获取匹配的环境运行类脚本,根据所述常用类支撑组件以及匹配的所述环境运行类脚本,构建支撑组件库;
获取从本地资源库上传的支撑组件文件或者从远程资源库下载的支撑组件文件;其中,所述支撑组件文件包含扩展类支撑组件以及与所述扩展类支撑组件关联的自动化脚本;
检测所述支撑组件库中是否存在与所述扩展类支撑组件相同的所述常用类支撑组件;
若存在,则检测所述扩展类支撑组件是否存在病毒;
若所述扩展类支撑组件不存在病毒,则将所述扩展类支撑组件以及关联的自动化脚本,存储至所述支撑组件库中。
优选地,所述获取所述软件运行环境相关的目标支撑组件,从支撑组件库中获取匹配的自动化脚本,通过运行所述自动化脚本在所述目标服务器上安装所述软件运行环境,包括:
获取与所述软件运行环境相关的目标支撑组件,确定所述目标支撑组件的安装参数;
从支撑组件库获取与所述目标支撑组件匹配的自动化脚本,并将所述安装参数配置到所述自动化脚本中;
通过运行所述自动化脚本在所述目标服务器上安装所述软件运行环境,并获取所述软件运行环境的安装日志。
优选地,所述从自动化脚本库中分别获取与所述软件开发语言匹配的开发语言类脚本,以及与所述软件技术架构匹配的技术架构类脚本,通过运行所述开发语言类脚本和所述技术架构类脚本在所述目标服务器上发布所述待发布软件,包括:
检测自动化脚本库是否存在与所述软件开发语言匹配的开发语言类脚本,以及与所述软件技术架构匹配的技术架构类脚本;
若不存在与所述软件开发语言匹配的开发语言类脚本,和/或与所述软件技术架构匹配的技术架构类脚本,则生成包含所述软件开发语言和/或所述软件技术架构的脚本定制请求,并获取响应所述脚本定制请求返回的开发语言类脚本和/或技术架构类脚本;
确定所述待发布软件的发布参数,并将所述发布参数配置到所述开发语言类脚本和所述技术架构类脚本中;
通过运行所述开发语言类脚本和所述技术架构类脚本在所述目标服务器发布所述待发布软件,并获取所述待发布软件的发布日志。
此外,本发明实施例还提供一种基于自动化脚本的应用软件发布系统,包括:
软件获取模块,用于获取待发布软件的软件基本信息;其中,所述软件基本信息包括软件运行环境、软件开发语言和软件技术架构;
服务器配置模块,用于配置所述待发布软件的目标服务器;
运行环境安装模块,用于获取所述软件运行环境相关的目标支撑组件,从支撑组件库中获取匹配的自动化脚本,通过运行所述自动化脚本在所述目标服务器上安装所述软件运行环境;
软件发布模块,用于从自动化脚本库中分别获取与所述软件开发语言匹配的开发语言类脚本,以及与所述软件技术架构匹配的技术架构类脚本,通过运行所述开发语言类脚本和所述技术架构类脚本在所述目标服务器上发布所述待发布软件。
优选地,所述基于自动化脚本的应用软件发布系统,还包括:
软件运维模块,用于接收软件更新升级后发送的运维指令,根据所述运维指令运行获取的软件运维脚本将升级软件更新至所述目标服务器;
溯源分析模块,用于获取溯源日志,根据所述溯源日志进行溯源追踪;其中,所述溯源日志包含安装日志、发布日志、运维日志。
优选地,所述基于自动化脚本的应用软件发布系统,还包括:
脚本配置模块,用于获取应用软件的各类自动化脚本,构建自动化脚本库;其中,所述各类自动化脚本包含运行环境类脚本、开发语言类脚本和技术架构类脚本;
支撑组件配置模块,用于获取各类支撑组件以及关联的自动化脚本,构建支撑组件库。
由上述可知,本发明实施例提供的基于自动化脚本的应用软件发布方法及系统,在获取到待发布软件的软件运行环境、软件开发语言和软件技术架构之后,首先配置待发布软件的目标服务器,然后获取软件运行环境相关的目标支撑组件,从支撑组件库中获取匹配的自动化脚本,通过运行自动化脚本在目标服务器上安装软件运行环境,最后从自动化脚本库中分别获取与软件开发语言匹配的开发语言类脚本,以及与软件技术架构匹配的技术架构类脚本,通过运行开发语言类脚本和技术架构类脚本在目标服务器上发布待发布软件。该方法及系统通过自动化脚本进行软件的运行环境安装、自动化发布和自动化部署,适应于各类开发语言、技术架构的软件自动化发布运维,同时可以有效避免人工操作目标服务器导致的不安全性,并确保所有操作过程的可追溯性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例中基于自动化脚本的应用软件发布方法的流程图一;
图2为本发明一实施例中基于自动化脚本的应用软件发布方法的流程图二;
图3为本发明一实施例中基于自动化脚本的应用软件发布方法的流程图三;
图4为本发明一实施例中基于自动化脚本的应用软件发布系统的结构示意图一;
图5为本发明一实施例中基于自动化脚本的应用软件发布系统的结构示意图二。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
如图1所示,本发明一实施例提供的一种基于自动化脚本的应用软件发布方法,具体包括以下步骤:
步骤S10,获取待发布软件的软件基本信息;其中,软件基本信息包括软件运行环境、软件开发语言和软件技术架构。
作为优选,在接收到包含发布信息的自动化发布指令时,通过解析自动化发布指令获取发布信息,该发布信号包含待发布软件以及待发布软件的软件运行环境、软件开发语言和软件技术架构等信息。
步骤S20,配置待发布软件的目标服务器。
可理解的,对于一个新的应用软件(即待发布软件),根据待发布软件的软件基本信息为待发布软件配置目标服务器,并导入目标服务器的信息,进而根据目标服务器的信息在目标服务器执行自动化脚本任务,以达到待发布软件自动化发布和自动化运维的目的。其中,目标服务器的信息包括但不限于目标服务器的IP地址、授权账号和授权账号关联的登录密码等。
步骤S30,获取与软件运行环境相关的目标支撑组件,从支撑组件库中获取匹配的自动化脚本,通过运行自动化脚本在目标服务器上安装软件运行环境。
可理解的,对于待发布软件运行所需的各类支撑组件(即与软件运行环境相关的目标支撑组件),通过自动化脚本进行安装,从而将软件运行环境自动安装在目标服务器上,整个安装过程无需人工干预,可以确保软件运行环境安全,为待发布软件的自动化发布和安全运维提供运行环境支撑。
作为优选,步骤S30包括以下步骤:
步骤S301,获取与软件运行环境相关的目标支撑组件,确定目标支撑组件的安装参数。其中,目标支撑组件的安装参数包括但不限于安装位置、安装版本等;该安装位置可以为默认安装位置,也可以为自定义安装位置。
步骤S302,从支撑组件库获取与目标支撑组件匹配的自动化脚本,并将安装参数配置到自动化脚本中。
其中,支撑组件库存储有各类支撑组件以及与各类支撑组件关联的自动化脚本;各类支撑组件包含常用类支撑组件和扩展类支撑组件;与各类支撑组件关联的自动化脚本包含安装脚本和卸载脚本等。
也即,首先在支撑组件库中查询与目标支撑组件匹配的支撑组件,再根据前述支撑组件关联的自动化脚本得到目标支撑组件匹配的自动化脚本,最后将安装参数自动配置到与目标支撑组件匹配的自动化脚本。
步骤S303,通过运行自动化脚本在目标服务器上安装软件运行环境,并获取软件运行环境的安装日志。
其中,安装日志包含但不限于安装时间、安装状态和脚本编号等;该安装状态包含安装成功和安装失败两种。
也即,在将安装参数自动配置到与目标支撑组件匹配的自动化脚本之后,通过运行与目标支撑组件匹配的自动化脚本,以在目标服务器上完成软件运行环境的自动化安装,同时获取安装时间、安装状态、脚本编号、软件运行环境的名称等信息,生成可溯源的安装日志,并将安装日志存储至本地数据库中。
且作为优选,为了卸载不需要的软件运行环境,步骤S30还可以包括以下步骤:
步骤S304,接收包含卸载信息的卸载指令,解析卸载指令获取卸载信息。
步骤S305,根据卸载信息确定待卸载的目标支撑组件,并获取待卸载的目标支撑组件的卸载脚本。
步骤S306,通过执行卸载脚本在目标服务器上卸载相应的软件运行环境,并更新安装日志。
具体的,在接收到包含卸载信息的卸载指令时,通过解析卸载指令得到卸载信息,该卸载信息可以为待卸载的软件运行环境,也可以为待卸载的目标支撑组件以及对应的卸载脚本;若卸载信息为待卸载的软件运行环境,则先确定待卸载的软件运行环境相关的目标支撑组件,再从支撑组件库获取与目标支撑组件匹配的卸载脚本,最后通过运行卸载脚本在目标服务器上卸载软件运行环境;而若卸载信息为待卸载的目标支撑组件以及对应的卸载脚本,则直接通过运行卸载脚本在目标服务器上卸载目标支撑组件所支撑的软件运行环境。进一步地,获取卸载信息,并根据卸载信息更新可溯源的安装日志。其中,卸载信息包含但不限于卸载时间、卸载脚本编号等。
可理解的,本实施例通过上述步骤实现软件运行环境的自动化安装并生成可溯源的安装日志,为待发布软件的自动化发布提供运行环境。
步骤S40,从自动化脚本库中获取与软件开发语言匹配的开发语言类脚本,以及与软件技术架构匹配的技术架构类脚本,通过运行开发语言类脚本和技术架构类脚本在目标服务器上发布待发布软件。
可理解的,对于待发布软件的软件开发语言和软件技术架构,分别通过开发语言类脚本、技术架构类脚本进行安装,从而将待发布软件自动发布在目标服务器上,可以确保待发布软件的发布版本一致,且整个发布过程无需人工操作,可以规避人工操作带来的风险。
作为优选,步骤S40包括以下步骤:
步骤S401,检测自动化脚本库是否存在与软件开发语言匹配的开发语言类脚本,以及与软件技术架构匹配的技术架构类脚本。
步骤S402,若不存在与软件开发语言匹配的开发语言类脚本,和/或与软件技术架构匹配的技术架构类脚本,则生成包含软件开发语言和/或软件技术架构的脚本定制请求,并获取响应脚本定制请求返回的开发语言类脚本和/或技术架构类脚本。
在本实施例中,支撑组件库中存储有应用软件的各类自动化脚本,包含环境运行类脚本、开发语言类脚本和技术架构类脚本。可理解的,针对软件开发语言和软件技术架构,首先设置两条脚本获取线程,包含第一脚本获取线程和第二脚本获取线程。
然后,通过第一脚本获取线程检测自动化脚本库是否存在与软件开发语言匹配的开发语言类脚本,若存在,则直接获取匹配的开发语言类脚本即可,若不存在,则生成包含软件开发语言的脚本定制请求,并将包含软件开发语言的脚本定制请求发送至脚本维护后端,并接脚本维护后端响应包含软件开发语言的脚本定制请求之后返回的开发语言类脚本。
同时,通过第二脚本获取线程检测自动化脚本库是否存在与软件技术架构匹配的技术架构类脚本,若存在,则直接获取匹配的技术架构类脚本即可,若不存在,则生成包含软件技术架构的脚本定制请求,并将包含软件技术架构的脚本定制请求发送至脚本维护后端,并接收脚本维护后端响应包含软件技术架构的脚本定制请求之后返回的技术架构类脚本。
步骤S403,确定待发布软件的发布参数,并将发布参数配置到开发语言类脚本和技术架构类脚本中。其中,待发布软件的发布参数包含但不限于发布位置、发布版本等。
步骤S404,通过运行开发语言类脚本和技术架构类脚本在目标服务器发布待发布软件,并获取待发布软件的发布日志。
其中,发布日志包含发布时间、发布状态、脚本编号、软件名称、软件编号和软件版本等;该发布状态包含发布成功和发布失败两种。
也即,在将发布参数自动配置到开发语言类脚本和技术架构类脚本之后,通过运行开发语言类脚本和技术架构类脚本,以在目标服务器上完成待发布软件的自动化发布,同时获取发布时间、发布状态、脚本编号、软件名称、软件编号和软件版本等信息,生成可溯源的发布日志,并将发布日志存储到本地数据库中。
由上述可知,本实施例提供的基于自动化脚本的应用软件发布方法,在获取到待发布软件的软件运行环境、软件开发语言和软件技术架构之后,首先配置待发布软件的目标服务器,然后获取软件运行环境相关的目标支撑组件,从支撑组件库中获取匹配的自动化脚本,通过运行自动化脚本在目标服务器上安装软件运行环境,最后从自动化脚本库中分别获取与软件开发语言匹配的开发语言类脚本,以及与软件技术架构匹配的技术架构类脚本,通过运行开发语言类脚本和技术架构类脚本在目标服务器上发布待发布软件。该方法通过自动化脚本进行软件的运行环境安装、自动化发布和自动化部署,适应于各类开发语言、技术架构的软件自动化发布运维,同时可以有效避免人工操作目标服务器导致的不安全性,并确保所有操作过程的可追溯性。
在一可选实施例中,如图2所示,该基于自动化脚本的应用软件发布方法还包括以下步骤:
步骤S50,接收软件更新升级后发送的运维指令,根据运维指令运行获取的软件运维脚本将升级软件更新至目标服务器。
可理解的,对于升级软件,在接收到运维指令后,通过软件运维脚本将升级软件更新在目标服务器上,可以避免软件运维过程中人工操作带来的安全风险,从而确保软件运维过程安全可控。
作为优选,步骤S50包括以下步骤:
步骤S501,接收包含运维参数的运维指令;其中,运维参数包含目标服务器、原软件对应的升级软件等。
步骤S502,获取软件运维脚本,将目标服务器、原软件对应的升级软件添加至软件运维脚本。
步骤S503,通过运行软件运维脚本将升级软件更新至目标服务器,并获取升级软件的目录结构。
步骤S504,在接收到与目录结构相关的控制指令时,对升级软件的目录结构执行对应的控制操作,并获取升级软件的操作日志。其中,控制指令包含新增指令、删除指令和替换指令等;控制操作包含与新增指令对应的新增操作、与删除指令对应的删除操作、与替换指令对应的替换操作等;操作日志包含操作时间、控制操作的类型、操作状态等,该操作状态包含操作成功和操作异常两种。
步骤S505,在目标服务器重启之后,获取升级软件的运维日志。其中,运维日志包含控制运维时间、脚本编号、运维状态、升级软件的名称、编号和版本等。
可理解的,本实施例通过上述步骤可以确保软件运维过程可控,降低运维风险。
步骤S60,获取溯源日志,根据溯源日志进行溯源追踪;其中,溯源日志包含安装日志、发布日志、操作日志和运维日志。
可理解的,本实施例获取软件运行环境自动化安装过程的安装日志,应用软件自动化发布过程的发布日志以及应用软件自动化运维过程的运维日志等,进而根据安装日志、发布日志和运维日志对软件运行环境的自动化安装、应用软件的自动化发布、应用软件的自动化运维等操作过程进行可溯源追踪,进而可以分析各操作过程所造成的影响,特别是对错误软件行为追踪提供依据。
作为优选,步骤S60包括以下步骤:
首先,接收包含日志查询信息的日志查询请求,根据日志查询信息获取目标溯源日志;其中,日志查询信息包含应用软件、创建时间、操作类型和日志类型。
然后,接收辅助分析指令,根据辅助分析指令确定目标分析范围,根据目标分析范围和目标溯源日志发送至用户侧,以供用户侧进行溯源日志分析。
可理解的,本实施例通过上述步骤有利于提高溯源日志的分析效率,快速定位溯源问题,为错误软件追责提供依据。
在一可选实施例中,如图3所示,该基于自动化脚本的应用软件发布方法还包括以下步骤:
步骤S70,获取应用软件的各类自动化脚本,构建自动化脚本库;其中,各类自动化脚本包含运行环境类脚本、开发语言类脚本和技术架构类脚本。
作为优选,首先获取各种软件运行环境的常见的自动化脚本,例如,Linux操作系统下JDK、MySQL、Docker、Redis、MongoDB、FastDFS、PHP等支撑组件的安装脚本与卸载脚本,Windows操作系统下JDK、Tomcat、IIS等支撑组件的安装脚本与卸载脚本。其中,上述涉及的部分支撑组件的解释说明如表1所示。
表1
同时,获取各种软件开发语言和软件技术架构的通用的自动化脚本。
然后,分别将各种软件运行环境、软件开发语言和软件技术架构的自动化脚本,标记为运行环境类脚本、开发语言类脚本和技术架构类脚本,并构建自动化脚本库。
且作为优选,为了适应新技术以及优化脚本,在接收到脚本更新指令之后,根据脚本更新指令从预设的脚本中心库获取最新发布的新脚本以及新脚本的脚本信息,并从自动化脚本库中获取与新脚本匹配的原脚本,检测新脚本的脚本信息与原脚本的脚本信息是否发生变化,若是,则将自动化脚本库中的原脚本替换为新脚本,以实现原脚本的自动更新,降低用户定制脚本的需求。
步骤S80,获取各类支撑组件以及关联的自动化脚本,构建支撑组件库。
其中,各类支撑组件包含常用类支撑组件和扩展类支撑组件。
可理解的,首先分别获取常用的支撑组件以及关联的自动化脚本,以及自定义的支撑组件以及关联的自动化脚本,然后分别将常用的支撑组件、自定义的支撑组件标记为常用类支撑组件和扩展类支撑组件,并将常用类支撑组件、扩展类支撑组件与对应的自动化脚本进行关联之后,构建支撑组件库。可选地,常用的支撑组件可以是使用频次大于设定频次阈值的支撑组件。
作为优选,在各类支撑组件包含常用类支撑组件和扩展类支撑组件,步骤S80包括以下步骤:
步骤S801,获取常用类支撑组件,从自动化脚本库中获取匹配的环境运行类脚本,根据常用类支撑组件以及匹配的环境运行类脚本,构建支撑组件库。
也即,常用类支撑组件的自动化脚本均已存储在自动化脚本库中。
步骤S802,获取从本地资源库上传的支撑组件文件或者从远程资源库下载的支撑组件文件;其中,支撑组件文件包含扩展类支撑组件以及与扩展类支撑组件关联的自动化脚本。
也即,本地资源库中预先存储有从远程资源库下载的支撑组件以及支撑组件关联的自动化脚本。
步骤S803,检测步骤S801构建的支撑组件库中是否存在与扩展类支撑组件相同的常用类支撑组件;
步骤S804,若存在,则检测扩展类支撑组件是否存在病毒;
步骤S805,若扩展类支撑组件不存在病毒,则将扩展类支撑组件以及关联的自动化脚本,存储至支撑组件库中。
在本实施例中,在构建包含常用类支撑组件的支撑组件库之后,首先检测从本地资源库上传的支撑组件文件或者从远程资源库下载的支撑组件文件,是否在包含常用类支撑组件的支撑组件库是否存在,若存在,则无需对扩展类支撑组件进行病毒检测;若不存在,则检测扩展类支撑组件是否存在病毒,若存在,则确定扩展类支撑组件为不信任支撑组件,无需对扩展类支撑组件进行存储,若不存在,则对扩展类支撑组件进行存储。
且作为优选,步骤S803之后包括以下步骤:若扩展类支撑组件存在病毒,则将扩展类支撑组件和扩展类支撑组件关联的自动化脚本进行解绑,以删除扩展类支撑组件。
可理解的,本实施例通过上述步骤为适应各类应用软件的自动化发布提供可扩展性,可以避免由于技术迭代更新导致支撑组件库不支持新的技术和框架。
此外,如图4所示,本发明一实施例还提供了一种基于自动化脚本的应用软件发布系统,包括软件获取模块110、服务器配置模块120、运行环境安装模块130和软件发布模块140,各功能模块的详细说明如下:
软件获取模块110,用于获取待发布软件的软件基本信息;其中,软件基本信息包括软件运行环境、软件开发语言和软件技术架构;
服务器配置模块120,用于配置待发布软件的目标服务器;
运行环境安装模块130,用于获取软件运行环境相关的目标支撑组件,从支撑组件库中获取匹配的自动化脚本,通过运行自动化脚本在目标服务器上安装软件运行环境;
软件发布模块140,用于从自动化脚本库中分别获取与软件开发语言匹配的开发语言类脚本,以及与软件技术架构匹配的技术架构类脚本,通过运行开发语言类脚本和技术架构类脚本在目标服务器上发布待发布软件。
上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
进一步地,如图5所示,所述自动化脚本的应用软件发布系统,还包括软件运维模块150和溯源分析模块160,各功能模块的详细说明如下:
软件运维模块150,用于接收软件更新升级后发送的运维指令,根据运维指令运行获取的软件运维脚本将升级软件更新至目标服务器;
溯源分析模块160,用于获取溯源日志,根据溯源日志进行溯源追踪;其中,溯源日志包含安装日志、发布日志、运维日志。
进一步地,如图5所示,所述自动化脚本的应用软件发布系统,还包括脚本配置模块170和支撑组件配置模块180,各功能模块的详细说明如下:
脚本配置模块170,用于获取应用软件的各类自动化脚本,构建自动化脚本库;其中,各类自动化脚本包含运行环境类脚本、开发语言类脚本和技术架构类脚本;
支撑组件配置模块180,用于获取各类支撑组件以及关联的自动化脚本,构建支撑组件库。
进一步地,所述软件运维模块150包括以下单元,各功能模块的详细说明如下:
指令接收单元,用于接收包含运维参数的运维指令;其中,运维参数包含目标服务器、原软件对应的升级软件等;
脚本获取单元,用于获取软件运维脚本,将目标服务器、原软件对应的升级软件添加至软件运维脚本;
升级更新单元,用于通过运行软件运维脚本将升级软件更新至目标服务器,并获取升级软件的目录结构;
结构控制单元,用于在接收到与目录结构相关的控制指令时,对升级软件的目录结构执行对应的控制操作,并获取升级软件的操作日志;
运维日志获取单元,用于在目标服务器重启之后,获取升级软件的运维日志。
进一步地,在各类支撑组件包含常用类支撑组件和扩展类支撑组件时,所述支撑组件配置模块180包括以下单元,各功能模块的详细说明如下:
库构建单元,用于获取常用类支撑组件,从自动化脚本库中获取匹配的环境运行类脚本,根据常用类支撑组件以及匹配的环境运行类脚本,构建支撑组件库;
上传及下载单元,用于获取从本地资源库上传的支撑组件文件或者从远程资源库下载的支撑组件文件;其中,支撑组件文件包含扩展类支撑组件以及与扩展类支撑组件关联的自动化脚本;
重复检测单元,用于检测支撑组件库中是否存在与扩展类支撑组件相同的常用类支撑组件;
病毒检测单元,用于若存在,则检测扩展类支撑组件是否存在病毒;
扩展单元,用于若扩展类支撑组件不存在病毒,则将扩展类支撑组件以及关联的自动化脚本,存储至支撑组件库中。
进一步地,所述运行环境安装模块130包括以下单元,各功能模块的详细说明如下:
组件确定单元,用于获取与软件运行环境相关的目标支撑组件,确定目标支撑组件的安装参数;
匹配单元,用于从支撑组件库获取与目标支撑组件匹配的自动化脚本,并将安装参数配置到自动化脚本中;
自动化安装单元,用于通过运行自动化脚本在目标服务器上安装软件运行环境,并获取软件运行环境的安装日志。
进一步地,所述软件发布模块140包括以下单元,各功能模块的详细说明如下:
脚本检测单元,用于检测自动化脚本库是否存在与软件开发语言匹配的开发语言类脚本,以及与软件技术架构匹配的技术架构类脚本;
脚本定制单元,用于若不存在与软件开发语言匹配的开发语言类脚本,和/或与软件技术架构匹配的技术架构类脚本,则生成包含软件开发语言和/或软件技术架构的脚本定制请求,并获取响应脚本定制请求返回的开发语言类脚本和/或技术架构类脚本;
参数确定单元,用于确定待发布软件的发布参数,并将发布参数配置到开发语言类脚本和技术架构类脚本中;
自动化发布单元,用于通过运行开发语言类脚本和技术架构类脚本在目标服务器发布待发布软件,并获取待发布软件的发布日志。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明实施例的,不同方面的许多其它变化,为了简明它们没有在细节中提供。
本发明实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于自动化脚本的应用软件发布方法,其特征在于,包括:
获取应用软件的各类自动化脚本,构建自动化脚本库;其中,所述各类自动化脚本包含运行环境类脚本、开发语言类脚本和技术架构类脚本;
获取各类支撑组件以及关联的自动化脚本,构建支撑组件库;所述各类支撑组件包含常用类支撑组件和扩展类支撑组件;
获取待发布软件的软件基本信息;其中,所述软件基本信息包括软件运行环境、软件开发语言和软件技术架构;
配置所述待发布软件的目标服务器;
获取所述软件运行环境相关的目标支撑组件,从支撑组件库中获取匹配的自动化脚本,通过运行所述自动化脚本在所述目标服务器上安装所述软件运行环境;
从自动化脚本库中分别获取与所述软件开发语言匹配的开发语言类脚本,以及与所述软件技术架构匹配的技术架构类脚本,通过运行所述开发语言类脚本和所述技术架构类脚本在所述目标服务器上发布所述待发布软件;
其中,所述获取各类支撑组件以及关联的自动化脚本,构建支撑组件库,包括:
获取常用类支撑组件,从所述自动化脚本库中获取匹配的环境运行类脚本,根据所述常用类支撑组件以及匹配的所述环境运行类脚本,构建支撑组件库;
获取从本地资源库上传的支撑组件文件或者从远程资源库下载的支撑组件文件;其中,所述支撑组件文件包含扩展类支撑组件以及与所述扩展类支撑组件关联的自动化脚本;
检测所述支撑组件库中是否存在与所述扩展类支撑组件相同的所述常用类支撑组件;
若存在,则检测所述扩展类支撑组件是否存在病毒;
若所述扩展类支撑组件不存在病毒,则将所述扩展类支撑组件以及关联的自动化脚本,存储至所述支撑组件库中。
2.根据权利要求1所述的基于自动化脚本的应用软件发布方法,其特征在于,还包括:
接收软件更新升级后发送的运维指令,根据所述运维指令运行获取的软件运维脚本将升级软件更新至所述目标服务器;
获取溯源日志,根据所述溯源日志进行溯源追踪;其中,所述溯源日志包含安装日志、发布日志、运维日志。
3.根据权利要求2所述的基于自动化脚本的应用软件发布方法,其特征在于,所述接收软件更新升级后发送的运维指令,根据所述运维指令运行获取的软件运维脚本将升级软件更新至所述目标服务器,包括:
接收包含运维参数的运维指令;其中,所述运维参数包含所述目标服务器、原软件对应的升级软件等;
获取软件运维脚本,将所述目标服务器、原软件对应的升级软件添加至所述软件运维脚本;
通过运行所述软件运维脚本将所述升级软件更新至所述目标服务器,并获取所述升级软件的目录结构;
在接收到与所述目录结构相关的控制指令时,对所述升级软件的目录结构执行对应的控制操作,并获取所述升级软件的操作日志;
在所述目标服务器重启之后,获取所述升级软件的运维日志。
4.根据权利要求1所述的基于自动化脚本的应用软件发布方法,其特征在于,所述获取所述软件运行环境相关的目标支撑组件,从支撑组件库中获取匹配的自动化脚本,通过运行所述自动化脚本在所述目标服务器上安装所述软件运行环境,包括:
获取与所述软件运行环境相关的目标支撑组件,确定所述目标支撑组件的安装参数;
从支撑组件库获取与所述目标支撑组件匹配的自动化脚本,并将所述安装参数配置到所述自动化脚本中;
通过运行所述自动化脚本在所述目标服务器上安装所述软件运行环境,并获取所述软件运行环境的安装日志。
5.根据权利要求1所述的基于自动化脚本的应用软件发布方法,其特征在于,所述从自动化脚本库中分别获取与所述软件开发语言匹配的开发语言类脚本,以及与所述软件技术架构匹配的技术架构类脚本,通过运行所述开发语言类脚本和所述技术架构类脚本在所述目标服务器上发布所述待发布软件,包括:
检测自动化脚本库是否存在与所述软件开发语言匹配的开发语言类脚本,以及与所述软件技术架构匹配的技术架构类脚本;
若不存在与所述软件开发语言匹配的开发语言类脚本,和/或与所述软件技术架构匹配的技术架构类脚本,则生成包含所述软件开发语言和/或所述软件技术架构的脚本定制请求,并获取响应所述脚本定制请求返回的开发语言类脚本和/或技术架构类脚本;
确定所述待发布软件的发布参数,并将所述发布参数配置到所述开发语言类脚本和所述技术架构类脚本中;
通过运行所述开发语言类脚本和所述技术架构类脚本在所述目标服务器发布所述待发布软件,并获取所述待发布软件的发布日志。
6.一种基于自动化脚本的应用软件发布系统,其特征在于,包括:
脚本配置模块,用于获取应用软件的各类自动化脚本,构建自动化脚本库;其中,所述各类自动化脚本包含运行环境类脚本、开发语言类脚本和技术架构类脚本;
支撑组件配置模块,用于获取各类支撑组件以及关联的自动化脚本,构建支撑组件库;所述各类支撑组件包含常用类支撑组件和扩展类支撑组件;
软件获取模块,用于获取待发布软件的软件基本信息;其中,所述软件基本信息包括软件运行环境、软件开发语言和软件技术架构;
服务器配置模块,用于配置所述待发布软件的目标服务器;
运行环境安装模块,用于获取所述软件运行环境相关的目标支撑组件,从支撑组件库中获取匹配的自动化脚本,通过运行所述自动化脚本在所述目标服务器上安装所述软件运行环境;
软件发布模块,用于从自动化脚本库中分别获取与所述软件开发语言匹配的开发语言类脚本,以及与所述软件技术架构匹配的技术架构类脚本,通过运行所述开发语言类脚本和所述技术架构类脚本在所述目标服务器上发布所述待发布软件;
其中,所述支撑组件配置模块包括:
库构建单元,用于获取常用类支撑组件,从所述自动化脚本库中获取匹配的环境运行类脚本,根据所述常用类支撑组件以及匹配的所述环境运行类脚本,构建支撑组件库;
上传及下载单元,用于获取从本地资源库上传的支撑组件文件或者从远程资源库下载的支撑组件文件;其中,所述支撑组件文件包含扩展类支撑组件以及与所述扩展类支撑组件关联的自动化脚本;
重复检测单元,用于检测所述支撑组件库中是否存在与所述扩展类支撑组件相同的所述常用类支撑组件;
病毒检测单元,用于若存在,则检测所述扩展类支撑组件是否存在病毒;
扩展单元,用于若所述扩展类支撑组件不存在病毒,则将所述扩展类支撑组件以及关联的自动化脚本,存储至所述支撑组件库中。
7.根据权利要求6所述的基于自动化脚本的应用软件发布系统,其特征在于,还包括:
软件运维模块,用于接收软件更新升级后发送的运维指令,根据所述运维指令运行获取的软件运维脚本将升级软件更新至所述目标服务器;
溯源分析模块,用于获取溯源日志,根据所述溯源日志进行溯源追踪;其中,所述溯源日志包含安装日志、发布日志、运维日志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110943599.2A CN113391827B (zh) | 2021-08-17 | 2021-08-17 | 一种基于自动化脚本的应用软件发布方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110943599.2A CN113391827B (zh) | 2021-08-17 | 2021-08-17 | 一种基于自动化脚本的应用软件发布方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113391827A CN113391827A (zh) | 2021-09-14 |
CN113391827B true CN113391827B (zh) | 2021-11-02 |
Family
ID=77622711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110943599.2A Active CN113391827B (zh) | 2021-08-17 | 2021-08-17 | 一种基于自动化脚本的应用软件发布方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113391827B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115904419B (zh) * | 2023-03-03 | 2023-05-16 | 杭州比智科技有限公司 | 一种基于自动化脚本安装应用软件的方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718251A (zh) * | 2014-12-03 | 2016-06-29 | 苏宁云商集团股份有限公司 | 多语言sdk自动化实现方法及系统 |
CN105893260A (zh) * | 2016-03-31 | 2016-08-24 | 上海携程商务有限公司 | 呼叫中心的自动化发布系统和方法 |
CN108073400A (zh) * | 2017-12-07 | 2018-05-25 | 湖北三新文化传媒有限公司 | 软件自动化构建方法、服务器及存储介质 |
CN109189680A (zh) * | 2018-08-24 | 2019-01-11 | 苏州玩友时代科技股份有限公司 | 一种应用发布和配置的系统及方法 |
CN109495308A (zh) * | 2018-11-27 | 2019-03-19 | 中国电子科技集团公司第二十八研究所 | 一种基于管理信息系统的自动化运维系统 |
CN110286915A (zh) * | 2019-06-27 | 2019-09-27 | 公安部第一研究所 | 互联网和可信身份认证平台下的自动化部署系统及方法 |
CN111966366A (zh) * | 2020-08-27 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 一种多cpu架构的集群部署的方法和设备 |
CN112181403A (zh) * | 2020-09-27 | 2021-01-05 | 北京浪潮数据技术有限公司 | 开发运维一体化实现方法、装置、设备及可读存储介质 |
CN113094081A (zh) * | 2021-04-06 | 2021-07-09 | 中国工商银行股份有限公司 | 软件发布方法、装置、计算机系统和计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106775730A (zh) * | 2016-12-21 | 2017-05-31 | 深圳Tcl数字技术有限公司 | 程序发布方法及系统 |
US10467202B2 (en) * | 2017-07-21 | 2019-11-05 | Bank Of America Corporation | System for multi-release and parallel development of a database |
US11340895B2 (en) * | 2019-08-15 | 2022-05-24 | International Business Machines Corporation | Automatic generation of logically consistent application code change groups |
CN113238761A (zh) * | 2021-07-13 | 2021-08-10 | 北京关键科技股份有限公司 | 跨平台软件开发方法、装置、电子设备及存储介质 |
-
2021
- 2021-08-17 CN CN202110943599.2A patent/CN113391827B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718251A (zh) * | 2014-12-03 | 2016-06-29 | 苏宁云商集团股份有限公司 | 多语言sdk自动化实现方法及系统 |
CN105893260A (zh) * | 2016-03-31 | 2016-08-24 | 上海携程商务有限公司 | 呼叫中心的自动化发布系统和方法 |
CN108073400A (zh) * | 2017-12-07 | 2018-05-25 | 湖北三新文化传媒有限公司 | 软件自动化构建方法、服务器及存储介质 |
CN109189680A (zh) * | 2018-08-24 | 2019-01-11 | 苏州玩友时代科技股份有限公司 | 一种应用发布和配置的系统及方法 |
CN109495308A (zh) * | 2018-11-27 | 2019-03-19 | 中国电子科技集团公司第二十八研究所 | 一种基于管理信息系统的自动化运维系统 |
CN110286915A (zh) * | 2019-06-27 | 2019-09-27 | 公安部第一研究所 | 互联网和可信身份认证平台下的自动化部署系统及方法 |
CN111966366A (zh) * | 2020-08-27 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 一种多cpu架构的集群部署的方法和设备 |
CN112181403A (zh) * | 2020-09-27 | 2021-01-05 | 北京浪潮数据技术有限公司 | 开发运维一体化实现方法、装置、设备及可读存储介质 |
CN113094081A (zh) * | 2021-04-06 | 2021-07-09 | 中国工商银行股份有限公司 | 软件发布方法、装置、计算机系统和计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
Automation Script Maintenance;JIM PEERS;《https://www.pqatesting.com/2018/03/28/automation-script-maintenance/》;20180328;全文 * |
自动化运维有哪些优势?;腾讯云;《https://www.manageengine.cn/news/itom011303.html》;20210113;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113391827A (zh) | 2021-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10114637B1 (en) | Automatically updating a shared project build platform | |
US10579966B1 (en) | Adapting a shared project build platform to a developer plugin | |
US10095489B1 (en) | GUI-based application template for containerized application software development | |
US11243516B2 (en) | Edge devices and associated networks utilising microservices | |
US8533676B2 (en) | Single development test environment | |
US8745585B2 (en) | Meta-data for single development test environment | |
US20130174124A1 (en) | Version numbering in single development and test environment | |
CN105550001A (zh) | 分布式自动构建方法及系统 | |
CN111382048B (zh) | 真机测试平台上移动设备的管理方法和装置 | |
CN111144839A (zh) | 一种项目构建方法、持续集成系统及终端设备 | |
CN109086051B (zh) | 应用组件部署方法、装置及计算机存储介质 | |
WO2017041499A1 (zh) | 一种软件升级方法、系统和计算机可读存储介质 | |
AU2012201749B2 (en) | Single development test environment | |
CN111176722B (zh) | 第三方库的文件版本检测方法、装置及存储介质 | |
EP3447635A1 (en) | Application architecture generation | |
Roberts | Enterprise continuous integration using binary dependencies | |
US20180203776A1 (en) | Non-monotonic eventual convergence for desired state configuration | |
CN113391827B (zh) | 一种基于自动化脚本的应用软件发布方法及系统 | |
CN107678969B (zh) | 测试版本发布方法、装置、版本控制设备和测试机 | |
CN113176996A (zh) | 故障处理方法、引擎、插件化探针、设备及可读存储介质 | |
CN115168175A (zh) | 程序错误解决方法、装置、电子设备和存储介质 | |
US10489147B1 (en) | System and methods for patch management | |
CN112650189A (zh) | 一种嵌入式plc自动化测试系统及方法 | |
CN112765007B (zh) | 一种集成测试方法、装置及存储介质 | |
CN117008922A (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 |