CN108509203B - 软件跨云部署方法、计算机设备及存储介质 - Google Patents

软件跨云部署方法、计算机设备及存储介质 Download PDF

Info

Publication number
CN108509203B
CN108509203B CN201810203869.4A CN201810203869A CN108509203B CN 108509203 B CN108509203 B CN 108509203B CN 201810203869 A CN201810203869 A CN 201810203869A CN 108509203 B CN108509203 B CN 108509203B
Authority
CN
China
Prior art keywords
deployment
target
software
machine
transfer machine
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
Application number
CN201810203869.4A
Other languages
English (en)
Other versions
CN108509203A (zh
Inventor
高洪松
党受辉
王建学
吴嘉龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201810203869.4A priority Critical patent/CN108509203B/zh
Publication of CN108509203A publication Critical patent/CN108509203A/zh
Application granted granted Critical
Publication of CN108509203B publication Critical patent/CN108509203B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

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 Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提出一种软件跨云部署方法、部署服务器及存储介质,其中,方法包括:获取软件部署请求,所述部署请求中包括目标中转机标识、目标机标识、待部署的软件安装包及与所述目标机对应的第一校验文件;向所述目标中转机发送连接请求,所述连接请求中包括第一校验文件;接收所述目标机返回的连接响应消息;向所述目标中转机发送部署指令,所述部署指令中包括所述待部署的软件安装包及所述目标机标识。通过本方法,能够实现软件安装任务自动部署,有利于跨云批量部署任务,提高任务部署速度和效率,解决现有技术中安装过程繁琐、灵活性差的技术问题。

Description

软件跨云部署方法、计算机设备及存储介质
技术领域
本发明涉及互联网技术领域,尤其涉及一种软件跨云部署方法、部署服务器及存储介质。
背景技术
云网络就是将普通的独立服务器,通过网络技术进行功能性整合管理,形成一个功能强大高效快捷和安全可靠的虚拟网络服务体系,提供给网络用户按需取用。随着云技术的不断发展,逐渐出现了混合云网络。混合云网络,是指公有云、私有云和/或公众云的结合,是近年来云计算的主要模式和发展方向。
用户在使用云网络中的服务器时,通常需要首先在请求的服务器资源中进行软件部署,以使其实现相应功能。目前,在云网络中的各服务器中进行软件部署时,多采用手动方式实现。即首先手动下载安装包至目标机(目标服务器),然后在目标服务器中运行安装包以进行软件安装。
但是,上述手动安装的方式,不仅效率低,而且需要操作人员了解安装包的运行参数,出错概率高,且当待部署软件的目标机较多时,需要重复执行手动安装操作,安装过程繁琐,浪费人力资源。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明第一方面提出一种软件跨云部署方法,通过向目标中转机发送部署指令来控制目标中转机向目标机发送安装包,能够实现软件安装任务自动部署,有利于跨云批量部署任务,提高任务部署速度和效率。
本发明第二方面提出另一种软件跨云部署方法。
本发明第三方面提出另一种软件跨云部署方法。
本发明第四方面提出一种计算机设备。
本发明第五方面提出一种非临时性计算机可读存储介质。
本发明第一方面实施例提出了一种软件跨云部署方法,该方法由部署服务器执行,包括:
获取软件部署请求,所述部署请求中包括目标中转机标识、目标机标识、待部署的软件安装包及与所述目标中转机对应的第一校验文件;
向所述目标中转机发送连接请求,所述连接请求中包括第一校验文件;
接收所述目标中转机返回的连接响应消息;
向所述目标中转机发送部署指令,所述部署指令中包括所述待部署的软件安装包及所述目标机标识。
本发明第二方面实施例提出了另一种软件跨越部署方法,该方法由目标中转机执行,包括:
接收部署服务器发送的连接请求,所述连接请求中包括第一校验文件;
确定所述第一校验文件合法时,向所述部署服务器返回连接响应消息;
接收所述部署服务器发送的部署指令,所述部署指令中包括目标机标识及待部署的软件安装包;
根据所述目标机标识,向目标机发送软件安装指令,所述安装指令中包括所述待部署的软件安装包。
本发明第三方面实施例提出了另一种软件跨云部署方法,该方法由目标机执行,包括:
接收目标中转机发送的安装指令,所述安装指令中包括待部署的软件安装包;
卸载本地与所述软件安装包对应的其它版本的软件;
在确定其它版本的软件卸载完成后,安装所述软件安装包中的软件。
本发明第四方面实施例提出了一种计算机设备,包括:处理器和存储器;其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如第一方面实施例所述的软件跨云部署方法;或者,实现如第二方面实施例所述的软件跨云部署方法;或者,实现如第三方面实施例所述的软件跨云部署方法。
本发明第五方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面实施例所述的软件跨云部署方法;或者,实现如第二方面实施例所述的软件跨云部署方法;或者,实现如第三方面实施例所述的软件跨云部署方法。
综上所述,本发明实施例的软件跨云部署方法、部署服务器及存储介质,部署服务器与目标中转机之间、以及目标中转机与目标机之间均维护一个SSH会话,部署服务器通过目标中转机向目标机部署软件安装任务,不仅实现了跨云软件的自动部署,提高了软件部署速度和效率,提高了任务部署的灵活性,而且节省了人力,降低了跨云软件部署的成本;通过向目标中转机发送包含第一校验文件的连接请求以建立SSH会话,能够保证部署指令的传输安全性。此外,由于任务部署过程中无需人员参与,避免了主观因素对部署过程的影响,从而能够解决现有技术中手动部署任务出错率高的技术问题。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例所提供的第一种软件跨云部署方法的流程示意图;
图2为部署服务器的部署请求设置界面示例图;
图3为安装任务发放及消费过程示意图;
图4为本发明实施例所提供的第二种软件跨云部署方法的流程示意图;
图5为本发明实施例所提供的第三种软件跨云部署方法的流程示意图;
图6为本发明实施例所提供的第四种软件跨云部署方法的流程示意图;
图7为部署服务器发送部署任务的示意图一;
图8为部署服务器发送部署任务的示意图二;
图9为本发明实施例所提供的第五种软件跨云部署方法的流程示意图;
图10为本发明实施例所提供的第六种软件跨云部署方法的流程示意图;
图11为本发明实施例所提供的第七种软件跨云部署方法的流程示意图;
图12为本发明实施例所提供的第八种软件跨云部署方法的流程示意图;
图13为实现软件跨云部署方法的应用场景示意图;
图14为本发明一具体实施例的软件跨云部署方法的流程示意图;
图15为部署服务器向用户反馈部署结果的示例图;
图16为本发明实施例所提供的第一种部署服务器的结构示意图;
图17为本发明实施例所提供的第二种部署服务器的结构示意图;
图18为本发明实施例所提供的第三种部署服务器的结构示意图;
图19为本发明实施例所提供的第一种中转机的结构示意图;
图20为本发明实施例所提供的第二种中转机的结构示意图;
图21为本发明实施例所提供的第一种目标机的结构示意图;
图22为本发明实施例所提供的第二种目标机的结构示意图;
图23为本发明实施例所提供的一种计算机设备的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的软件跨云部署方法、计算机设备及存储介质。
下面首先以部署服务器侧为例,结合图1,对本申请提供的跨云软件部署方法进行详细说明。
图1为本发明实施例所提供的第一种软件跨云部署方法的流程示意图。
如图1所示,该软件跨云部署方法包括以下步骤:
步骤101,获取软件部署请求,其中,部署请求中包括目标中转机标识、目标机标识、待部署的软件安装包及与目标中转机对应的第一校验文件。
其中,第一校验文件中可以是与目标中转机对应的密码或密钥。
本实施例中,部署服务器可以根据用户在部署界面的操作生成软件部署请求。或者,部署服务器也可以在确定软件版本服务器中的软件版本更新时,根据更新软件的标识及各服务器中已部署软件的标识生成软件部署请求。
相应的,部署服务器可以在获取到部署请求后,从软件版本服务器中获取软件安装包。具体实现时,部署服务器可以在软件版本服务器发布新版本的软件安装包时自动获取新版本的软件安装包;也可以在用户发起部署请求后,根据部署请求中包含的待部署的软件安装包的名称及版本号,从软件版本服务器中获取待部署的软件安装包,本发明对此不作限制。
具体的,当部署请求是由用户(相关的技术人员)发起时,用户可以根据需要部署软件的目标机(包括属于同一云区域的目标机和/或属于不同云区域的目标机),确定目标中转机。进而在部署服务器的设置界面中输入目标中转机标识、目标机标识,并选择待部署的软件安装包,设置完成后,自动生成包含目标中转机标识、目标机标识和待部署的软件安装包的部署请求。部署服务器获取该部署请求后,则可以根据部署请求部署软件安装任务。
作为一种示例,图2为部署服务器的部署请求设置界面示例图。如图2所示,在部署服务器的设置界面中可以设置不同云区域的目标机的部署任务,假设用户想要对广州地区的目标机进行软件部署,则可以在如图2所示的界面中选择“云_广州”的云区域,之后填写该区域对应的目标中转机(Proxy)的标识以及目标机(Agent)的标识,在设置完成后,点击“开始安装”按钮,则自动生成部署请求。在本发明实施例一种可能的实现方式,可以预先在部署服务器中存储可实现连接的所有中转机的标识,以及存储各个中转机与对应的目标机之间的对应关系,从而,用户只需发起包含目标机标识及待部署的软件安装包的部署请求即可。部署服务器获取了部署请求后,根据部署请求中包含的目标机标识,通过查询预置的对应关系,确定目标中转机,能够简化用户的输入操作,用户仅需知道目标机的标识即可实现软件部署,而无需获取对应的中转机的标识。
或者,若部署请求是由部署服务器在确定软件版本服务器发布新版本的软件安装包时,即部署请求是自动触发的,则部署服务器可以根据各服务器中已部署的软件信息,确定目标机。比如,将已部署该软件其它版本的服务器确定为目标机,并将与该目标机所在云连接的中转机确定为目标中转机等,本实施例对此不做限定。
步骤102,向目标中转机发送连接请求,连接请求中包括第一校验文件。
部署服务器接收到部署请求后,可以从部署请求中提取出目标中转机标识、第一校验文件、第二校验文件等,并根据目标中转机标识,通过网络向目标中转机发送包含第一校验文件的连接请求。
目标中转机接收到连接请求后,对连接请求中包含的第一校验文件进行校验,以验证第一校验文件与自身的校验文件是否一致,当一致时验证通过,部署服务器与目标中转机之间建立起SSH会话,并允许部署服务器通过SSH会话向目标中转机发送部署指令,以使目标中转机代理部署服务器执行相应的操作。
步骤103,接收目标机返回的连接响应消息。
本实施例中,目标中转机对连接请求中的第一校验文件进行校验,并在校验通过后与部署服务器之间建立SSH会话,并向部署服务器返回连接响应消息。例如,校验通过后,目标中转机向部署服务器返回“连接成功”的响应消息;当校验失败时,向部署服务器返回“连接失败,请检查后重试”的响应消息。
步骤104,向目标中转机发送部署指令,其中,部署指令中包括待部署的软件安装包及目标机标识。
本实施例中,部署服务器获取了部署请求之后,可以根据部署请求向目标中转机发送包含待部署的软件安装包和目标机标识的部署指令。比如,可以首先在部署服务器与目标中转机之间维护一个安全外壳协议(Secure Shell,SSH)会话,然后部署服务器通过SSH会话向目标中转机发送部署指令。
作为一种示例,当部署服务器获取的部署请求中包含目标中转机标识时,部署服务器可以从部署请求中提取出目标中转机标识,根据目标中转机标识向对应的目标中转机发送部署指令。
作为一种示例,当部署服务器获取的部署请求中不包含目标中转机标识时,部署服务器可以从获取的部署请求中提取出目标机标识,进而根据预置的中转机与目标机之间的对应关系,确定目标中转机,进而向目标中转机发送部署指令。
在具体实现时,发送部署指令的过程可以分为两部分,其中,第一部分为向目标中转机发送远程拷贝指令,以将待部署的软件安装包复制到目标中转机。比如,可以通过基于SSH会话向目标中转机发送scp(secure copy)指令实现软件安装包的安全拷贝,将软件安装包发送至目标中转机,再由目标中转机发送至目标机。第二部分为向目标中转机发送安装指令,以控制目标中转机运行安装脚本,实现目标机的软件安装。并且,部署服务器向目标中转机发送部署指令时,可以根据目标机的个数生成多个安装任务,并初始化一个先进先出的任务队列,将安装任务依次从任务队列头部放入队列中,并后台启动多个任务进程从任务队列尾部依次消费安装任务,将消费后的安装任务从任务队列中移除,以避免重复消费安装任务,以及节省任务队列的存储空间。
图3为安装任务发放及消费过程示意图。如图3所示,部署服务器将n个任务task-1,task-2,task-3,…,task-n-1,task-n放入一个先进先出的任务队列中,并启动n个进程即图3中的进程一,进程二,进程三,…,进程n-1,进程n,按照先进先出的顺序从任务队列中取出安装任务,被取出的安装任务不再存储在任务队列中,以避免重复消费安装任务。
本实施例的软件跨云部署方法,部署服务器在获取到包含目标中转机标识、目标机标识、与目标中转机对应的第一校验文件和待部署的软件安装包的软件部署请求后,向目标中转机发送包括第一校验文件的连接请求,并接收目标中转机返回的连接响应消息,随后向目标中转机发送包括待部署的软件安装包及目标机标识的部署指令,以使目标中转机向目标机部署任务,来实现软件的自动部署。从而,不仅实现了跨云软件的自动部署,提高了软件部署速度和效率,而且节省了人力,降低了跨云软件部署的成本;通过向目标中转机发送包含第一校验文件的连接请求以建立SSH会话,能够保证部署指令的传输安全性。
进一步地,部署服务器还可以向用户反馈任务部署的结果,以方便用户掌握任务部署情况。因此,在本发明实施例一种可能的实现方式中,如图4所示,在如图1所示实施例的基础上,步骤102之后,还可以包括以下步骤:
步骤201,监测目标中转机的工作状态。
步骤202,根据目标中转机的工作状态,向用户发送部署响应消息。
本实施例中,部署服务器向目标中转机发送包含待部署的软件安装包的部署指令后,可以实时监测目标中转机的反馈结果。目标中转机每成功接收一个部署指令,则向部署服务器反馈数据传输成功的消息;如果目标中转机在预设时长内未接收到部署指令,或者接收的部署指令有误,则向部署服务器返回数据传输失败的消息。部署服务器根据接收的目标中转机返回的消息,向用户发送部署响应消息,以使用户了解任务部署情况。
在本发明实施例一种可能的实现方式中,目标中转机的工作状态还可以是目标中转机执行安装脚本的结果,若执行成功,则目标机中成功部署软件,否则,软件部署失败。由此,能够方便用户掌握软件部署结果。
本实施例的软件跨云部署方法,通过监测目标中转机的工作状态,根据工作状态向用户发送部署响应消息,能够方便用户了解任务部署结果,提高了跨云部署的便捷性。
为了保证任务部署过程中的信息安全,在本发明实施例一种可能的实现方式中,可以在部署任务之前先对部署服务器进行校验,比如,可以通过密码验证的方式对部署服务器进行校验,在校验通过后再向目标中转机发送部署指令。图5为本发明实施例所提供的第三种软件跨云部署方法的流程示意图。
如图5所示,该软件跨云部署方法可以包括以下步骤:
步骤301,获取软件部署请求,其中,部署请求中包括目标中转机标识、目标机标识、待部署的软件安装包、目标中转机对应的第一校验文件以及目标机标识对应的第二校验文件。
其中,第一校验文件中可以是与目标中转机对应的密码或密钥,第二校验文件可以是与目标机对应的密码或密钥。
步骤302,向目标中转机发送连接请求,连接请求中包括第一校验文件。
步骤303,接收目标中转机返回的连接响应消息。
需要说明的是,本实施例中对步骤301-步骤303的描述,可以参见前述实施例中对步骤101-步骤103的描述,为避免重复,此处不再赘述。
步骤304,将待部署的软件安装包、目标机标识及第二校验文件,发送给目标中转机。
本实施例中,部署服务器与目标中转机之间建立起SSH会话之后,可以利用待部署的软件安装包、目标机标识以及第二校验文件生成部署指令,将部署指令通过建立的SSH会话发送给目标中转机。
具体地,部署服务器通过SSH会话向目标中转机发送部署指令时,可以基于SSH中包含的安全文件传送协议(Secure File Transfer Protocol,SFTP)将待部署的软件安装包、目标机标识以及第二校验文件发送给目标中转机标识对应的目标中转机,以保证部署指令的传输安全性。
本实施例的软件跨云部署方法,通过向目标中转机发送包含第一校验文件的连接请求以建立SSH会话,能够保证部署指令的传输安全性;通过向目标中转机发送第二校验文件,以使目标中转机利用第二校验文件建立与目标机之间的会话,能够保证目标中转机与目标机直接数据传输的安全性;目标中转机仅需提供基础的SSH服务即可实现软件自动部署,实施成本和维护成本低。
为了提高软件部署效率,用户往往希望一次能够同时对多个目标机进行软件部署,省时省力。本发明实施例的软件跨云部署方法支持对属于不同云区域的目标机进行软件部署。当用户需要同时在多个目标机中部署软件时,可以输入包含多个目标机标识的部署请求,也就是说,在本发明实施例一种可能的实现方式中,部署请求中可以包括N个目标机标识,其中,N为大于1的正整数,以通过发起一次部署请求实现同时部署多个任务的目的。图6为本发明实施例所提供的第四种软件跨云部署方法的流程示意图。
如图6所示,该软件跨云部署方法可以包括以下步骤:
步骤401,获取软件部署请求,其中,软件部署请求中包括N个目标机标识、目标中转机标识及待部署的软件安装包,N为大于1的正整数。
本实施例中,可以设置一个目标中转机可以对应多个目标机,向多个目标机部署任务,也可以设置一个目标中转机对应一个目标机单独部署任务,也就是说,当部署请求中包含的目标机标识为N个,部署请求中包含的目标中转机的个数可以等于或者小于N个。当N个目标机需要部署的软件为同一个时,部署请求中可以仅包含一个待部署的软件安装包,当至少两个目标机需要部署不同的软件时,部署请求中可以包含多个待部署的软件安装包。
部署请求可以由用户发起,用户可以通过如图2所示的设置界面输入N个目标机标识、不大于N个的目标中转机标识以及至少一个待部署的软件安装包,并在设置完成后点击开始部署按键,向部署服务器发起部署请求。
步骤402,根据部署请求,生成N个部署任务,其中第i个部署任务中包括待部署的软件安装包及第i个目标机标识,其中,1≤i≤N。
当部署服务器接收到包含N个目标机标识的部署请求之后,部署服务器可以根据部署请求中所包含的目标机标识的个数,针对每个目标机,生成一个包含待部署的软件安装包即目标机标识的部署任务,即部署服务器根据部署请求生成N个部署任务。
步骤403,根据部署服务器当前的剩余资源量及目标中转机对应的最大安全连接数量,确定向目标中转机发送部署指令的数量M,其中,M为小于或等于N的正整数。
部署服务器向目标中转机下发对应的部署任务时,可以先根据部署服务器当前剩余的资源量以及每个部署任务的资源大小,确定部署服务器一次可以发送的部署任务的个数,比如,可以先确定所有部署任务中资源大小最大的部署任务的资源大小,再采用对部署服务器的剩余资源量与部署任务的最大资源大小的比值下取整的方式,确定部署服务器一次发送部署任务的个数。进而,将部署服务器一次发送部署任务的个数与目标中转机对应的最大安全连接数进行比较,从中选择出较小的值,再对N个部署任务与确定的较小的值的比值上取整,将所得结果确定为向目标中转机发送部署指令的数量M,其中,每个部署指令中包含的部署任务的个数不超过所确定的较小的值。
步骤404,利用M个部署指令,将N个部署任务发送给目标中转机。
部署服务器确定了部署指令的个数之后,可以采用分布式发送的方式,启动多个进程,将N个部署任务通过M个部署指令发送至目标中转机。
下面结合图7,以利用n个部署指令将n个部署任务发送给目标中转机为例,对上述通过多个部署指令进行软件部署的过程进行详细说明。
在具体实现时,部署服务器将目标中转机作为跳板向目标机发送部署任务。部署服务器每向目标机发送一个部署任务,需要在目标中转机进行一次认证,以保证每次部署任务传输的安全性。首先,部署服务器向目标机1发送部署任务Task-1时,在目标中转机处进行第一次认证,并在认证通过后,经目标中转机发送Task-1至目标机1;部署服务器向目标机2发送部署任务Task-2时,在目标中转机处进行第二次认证,并在认证通过后,经目标中转机发送Task-2至目标机2;依次类推,直至部署服务器向目标机n发送部署任务Task-n时,在目标中转机处进行第n次认证,并在认证通过后,经目标中转机发送Task-n至目标机n后,部署任务发送完毕。
由于一个存储区域仅能存储一个名称相同的文件,当同一个存储区域中包含至少两个相同名称的文件时,相同名称的其他文件将被覆盖,仅保留一个文件。在本发明实施例一种可能的实现方式中,当部署请求中还包括目标机标识对应的第二校验文件时,如果部署指令中包含的多个部署任务中,至少两个目标机标识对应的第二校验文件的名称相同,则存在至少一个第二校验文件被覆盖的风险。为了避免第二校验文件被覆盖,部署服务器向目标中转机发送部署指令时,可以对部署任务的第二校验文件进行重命名,以使第二校验文件的名称至少在该部署指令内唯一。比如,对第二校验文件重命名时,可以采用原第二校验文件名称+目标机标识的方式进行重命名,以降低第二校验文件被覆盖的概率。
本实施例的软件跨云部署方法,通过在部署请求中包括N个目标机标识时,根据部署服务器当前的剩余资源量及目标中转机对应的最大安全连接数量对生成的N个部署任务进行分组,确定向目标中转机发送部署指令的个数,利用生成的部署指令将N个部署任务发送给目标中转机,能够提高软件部署速度和效率,提高资源利用率。
在本发明实施例一种可能的实现方式中,当部署请求中包含N个目标机标识时,如果N个目标机需要部署的软件相同,即部署请求中仅包括一个带部署的软件安装包,则部署服务器获取了部署请求后,还可以根据部署请求仅生成一个部署任务,生成的一个部署任务中包括N个目标机标识以及每个目标机标识对应的待部署的软件安装包,进而将生成的一个部署任务通过一个部署指令发送给目标中转机,目标中转机可以将一个部署任务拆分成N个任务,启动多个进程将待部署的软件安装包分发给N个目标机标识第应的目标机。
如图8所示,在具体实现时,部署服务器在向N个目标机发送部署任务时,以目标中转机作为跳板,借助目标中转机向目标机发送部署任务。部署服务器仅生成一个部署任务Task-1,部署服务器先在目标中转机处进行一次认证,并在认证通过后将Task-1发送给目标中转机,之后由目标中转机运行n个进程,分别将Task-1分别发送给n个目标机。
可以理解的是,部署服务器通过将包含N个目标机标识的部署请求作为一个部署任务,利用一个部署指令发送给目标中转机,能够降低部署服务器的处理难度,通过部署服务器向目标中转机下发部署指令的速度。
为了实现上述实施例,本发明还提出另一种软件跨云部署方法,图9为本发明实施例所提供的第五种软件跨云部署方法的流程示意图,该方法可以由目标中转机执行。
如图9所示,该软件跨云部署方法可以包括以下步骤:
步骤501,接收部署服务器发送的连接请求,连接请求中包括第一校验文件。
其中,第一校验文件为与目标中转机对应的密码或密钥。
步骤502,确定第一校验文件合法时,向部署服务器返回连接响应消息。
部署服务器向目标中转机发送部署指令之前,可以先向目标中转机发送包括第一校验文件的连接请求。目标中转机接收到连接请求后,可以与部署服务器建立通信连接,比如,目标中转机可以与部署服务器之间建立SSH会话。进一步地,目标中转机还可以对连接请求进行解析,从中提取出第一校验文件,并对第一校验文件进行验证。比如,目标中转机可以将第一校验文件与自身的校验文件进行比较,若两者一致,则确定第一校验文件合法。目标中转机确定第一校验文件合法后,可以向部署服务器反馈连接响应消息,以通知部署服务器可以发送部署指令。例如,目标中转机确定第一校验文件合法后,可以向部署服务器返回“连接成功”的响应消息。
在本发明实施例一种可能的实现方式中,目标中转机确定第一校验合法后,也可以不向部署服务器反馈校验通过的消息,等待部署服务器向目标中转机发送部署指令,当确定第一校验文件合法时,目标中转机可以接收部署指令,若第一校验文件不合法,则目标中转机无法接收部署指令,部署服务器可以根据发送的部署指令是否被接收而获知第一校验文件是否合法。
步骤503,接收部署服务器发送的部署指令,部署指令中包括目标机标识及待部署的软件安装包。
对目标机进行任务部署时,部署服务器可以将包含目标机标识及待部署的软件安装包的部署指令发送给部署请求中包含的目标中转机标识对应的目标中转机,由目标中转机代理部署服务器向目标机部署安装任务。
步骤504,根据目标机标识,向目标机发送软件安装指令,安装指令中包括待部署的软件安装包。
目标中转机接收到部署服务器发送的部署指令后,可以对部署指令进行解析,从中获得目标机标识以及待部署的软件安装包。进而,目标中转机根据目标机标识,将包括待部署的软件安装包的软件安装指令发送给目标机标识对应的目标机,以使目标机根据待部署的软件安装包进行软件安装。
作为一种可能的实现方案,目标中转机与目标机之间可以维护一个SSH会话,目标中转机通过SSH会话向目标机发送软件安装指令。
在本发明实施例一种可能的实现方式中,当用户对部署服务器发起的部署请求中包含多个目标机标识,以希望同时对多个目标机进行软件部署时,目标中转机接收的部署指令中可能包括N个目标机的标识。此时,目标中转机向目标机发送软件安装指令时,可以根据目标中转机对应的最大安全连接数量,确定任务进程数量T,进而利用T个任务进程,分别向N个目标机发送软件安装指令。其中,N为正整数,T为小于或等于N的正整数。
例如,部署指令中包含的目标机标识的个数为12个,目标中转机的最大安全连接数为5个,则目标中转机可以确定任务进程数量为12个,每个任务进程发送一个软件安装指令给对应的目标机;或者,目标中转机也可以确定3个任务进程,每个任务进程发送软件安装指令的个数分别为5个、5个和2个,或者,每个任务进程发送软件安装指令的个数均为4个;或者,目标中转机也可以确定4个任务进程,每个任务进程发送软件安装指令的个数均为3个,等等。本发明对目标中转机确定的任务进程的个数不作限制,但应满足每个任务进程承载的软件安装指令的个数不超过目标中转机的最大安全连接数。
通过在部署指令中包括N个目标机的标识时,根据目标中转机对应的最大安全连接数量确定不大于N个的任务进程,利用任务进程分别向N个目标机发送软件安装指令,能够提高任务部署的速度和效率。
本实施例的软件跨云部署方法,目标中转机先接收部署服务器发送的包括第一校验文件的连接请求,在确定第一校验文件合法时向部署服务器返回连接响应消息,接着在接收部署服务器发送的包含目标机标识和待部署的软件安装包的部署指令后,根据目标机标识向目标机发送包含待部署的软件安装包的安装指令,以使目标机能够利用软件安装包完成软件安装。通过接收部署服务器发送的包括第一校验文件的连接请求以建立SSH会话,能够保证目标中转机与部署服务器之间数据交互的安全性;通过利用中转机代理执行任务部署操作,有利于实现跨云批量部署,提高任务部署的灵活性,提高部署效率,解决现有技术中安装过程繁琐、灵活性差的技术问题。
图10为本发明实施例所提供的第六种软件跨云部署方法的流程示意图。
如图10所示,该软件跨云部署方法可以包括以下步骤:
步骤601,接收部署服务器发送的连接请求,连接请求中包括第一校验文件。
步骤602,确定第一校验文件合法时,向部署服务器返回连接响应消息。
此处需要说明的是,本实施例中对步骤601-步骤602的描述,可以参见前述实施例中对步骤501-步骤502的描述,为避免重复,此处不再赘述。
步骤603,接收部署服务器发送的部署指令,其中,部署指令中包括目标机标识、待部署的软件安装包以及与目标机标识对应的第二校验文件。
其中,第二校验文件为与目标机对应的密码或密钥。
目标中转机与部署服务器之间可以通过建立的SSH会话进行交互,目标中转机确定第一校验文件合法后,可以接收部署服务器通过SSH会话发送的部署指令。
步骤604,根据目标机标识,向目标机发送连接请求,连接请求中包括第二校验文件。
目标中转机接收到部署服务器发送的部署指令之后,可以从部署指令中提取出目标机标识、待部署的软件安装包以及第二校验文件,进而,目标中转机可以根据目标机标识,将包括第二校验文件的连接请求发送给目标机标识对应的目标机。
目标机接收到连接请求后,可以与目标中转机之间建立SSH会话,以使目标中转机通过SSH会话向目标机发送文件。进一步地,目标机还可以对连接请求中的第二校验文件进行验证,比如,可以将第二校验文件与目标机自身的校验文件进行比较,当两者一致时认为第二校验文件合法,此时可以接收目标中转机发送的文件。
步骤605,向目标机发送软件安装指令,安装指令中包括待部署的软件安装包。
目标中转机可以通过SSH会话向目标机标识对应的目标机发送包括待部署的软件安装包的安装指令,以使目标机利用软件安装包进行软件安装。
本实施例的软件跨云部署方法,目标中转机通过接收部署服务器发送的包括第一校验文件的连接请求,确定第一校验文件合法后接收部署服务器发送的部署指令,再向目标机发送包括第二校验文件的连接请求,进而向目标机发送软件安装指令,能够保证部署指令以及软件安装指令的传输安全性。
为了实现上述实施例,本发明还提出另一种软件跨云部署方法,图11为本发明实施例所提供的第七种软件跨云部署方法的流程示意图,该方法可以由目标机执行。
如图11所示,该软件跨云部署方法可以包括以下步骤:
步骤701,接收目标中转机发送的安装指令,安装指令中包括待部署的软件安装包。
本实施例中,由目标中转机代替部署服务器向目标机标识对应的目标机发送包括待部署的软件安装包的安装指令。比如,目标中转机与目标机之间可以维护一个SSH会话,由目标中转机通过SSH会话将安装指令发送给目标机。
步骤702,卸载本地与软件安装包对应的其它版本的软件。
目标机接收到目标中转机发送的安装指令后,可以从安装指令中获取待安装的软件安装包,并检测本地是否已安装与获取的软件安装包的名称一致的软件,若检测到已安装,可以进一步检测已安装的软件的版本是否与获取的软件安装包的版本一致,并在不一致时卸载本地已安装的与软件安装包对应的软件。如果目标机在本地已安装的软件中未检测到与获取的软件安装包名称一致的软件,则直接安装软件安装包中的软件。
步骤703,在确定其它版本的软件卸载完成后,安装软件安装包中的软件。
在软件卸载过程中,目标机监测软件的卸载过程,并在确定其它版本的软件卸载完成后,安装软件安装包中的软件。
作为一种示例,目标机提取出待部署的软件安装包之后,可以根据软件安装包的名称遍历目标机中已安装的软件,从中查找出与软件安装包的名称一致的其它版本的软件并卸载,并在卸载完成后安装待部署的软件安装包中的软件。若目标机从本地已安装的软件中查找出与待部署的软件安装包名称一致且版本相同的软件,则可以删除待部署的软件安装包,以节省本地存储空间。
具体实现时,目标中转机向目标机发送的安装指令中可以包括待部署的软件安装包和安装脚本,目标机接收到安装指令后,由目标中转机控制安装脚本运行以在目标机中部署软件安装包。在部署软件安装包的过程中,目标中转机监测软件安装包的安装过程,并在安装脚本运行完毕后,将安装结果通过SSH会话反馈给部署服务器,以由部署服务器将安装结果提供给用户。
本实施例的软件跨云部署方法,目标机接收目标中转机发送的包含待部署的软件安装包的安装指令,并卸载本地与软件安装包对应的其它版本的软件,并在确定卸载完成后安装所接收的安装指令中包含的软件安装包,能够实现软件的自动部署,提高软件部署速度和效率,解决现有技术中手动部署任务效率低的技术问题。由于任务部署过程中无需人员参与,避免了主观因素对部署过程的影响,从而能够解决现有技术中手动部署任务出错率高的技术问题。
为了进一步保证软件部署的安全性,保证安装指令的传输安全,在本发明实施例一种可能的实现方式中,目标机接收目标中转机发送的安装指令之前,可以先对目标中转机进行合法性校验,在验证目标中转机合法后再接收安装指令。图12为本发明实施例所提供的第八种软件跨云部署方法的流程示意图。
如图12所示,在如图11所示实施例的基础上,步骤701之前还可以包括以下步骤:
步骤801,接收目标中转机发送的连接请求,连接请求中包括第二校验文件。
其中,第二校验文件为与目标机对应的密码或密钥。
目标中转机向目标机发送安装指令之前,可以先向目标机发送包括第二校验文件的连接请求。目标机接收到连接请求后,可以与目标中转机建立SSH会话,以使目标中转机通过SSH会话向目标机发送安装指令。
步骤802,确定第二校验文件合法。
目标机接收到目标中转机发送的连接请求后,还可以对连接请求进行解析,从中提取出第二校验文件,并对第二校验文件进行验证,以判断第二校验文件是否合法。
作为一种示例,目标机可以将提取的第二校验文件与自身的校验文件进行比较,当两者一致时,确定第二校验文件合法,即发送包含该第二校验文件的连接请求的目标中转机合法,目标机可以接收目标中转机发送的安装指令。目标机确定第二校验文件合法时,可以向目标中转机反馈验证通过的消息,或者,也可以不向目标中转机反馈验证通过的消息,等待接收目标中转机发送的文件,当目标机接收目标中转机发送的文件时,目标中转机可确定第二校验文件验证通过。
本实施例的软件跨云部署方法,通过接收目标中转机发送的包括第二校验文件的连接请求,并确定第二校验文件合法,能够保证文件传输的安全性。
图13为实现软件跨云部署方法的应用场景示意图。如图13所示,部署服务器位于B云区域,借助目标中转机可以向位于A云区域的5个服务器(编号如图13中所示)部署软件,从而实现软件的跨云部署。下面以B云中的部署服务器借助目标中转机向A云中的服务器1部署软件为例进行详细说明,则待部署的服务器1即为目标机。部署服务器借助目标中转机向服务器1部署软件的过程如图14所示,图14为本发明一具体实施例的软件跨云部署方法的流程示意图。
如图14所示,该软件跨云部署方法包括以下步骤:
步骤901,部署服务器获取软件部署请求。
步骤902,部署服务器向目标中转机发送连接请求,连接请求中包括第一校验文件。
步骤903,目标中转机确定第一校验文件合法。
本实施例中,目标中转机接收到部署服务器发送的连接请求后,与部署服务器之间建立起SSH会话,并对连接请求中的第一校验文件进行验证,若验证通过,则目标中转机可以接收部署服务器通过SSH会话发送的部署指令。
步骤904,部署服务器接收目标中转机返回的连接响应消息。
步骤905,部署服务器向目标中转机发送部署指令,部署指令中包括待部署的软件安装包、服务器1的标识及与服务器1对应的第二校验文件。
目标中转机对第一校验文件的校验通过后,向部署服务器返回连接响应消息。当部署服务器接收的连接响应消息指示连接成功时,部署服务器向目标中转机发送部署指令。
步骤906,目标中转机向服务器1发送连接请求,连接请求中包括第二校验文件。
步骤907,服务器1确定第二校验文件合法。
本实施例中,服务器1(即目标机)接收到目标中转机发送的连接请求后,与目标中转机建立起SSH会话,并对第二校验文件进行验证,若验证通过,则服务器1可以接收目标中转机发送的软件安装指令。
步骤908,目标中转机根据服务器1的标识,向服务器1发送软件安装指令,软件安装指令中包括待部署的软件安装包。
步骤909,服务器1根据软件安装指令,在本地部署软件安装包。
本实施例中,服务器1接收到目标中转机发送的软件安装指令后,可以对软件安装指令进行解析,从中提取出软件安装包,并利用软件安装包进行软件安装,将软件安装包对应的软件安装在本地。
在具体实现时,部署服务器与目标中转机之间以及目标中转机与目标机之间均建立一个SSH会话,部署服务器通过目标中转机向目标机实施软件部署。软件部署过程可以分为文件发送和软件安装两个步骤。首先,部署服务器通过目标中转机向目标机发送软件安装包。具体地,部署服务器可以通过SSH会话经目标中转机向目标机发送SCP指令,目标机通过SSH会话经目标中转机向部署服务器询问“continue connection(yes/no?)”,若部署服务器经SSH会话返回yes,则目标机继续发送“password:”,以要求部署服务器输入认证密码,部署服务器通过SSH会话发送认证密码后,目标机若校验认证密码正确,则获取部署服务器经目标中转机发送的软件安装包,部署服务器监测软件安装包的传输过程直至发送成功。文件发送成功后,进入软件安装步骤。在安装软件时,部署服务器通过SSH会话经目标中转机向目标机发送SSH认证指令,目标机通过SSH会话经目标中转机向部署服务器询问“continue connection(yes/no?)”,若部署服务器通过SSH会话发送yes,则目标机继续发送“password:”,要求部署服务器输入SSH认证密码,部署服务器通过SSH会话经目标中转机将SSH认证密码发送至目标机进行校验,当目标机验证SSH认证密码通过,部署服务器可以检测都SSH登录成功,则继续通过SSH会话经目标中转机向目标机发送安装指令,并由目标中转机控制安装指令执行,以在目标机安装软件安装包。目标机记录软件安装结果并将安装结果通过SSH会话经目标中转机反馈给部署服务器,由部署服务器将安装结果提供给用户。
图15为部署服务器向用户反馈部署结果的示例图。如图15所示,对于广州区域的目标机对应的目标中转机Proxy Server1而言,部署服务器监测到的该目标中转机的工作状态包括:分发安装包成功、执行安装脚本成功、拨测成功、安装成功,即部署服务器通过目标中转机向目标机部署软件成功。
本发明实施例的软件跨云部署方法,部署服务器通过借助中转机向位于其他云区域的目标机进行软件部署,来实现软件的自动部署,从而实现了跨云快速传输文件及跨云执行安装操作,能够实现软件快速批量部署,有效提高了软件部署速度和效率;该方法仅要求目标机和中转机提供基础的SSH服务,实施成本和维护成本低。
为了实现上述实施例,本发明还提出一种部署服务器。
图16为本发明实施例所提供的第一种部署服务器的结构示意图。
如图16所示,该部署服务器60包括:获取模块610、发送模块620、接收模块630,以及部署指令发送模块640。其中,
获取模块610,用于获取软件部署请求,部署请求中包括目标中转机标识、目标机标识、待部署的软件安装包及与目标中转机对应的第一校验文件。
具体地,获取模块610用于根据用户在部署界面的操作,生成软件部署请求;或者,在确定软件版本服务器中的软件版本更新时,根据更新软件的标识及各服务器中已部署软件的标识,生成软件部署请求。
发送模块620,用于向目标中转机发送连接请求,连接请求中包括第一校验文件。
接收模块630,用于接收目标中转机返回的连接响应消息。
部署指令发送模块640,用于向目标中转机发送部署指令,部署指令中包括待部署的软件安装包及目标机标识。
为了保证任务部署过程中的信息安全,在本发明实施例一种可能的实现方式中,部署请求中还可以包括与目标机标识对应的第二校验文件,此时,部署指令发送模块640具体用于将待部署的软件安装包、目标机标识及第二校验文件,发送给目标中转机。
通过向目标中转机发送第二校验文件,以使目标中转机利用第二校验文件建立与目标机之间的会话,能够保证目标中转机与目标机直接数据传输的安全性;目标中转机仅需提供基础的SSH服务即可实现软件自动部署,实施成本和维护成本低。
进一步地,在本发明实施例一种可能的实现方式中,如图17所示,在如图16所示实施例的基础上,该部署服务器60还可以包括:
反馈模块650,用于监测目标中转机的工作状态,根据目标中转机的工作状态,向用户发送部署响应消息。
通过监测目标中转机的工作状态,根据工作状态向用户发送部署响应消息,能够方便用户了解任务部署结果,提高了跨云部署的便捷性。
为了提高软件部署效率,用户往往希望一次能够同时对多个目标机进行软件部署,省时省力。当用户需要同时在多个目标机中部署软件时,可以输入包含多个目标机标识的部署请求,也就是说,在本发明实施例一种可能的实现方式中,部署请求中可以包括N个目标机标识,其中,N为大于1的正整数,如图18所示,在如图16所示实施例的基础上,该部署服务器60还可以包括:
生成模块600,用于根据部署请求,生成N个部署任务,其中第i个部署任务中包括待部署的软件安装包及第i个目标机标识。
此时,部署指令发送模块640具体用于根据部署服务器60当前的剩余资源量及目标中转机对应的最大安全连接数量,确定向目标中转机发送部署指令的数量M;利用M个部署指令,将N个部署任务发送给目标中转机,其中,M为小于或等于N的正整数。
通过在部署请求中包括N个目标机标识时,根据部署服务器当前的剩余资源量及目标中转机对应的最大安全连接数量对生成的N个部署任务进行分组,确定向目标中转机发送部署指令的个数,利用生成的部署指令将N个部署任务发送给目标中转机,能够提高软件部署速度和效率,提高资源利用率。
在本发明实施例一种可能的实现方式中,当部署请求中包含N个目标机标识时,部署指令发送模块640可以根据部署请求仅生成一个部署任务,生成的一个部署任务中包括软件安装包及N个目标机标识,进而将生成的一个部署任务通过一个部署指令发送给目标中转机,目标中转机可以将一个部署任务拆分成N个任务,启动多个进程将待部署的软件安装包分发给N个目标机标识第应的目标机。通过将包含N个目标机标识的部署请求作为一个部署任务,利用一个部署指令发送给目标中转机,能够降低部署服务器的处理难度,通过部署服务器向目标中转机下发部署指令的速度。
需要说明的是,前述对部署服务器侧执行的软件跨云部署方法实施例的解释说明也适用于该实施例的部署服务器,其实现原理类似,此处不再赘述。
本发明实施例的部署服务器,在获取到包含目标中转机标识、目标机标识、与目标中转机对应的第一校验文件和待部署的软件安装包的软件部署请求后,向目标中转机发送包括第一校验文件的连接请求,并接收目标中转机返回的连接响应消息,随后向目标中转机发送包括待部署的软件安装包及目标机标识的部署指令,以使目标中转机向目标机部署任务,来实现软件的自动部署。从而,不仅实现了跨云软件的自动部署,提高了软件部署速度和效率,而且节省了人力,降低了跨云软件部署的成本;通过向目标中转机发送包含第一校验文件的连接请求以建立SSH会话,能够保证部署指令的传输安全性。
为了实现上述实施例,本发明还提出一种中转机。
图19为本发明实施例所提供的第一种中转机的结构示意图。
如图19所示,该中转机70包括:连接及校验模块710、消息返回模块720、部署指令接收模块730,以及安装指令发送模块740。其中,
连接及校验模块710,用于接收部署服务器发送的连接请求,连接请求中包括第一校验文件。
消息返回模块720,用于在确定第一校验文件合法时,向部署服务器返回连接响应消息。
部署指令接收模块730,用于接收部署服务器发送的部署指令,部署指令中包括目标机标识及待部署的软件安装包。
安装指令发送模块740,用于根据目标机标识,向目标机发送软件安装指令,安装指令中包括待部署的软件安装包。
在本发明实施例一种可能的实现方式中,当用户对部署服务器发起的部署请求中包含多个目标机标识,以希望同时对多个目标机进行软件部署时,部署指令接收模块730接收的部署指令中可能包括N个目标机的标识。此时,安装指令发送模块740可以根据中转机70对应的最大安全连接数量,确定任务进程数量T,T为小于或等于N的正整数;进而,利用T个任务进程,分别向N个目标机发送软件安装指令,以提高任务部署的速度和效率。
进一步地,在本发明实施例一种可能的实现方式中,部署指令中还可以包括与目标机标识对应的第二校验文件,如图20所示,在如图19所示实施例的基础上,该中转机70还可以包括:
请求发送模块750,用于向目标机发送连接请求,连接请求中包括第二校验文件。
通过接收部署服务器发送的包括第一校验文件的连接请求,确定第一校验文件合法后接收部署服务器发送的部署指令,再向目标机发送包括第二校验文件的连接请求,进而向目标机发送软件安装指令,能够保证部署指令以及软件安装指令的传输安全性。
需要说明的是,前述对目标中转机侧执行的软件跨云部署方法实施例的解释说明也适用于该实施例的中转机,其实现原理类似,此处不再赘述。
本实施例的中转机,通过接收部署服务器发送的包括第一校验文件的连接请求,在确定第一校验文件合法时向部署服务器返回连接响应消息,再接收部署服务器发送的包含目标机标识和待部署的软件安装包的部署指令,根据目标机标识向目标机发送包含待部署的软件安装包的安装指令,以使目标机能够利用软件安装包完成软件安装。通过接收部署服务器发送的包括第一校验文件的连接请求以建立SSH会话,能够保证目标中转机与部署服务器之间数据交互的安全性;通过利用中转机代理执行任务部署操作,有利于实现跨云批量部署,提高任务部署的灵活性,提高部署效率。
为了实现上述实施例,本发明还提出一种目标机。
图21为本发明实施例所提供的第一种目标机的结构示意图。
如图21所示,该目标机80可以包括:安装指令接收模块810,卸载模块820,以及部署模块830。其中,
安装指令接收模块810,用于接收目标中转机发送的安装指令,安装指令中包括待部署的软件安装包。
卸载模块820,用于卸载本地与所述软件安装包对应的其它版本的软件;部署模块830,用于在确定其它版本的软件卸载完成后,安装所述软件安装包中的软件。
为了进一步保证软件部署的安全性,保证安装指令的传输安全,在本发明实施例一种可能的实现方式中,如图22所示,在如图21所示实施例的基础上,该目标机80还可以包括:
校验模块800,用于接收目标中转机发送的连接请求,连接请求中包括第二校验文件,并确定第二校验文件合法。
通过接收目标中转机发送的包括第二校验文件的连接请求,并确定第二校验文件合法,能够保证文件传输的安全性。
需要说明的是,前述对目标机侧执行的软件跨云部署方法实施例的解释说明也适用于该实施例的目标机,其实现原理类似,此处不再赘述。
本实施例的目标机,通过接收目标中转机发送的包含待部署的软件安装包的安装指令,并卸载本地与软件安装包对应的其它版本的软件,并在确定卸载完成后安装所接收的安装指令中包含的软件安装包,能够实现软件的自动部署,提高软件部署速度和效率,解决现有技术中手动部署任务效率低的技术问题。由于任务部署过程中无需人员参与,避免了主观因素对部署过程的影响,从而能够解决现有技术中手动部署任务出错率高的技术问题。
为了实现上述实施例,本发明还提出一种计算机设备。
图23为本发明实施例所提供的一种计算机设备的结构示意图。如图23所示,该计算机设备30包括:处理器310和存储器320;其中,处理器310通过读取存储器320中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于实现如前述实施例所述的软件跨云部署方法。
为了实现上述实施例,本发明还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如前述实施例所述的软件跨云部署方法。
为了实现上述实施例,本发明还提出一种计算机程序产品,当该计算机程序产品中的指令由处理器执行时实现如前述实施例所述的图像处理方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (11)

1.一种软件跨云部署方法,其特征在于,包括:
获取软件部署请求,所述部署请求中包括目标中转机标识、目标机标识、待部署的软件安装包及与所述目标中转机对应的第一校验文件;
向所述目标中转机发送连接请求,所述连接请求中包括第一校验文件;
接收所述目标中转机返回的连接响应消息;
向所述目标中转机发送部署指令,所述部署指令中包括所述待部署的软件安装包及所述目标机标识;
所述部署请求中包括N个目标机标识,其中N为大于1的正整数;
所述获取软件部署请求之后,还包括:
根据所述部署请求,生成N个部署任务,其中第i个部署任务中包括待部署的软件安装包及第i个目标机标识;
所述向所述目标中转机发送部署指令,包括:
根据部署服务器当前的剩余资源量及所述目标中转机对应的最大安全连接数量,确定向所述目标中转机发送部署指令的数量M;
利用所述M个部署指令,将所述N个部署任务发送给所述目标中转机,其中,M为小于或等于N的正整数。
2.如权利要求1所述的方法,其特征在于,所述获取软件部署请求,包括:
根据用户在部署界面的操作,生成所述软件部署请求;
或者,
在确定软件版本服务器中的软件版本更新时,根据更新软件的标识及各服务器中已部署软件的标识,生成所述软件部署请求。
3.如权利要求1所述的方法,其特征在于,所述部署请求中还包括与所述目标机标识对应的第二校验文件;
所述将所述待部署的软件安装包及所述目标机标识,发送给所述目标中转机,包括:
将所述待部署的软件安装包、所述目标机标识及所述第二校验文件,发送给所述目标中转机。
4.如权利要求1所述的方法,其特征在于,所述向所述目标中转机发送部署指令之后,还包括:
监测所述目标中转机的工作状态;
根据所述目标中转机的工作状态,向用户发送部署响应消息。
5.一种软件跨云部署方法,其特征在于,包括:
接收部署服务器发送的连接请求,所述连接请求中包括第一校验文件;
确定所述第一校验文件合法时,向所述部署服务器返回连接响应消息;
接收所述部署服务器发送的部署指令,所述部署指令中包括目标机标识及待部署的软件安装包;
根据所述目标机标识,向目标机发送软件安装指令,所述安装指令中包括所述待部署的软件安装包;
其中,在接收所述部署服务器发送的部署指令之前,通过所述部署服务器根据部署请求,生成N个部署任务,并根据部署服务器当前的剩余资源量及目标中转机对应的最大安全连接数量,确定向所述目标中转机发送部署指令的数量M,以及利用所述M个部署指令,将所述N个部署任务发送给目标中转机,其中,部署请求中包括N个目标机标识,N为大于1的正整数,M为小于或等于N的正整数,第i个部署任务中包括待部署的软件安装包及第i个目标机标识。
6.如权利要求5所述的方法,其特征在于,所述部署指令中还包括与所述目标机标识对应的第二校验文件;
所述向所述目标机发送软件安装指令之前,还包括:
向所述目标机发送连接请求,所述连接请求中包括所述第二校验文件。
7.如权利要求5或6所述的方法,其特征在于,所述部署指令中包括N个目标机的标识;
所述向目标机发送软件安装指令,包括:
根据所述目标中转机对应的最大安全连接数量,确定任务进程数量T,T为小于或等于N的正整数;
利用所述T个任务进程,分别向所述N个目标机发送软件安装指令。
8.一种软件跨云部署方法,其特征在于,包括:
接收目标中转机发送的安装指令,所述安装指令中包括待部署的软件安装包;
卸载本地与所述软件安装包对应的其它版本的软件;
在确定其它版本的软件卸载完成后,安装所述软件安装包中的软件;
其中,在接收目标中转机发送的安装指令之前,通过部署服务器根据部署请求,生成N个部署任务,并根据部署服务器当前的剩余资源量及目标中转机对应的最大安全连接数量,确定向所述目标中转机发送部署指令的数量M,以及利用所述M个部署指令,将所述N个部署任务发送给目标中转机,其中,部署请求中包括N个目标机标识,N为大于1的正整数,M为小于或等于N的正整数,第i个部署任务中包括待部署的软件安装包及第i个目标机标识。
9.如权利要求8所述的方法,其特征在于,所述接收目标中转机发送的安装指令之前,还包括:
接收所述目标中转机发送的连接请求,所述连接请求中包括第二校验文件;
确定所述第二校验文件合法。
10.一种计算机设备,其特征在于,包括处理器和存储器;
其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如权利要求1-4中任一项所述的软件跨云部署方法;或者,用于实现如权利要求5-7中任一项所述的软件跨云部署方法;或者,用于实现如权利要求8-9中任一项所述的软件跨云部署方法。
11.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一项所述的软件跨云部署方法;或者,实现如权利要求5-7中任一项所述的软件跨云部署方法;或者,实现如权利要求8-9中任一项所述的软件跨云部署方法。
CN201810203869.4A 2018-03-13 2018-03-13 软件跨云部署方法、计算机设备及存储介质 Active CN108509203B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810203869.4A CN108509203B (zh) 2018-03-13 2018-03-13 软件跨云部署方法、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810203869.4A CN108509203B (zh) 2018-03-13 2018-03-13 软件跨云部署方法、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN108509203A CN108509203A (zh) 2018-09-07
CN108509203B true CN108509203B (zh) 2021-05-28

Family

ID=63377547

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810203869.4A Active CN108509203B (zh) 2018-03-13 2018-03-13 软件跨云部署方法、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN108509203B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109672722B (zh) * 2018-10-23 2022-04-26 平安科技(深圳)有限公司 数据部署方法及装置、计算机存储介质和电子设备
CN110321133B (zh) * 2019-07-05 2023-03-14 恒生电子股份有限公司 H5应用部署方法及装置
CN110290015B (zh) * 2019-07-24 2021-02-02 华云数据控股集团有限公司 远程部署方法、装置及存储介质
CN110673858B (zh) * 2019-08-30 2023-04-11 四川新网银行股份有限公司 一种基于ssh免密登录协议的轻量级部署方法
CN110881059B (zh) * 2019-10-12 2023-08-22 平安银行股份有限公司 一种应用部署系统、方法、发布引擎及计算机设备
CN111338656B (zh) * 2020-02-25 2023-12-15 平安科技(深圳)有限公司 安装软件包至目标主机的方法、装置和计算机设备
CN112083953A (zh) * 2020-08-26 2020-12-15 武汉普利商用机器有限公司 Android应用程序构建方法及装置
CN112799681A (zh) * 2021-02-02 2021-05-14 无锡车联天下信息技术有限公司 一种任务部署方法、系统、电子设备及存储介质
CN113242147B (zh) * 2021-05-17 2023-09-12 上海八彦图信息科技有限公司 多云环境的自动化运维部署方法、装置、设备和存储介质
CN113986270B (zh) * 2021-11-16 2022-09-23 前海飞算云智软件科技(深圳)有限公司 分布式应用部署方法、装置、存储介质及电子设备
CN114840287B (zh) * 2022-03-25 2024-04-16 阿里巴巴(中国)有限公司 一种跨云桌面的任务交互方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103443764A (zh) * 2011-02-22 2013-12-11 朱利安·M·乌尔巴赫 软件应用分配和发起系统
US8726264B1 (en) * 2011-11-02 2014-05-13 Amazon Technologies, Inc. Architecture for incremental deployment
US9395967B2 (en) * 2014-11-03 2016-07-19 International Business Machines Corporation Workload deployment density management for a multi-stage computing architecture implemented within a multi-tenant computing environment
CN106126283A (zh) * 2016-06-21 2016-11-16 浪潮电子信息产业股份有限公司 一种产品部署的方法、装置及系统
CN107465548A (zh) * 2017-08-17 2017-12-12 北京云纵信息技术有限公司 代码的部署方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10198281B2 (en) * 2015-08-28 2019-02-05 Vmware, Inc. Hybrid infrastructure provisioning framework tethering remote datacenters

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103443764A (zh) * 2011-02-22 2013-12-11 朱利安·M·乌尔巴赫 软件应用分配和发起系统
US8726264B1 (en) * 2011-11-02 2014-05-13 Amazon Technologies, Inc. Architecture for incremental deployment
US9395967B2 (en) * 2014-11-03 2016-07-19 International Business Machines Corporation Workload deployment density management for a multi-stage computing architecture implemented within a multi-tenant computing environment
CN106126283A (zh) * 2016-06-21 2016-11-16 浪潮电子信息产业股份有限公司 一种产品部署的方法、装置及系统
CN107465548A (zh) * 2017-08-17 2017-12-12 北京云纵信息技术有限公司 代码的部署方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Agent的分布式软件部署的研究与实现;陈首斌;《中国优秀硕士学位论文全文数据库 信息科技辑》;20101015(第10期);全文 *

Also Published As

Publication number Publication date
CN108509203A (zh) 2018-09-07

Similar Documents

Publication Publication Date Title
CN108509203B (zh) 软件跨云部署方法、计算机设备及存储介质
CN110752947B (zh) 一种k8s集群部署方法及装置,一种部署平台
CN108549580B (zh) 自动部署Kubernetes从节点的方法及终端设备
CN108595221B (zh) PaaS平台的插件加载方法、装置、服务器及存储介质
US20180373517A1 (en) Systems, methods, and apparatuses for docker image downloading
US20090199178A1 (en) Virtual Application Management
CN105577381B (zh) 虚拟化下的证书管理方法和装置
CN107294785B (zh) Cdn节点服务的自动部署方法及装置、计算机可读存储介质
CN102833101B (zh) 一种分布式网络系统的软件升级方法及设备
CN105138363B (zh) 应用程序自动升级处理方法及装置
CN113721957B (zh) 对嵌入式设备固件部署升级的自动测试方法、装置和系统
CN110881062A (zh) 基于大数据的文件传输方法、装置、设备和存储介质
CN106549789A (zh) 一种实现服务器安装的方法及系统
CN112394957A (zh) 服务器升级方法、装置、服务器及存储介质
CN114189439A (zh) 一种自动扩容的方法及装置
CN112181436A (zh) 服务部署方法、装置、服务器和可读存储介质
CN104348646A (zh) 配置数据处理方法、装置及系统
CN108881338B (zh) 网络功能虚拟化镜像文件升级的方法及装置
CN115658221A (zh) 状态检测方法、业务虚拟机、设备及介质
CN112148348B (zh) 任务处理方法、装置及存储介质
CN115150242B (zh) 一种PaaS应用的部署方法和系统
CN113448595B (zh) 应用部署方法、装置、服务器及存储介质
EP2590073A1 (en) Method and system for on-demand patch generation and management
CN113472599B (zh) 网络节点的数据通信方法及系统
CN118467060B (zh) 基于sca及srtf分布式文件系统的组件加载系统及方法

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