一种软件升级方法及装置与流程

    专利2022-07-08  86


    本申请涉及计算机技术领域,尤其涉及一种软件升级方法及装置。



    背景技术:

    内容分发网络(contentdeliverynetwork,cdn)的作用是通过缓存的方式为终端用户的访问提供最快速、稳定的访问路径,因此,在cdn网络中存在大量的服务器,不同类型和规划的服务器,所使用的软件以及软件的版本信息都可能不同。

    当服务器中的软件需要升级时,需要工作人员重新对软件的配置信息进行手动部署调整,才能够实现对软件的更新,但是,随着计算机技术的发展,业务范围越来越广、产品类型越来越多样,因此,软件的种类越来越多,并且,软件的配置信息中的内容也越来越多,因此,现有技术中这种通过人工进行软件升级的方式效率不高。



    技术实现要素:

    本申请实施例提供一种软件升级方法及装置,以提高软件升级的效率。

    本申请实施例提供的具体技术方案如下:

    一种软件升级方法,应用于服务器,包括:

    接收业务流平台发送的软件升级指令,从软件规划平台中获取到软件的初始版本信息;

    根据所述初始版本信息和版本更新函数,确定所述软件的最新版本信息;

    根据所述最新版本信息从所述软件规划平台中获取最新软件升级包,并根据所述最新软件升级包升级所述软件。

    可选的,接收业务流平台发送的软件升级指令,从软件规划平台中获取到软件的初始版本信息,具体包括:

    接收业务流平台发送的软件升级指令,其中,所述软件升级指令中至少包括版本更新函数、ip地址和软件名称信息;

    根据所述ip地址和所述软件名称信息,从软件规划平台中获取到软件的初始版本信息。

    可选的,所述服务器是所述业务流平台根据用户输入的软件升级信息中的ip地址,从预设的多个服务器中选择出的;

    所述初始版本信息为所述软件规划平台根据所述服务器的类型和规划信息确定出并发送给所述服务器的;

    所述版本更新函数为所述业务流平台根据所述软件名称信息,从软件包配置平台中获取到并添加至所述软件升级指令中的。

    可选的,根据所述最新软件升级包升级所述软件之后,进一步包括:

    读取当前使用的软件的版本信息;

    若确定所述版本信息与从所述软件规划平台获取到的软件的最新的版本信息不相同,则根据所述最新的版本信息从所述软件规划平台中获取到最新升级包升级所述软件。

    可选的,若所述软件升级指令中还包括组合顺序信息和基础安装脚本,则根据所述最新软件升级包升级所述软件,具体包括:

    将所述基础安装脚本和所述最新版本信息按照所述组合顺序信息进行合并,生成最新安装脚本;

    执行所述最新安装脚本,并根据所述最新软件升级包升级所述软件。

    可选的,根据所述最新软件升级包升级所述软件之后,进一步包括:

    接收所述业务流平台发送的软件测试指令,其中,所述软件测试指令中至少包括基础测试脚本、ip地址、软件名称信息和最新版本信息;

    根据所述最新版本信息从所述软件规划平台中获取最新软件测试包;

    根据所述基础测试脚本和所述最新版本信息,生成所述软件的完整测试脚本;

    执行所述完整测试脚本,并根据所述最新软件测试包对所述软件的软件升级情况信息和版本信息进行测试。

    一种软件升级装置,应用于服务器,包括:

    第一获取模块,用于接收业务流平台发送的软件升级指令,从软件规划平台中获取到软件的初始版本信息;

    确定模块,用于根据所述初始版本信息和版本更新函数,确定所述软件的最新版本信息;

    第一升级模块,用于根据所述最新版本信息从所述软件规划平台中获取最新软件升级包,并根据所述最新软件升级包升级所述软件。

    可选的,第一获取模块具体用于:

    接收业务流平台发送的软件升级指令,其中,所述软件升级指令中至少包括版本更新函数、ip地址和软件名称信息;

    根据所述ip地址和所述软件名称信息,从软件规划平台中获取到软件的初始版本信息。

    可选的,所述服务器是所述业务流平台根据用户输入的软件升级信息中的ip地址,从预设的多个服务器中选择出的;

    所述初始版本信息为所述软件规划平台根据所述服务器的类型和规划信息确定出并发送给所述服务器的;

    所述版本更新函数为所述业务流平台根据所述软件名称信息,从软件包配置平台中获取到并添加至所述软件升级指令中的。

    可选的,根据所述最新软件升级包升级所述软件之后,进一步包括:

    读取模块,用于读取当前使用的软件的版本信息;

    第二升级模块,用于若确定所述版本信息与从所述软件规划平台获取到的软件的最新的版本信息不相同,则根据所述最新的版本信息从所述软件规划平台中获取到最新升级包升级所述软件。

    可选的,若所述软件升级指令中还包括组合顺序信息和基础安装脚本,则根据所述最新软件升级包升级所述软件时,第一升级模块具体用于:

    将所述基础安装脚本和所述最新版本信息按照所述组合顺序信息进行合并,生成最新安装脚本;

    执行所述最新安装脚本,并根据所述最新软件升级包升级所述软件。

    可选的,根据所述最新软件升级包升级所述软件之后,进一步包括:

    第二接收模块,用于接收所述业务流平台发送的软件测试指令,其中,所述软件测试指令中至少包括基础测试脚本、ip地址、软件名称信息和最新版本信息;

    第二获取模块,用于根据所述最新版本信息从所述软件规划平台中获取最新软件测试包;

    生成模块,用于根据所述基础测试脚本和所述最新版本信息,生成所述软件的完整测试脚本;

    测试模块,用于执行所述完整测试脚本,并根据所述最新软件测试包对所述软件的软件升级情况信息和版本信息进行测试。

    一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述软件升级方法的步骤。

    一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述软件升级方法的步骤。

    本申请实施例中,接收业务流平台发送的软件升级指令,从软件规划平台中获取到软件的初始版本信息,根据初始版本信息和版本更新函数,确定软件的最新版本信息,根据最新版本信息从软件规划平台中获取最新软件升级包,并根据最新软件升级包升级软件,这样,在软件进行升级时,服务器能够根据初始版本信息和获取到的版本更新函数自动计算最新版本信息,并基于最新版本信息获取到最新软件升级包,进而根据最新软件升级包升级软件,能够将现有技术中的人工配置最新版本信息的方式,替换为自动配置软件的最新版本信息的方式,无需工作人员对软件的版本信息进行手动部署调整,进而实现软件的自动升级,能够避免因出现配置错误而影响软件的升级的情况,不仅能够提高软件升级的效率,还能够提高软件升级的准确性,并且,初始版本信息为根据服务器的类型和规划信息进而配置的,这样,差异化配置初始版本信息,能够针对不同类型和规划信息的服务器进行灵活配置。

    附图说明

    图1为本申请实施例中一种软件升级方法的流程图;

    图2为本申请实施例中软件升级方法的交互流程图;

    图3为本申请实施例中软件升级装置的结构示意图;

    图4为本申请实施例中电子设备的结构示意图。

    具体实施方式

    下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

    内容分发网络(contentdeliverynetwork,cdn)的作用是:cdn厂商通过缓存的方式为终端用户的访问提供最快速、稳定的访问路径。现代的互联网公司,为了支撑海量用户的访问,其后端往往需上万台服务器来提供服务。当几千台离线服务器需要短时间部署好程序并发布到线上使用时,如何快速准确部署程序启用这些服务器,如何把线下的服务器与线上的服务器融合起来,提高更精准的服务,达到最高效率;如何快速部署同软件、产品特性的机器,集中进行规划管理等等这些都是迫切需要解决的。

    由于cdn网络中有大量服务器,并且,每一服务器中可能会安装有不同的软件,不同类型的和规划的服务器所使用的软件以及软件的版本信息都可能不同,现有技术中,在对服务器中的软件进行升级时,如果依赖于人工对部署配置文件进行更新,每当软件升级都需要进行对应的配置调整,随着计算机技术的发展,由于业务范围广、产品类型多样、配置数量内容繁多,通过使用传统配置方式升级软件,显然易出现配置错误进而影响软件升级,最终还需频繁耗费人力进行确认,导致服务器资源无法及时上线使用,因此通过传统配置方式的效率不高。

    为了解决上述问题,本申请实施例中提供了一种软件升级方法,接收业务流平台发送的软件升级指令,从软件规划平台中获取到软件的初始版本信息,根据初始版本信息和版本更新函数,确定软件的最新版本信息,根据最新版本信息从软件规划平台中获取最新软件升级包,并根据最新软件升级包升级软件,这样,在对软件进行升级时,用户仅需在业务流平台中进行一次配置,就能够完成软件升级,无需在每一次进行软件升级时,重新对版本信息进行更新,能够大幅减少在软件更新时的文档维护成本。同时,由于将人工配置最新版本信息的方式转换为自动化升级,因此,不容易出现配置错误进而影响软件升级的情况,能够大幅度提高软件升级的准确性,进而提升软件升级的升级成功率。

    基于上述实施例,参阅图1所示,为本申请实施例中一种软件升级方法的流程图,具体包括:

    步骤100:接收业务流平台发送的软件升级指令,从软件规划平台中获取到软件的初始版本信息。

    本申请实施例中,执行步骤100时,具体包括:

    s1:接收业务流平台发送的软件升级指令。

    其中,软件升级指令中至少包括版本更新函数、ip地址和软件名称信息。

    本申请实施例中,工作人员确定需要进行软件升级的服务器,以及需要升级的软件,并将需要升级的软件对应的软件名称信息和需要进行软件升级的服务器对应的ip地址输入至业务流平台中,由业务流平台生成工单信息,并触发软件升级操作。并且,在生成工单信息之后,业务流平台还会根据软件名称信息,从软件包配置平台中获取到关于该软件的更新内容。

    其中,工单信息中至少包括软件名称信息和ip地址,更新内容中至少包括安装文档信息和版本更新函数,安装文档信息中包含有软件名称信息、组合顺序信息等,本申请实施例中对此并不进行限制。

    需要说明的是,版本更新函数为业务流平台根据软件名称信息,从软件包配置平台中获取到并添加至软件升级指令中的。并且,版本更新函数是基于不同的软件配置的,版本更新函数与软件之间存在对应关系,每一种软件对应一种版本更新函数,版本更新函数用于对软件的初始版本信息进行更新。

    其中,版本更新函数例如可以为getsoftver、fetchepackbyapm.sh、checkrpmlowsetversion,本申请实施例中对此并不进行限制。

    需要说明的是,本申请实施例中的服务器为cdn网络中的服务器,cdn网络中存在着上万台服务器来提供服务。因此,如果每一台服务器均需要进行软件升级时,由于服务器数量众多,因此,通过现有技术中的人工配置方式对服务器的最新软件信息进行配置时,很容易出现配置错误的情况,为了解决上述问题,本申请实施例中提出了版本更新函数,并根据初始版本信息和版本更新函数实时获得最新版本信息,这样,在软件升级时,无需人工配置,就能够实现软件升级的自动化。

    并且,本申请实施例中的方法不仅可以应用于cdn网络的应用场景,还可以扩展到其它需要进行软件升级的应用场景,本申请实施例中对此并不进行限制。

    服务器是业务流平台根据用户输入的软件升级信息中的ip地址,从预设的多个服务器中选择出的,也就是说,业务流平台根据用户输入的ip地址,从包含有多个服务器的cdn网络中,选择出与该ip地址对应的服务器,并将包含有ip地址的软件升级指令发送给所述服务器。

    例如,假设软件升级信息中的ip地址为192.168.0.1,根据ip地址和服务器之间的对应关系,从预设的多个服务器中选择出对应的服务器为a服务器。

    进一步地,业务流平台在生成工单信息之后,还会生成脚本获取指令,并将脚本获取指令发送给软件包配置平台,进而软件包配置平台响应于脚本获取指令,将软件的基础安装脚本发送给业务流平台,进而业务流平台接收软件包配置平台中发送的基础安装脚本,再将接收到的基础安装脚本发送给与ip地址对应的服务器,这样,服务器就能够接收到业务流平台发送的基础安装脚本,并执行基础安装脚本,触发升级操作。

    需要说明的是,本申请实施例中,基础安装脚本用于触发服务器执行升级操作,基础安装脚本为业务流平台从软件包配置平台中获取到并发送给服务器,每个软件的基础安装脚本都相同。

    其中,业务流平台可以根据ip力度值和应用服务力度值来调整基础安装脚本中包含的代码的参数,从而实现对基础安装脚本的调整。

    需要说明的是,ip力度值和应用服务器力度值为基础安装脚本中包含的代码的参数。

    进一步地,为了实现软件升级的自动化,软件包配置平台还会下发执行指令至服务器,以使服务器在接收到执行指令之后,响应于执行指令,获取并执行基础安装脚本。

    s2:根据ip地址和软件名称信息,从软件规划平台中获取到软件的初始版本信息。

    本申请实施例中,软件规划平台中存储有每一个服务器所安装的软件对应的初始版本信息。因此,服务器可以根据ip地址,从软件规划平台中查找到与ip地址对应的软件信息列表,获得在该服务器中安装的各软件的软件信息,并根据软件名称信息,从软件信息列表中查找到与软件名称信息对应的软件的初始版本信息。

    其中,初始版本信息为软件规划平台根据服务器的类型和规划信息确定出并发送给服务器的,因此,即使不同的服务器中安装有相同的软件,但是这些软件对应的初始版本信息也可能是不同的。

    服务器的类型例如可以为图片、视频等,类型为图片的服务器能够处理图片,类型为视频的服务器能够处理视频,本申请实施例中对服务器的类型并不进行限制。

    服务器的规划信息表征某一类服务器中安装的软件的软件类型,例如,类型为图片的服务器中安装有多种不同类型的能够处理图片的软件,又例如,类型为视频的服务器中安装有多种不同类型的能够处理视频的软件。

    例如,假设针对软件x,a服务器为能够处理图片的服务器,且a服务器的规划信息为图片应用,则为a服务器配置的初始软件版本信息为squid-2.6.4.x86_64.rpm,b服务器的类型为能够处理视频的服务器,且b服务器的规划信息为点播应用,则为b服务器配置的初始软件版本信息为squid-3.2.8.x86_64.rpm。因此,虽然a服务器和b服务器均安装软件x,但由于二者的类型信息和规划信息不同,因此,其对应的初始软件版本信息也是不同的。

    这样,初始版本信息为根据服务器的类型和规划信息进而配置的,差异化配置初始版本信息,能够针对不同类型和规划信息的服务器进行灵活配置。

    步骤120:根据初始版本信息和版本更新函数,确定软件的最新版本信息。

    本申请实施例中,服务器从软件规划平台中获取到初始版本信息之后,执行业务流平台发送的基础安装脚本,从而执行升级操作,使用版本更新函数对初始版本信息进行计算,确定软件的最新版本信息。

    例如,假设某一软件的初始版本信息为1.13,该软件应当使用到的版本更新函数为getsoftver,则根据版本更新函数getsoftver,对初始版本信息1.13进行计算,计算获得的该软件的最新版本信息为1.14.0-6。

    这样,这样,在软件进行升级时,服务器能够根据初始版本信息和获取到的版本更新函数自动计算最新版本信息,并基于最新版本信息获取到最新软件升级包,进而根据最新软件升级包升级软件,能够将现有技术中的人工配置最新版本信息的方式,替换为自动配置软件的最新版本信息的方式,无需工作人员对软件的版本信息进行手动部署调整,进而实现软件的自动升级,能够避免因出现配置错误而影响软件的升级的情况,不仅能够提高软件升级的效率,还能够提高软件升级的准确性。因此,在本申请实施例的例子中,使用版本更新函数getsoftver来确定软件的最新版本信息,从而能够在基础安装脚本运行后,自动获取软件的最新版本信息,并将最新版本信息自动补充至原需版本信息的最新安装脚本中。这样,可以实现一次配置,自动更新的效果,并且,由于最新版本信息是基于版本更新函数生成的,因此,后续软件再需要进行升级时,无需重新配置最新版本信息,业务流平台可以根据基础安装脚本自动触发升级操作,自动生成最新版本信息,并基于最新版本信息升级软件,从而实现了软件的自动升级。

    并且,本申请实施例中,将原本需要固定配置的软件的最新版本信息修改为由版本更新函数和初始版本信息实时获取的方式,能够实现对软件的自动升级,从而提高软件升级的效率。

    步骤130:根据最新版本信息从软件规划平台中获取最新软件升级包,并根据最新软件升级包升级软件。

    本申请实施例中,在计算得到软件的最新版本信息之后,就能够根据软件的最新版本信息,从软件规划平台中获取该软件的最新软件升级包,并根据获取到的最新软件升级包升级软件。

    其中,软件规划平台例如可以为应用规划平台(applicationperformplatform,apm),本申请实施例中对此并不进行限制。

    下面对本申请实施例中,根据最新软件升级包升级软件的步骤进行详细阐述,具体包括:

    s1:将基础安装脚本和最新版本信息按照组合顺序信息进行合并,生成最新安装脚本。

    本申请实施例中,由于软件升级指令中还包括组合顺序信息和基础安装脚本,因此,业务流平台将组合顺序信息发送给服务器,进而服务器接收业务流平台发送的组合顺序信息,并将基础安装脚本和最新版本信息按照组合顺序信息中的指定顺序进行组合,生成最新安装脚本。

    其中,组合顺序信息表征最新版本信息和基础安装脚本的组合顺序,组合顺序信息中包含预先设定的最新版本信息和基础安装脚本的指定组合顺序。

    最新安装脚本用于服务器执行根据最新软件升级包更新软件的步骤。

    例如,假设基础安装脚本为表示为:ccm_ver=$(getsoftver“ccmbeacon”“ip_”“x86_64”“zip”“pack”)。

    最新版本信息表示为:unzip-o“ccmbeacon-”${ccm_ver}“.x86_64.zip”。

    将基础安装脚本和最新版本信息按照指定顺序进行组合,生成最新安装脚本,最新安装脚本可以表示为:unzip-occmbeacon-1.14.0-6.x86_64.zip。

    s3:执行最新安装脚本,并根据最新软件升级包升级软件。

    本申请实施例中,在生成最新安装脚本之后,服务器执行生成的最新安装脚本,并基于最新安装脚本执行根据最新软件升级包升级软件的步骤。

    进一步地,在进行软件升级之后,还可以实时判断当前服务器使用的软件是否为最新的软件,若当前服务器使用的软件不为最新的软件,则清理旧的软件,避免旧软件干扰正常软件安装使用,下面对本申请实施例中进行软件清理的步骤进行详细阐述,具体包括:

    s1:读取当前使用的软件的版本信息。

    本申请实施例中,服务器读取当前使用的软件的版本信息。

    s2:若确定版本信息与从软件规划平台获取到的软件的最新的版本信息不相同,则根据最新的版本信息从软件规划平台中获取到最新升级包升级软件。

    本申请实施例中,服务器判断当前使用的软件的版本信息与从软件规划平台获取到的软件的最新的版本信息是否相同,具体可以分为以下两种情况。

    第一种情况:当前使用的软件的版本信息与从软件规划平台获取到的软件的最新的版本信息相同。

    具体包括:若确定当前使用的软件的版本信息与从软件规划平台获取到的最新版本信息相同,则确定当前使用的软件为最新软件,无需进行更新。

    第二种情况:当前使用的软件的版本信息与从软件规划平台获取到的软件的最新的版本信息不相同。

    具体包括:若确定当前使用的版本信息与计算获得的最新版本信息不相同,则确定当前使用的软件为旧软件,需要根据最新版本信息来清理旧配置,避免旧软件干扰正常软件的使用。

    这样,通过将当前使用的版本信息与计算获得的最新版本信息进行比对,从而确定是否需要更新软件,能够实现大批量服务器的软件包自动筛选安装,用户仅需进行一次配置,即可达成软件升级、检测脚本自动更新使用的目的,还可以减少在业务流平台中配置和维护信息的成本,同时大幅提高软件升级的准确性,进而提升自动化软件安装成功率、降低人员成本、提升服务器资源使用率,同时减小了部署服务器的处理和网络资源瓶颈,达到最高效率实现服务器软件统一规划部署管理。

    进一步地,在进行软件升级之后,还可以对升级后的软件进行检测,确定更新后的软件安装情况与版本信息,下面对本申请实施例中对升级后的软件进行检测的步骤进行详细阐述,具体包括:

    s1:接收业务流平台发送的软件测试指令。

    其中,软件测试指令中至少包括基础测试脚本、ip地址、软件名称信息和最新版本信息。

    其中,基础测试脚本为业务流平台从软件包配置平台中获取到并发送给服务器的。

    需要说明的是,每一个软件的基础测试脚本均是相同的,基础测试脚本用于触发服务器执行测试。

    本申请实施例中,工作人员确定需要进行测试的软件以及需要测试软件的服务器,并将需要进行测试的软件的软件名称信息和需要测试软件的服务器对应的ip地址输入至业务流平台中,由业务流平台生成工单信息,并触发软件测试操作、并且,业务流平台还会将包含有基础测试脚本、ip地址和软件名称信息的软件测试指令发送给服务器,进而由服务器接收软件测试指令。

    其中,工单信息中包含有测试文档信息和ip地址,测试文档信息中包含有软件名称信息、组合顺序信息等,本申请实施例中对此并不进行限制。

    并且,业务流平台在获取到测试文档信息之后,还会生成脚本获取指令,并将脚本获取指令发送给软件包配置平台,进而软件包配置平台响应于脚本获取指令,将软件的基础测试脚本发送给业务流平台,进而业务流平台接收软件包配置平台发送的基础测试脚本,再将接收到的基础测试脚本发送给与ip地址对应的服务器,这样,服务器就能够接收到业务流平台发送的基础测试脚本,并执行基础测试脚本,触发测试操作。

    其中,服务器为业务流平台根据获取到的ip地址进而确定出的,也就是说,业务流平台根据用户输入的ip地址,从预设的多个服务器中选择出与该ip地址对应的服务器,并将软件测试指令发送给选择出的服务器,进而与该ip地址对应的服务器能够接收到发送的软件测试指令。

    s2:根据最新版本信息从软件规划平台中获取最新软件测试包。

    本申请实施例中,根据在软件升级过程中计算获得的最新版本信息,从软件规划平台中获取到与该最新版本信息对应的最新软件测试包。

    s3:根据基础测试脚本和最新版本信息,生成软件的完整测试脚本。

    本申请实施例中,当软件测试指令中还包括组合顺序信息时,则将基础测试脚本和最新版本信息按照软件测试指令中包含的组合顺序信息进行组合,生成指定顺序的该软件的完整测试脚本。

    下面采用一个具体的例子对本申请实施例中的步骤s3进行详细阐述。假设基础安装脚本表示为:

    ccm_ver=$(getsoftver“ccmbeacon”“ip_”“x86_64”“zip”“pack”)。

    获取在升级操作时获得的最新版本信息,具体可以表示为:

    checkrpmlowestversion“ccmbeacon-”${ccm_ver}“.x86_64.zip”。

    因此,在将基础检测脚本和最新版本信息按照软件测试指令中包含的组合顺序信息进行组合,生成指定顺序的完整检测脚本时,完整检测脚本可以表示为:

    checkrpmlowestversionccmbeacon-1.14.0-6.x86_64.zip。

    s4:执行完整测试脚本,并根据最新软件测试包对软件的软件升级情况信息和版本信息进行测试。

    本申请实施例中,执行完整测试脚本,并根据最新软件测试包,对软件的软件升级情况信息和版本信息进行测试。

    进一步地,在对软件的软件升级情况信息和版本信息进行测试时,还可以输出检测结果,进而工作人员能够根据输出的检测结果,从而对软件升级情况进行判定。

    下面采用一个具体的例子对本申请实施例中的步骤s4进行说明。

    例如,假设完整测试脚本为:

    checkrpmlowestversionccmbeacon-1.14.0-6.x86_64.zip。

    则执行完整检测脚本,并根据最新软件测试包对软件的软件升级情况信息和版本信息进行测试,输出的结果具体可以分为以下两类:

    第一类:检测成功。

    当输出信息为空时,则确定检测成功。

    第二类:检测失败。

    当输出的信息为“checkerrorinfo:not_install:ccmbeacon”时,则确定检测失败,进而工作人员能够根据输出的信息来调整完整检测脚本。

    本申请实施例中,接收业务流平台发送的软件升级指令,从软件规划平台中获取到软件的初始版本信息,根据初始版本信息和版本更新函数,确定软件的最新版本信息,根据最新版本信息从软件规划平台中获取最新软件升级包,并根据最新软件升级包升级软件,这样,对于不同规划、属性的服务器,能够通过在软件规划平台中自定义编排需要安装的服务和应用,实现可定制的差异化安装,还能够实现对于不同的服务器的软件包的精确匹配、快速安装。

    并且,本申请实施例中能够实现在服务器进行软件安装修复时,根据应用及服务器类型等信息高效自动识别服务器规划信息,在需要进行软件升级、检测时,实时获取最新版本信息,并通过业务流平台输入的信息,生成标准化的软件升级指令,并推送至服务器,最后由服务器调用进行软件的升级及检测,本申请实施例中的方法综合利用平台软件包规划信息、cdn网络资源、自动化工作流系统,大幅提升负责业务场景下的服务器软件升级的准确性,同时减少部署服务器的人员处理和网络资源瓶颈。

    基于上述实施例,参阅图2所示,为本申请实施例中软件升级方法的交互流程图,具体包括:

    步骤200:业务流平台触发软件升级。

    步骤210:业务流平台从软件包配置平台获取到软件的版本更新函数和基础安装脚本。

    步骤220:业务流平台将基础安装脚本、版本更新函数和从软件规划平台中获取到的初始版本信息发送给服务器。

    需要说明的是,cdn网络中存在着上万台服务器来提供服务,因此,可以根据用户输入的ip地址,来确定需要将基础安装脚本、版本更新函数和从软件规划平台中获取到的初始版本信息发送给哪一个服务器,这样,通过ip地址能够精准定位到需要进行软件升级的服务器。

    初始版本信息为根据服务器的类型和规划信息,以及软件的软件类型配置在软件规划平台中的,因此,软件规划平台中包含有每一个服务器的软件信息列表,软件信息列表中包含有服务器所安装的软件的软件名称和对应的初始版本信息,这样,差异化配置初始版本信息,能够针对不同类型和规划信息的服务器进行灵活配置。

    步骤230:服务器执行基础安装脚本,并根据初始版本信息和版本更新函数,确定软件的最新版本信息。

    步骤240:服务器将基础安装脚本和最新版本信息按照组合顺序信息进行合并,生成最新安装脚本。

    步骤250:服务器执行最新安装脚本,并根据最新版本信息从软件规划平台中获取最新软件升级包。

    步骤260:服务器根据最新软件升级包升级软件。

    本申请实施例中,业务流平台将从软件包配置平台获取到的软件的版本更新函数和基础安装脚本,以及初始版本信息发送给服务器,服务器根据初始版本信息和版本更新函数,确定软件的最新版本信息,根据最新版本信息从软件规划平台中获取最新软件升级包,并根据最新软件升级包升级软件,用户仅需进行一次配置,就可能实现软件升级,检测脚本自动更新使用,大幅度减少配置任务的文档维护成本,同时大幅度提升软件升级的准确性。

    基于同一发明构思,本申请实施例中还提供了一种软件升级装置,该软件升级装置例如可以为前述的服务器,该软件升级装置可以是硬件结构、软件模块、或硬件结构加软件模块。基于上述实施例,参阅图3所示为本申请实施例中另一软件升级装置的结构示意图,具体包括:

    第一获取模块300,用于接收业务流平台发送的软件升级指令,从软件规划平台中获取到软件的初始版本信息;

    确定模块310,用于根据所述初始版本信息和版本更新函数,确定所述软件的最新版本信息;

    第一升级模块320,用于根据所述最新版本信息从所述软件规划平台中获取最新软件升级包,并根据所述最新软件升级包升级所述软件。

    可选的,第一获取模块300具体用于:

    接收业务流平台发送的软件升级指令,其中,所述软件升级指令中至少包括版本更新函数、ip地址和软件名称信息;

    根据所述ip地址和所述软件名称信息,从软件规划平台中获取到软件的初始版本信息。

    可选的,所述服务器是所述业务流平台根据用户输入的软件升级信息中的ip地址,从预设的多个服务器中选择出的;

    所述初始版本信息为所述软件规划平台根据所述服务器的类型和规划信息确定出并发送给所述服务器的;

    所述版本更新函数为所述业务流平台根据所述软件名称信息,从软件包配置平台中获取到并添加至所述软件升级指令中的。

    可选的,根据所述最新软件升级包升级所述软件之后,进一步包括:

    读取模块330,用于读取当前使用的软件的版本信息;

    第二升级模块340,用于若确定所述版本信息与从所述软件规划平台获取到的软件的最新的版本信息不相同,则根据所述最新的版本信息从所述软件规划平台中获取到最新升级包升级所述软件。

    可选的,若所述软件升级指令中还包括组合顺序信息和基础安装脚本,则根据所述最新软件升级包升级所述软件时,第一升级模块320具体用于:

    将所述基础安装脚本和所述最新版本信息按照所述组合顺序信息进行合并,生成最新安装脚本;

    执行所述最新安装脚本,并根据所述最新软件升级包升级所述软件。

    可选的,根据所述最新软件升级包升级所述软件之后,进一步包括:

    第二接收模块350,用于接收所述业务流平台发送的软件测试指令,其中,所述软件测试指令中至少包括基础测试脚本、ip地址、软件名称信息和最新版本信息;

    第二获取模块360,用于根据所述最新版本信息从所述软件规划平台中获取最新软件测试包;

    生成模块370,用于根据所述基础测试脚本和所述最新版本信息,生成所述软件的完整测试脚本;

    测试模块380,用于执行所述完整测试脚本,并根据所述最新软件测试包对所述软件的软件升级情况信息和版本信息进行测试。

    基于上述实施例,参阅图4所示为本申请实施例中电子设备的结构示意图。

    本申请实施例提供了一种电子设备,该电子设备可以包括处理器410(centerprocessingunit,cpu)、存储器420、输入设备430和输出设备440等,输入设备430可以包括键盘、鼠标、触摸屏等,输出设备440可以包括显示设备,如液晶显示器(liquidcrystaldisplay,lcd)、阴极射线管(cathoderaytube,crt)等。

    存储器420可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器410提供存储器420中存储的程序指令和数据。在本申请实施例中,存储器420可以用于存储本申请实施例中任一种软件升级方法的程序。

    处理器410通过调用存储器420存储的程序指令,处理器410用于按照获得的程序指令执行本申请实施例中任一种软件升级方法。

    基于上述实施例,本申请实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的软件升级方法。

    本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

    本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

    这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

    这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

    显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。


    技术特征:

    1.一种软件升级方法,其特征在于,应用于服务器,包括:

    接收业务流平台发送的软件升级指令,从软件规划平台中获取到软件的初始版本信息;

    根据所述初始版本信息和版本更新函数,确定所述软件的最新版本信息;

    根据所述最新版本信息从所述软件规划平台中获取最新软件升级包,并根据所述最新软件升级包升级所述软件。

    2.如权利要求1所述的方法,其特征在于,接收业务流平台发送的软件升级指令,从软件规划平台中获取到软件的初始版本信息,具体包括:

    接收业务流平台发送的软件升级指令,其中,所述软件升级指令中至少包括版本更新函数、ip地址和软件名称信息;

    根据所述ip地址和所述软件名称信息,从软件规划平台中获取到软件的初始版本信息。

    3.如权利要求2所述的方法,其特征在于,所述服务器是所述业务流平台根据用户输入的软件升级信息中的ip地址,从预设的多个服务器中选择出的;

    所述初始版本信息为所述软件规划平台根据所述服务器的类型和规划信息确定出并发送给所述服务器的;

    所述版本更新函数为所述业务流平台根据所述软件名称信息,从软件包配置平台中获取到并添加至所述软件升级指令中的。

    4.如权利要求2所述的方法,其特征在于,根据所述最新软件升级包升级所述软件之后,进一步包括:

    读取当前使用的软件的版本信息;

    若确定所述版本信息与从所述软件规划平台获取到的软件的最新的版本信息不相同,则根据所述最新的版本信息从所述软件规划平台中获取到最新升级包升级所述软件。

    5.如权利要求4所述的方法,其特征在于,若所述软件升级指令中还包括组合顺序信息和基础安装脚本,则根据所述最新软件升级包升级所述软件,具体包括:

    将所述基础安装脚本和所述最新版本信息按照所述组合顺序信息进行合并,生成最新安装脚本;

    执行所述最新安装脚本,并根据所述最新软件升级包升级所述软件。

    6.如权利要求1所述的方法,其特征在于,根据所述最新软件升级包升级所述软件之后,进一步包括:

    接收所述业务流平台发送的软件测试指令,其中,所述软件测试指令中至少包括基础测试脚本、ip地址、软件名称信息和最新版本信息;

    根据所述最新版本信息从所述软件规划平台中获取最新软件测试包;

    根据所述基础测试脚本和所述最新版本信息,生成所述软件的完整测试脚本;

    执行所述完整测试脚本,并根据所述最新软件测试包对所述软件的软件升级情况信息和版本信息进行测试。

    7.一种软件升级装置,其特征在于,应用于服务器,包括:

    第一获取模块,用于接收业务流平台发送的软件升级指令,从软件规划平台中获取到软件的初始版本信息;

    确定模块,用于根据所述初始版本信息和版本更新函数,确定所述软件的最新版本信息;

    第一升级模块,用于根据所述最新版本信息从所述软件规划平台中获取最新软件升级包,并根据所述最新软件升级包升级所述软件。

    8.如权利要求7所述的装置,其特征在于,所述服务器是所述业务流平台根据用户输入的软件升级信息中的ip地址,从预设的多个服务器中选择出的;

    所述初始版本信息为所述软件规划平台根据所述服务器的类型和规划信息确定出并发送给所述服务器的;

    所述版本更新函数为所述业务流平台根据所述软件名称信息,从软件包配置平台中获取到并添加至所述软件升级指令中的。

    9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-6任一项所述方法的步骤。

    10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1-6任一项所述方法的步骤。

    技术总结
    本申请涉及计算机技术领域,尤其涉及一种软件升级方法及装置,接收业务流平台发送的软件升级指令,从软件规划平台中获取到软件的初始版本信息;根据所述初始版本信息和版本更新函数,确定所述软件的最新版本信息;根据所述最新版本信息从所述软件规划平台中获取最新软件升级包,并根据所述最新软件升级包升级所述软件,这样,能够提高软件升级的准确性,进而提高自动化软件安装成功率。

    技术研发人员:陈林强;赖智慧
    受保护的技术使用者:网宿科技股份有限公司
    技术研发日:2020.12.16
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-23277.html

    最新回复(0)