CN109426510A - 软件处理方法、装置、电子设备及计算机可读存储介质 - Google Patents
软件处理方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109426510A CN109426510A CN201710701202.2A CN201710701202A CN109426510A CN 109426510 A CN109426510 A CN 109426510A CN 201710701202 A CN201710701202 A CN 201710701202A CN 109426510 A CN109426510 A CN 109426510A
- Authority
- CN
- China
- Prior art keywords
- software
- target
- updated
- software package
- target software
- 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.)
- Granted
Links
Classifications
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了一种软件处理方法、装置、电子设备及计算机可读存储介质,方法包括:获得针对于软件的处理指令;当判断出所述处理指令为上线操作指令时,从预先存储的待更新软件包中确定目标待更新软件包;确定所述目标待更新软件包所具有的目标版本号;在目标软件符合更新条件时,发送所述目标待更新软件包至自动化运维组件,在接收到所述目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装所述目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,对所述至少一个目标服务器中的所述目标软件进行更新。应用本发明实施例,可以实现对至少一个目标服务器中目标软件进行同步上线处理。
Description
技术领域
本发明涉及软件更新技术领域,特别是涉及一种软件处理方法、装置、电子设备及计算机可读存储介质。
背景技术
软件上线是指用高版本的软件替代低版本的软件,也就是说,软件上线是一个软件更新的过程,服务器中的软件经常会发生软件的更新处理。在日常的运行维护中,需要根据业务线配置不同的运行环境,运行环境是指业务线所运行的服务器以及服务器中的软件共同组成的环境。例如,业务线B1现在运行的环境由服务器1至服务器10组成,且服务器1至服务器10中的目标软件C的版本为V2.0;当业务线由B1升级至B2,同时需要的运行环境变更为:目标软件C的版本为V2.1。那么对于服务器1至服务器10中的软件C来说,从版本V2.0更新至V2.1就是软件的上线过程。
可见,现有的软件上线处理方法,具有上线过程繁琐、低效、同步困难的缺点。
发明内容
本发明实施例的目的在于提供一种软件处理方法、装置、电子设备及计算机可读存储介质,能够高效地实现目标软件在多个服务器中同步上线。
第一方面,本发明实施例提供了一种软件处理方法,该方法包括:
获得针对于软件的处理指令,其中,处理指令中携带有待处理的目标软件的目标标识;
当判断出处理指令为上线操作指令时,从预先存储的待更新软件包中确定目标待更新软件包,其中,目标待更新软件包为:具有目标标识的待更新软件包;
确定目标待更新软件包所具有的目标版本号;
根据目标版本号和预先记录的与目标标识对应的历史版本号,判断目标软件是否符合更新条件,其中,历史版本号为:目标标识对应的并且当前已在服务器中安装过的软件包所具有的版本号;
如果是,发送目标待更新软件包至自动化运维组件,以使自动化运维组件在接收到目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,对至少一个目标服务器中的目标软件进行更新。
可选的,预定更新条件包括:
自动化运维组件与至少一个目标服务器之间的数据传输速率达到预定速率阈值;和/或,
至少一个目标服务器的当前运行负载低于预定负载值。
可选的,该方法还包括:
当判断出处理指令为回滚操作指令时,获取回滚操作指令中包含的针对目标软件的指定版本号;
获得指定版本号对应的软件包;
将指定版本号对应的软件包发送至自动化运维组件,以使自动化运维组件在接收到指定版本号对应的软件包后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定回滚条件时,采用指定版本号对应的软件包对至少一个目标服务器中的目标软件进行替换。
可选的,自动化运维组件为saltstack组件、ansible组件或puppet组件。
可选的,根据目标版本号和预先记录的与目标标识对应的历史版本号,判断目标软件是否符合更新条件,包括:
在预先记录的与目标标识对应的历史版本号中,确定最高历史版本号;
判断目标版本号是否高于最高历史版本号;
如果是,确定目标软件符合更新条件;
如果否,确定目标软件不符合更新条件。
可选的,自动化运维组件在接收到目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,对至少一个目标服务器中的目标软件进行更新,包括:
自动化运维组件在接收到目标待更新软件后,根据预先存储的第一安装配置文件存储目标待更新软件包,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据目标待更新软件包以及第一安装配置文件,对至少一个目标服务器中的目标软件进行更新。
可选的,自动化运维组件在接收到目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,对至少一个目标服务器中的目标软件进行更新,包括:
自动化运维组件在接收到目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据目标待更新软件包以及预设存储的第二安装配置文件,对至少一个目标服务器中的目标软件进行更新,其中,第二安装配置文件为:根据目标存储地址所生成的文件,目标存储地址为自动化运维组件存储目标待更新软件包所利用的地址。
可选的,第一安装配置文件中记录有:用于存储目标待更新软件包的预设存储地址和至少一个目标服务器的通信地址。
可选的,自动化运维组件在接收到目标待更新软件后,根据预先存储的第一安装配置文件存储目标待更新软件包,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,并根据目标待更新软件包以及第一安装配置文件,对至少一个目标服务器中的目标软件进行更新,包括:
自动化运维组件在接收到目标待更新软件后,根据预先存储的第一安装配置文件存储目标待更新软件包,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据第一安装配置文件中记录的至少一个目标服务器的通信地址,发送目标待更新软件包的预设存储地址至至少一个目标服务器,以使至少一个目标服务器根据所获取的预设存储地址获取目标待更新软件包,并利用目标待更新软件包对至少一个目标服务器中的目标软件进行更新。
可选的,获得针对于软件的处理指令,包括:
从预设的集成工具中获得针对于软件的处理指令。
第二方面,本发明实施例提供了一种软件处理装置,装置包括:
第一获得模块,用于获得针对于软件的处理指令,其中,处理指令中携带有待处理的目标软件的目标标识;
第一确定模块,用于当判断出处理指令为上线操作指令时,从预先存储的待更新软件包中确定目标待更新软件包,其中,目标待更新软件包为:具有目标标识的待更新软件包;
第二确定模块,用于确定目标待更新软件包所具有的目标版本号;
判断模块,用于根据目标版本号和预先记录的与目标标识对应的历史版本号,判断目标软件是否符合更新条件,其中,历史版本号为:目标标识对应的并且当前已在服务器中安装过的软件包所具有的版本号;
更新模块,用于在判断模块的判断结果为是的情况下,发送目标待更新软件包至自动化运维组件,以使自动化运维组件在接收到目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,对至少一个目标服务器中的目标软件进行更新。
具体的,预定更新条件包括:
自动化运维组件与至少一个目标服务器之间的数据传输速率达到预定速率阈值;和/或,
至少一个目标服务器的当前运行负载低于预定负载值。
可选的,装置还包括:
获取模块,用于当判断出处理指令为回滚操作指令时,获取回滚操作指令中包含的针对目标软件的指定版本号;
第二获得模块,用于获得指定版本号对应的软件包;
处理模块,用于将指定版本号对应的软件包发送至自动化运维组件,以使自动化运维组件在接收到指定版本号对应的软件包后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定回滚条件时,采用指定版本号对应的软件包对至少一个目标服务器中的目标软件进行替换。
可选的,自动化运维组件为saltstack组件、ansible组件或puppet组件。
可选的,判断模块,包括:
第一确定子模块,用于在预先记录的与目标标识对应的历史版本号中,确定最高历史版本号;
判断子模块,用于判断目标版本号是否高于最高历史版本号;
第二确定子模块,用于在判断子模块的判断结果为是的情况下,确定目标软件符合更新条件;
第三确定子模块,用于在判断子模块的判断结果为否的情况下,确定目标软件不符合更新条件。
可选的,更新模块,具体用于:
自动化运维组件在接收到目标待更新软件后,根据预先存储的第一安装配置文件存储目标待更新软件包,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据目标待更新软件包以及第一安装配置文件,对至少一个目标服务器中的目标软件进行更新。
可选的,更新模块,具体用于:
自动化运维组件在接收到目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据目标待更新软件包以及预先存储的第二安装配置文件,对至少一个目标服务器中的目标软件进行更新,其中,第二安装配置文件为:根据目标存储地址所生成的文件,目标存储地址为自动化运维组件存储目标待更新软件包所利用的地址。
可选的,第一安装配置文件中至少记录有:用于存储目标待更新软件包的预设存储地址和至少一个目标服务器的通信地址。
可选的,更新模块,具体用于:
自动化运维组件在接收到目标待更新软件后,根据预先存储的第一安装配置文件存储目标待更新软件包,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据第一安装配置文件中记录的至少一个目标服务器的通信地址,发送目标待更新软件包的预设存储地址至至少一个目标服务器,以使至少一个目标服务器根据所获取的预设存储地址获取目标待更新软件包,并利用目标待更新软件包对至少一个目标服务器中的目标软件进行更新。
可选的,获得模块,具体用于:
从预设的集成工具中获得针对于软件的处理指令。
第三方面,本发明实施例提供了一种电子设备,电子设备包括:
处理器和存储器,其中,
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述软件处理方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述软件处理方法。
第五方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述软件处理方法。
第六方面,本发明实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述软件处理方法。
本发明实施例提供的软件处理方法、装置、电子设备及计算机可读存储介质,终端设备可以在获得软件上线操作指令时,从待更新软件包中确定目标待更新软件包以及目标待更新软件包的目标版本号;并在判断目标版本号符合更新条件的情况下,发送目标待更新软件包至自动化运维组件,以使自动化运维组件在符合更新条件时对至少一个目标服务器中的目标软件进行更新。这个过程能够实现至少一个目标服务器中的目标软件同步上线处理,提高了软件上线的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的软件处理方法的第一种流程示意图;
图2为本发明实施例提供的软件处理方法的第二种流程示意图;
图3为本发明实施例提供的软件处理方法的第三种流程示意图;
图4为本发明实施例提供的软件处理装置的第一种结构示意图;
图5为本发明实施例提供的软件处理装置的第二种结构示意图;
图6为本发明实施例提供的软件处理装置的第三种结构示意图;
图7为本发明实施例提供的电子设备的第一种结构示意图;
图8为本发明实施例提供的电子设备的第二种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为解决现有技术问题,本发明实施例提供了一种软件处理方法、装置、电子设备及计算机可读存储介质,以下进行详细说明。
需要说明的是,本发明实施例提供的一种软件处理方法的执行主体可以为一种软件处理装置。在实际应用中,该软件处理装置可以运行于终端设备中,从而,管理人员可以利用该终端设备进行软件上线,这都是合理的。
图1为本发明实施例提供的软件处理方法的一种流程示意图,方法包括步骤:
S101,获得针对于软件的处理指令。
需要说明的是,在一种实现方式中,获得软件的处理指令可以包括:从预设的集成工具中获得针对于软件的处理指令。预设的集成工具设置于终端设备中,该集成工具可以提供人机交互界面,示例性的,在该人机交互界面中,针对每一软件而言,可以分别对应设置各种不同功能的图标,以使得管理人员通过点击某软件对应的图标来对该软件实现与所点击图标对应的功能,举例而言:“上线”图标对应软件上线功能,“回滚”图标对应软件回滚功能,“软件卸载”图标对应软件下载功能,等等。当然,在该人机交互界面中,可以针对所有软件,设置不同功能的图标,通过管理人员点击某一图标来实现与所点击图标对应的功能。
在一种实现方式中,预设的集成工具可以为jenkins,jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,它是基于Java开发的一种持续集成工具,用于监控持续重复的工作,具体的功能可以包括:持续的软件版本发布/测试项目、监控外部调用执行的工作。Jenkins可以提供一个用于获取软件处理指令的人机交互界面,然后终端设备从Jenkins获得该处理指令。示例性的,Jenkins提供的人机交互界面中有多种功能的图标,其中的一个或者多个图标供用户下达对软件的处理指令,如“上线”按钮、“回滚”按钮等等。
在另一种实现方式中,本发明实施例中的软件处理方法可以通过一个脚本来实现,脚本具有实现人机交互界面的功能,也就是说,作为执行主体的软件处理装置可以为脚本程序。这样,管理人员可以通过该软件处理装置所提供的人机交互界面来发出针对于软件的处理指令,以使软件处理装置获得该处理指令,其中,该软件处理装置所提供的人机交互界面的形式可以参照上述的预设的集成工具所提供的人机交互界面,在此不做赘述。
具体的,S101中获得的处理指令中携带有待处理的目标软件的目标标识。可以理解的是,待处理的软件有多种,当获得待处理软件的处理指令时,还需要知道该处理指令是针对哪一个软件的操作;所以为了获取该处理指令所针对的具体软件,在该处理指令中还携带有待处理目标软件的目标标识。
可以理解的是,目标标识与目标软件是一一对应的关系,示例性的,如表1所示,表1包含了软件和目标标识的对应关系。例如,当处理指令中包含目标标识A00时,因为标识A00是聊天软件A的目标标识,表示该待处理指令是针对聊天软件A做出的;当处理指令中包含目标标识B02时,因为标识B02是购物软件B的目标标识,所以表示该待处理指令是针对购物软件B做出的;当处理指令中包含目标标识C01时,因为标识C01是支付软件C的目标标识,所以表示该待处理指令是针对支付软件C做出的。
表1
软件 | 聊天软件A | 购物软件B | 支付软件C |
目标标识 | A00 | B02 | C01 |
S102,当判断出处理指令为上线操作指令时,从预先存储的待更新软件包中确定目标待更新软件包,目标待更新软件包为:具有目标标识的待更新软件包。
需要说明的是,终端设备在接收到处理指令以后,可以判断该处理指令是何种类型的指令。当判断出为上线操作指令时,从预先存储的待更新软件包中确定目标待更新软件包。
可以理解的是,终端设备中预先设置有专门用于存储待更新软件包的存储区域,该存储区域中的待更新软件包即为预先存储的待更新软件包,待更新软件包中可以包含多种软件的待更新软件包。
需要说明的是,当处理指令为上线操作指令时,可以根据S101步骤中处理指令包含的目标标识,获得具有目标标识的待更新软件包,并将获得的待更新软件包确定为目标待更新软件包,具体的,可以将软件包中软件标识为目标标识的软件包确定为目标待更新软件包。
示例性的,预先存储的待更新软件包中包含:待更新软件包X、待更新软件包Y和待更新软件包Z,所具有的软件标识分别为:A00、B02和C01;当处理指令中携带的目标标识为A00时,由于待更新软件包X具有的软件标识A00与目标标识A00相同,所以确定待更新软件包X为目标待更新软件包;当处理指令中携带的目标标识为B02时,由于待更新软件包Y具有的软件标识B02与目标标识B02相同,所以确定待更新软件包Y为目标待更新软件包;当处理指令中携带的目标标识为C01时,由于待更新软件包Z具有的软件标识C01与目标标识C01相同,所以确定待更新软件包Z为目标待更新软件包。
S103,确定目标待更新软件包所具有的目标版本号。
可以理解的是,软件包中能够包含软件的版本号,终端设备在确定目标待更新软件包以后,为了保证上线的有效性,可以判断目标待更新软件包是否有必要更新至服务器,基于该种处理思想,可以首先确定目标待更新软件包所具有的目标版本号。
在其中一种实现方式中,确定目标待更新软件包所具有的目标版本号可以从目标待更新软件包的名称中,示例性的,目标待更新软件包的名称为:liaotian.V2.0.exe,那么目标待更新软件包的版本号为V2.0。
在另一种实现方式中,终端设备可以通过查看目标待更新软件包的属性,在属性中获得目标版本号。示例性的,目标待更新软件包为待更新软件包X,终端设备可以直接从待更新软件包X的属性中获得目标版本号为:V2.5。本发明实施例中获得目标待更新软件包的目标版本号仅仅是示例性的,目标版本号也可以通过目标待更新软件包的其他预设信息栏中获得,本发明实施例不对其进行具体限定。
S104,根据目标版本号和预先记录的与目标标识对应的历史版本号,判断目标软件是否符合更新条件,如果是,执行S105。
可以理解的是,终端设备中预先记录有目标软件的所有历史安装过的软件包的版本号,所有已安装过的软件包的版本号形成了历史版本号,由于目标软件具有目标标识,所以目标软件的所有历史版本号均与该目标软件的目标标识相对应。示例性的,目标软件为聊天软件A,目标标识为A00,与A00相对应的历史版本号分别为:V1.3、V1.5、V1.8、V1.9、V2.0、V2.1、V2.2、V2.3、V2.4。
本发明实施例中,根据目标软件的目标版本号和历史版本号能够判断目标软件是否符合更新的条件,具体的,本发明实施例提供一种具体的实现方式,参见图2,图2为本发明实施例提供的软件处理方法的第二种流程示意图,可以包括步骤:S201、S202、S203、S204;其中,
S201,在预先记录的与目标标识对应的历史版本号中,确定最高历史版本号。
需要说明的是,历史版本号为:目标标识对应的并且前已在服务器中安装过的软件包所具有的版本号,例如与目标标识A00对应的版本号V1.3,表示服务器中的聊天软件A安装过版本号为V1.3的软件包,且该软件包含目标标识A00。
示例性的,终端设备中预先记录与目标标识A00对应的历史版本号为:V1.3、V1.5、V1.8、V1.9、V2.0、V2.1、V2.2、V2.3、V2.4,根据软件的命名规则:V2.x系列的版本高于V1.x系列的版本,所以V2.x系列版本中最高的V2.4即为最高历史版本号。
需要说明的是,软件的版本号会有不同的命名规则,通过命名规则即可找到最高版本号,例如软件版本为:V02.00.01假设大版本号为02.00、01为小版本号,在大版本号相同的情况下比较,在大版本号相同的情况下小版本号越大则版本越高,所以V02.00.01、V02.00.02、V02.00.03,三个版本号中V02.00.03的版本号为最高。
实际应用中,还可以以时间进行版本号的命名,如果以时间进行命名,那么以最接近当前时间的版本号为最高版本号。示例性的,终端设备中预先记录与目标标识A00对应的历史版本号为:V2016.03.20、V2016.08.01、V2017.02.01;V2016.03.20表示2016年3月20日对目标软件进行更新的软件包;V2016.08.01表示2016年8月1日对目标软件进行更新的软件包;V2017.02.01表示2017年2月1日对目标软件进行更新的软件包;最接近当前日期的为:2017.02.01,因此,V2017.02.01为最高历史版本号。因此,只要设定了命名规则即可获得最高版本号,本发明实施例在此不对其进行具体限定。
S202,判断目标版本号是否高于最高历史版本号;如果是,执行S203;如果否,执行S204。
本发明实施例中,将获得的目标版本号与S201中获取的最高历史版本号进行比较,并判断目标版本号是否高于最高历史版本号。示例性的,聊天软件A的最高历史版本号为V2.4,以及待更新软件包的目标版本号为V2.5,根据前述软件版本的比较规则,则判断目标版本号高于最高历史版本号,执行S203;在聊天软件A的最高历史版本号为V2.6,以及待更新软件包的目标版本号为V2.5,根据前述软件版本的比较规则,则判断目标版本号不高于最高历史版本号,执行S204。
S203,确定目标软件符合更新条件。
可以理解的是,聊天软件A的最高历史版本号为V2.4、待更新软件包的目标版本号为V2.5,因为目标版本号高于最高历史版本号,则表示目标版本号对应的目标待更新软件包的版本高于以往任何一次安装过的软件包的版本,所以确定目标软件符合更新的条件。
S204,确定目标软件不符合更新条件。
可以理解的是,聊天软件A的最高历史版本号为V2.6、待更新软件包的目标版本号为V2.5,因为目标版本号不高于最高历史版本号,则表示目标版本号对应的目标待更新软件包与某一次历史安装过的软件包的相同,所以对于目标软件来说此次更新是一次版本相同的替换甚至是版本的倒退,不具备软件更新的意义,所以确定目标软件不符合更新的条件。
应用本发明图2所示的实施例,通过在判断目标版本号高于历史版本号的情况下,确定目标软件符合更新条件;否则,不符合更新条件。能够简单且快捷的确定目标待更新软件包是否可以用来更新目标软件,且可以防止人员误将低版本的待更新软件包用来更新目标软件引起的操作错误。
S105,发送目标待更新软件包至自动化运维组件,以使自动化运维组件在接收到目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,对至少一个目标服务器中的目标软件进行更新。
本发明实施例中,在确认目标软件符合更新条件的情况下,终端设备将目标待更新软件包发送至自动化运维组件,具体的,自动化运维组件可以为:saltstack组件、ansible组件或puppet组件中的任意一种。
需要说明的是,自动化运维组件可以是一种能够可以连接并控制多台服务器的自动化运维工具的统称,具有的特点是:部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯。
可以理解的是,自动化运维组件中预先统计了服务器与其安装了软件的具体信息,所以根据这些信息可以得到在那些服务器中安装了目标软件。示例性的,目标软件为聊天软件A,根据信息获得目标服务器为:服务器1至服务器10。本发明实施例中目标服务器的数量仅仅是示例性的,不构成对本发明实施例的具体限定。
另外,可以理解的是,软件更新需要不仅消耗自动化运维组件与服务器之间的宽带资源,还要消耗他们自身的硬件和软件资源,基于此,可以设定更新条件,当检测到符合预定更新条件时,才对至少一个目标服务器中的目标软件进行更新,否则不予更新。
在本发明的一个实施例中,预定更新条件可以为:自动化运维组件与至少一个目标服务器之间的数据传输速率达到预定速率阈值。可以理解的是,当自动化运维组件与任意一个目标服务器之间的数据传输速率过低的时候,会影响目标待更新软件包以及更新命令的发送,所以会影响更新效果。具体的,可以设定速率阈值,假如设定的速率阈值为1M/s,当检测到实时的数据传输速率小于1M/s,不进行更新动作,以避免传输速率过低造成传输失败,进而导致此次软件更新失败。
在本发明的另一种实现方式中,当某个目标服务器的负载过大的时候,其处理更新的过程中可能会产生宕机,由此产生更新动作中断,为了避免这种情况,可以设定至少一个目标服务器的当前运行负载低于预定负载值。具体的,负载值可以设为60%,当服务器的负载值大于60%时,不进行更新动作;否则进行更新动作;以进一步提高目标软件更新的成功率。
需要说明的是,saltstack组件采用一种全新的基础设施管理方式,运行速度较快,一般在几分钟内可运行起来;扩展性好,很容易管理上万台服务器;且速度够快,能实现跟服务器之间的秒级通讯。ansible是新出现的自动化运维组件,基于Python开发,集合了众多运维工具的优点,可以实现批量系统配置、批量程序部署、批量运行指令等功能。puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、软件包、系统服务等,puppet采用C/S星状的结构,可以和一个或几个服务器交互。
从上述自动化运维组件的特点可以得到,saltstack组件、ansible组件或puppet组件都可以作为自动化运维组件,它们既可以同时与一个服务器进行通信,也可以同时与多个服务器进行通信,所以自动化运维组件可以同时对多个服务器进行目标软件的更新处理,达到并发处理的目的。示例性的,与自动化运维组件通信的服务器为20个,那么自动化运维组件可以将接收到的目标待更新软件包发送至这20个服务器中,以对这20个服务器中的目标软件进行更新。
采用并行处理方式,对至少一个目标服务器进行目标软件的更新处理,可以进一步提高目标软件更新的效率;且能够使得这些目标服务器不会出现代码有差异的情况。
应用本发明图1所示的实施例,终端设备可以在获得软件上线操作指令时,从待更新软件包中确定目标待更新软件包以及目标待更新软件包的目标版本号;并在判断目标版本号符合更新条件的情况下,发送目标待更新软件包至自动化运维组件,以使自动化运维组件在符合更新条件时对至少一个目标服务器中的目标软件进行更新。这个过程能够实现至少一个目标服务器中的目标软件同步上线处理,提高了软件上线的效率。
为了进一步的提高自动化运维组件对至少一个目标服务器中的目标软件的更新处理效率,在一种具体实现方式中,自动化运维组件在接收到目标待更新软件后,根据预先存储的第一安装配置文件存储目标待更新软件包,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据目标待更新软件包以及第一安装配置文件,对至少一个目标服务器中的目标软件进行更新。
需要说明的是,自动化运维组件接收到目标待更新软件包以后需要进行存储,具体的,可以存储在终端设备中,也可以存储在其他存储设备中,示例性的,目标待更新软件包可以存储在终端内设备的一个固定存储区域里,也可以村存在与终端内设备相连的存储设备中,如外接硬盘灯存储设备。本发明实施例中在第一安装配置文件中可以预先设置一存储地址,自动化运维组件可以先获得该预先设置的存储地址进行存储目标待更新软件包。
示例性的,第一安装配置文件中预先设置的存储地址为:F:\聊天软件A\2017年3月,那么自动化运维组件将接收到的目标待更新软件包存储至“F:\聊天软件A\2017年3月”中,然后自动化运维组件根据第一安装配置文件中的具体执行步骤,对于至少一个目标服务器中的目标软件进行更新处理。
在一种实现方式中,第一安装配置文件中包含了自动化运维组件与至少一个目标服务器通信的具体步骤,具体的,自动化运维组件在存储了目标待更新软件包以后,将目标待更新软件包分别发送给各个目标服务器,同时给每一个目标服务器发送软件更新指令,各个目标服务器在获得软件更新指令以后直接使用目标待更新软件包对目标软件进行更新。
在另一种实现方式中,在第一安装配置文件中记录有:用于存储目标待更新软件包的预设存储地址和至少一个目标服务器的通信地址的情况下,自动化运维组件在接收到目标待更新软件后,根据预先存储的第一安装配置文件存储目标待更新软件包,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据第一安装配置文件中记录的至少一个目标服务器的通信地址,发送目标待更新软件包的预设存储地址至至少一个目标服务器,以使至少一个目标服务器根据所获取的预设存储地址获取目标待更新软件包,并利用目标待更新软件包对至少一个目标服务器中的目标软件进行更新。
自动化运动组件根据通信地址发送存目标待更新软件包的存储地址至每一个目标服务器,该目标服务器可以获得目标待更新软件包,这个过程使得所有目标服务器中的目标待更新软件包不会出现代码有差异的情况;且能够通过预先存储的第一安装配置文件和目标待更新软件包软件的更新处理,可以进一步提高目标服务器中目标软件更新的效率。
在另一种具体实现方式中,自动化运维组件在接收到目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据目标待更新软件包以及预先存储的第二安装配置文件,对至少一个目标服务器中的目标软件进行更新,其中,第二安装配置文件为:根据目标存储地址所生成的文件,目标存储地址为自动化运维组件存储目标待更新软件包所利用的地址。
本发明实施例中,终端设备发送目标待更新软件包至自动化运维组件,自动化运维组件获得目标待更新软件包以后会进行存储,存储地址即为目标存储地址,然后根据目标存储地址生成第二安装配置文件,具体的,可以将目标存储地址直接作为第二安装配置文件所包含的内容。另外,第二安装配置文件中还可以包含目标服务器的通信地址,自动化运维组件可以通过目标服务器的通信地址,将目标存储地址发送至目标服务器1至目标服务器10,目标服务器1至目标服务器10根据目标存储地址从自动化运维组件中获取目标待更新软件包,然后目标服务器1至目标服务器10利用目标待更新软件包对目标软件进行更新处理。
每一个目标服务器能够同时获得目标待更新软件包,使得这些目标服务器中目标软件的待更新软件包不会出现代码有差异的情况;且能根据目标待更新软件包的目标地址生成的第二安装配置文件和目标待更新软件包软件的更新处理,可以进一步提高服务器中目标软件更新的效率。
实际应用中,会遇到目标软件的当前在使用的版本出现错误的情况,这时候需要将目标软件的当前版本回滚到一个指定版本号,这就是目标软件的回滚。本发明提供目标软件回滚的一个具体实现方式,参见图3,图3为本发明实施例提供的软件处理方法的第三种流程示意图,在图1所示实施例的基础上增加如下步骤:
S106,当判断出处理指令为回滚操作指令时,获取回滚操作指令中包含的针对目标软件的指定版本号。
可以理解的是,当用户需要执行回滚操作时,除了要发送执行回滚操作的指令,还需要发送一个与回滚指令配套的指定版本号,用于指定将目标软件回滚到的具体版本。然后,当终端设备判断出接收到的操作指令为回滚操作时,还可以从回滚操作指令中获取指定版本号。示例性的,终端设备获得的回滚指令中包含的指定版本号为V2.1,服务器中运行的目标软件的当前版本号为V2.5,那么此次回滚的目的是将目标软件从当前的V2.5版本回滚至V2.1版本。终端设备获得的回滚指令中包含的指定版本号为V2.2,服务器中运行的目标软件的当前版本号为V2.6,那么此次回滚的目的是将目标软件从当前的V2.6版本回滚至V2.2版本。
S107,获得指定版本号对应的软件包。
需要说明的是,终端设备在每次对目标软件执行一次上线操作后,都会保存此次上线操作对应的目标待更新软件包,所以终端设备中会保存目标软件的历史安装软件包。在终端设备获得指定的版本号以后,从历史安装软件包中获得与指定版本号对应的软件包。
示例性的,终端设备中存储的历史安装软件包有:软件包x1、软件包x2、软件包x3、软件包x4,它们分别对应的版本号为:V2.1、V2.2、V2.3、V2.4;在指定版本号为V2.1的情况下,获得V2.1对应的软件包为:软件包x1;在指定版本号为V2.2的情况下,获得V2.2对应的软件包为:软件包x2。
S108,将指定版本号对应的软件包发送至自动化运维组件,以使自动化运维组件在接收到指定版本号对应的软件包后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定回滚条件时,采用指定版本号对应的软件包对至少一个目标服务器中的目标软件进行替换。
示例性的,指定版本号为V2.1的情况下,对应的软件包为软件包x1,终端设备可以将软件包x1发送至自动化运维组件,自动化运维组件在接收到软件包x1后可以直接发送给待更新目标软件的至少一个目标服务器,每一个目标服务器将采用安装软件包x1的方式来替换当前已安装的目标软件。
在本发明的一种实现方式中,在指定版本号V2.1对应的软件包为软件包x1的情况下,终端设备可以发送软件包x1至自动化运维组件,自动化运维组件根据预先设置的存储地址存储软件包x1。可以理解的是,因为目标服务器是与自动化运维组件相通信的,所以自动化运维组件知道目标服务器的通信地址,根据通信地址,再将软件包x1的存储地地址发送给每一个目标服务器,服务器可以直接去获取软件包x1,在每一个目标服务器中,目标服务器将采用安装软件包x1的方式来替换当前已安装的目标软件。具体的,存储软件包x1的存储地址以及每一个服务器的通信地址,可以存储在一个安装配置文件中,自动化运维组件根据该安装配置文件进行与目标服务器的通信,从而保证回滚过程的完成。
在本发明的另一种实现方式中,在指定版本号V2.1对应的软件包为软件包x1的情况下,终端设备可以发送软件包x1至自动化运维组件,自动化运维组件将软件包x1进行存储,并将存储地址发送给第三安装配置文件,终端设备发送软件包x1至自动化运维组件。第三安装配置文件中还可以包括至少一个目标服务器的通信地址,自动化运维组件根据第三安装配置文件,执行:将软件包x1的存储地地址发送给每一个目标服务器,每个目标服务器可以直接去获取软件包x1,在每一个目标服务器中,服务器将采用安装软件包x1的方式来替换当前已安装的目标软件。
应用本发明图3所示的实施例,在终端设备获得的操作指令为回滚时,能够全自动的回滚到指令版本号,实现对目标软件当前版本的替换操作,提高了软件回滚的效率。
相应于上述方法实施例,本发明实施例还提供了软件处理装置。
图4为本发明实施例提供的软件处理装置的第一种结构示意图,装置包括:
第一获得模块401,用于获得针对于软件的处理指令,其中,处理指令中携带有待处理的目标软件的目标标识;
第一确定模块402,用于当判断出处理指令为上线操作指令时,从预先存储的待更新软件包中确定目标待更新软件包,其中,目标待更新软件包为:具有目标标识的待更新软件包;
第二确定模块403,用于确定目标待更新软件包所具有的目标版本号;
判断模块404,用于根据目标版本号和预先记录的与目标标识对应的历史版本号,判断目标软件是否符合更新条件,其中,历史版本号为:目标标识对应的并且当前已在服务器中安装过的软件包所具有的版本号;
更新模块405,用于在判断模块404的判断结果为是的情况下,发送目标待更新软件包至自动化运维组件,以使自动化运维组件在接收到目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,对至少一个目标服务器中的目标软件进行更新。
具体的,自动化运维组件为saltstack组件、ansible组件或puppet组件。
具体的,预定更新条件包括:
自动化运维组件与至少一个目标服务器之间的数据传输速率达到预定速率阈值;和/或,
至少一个目标服务器的当前运行负载低于预定负载值。
具体的,更新模块405,可以用于:
自动化运维组件在接收到目标待更新软件后,根据预先存储的第一安装配置文件存储目标待更新软件包,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据目标待更新软件包以及第一安装配置文件,对至少一个目标服务器中的目标软件进行更新。
具体的,更新模块405,可以用于:自动化运维组件在接收到目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据目标待更新软件包以及预先存储的第二安装配置文件,对至少一个目标服务器中的目标软件进行更新,其中,第二安装配置文件为:根据目标存储地址所生成的文件,目标存储地址为自动化运维组件存储目标待更新软件包所利用的地址。
具体的,第一安装配置文件中记录有:用于存储目标待更新软件包的预设存储地址和至少一个目标服务器的通信地址。
具体的,更新模块405,可以用于:自动化运维组件在接收到目标待更新软件后,根据预先存储的第一安装配置文件存储目标待更新软件包,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据第一安装配置文件中记录的至少一个目标服务器的通信地址,发送目标待更新软件包的预设存储地址至至少一个目标服务器,以使至少一个目标服务器根据所获取的预设存储地址获取目标待更新软件包,并利用目标待更新软件包对至少一个目标服务器中的目标软件进行更新。
具体的,获得模块401,可以用于:
从预设的集成工具中获得针对于软件的处理指令。
应用本发明图4所示的实施例,终端设备可以在获得软件上线操作指令时,从待更新软件包中确定目标待更新软件包以及目标待更新软件包的目标版本号;并在判断目标版本号符合更新条件的情况下,发送目标待更新软件包至自动化运维组件,以使自动化运维组件在符合更新条件时对至少一个目标服务器中的目标软件进行更新。这个过程能够实现至少一个目标服务器中的目标软件同步上线处理,提高了软件上线的效率。
图5为本发明实施例提供的软件处理装置的第二种结构示意图,在图4所示实施例的基础上增加以下模块:
获取模块406,用于当判断出处理指令为回滚操作指令时,获取回滚操作指令中包含的针对目标软件的指定版本号;
第二获得模块407,用于获得指定版本号对应的软件包;
处理模块408,将指定版本号对应的软件包发送至自动化运维组件,以使自动化运维组件在接收到指定版本号对应的软件包后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定回滚条件时,采用指定版本号对应的软件包对至少一个目标服务器中的目标软件进行替换。
应用本发明图5所示的实施例,在终端设备获得的操作指令为回滚时,能够全自动的回滚到指令版本号,实现对目标软件当前版本的替换操作,提高了软件回滚的效率。
图6为本发明实施例提供的软件处理装置的第三种结构示意图,判断模块404,可以包括:
第一确定子模块601,在预先记录的与目标标识对应的历史版本号中,确定最高历史版本号;
判断子模块602,用于判断目标版本号是否高于最高历史版本号;
第二确定子模块603,用于在判断子模块602的判断结果为是的情况下,确定目标软件符合更新条件;
第三确定子模块604,用于在判断子模块602的判断结果为否的情况下,确定目标软件不符合更新条件。
应用本发明图6所示的实施例,通过在判断目标版本号高于历史版本号的情况下,确定目标软件符合更新条件;否则,不符合更新条件。能够简单且快捷的确定目标待更新软件包是否可以用来更新目标软件,且可以防止人员误将低版本的待更新软件包用来更新目标软件引起的操作错误。
参见图7,本发明实施例提供的电子设备的一种结构示意图,该电子设备包括:处理器701和存储器702,其中,
存储器702,用于存放计算机程序;
处理器701,用于执行存储器上所存放的程序时,实现如下步骤:
获得针对于软件的处理指令,其中,处理指令中携带有待处理的目标软件的目标标识;
当判断出处理指令为上线操作指令时,从预先存储的待更新软件包中确定目标待更新软件包,其中,目标待更新软件包为:具有目标标识的待更新软件包;
确定目标待更新软件包所具有的目标版本号;
根据目标版本号和预先记录的与目标标识对应的历史版本号,判断目标软件是否符合更新条件,其中,历史版本号为:目标标识对应的并且当前已在服务器中安装过的软件包所具有的版本号;
如果是,发送目标待更新软件包至自动化运维组件,以使自动化运维组件在接收到目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,对至少一个目标服务器中的目标软件进行更新。
可选的,预定更新条件包括:
自动化运维组件与至少一个目标服务器之间的数据传输速率达到预定速率阈值;和/或,
至少一个目标服务器的当前运行负载低于预定负载值。
可选的,方法还包括:
当判断出处理指令为回滚操作指令时,获取回滚操作指令中包含的针对目标软件的指定版本号;
获得指定版本号对应的软件包;
将指定版本号对应的软件包发送至自动化运维组件,以使自动化运维组件在接收到指定版本号对应的软件包后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定回滚条件时,采用指定版本号对应的软件包对至少一个目标服务器中的目标软件进行替换。
可选的,自动化运维组件为saltstack组件、ansible组件或puppet组件。
可选的,根据目标版本号和预先记录的与目标标识对应的历史版本号,判断目标软件是否符合更新条件,包括:
从预先记录的与目标标识对应的历史版本号中,确定最高历史版本号;
判断目标版本号是否高于最高历史版本号;
如果是,确定目标软件符合更新条件;
如果否,确定目标软件不符合更新条件。
可选的,自动化运维组件在接收到目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,对至少一个目标服务器中的目标软件进行更新,包括:
自动化运维组件在接收到目标待更新软件后,根据预先存储的第一安装配置文件存储目标待更新软件包,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据目标待更新软件包以及第一安装配置文件,对至少一个目标服务器中的目标软件进行更新。
可选的,自动化运维组件在接收到目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,对至少一个目标服务器中的目标软件进行更新,包括:
自动化运维组件在接收到目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据目标待更新软件包以及预先存储的第二安装配置文件,对至少一个目标服务器中的目标软件进行更新,其中,第二安装配置文件为:根据目标存储地址所生成的文件,目标存储地址为自动化运维组件存储目标待更新软件包所利用的地址。
可选的,第一安装配置文件中记录有:用于存储目标待更新软件包的预设存储地址和至少一个目标服务器的通信地址。
可选的,自动化运维组件在接收到目标待更新软件后,根据预先存储的第一安装配置文件存储目标待更新软件包,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据目标待更新软件包以及第一安装配置文件,对至少一个目标服务器中的目标软件进行更新,包括:
自动化运维组件在接收到目标待更新软件后,根据预先存储的第一安装配置文件存储目标待更新软件包,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据第一安装配置文件中记录的至少一个目标服务器的通信地址,发送目标待更新软件包的预设存储地址至至少一个目标服务器,以使至少一个目标服务器根据所获取的预设存储地址获取目标待更新软件包,并利用目标待更新软件包对至少一个目标服务器中的目标软件进行更新。
可选的,获得针对于软件的处理指令,包括:
从预设的集成工具中获得针对于软件的处理指令。
本发明实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现上述软件处理的方法步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实如下步骤:
获得针对于软件的处理指令,其中,处理指令中携带有待处理的目标软件的目标标识;
当判断出处理指令为上线操作指令时,从预先存储的待更新软件包中确定目标待更新软件包,其中,目标待更新软件包为:具有目标标识的待更新软件包;
确定目标待更新软件包所具有的目标版本号;
根据目标版本号和预先记录的与目标标识对应的历史版本号,判断目标软件是否符合更新条件,其中,历史版本号为:目标标识对应的并且当前已在服务器中安装过的软件包所具有的版本号;
如果是,发送目标待更新软件包至自动化运维组件,以使自动化运维组件在接收到目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,对至少一个目标服务器中的目标软件进行更新。
可选的,预定更新条件包括:
自动化运维组件与至少一个目标服务器之间的数据传输速率达到预定速率阈值;和/或,
至少一个目标服务器的当前运行负载低于预定负载值。
可选的,方法还包括:
当判断出处理指令为回滚操作指令时,获取回滚操作指令中包含的针对目标软件的指定版本号;
获得指定版本号对应的软件包;
将指定版本号对应的软件包发送至自动化运维组件,以使自动化运维组件在接收到指定版本号对应的软件包后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定回滚条件时,采用指定版本号对应的软件包对至少一个目标服务器中的目标软件进行替换。
可选的,自动化运维组件为saltstack组件、ansible组件或puppet组件。
可选的,根据目标版本号和预先记录的与目标标识对应的历史版本号,判断目标软件是否符合更新条件,包括:
在预先记录的与目标标识对应的历史版本号中,确定最高历史版本号;
判断目标版本号是否高于最高历史版本号;
如果是,确定目标软件符合更新条件;
如果否,确定目标软件不符合更新条件。
可选的,自动化运维组件在接收到目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,对至少一个目标服务器中的目标软件进行更新,包括:
自动化运维组件在接收到目标待更新软件后,根据预先存储的第一安装配置文件存储目标待更新软件包,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据目标待更新软件包以及第一安装配置文件,对至少一个目标服务器中的目标软件进行更新。
可选的,自动化运维组件在接收到目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,对至少一个目标服务器中的目标软件进行更新,包括:
自动化运维组件在接收到目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据目标待更新软件包以及预先存储的第二安装配置文件,对至少一个目标服务器中的目标软件进行更新,其中,第二安装配置文件为:根据目标存储地址所生成的文件,目标存储地址为自动化运维组件存储目标待更新软件包所利用的地址。
可选的,第一安装配置文件中记录有:用于存储目标待更新软件包的预设存储地址和至少一个目标服务器的通信地址。
可选的,自动化运维组件在接收到目标待更新软件后,根据预先存储的第一安装配置文件存储目标待更新软件包,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据目标待更新软件包以及第一安装配置文件,对至少一个目标服务器中的目标软件进行更新,包括:
自动化运维组件在接收到目标待更新软件后,根据预先存储的第一安装配置文件存储目标待更新软件包,根据预先统计的软件与服务器的安装关系,确定已安装目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据第一安装配置文件中记录的至少一个目标服务器的通信地址,发送目标待更新软件包的预设存储地址至至少一个目标服务器,以使至少一个目标服务器根据所获取的预设存储地址获取目标待更新软件包,并利用目标待更新软件包对至少一个目标服务器中的目标软件进行更新。
可选的,获得针对于软件的处理指令,包括:
从预设的集成工具中获得针对于软件的处理指令。
本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述软件处理方法。
本发明实施例还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述软件处理方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及计算机可读存储介质、包含指令的计算机程序产品、计算机程序实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (16)
1.一种软件处理方法,其特征在于,所述方法包括:
获得针对于软件的处理指令,其中,所述处理指令中携带有待处理的目标软件的目标标识;
当判断出所述处理指令为上线操作指令时,从预先存储的待更新软件包中确定目标待更新软件包,其中,所述目标待更新软件包为:具有所述目标标识的待更新软件包;
确定所述目标待更新软件包所具有的目标版本号;
根据所述目标版本号和预先记录的与所述目标标识对应的历史版本号,判断所述目标软件是否符合更新条件,其中,所述历史版本号为:所述目标标识对应的并且当前已在服务器中安装过的软件包所具有的版本号;
如果是,发送所述目标待更新软件包至自动化运维组件,以使所述自动化运维组件在接收到所述目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装所述目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,对所述至少一个目标服务器中的所述目标软件进行更新。
2.根据权利要求1所述的方法,其特征在于,所述预定更新条件包括:
所述自动化运维组件与所述至少一个目标服务器之间的数据传输速率达到预定速率阈值;和/或,
所述至少一个目标服务器的当前运行负载低于预定负载值。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当判断出所述处理指令为回滚操作指令时,获取所述回滚操作指令中包含的针对所述目标软件的指定版本号;
获得所述指定版本号对应的软件包;
将所述指定版本号对应的软件包发送至所述自动化运维组件,以使所述自动化运维组件在接收到所述指定版本号对应的软件包后,根据预先统计的软件与服务器的安装关系,确定已安装所述目标软件的至少一个目标服务器,并在检测到符合预定回滚条件时,采用所述指定版本号对应的软件包对所述至少一个目标服务器中的所述目标软件进行替换。
4.根据权利要求1所述的方法,其特征在于,所述自动化运维组件为saltstack组件、ansible组件或puppet组件。
5.根据权利要求1所述的方法,其特征在于,所述根据所述目标版本号和预先记录的与所述目标标识对应的历史版本号,判断所述目标软件是否符合更新条件,包括:
在预先记录的与所述目标标识对应的历史版本号中,确定最高历史版本号;
判断所述目标版本号是否高于所述最高历史版本号;
如果是,确定所述目标软件符合更新条件;
如果否,确定所述目标软件不符合更新条件。
6.根据权利要求1所述的方法,其特征在于,所述自动化运维组件在接收到所述目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装所述目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,对所述至少一个目标服务器中的所述目标软件进行更新,包括:
所述自动化运维组件在接收到所述目标待更新软件后,根据预先存储的第一安装配置文件存储所述目标待更新软件包,根据预先统计的软件与服务器的安装关系,确定已安装所述目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据所述目标待更新软件包以及所述第一安装配置文件,对所述至少一个目标服务器中的所述目标软件进行更新。
7.根据权利要求1所述的方法,其特征在于,所述自动化运维组件在接收到所述目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装所述目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,对所述至少一个目标服务器中的所述目标软件进行更新,包括:
所述自动化运维组件在接收到所述目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装所述目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据所述目标待更新软件包以及预设存储的第二安装配置文件,对所述至少一个目标服务器中的所述目标软件进行更新,其中,所述第二安装配置文件为:根据目标存储地址所生成的文件,所述目标存储地址为所述自动化运维组件存储所述目标待更新软件包所利用的地址。
8.根据权利要求6所述的方法,其特征在于,所述第一安装配置文件中记录有:用于存储所述目标待更新软件包的预设存储地址和所述至少一个目标服务器的通信地址。
9.根据权利要求8所述的方法,其特征在于,所述自动化运维组件在接收到所述目标待更新软件后,根据预先存储的第一安装配置文件存储所述目标待更新软件包,根据预先统计的软件与服务器的安装关系,确定已安装所述目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据所述目标待更新软件包以及所述第一安装配置文件,对所述至少一个目标服务器中的所述目标软件进行更新,包括:
所述自动化运维组件在接收到所述目标待更新软件后,根据预先存储的第一安装配置文件存储所述目标待更新软件包,根据预先统计的软件与服务器的安装关系,确定已安装所述目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,根据所述第一安装配置文件中记录的所述至少一个目标服务器的通信地址,发送所述目标待更新软件包的预设存储地址至所述至少一个目标服务器,以使所述至少一个目标服务器根据所获取的预设存储地址获取所述目标待更新软件包,并利用所述目标待更新软件包对所述至少一个目标服务器中的所述目标软件进行更新。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述获得针对于软件的处理指令,包括:
从预设的集成工具中获得针对于软件的处理指令。
11.一种软件处理装置,其特征在于,所述装置包括:
第一获得模块,用于获得针对于软件的处理指令,其中,所述处理指令中携带有待处理的目标软件的目标标识;
第一确定模块,用于当判断出所述处理指令为上线操作指令时,从预先存储的待更新软件包中确定目标待更新软件包,其中,所述目标待更新软件包为:具有所述目标标识的待更新软件包;
第二确定模块,用于确定所述目标待更新软件包所具有的目标版本号;
判断模块,用于根据所述目标版本号和预先记录的与所述目标标识对应的历史版本号,判断所述目标软件是否符合更新条件,其中,所述历史版本号为:所述目标标识对应的并且当前已在服务器中安装过的的软件包所具有的版本号;
更新模块,用于在所述判断模块的判断结果为是的情况下,发送所述目标待更新软件包至自动化运维组件,以使所述自动化运维组件在接收到所述目标待更新软件后,根据预先统计的软件与服务器的安装关系,确定已安装所述目标软件的至少一个目标服务器,并在检测到符合预定更新条件时,对所述至少一个目标服务器中的所述目标软件进行更新。
12.根据权利要求11所述的装置,其特征在于,所述预定更新条件包括:
所述自动化运维组件与所述至少一个目标服务器之间的数据传输速率达到预定速率阈值;和/或,
所述至少一个目标服务器的当前运行负载低于预定负载值。
13.根据权利要求11所述的装置,其特征在于,所述装置还包括:
获取模块,用于当判断出所述处理指令为回滚操作指令时,获取所述回滚操作指令中包含的针对所述目标软件的指定版本号;
第二获得模块,用于获得所述指定版本号对应的软件包;
处理模块,用于将所述指定版本号对应的软件包发送至所述自动化运维组件,以使所述自动化运维组件在接收到所述指定版本号对应的软件包后,根据预先统计的软件与服务器的安装关系,确定已安装所述目标软件的至少一个目标服务器,并在检测到符合预定回滚条件时,采用所述指定版本号对应的软件包对所述至少一个目标服务器中的所述目标软件进行替换。
14.根据权利要求11所述的装置,其特征在于,所述自动化运维组件为saltstack组件、ansible组件或puppet组件。
15.一种电子设备,其特征在于,所述电子设备包括:
处理器和存储器,其中,
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现权利要求1-10任一所述的方法步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-10任一所述的方法步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710701202.2A CN109426510B (zh) | 2017-08-16 | 2017-08-16 | 软件处理方法、装置、电子设备及计算机可读存储介质 |
PCT/CN2018/100731 WO2019034095A1 (zh) | 2017-08-16 | 2018-08-16 | 软件处理方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710701202.2A CN109426510B (zh) | 2017-08-16 | 2017-08-16 | 软件处理方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109426510A true CN109426510A (zh) | 2019-03-05 |
CN109426510B CN109426510B (zh) | 2021-03-26 |
Family
ID=65362630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710701202.2A Active CN109426510B (zh) | 2017-08-16 | 2017-08-16 | 软件处理方法、装置、电子设备及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109426510B (zh) |
WO (1) | WO2019034095A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704076A (zh) * | 2019-10-15 | 2020-01-17 | 上海元城汽车技术有限公司 | 数据处理方法和装置、车载控制器及计算机可读存储介质 |
CN111610988A (zh) * | 2020-05-26 | 2020-09-01 | 网神信息技术(北京)股份有限公司 | 用于软件管理的处理方法和装置 |
CN111782252A (zh) * | 2020-08-20 | 2020-10-16 | 深圳市元征科技股份有限公司 | 一种软件更新控制方法、系统及相关设备 |
CN112905219A (zh) * | 2021-02-07 | 2021-06-04 | 惠州Tcl移动通信有限公司 | 基于sd卡的软件更新方法、终端及计算机可读存储介质 |
CN114675852A (zh) * | 2022-05-26 | 2022-06-28 | 青岛美迪康数字工程有限公司 | 一种医疗软件安装系统及方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124458A (zh) * | 2019-12-29 | 2020-05-08 | 北京浪潮数据技术有限公司 | 一种软件更新方法及相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770375A (zh) * | 2008-12-26 | 2010-07-07 | 新奥特(北京)视频技术有限公司 | 一种软件自动升级的实现方法、系统和装置 |
CN103067445A (zh) * | 2012-12-06 | 2013-04-24 | 华为技术有限公司 | 一种分布式系统的软件升级方法及装置 |
US20150205875A1 (en) * | 2013-03-15 | 2015-07-23 | Quixey, Inc. | Similarity Engine for Facilitating Re-Creation of an Application Collection of a Source Computing Device on a Destination Computing Device |
CN105763350A (zh) * | 2014-12-16 | 2016-07-13 | 中兴通讯股份有限公司 | 一种利用组播方式升级版本的方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101877650B (zh) * | 2010-05-20 | 2014-02-05 | 中兴通讯股份有限公司 | 一种自动更新软件版本的方法及系统 |
CN102043656A (zh) * | 2011-01-20 | 2011-05-04 | 宇龙计算机通信科技(深圳)有限公司 | 软件管理方法、软件管理服务器 |
US20140250290A1 (en) * | 2013-03-01 | 2014-09-04 | St-Ericsson Sa | Method for Software Anti-Rollback Recovery |
-
2017
- 2017-08-16 CN CN201710701202.2A patent/CN109426510B/zh active Active
-
2018
- 2018-08-16 WO PCT/CN2018/100731 patent/WO2019034095A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770375A (zh) * | 2008-12-26 | 2010-07-07 | 新奥特(北京)视频技术有限公司 | 一种软件自动升级的实现方法、系统和装置 |
CN103067445A (zh) * | 2012-12-06 | 2013-04-24 | 华为技术有限公司 | 一种分布式系统的软件升级方法及装置 |
US20150205875A1 (en) * | 2013-03-15 | 2015-07-23 | Quixey, Inc. | Similarity Engine for Facilitating Re-Creation of an Application Collection of a Source Computing Device on a Destination Computing Device |
CN105763350A (zh) * | 2014-12-16 | 2016-07-13 | 中兴通讯股份有限公司 | 一种利用组播方式升级版本的方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704076A (zh) * | 2019-10-15 | 2020-01-17 | 上海元城汽车技术有限公司 | 数据处理方法和装置、车载控制器及计算机可读存储介质 |
CN111610988A (zh) * | 2020-05-26 | 2020-09-01 | 网神信息技术(北京)股份有限公司 | 用于软件管理的处理方法和装置 |
CN111782252A (zh) * | 2020-08-20 | 2020-10-16 | 深圳市元征科技股份有限公司 | 一种软件更新控制方法、系统及相关设备 |
CN112905219A (zh) * | 2021-02-07 | 2021-06-04 | 惠州Tcl移动通信有限公司 | 基于sd卡的软件更新方法、终端及计算机可读存储介质 |
CN114675852A (zh) * | 2022-05-26 | 2022-06-28 | 青岛美迪康数字工程有限公司 | 一种医疗软件安装系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109426510B (zh) | 2021-03-26 |
WO2019034095A1 (zh) | 2019-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109426510A (zh) | 软件处理方法、装置、电子设备及计算机可读存储介质 | |
US10682761B2 (en) | System and method for detecting and fixing robotic process automation failures | |
CN103841204B (zh) | 基于移动终端的免流量下载方法、装置及系统 | |
CN108322351A (zh) | 生成拓扑图的方法和装置、故障确定方法和装置 | |
CN105303112B (zh) | 组件调用漏洞的检测方法及装置 | |
CN105404952A (zh) | 基于sap平台的审批工作流动态配置方法及系统 | |
CN107786601B (zh) | 一种信息处理方法、终端及服务器 | |
CN108416449B (zh) | 一种运维方法和装置 | |
CN107391092B (zh) | 自动部署关联软件的方法和系统 | |
CN101778004B (zh) | 用于执行基于门限值调度的设备管理的终端和方法 | |
CN107894919A (zh) | 定时任务触发方法、装置、设备及可读存储介质 | |
CN106155806A (zh) | 一种多任务调度方法及服务器 | |
CN108880897A (zh) | 服务器的验收方法、装置、计算机设备及存储介质 | |
CN104320492A (zh) | 网站服务器调度方法和装置 | |
CN110532021A (zh) | 分布式控制系统的组态文件的处理方法及装置 | |
CN106648557A (zh) | 一种应用程序编程接口api的分享方法和装置 | |
CN108388512A (zh) | 数据处理方法和服务器 | |
CN104468207A (zh) | 终端管理的方法、装置及系统 | |
CN104462243A (zh) | 一种结合数据校验的etl调度系统及方法 | |
CN104683473A (zh) | 监控服务质量的方法、服务端、客户端及系统 | |
CN105100117B (zh) | 一种用于访问组合服务的方法及装置 | |
CN104461741B (zh) | 基于图形设备接口的计算设备优化方法及装置 | |
CN107526584A (zh) | 数据接入方法和装置 | |
CN110109684A (zh) | 区块链节点管理代理服务安装方法、电子装置及存储介质 | |
CN109302336B (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 |