用于将应用部署于应用服务器的方法、设备以及介质与流程

文档序号:17535215发布日期:2019-04-29 13:54阅读:141来源:国知局
用于将应用部署于应用服务器的方法、设备以及介质与流程

本发明涉及的是一种互联网领域的技术,更具体的说,涉及一种用于将应用部署于应用服务器的方法、设备以及介质。



背景技术:

随着公司规模扩大,人员不断流入,技术人员水平参差不齐;应用数量越来越多,部署流程繁琐;应用缺乏健康检查、灰度测试方案,不符合预期的上线时有发生。因为部署导致的问题越发凸现。

现有的持续化部署是通过配置以及编写脚本,通过后台自动化部署应用导服务器。互联网是一个快速发展的行业,业务随着用户的需求不断变动,应用程序也在快速迭代部署,现有技术存在以下缺点:

部署需要专业性强的工程师操作;

应用管理混乱,经常找不到应用代码仓库以及开发人员;

每一次部署都是有损的,轻则应用闪断,重则影响公司核心业务流程。



技术实现要素:

针对现有技术存在的问题,本发明的目的在于提供一种用于将应用部署于应用服务器的方法、设备以及介质,能够自动的根据代码数据库中的原始代码生成部署包,对需要部署应用的应用服务器进行分组得到应用分组,而后一应用分组为单位将部署包安装于应用分组内的应用服务器,优先将部署包安装于剩余资源较多的应用分组,从而提高应用部署的效率和成功率。

根据本发明的一个方面,提供一种在部署设备端用于将应用部署于应用服务器的方法,包括:

接收一任务创建请求,所述任务创建请求中包括一代码编号,每一所述代码编号与一存储于一文件服务器的部署包对应;

响应于所述任务创建请求,将由若干应用服务器组成的应用集群划分为若干应用分组,每一所述应用分组中至少包括一个所述应用服务器;

根据所述任务创建请求生成一包括所述代码编号的部署指令,并发送至所述应用分组中的每一应用服务器,以使得所述应用分组中所述应用服务器部署与所述代码编号对应的所述部署包。

优选的,所述响应于所述任务创建请求,将由若干应用服务器组成的应用集群划分为若干应用分组具体包括:

获取所述应用集群中的每一所述应用服务器的第一资源余量和第二资源余量;

根据所述第一资源余量和所述第二资源余量获得每一所述应用服务器的资源剩余系数;

根据所述资源剩余系数从大到小对所述应用集群中的所述应用服务器进行排序形成一所述应用服务器的应用队列;

从所述应用队列的队首依次提取若干所述应用服务器组成所述应用分组。

优选的,所述第一资源余量为cpu剩余资源,所述第二资源余量为ram剩余资源。

优选的,所述资源剩余系数的计算公式为:

其中:

δ为资源剩余系数;

α1为第一资源系数;

r1为第一剩余资源;

α2为第二资源系数,并且α1+α2=1;

r2为第二剩余资源。

优选的,所述应用分组中的所述应用服务器的数量构成一个等差数列。

优选的,所述应用分组中的所述应用服务器的数量构成一个等比数列。

优选的,所述根据所述任务创建请求生成一包括所述代码编号的部署指令,并发送至所述应用分组中的每一应用服务器具体包括:

根据所述应用分组中的所述应用服务器的数量从小到大对所述应用分组进行排序;

根据所述任务创建请求生成包括所述代码编号的所述部署指令;

将所述部署指令依次发送至排序后的所述应用分组。

根据本发明的一个方面,提供一种在部署包生成设备端用于将应用部署于应用服务器的方法,包括以下步骤:

接收部署设备发送构建信息,所述构建信息包括代码编号;

根据所述代码编号于一代码数据库中提取应用的原始代码;

根据所述原始代码生成一部署包;

将所述部署包上传至一文件服务器,以供应用服务器提取所述部署包。

根据本发明的一个方面,提供一种用于将应用部署于应用服务器的方法,包括以下步骤:

部署设备接收一任务创建请求,所述任务创建请求中包括一代码编号,每一所述代码编号与一存储于一文件服务器的一部署包对应;

所述部署设备响应于所述任务创建请求,将由若干应用服务器组成的应用集群划分为若干应用分组,每一所述应用分组中至少包括一个所述应用服务器;

部署包生成设备接收所述部署设备发送一构建信息,所述构建信息包括代码编号;

所述部署包生成设备根据所述代码编号于一代码数据库中提取应用的原始代码;

所述部署包生成设备根据所述原始代码生成所述部署包;

所述部署包生成设备将所述部署包上传至所述文件服务器,以供应用服务器提取所述部署包;

所述部署设备根据所述任务创建请求生成一包括所述代码编号的部署指令,并发送至所述应用分组中的每一应用服务器,以使得所述应用分组中所述应用服务器部署与所述代码编号对应的所述部署包。

根据本发明的一个方面,提供一种用于将应用部署于应用服务器的部署设备,包括:

处理器;

存储器,其中存储有所述处理器的可执行指令;

其中,所述处理器配置为经由执行所述可执行指令来执行在部署设备端用于将应用部署于应用服务器的方法的步骤。

根据本发明的一个方面,提供一种用于将应用部署于应用服务器的部署包生成设备,包括:

处理器;

存储器,其中存储有所述处理器的可执行指令;

其中,所述处理器配置为经由执行所述可执行指令来执行在部署包生成设备端用于将应用部署于应用服务器的方法的步骤。

根据本发明的一个方面提供一种计算机可读存储介质,用于存储程序,所述程序被执行时实现上述方法的步骤。

上述技术方案的有益效果是:

本发明的用于将应用部署于应用服务器的方法、设备以及介质,能够自动的根据代码数据库中的原始代码生成部署包,对需要部署应用的应用服务器进行分组得到应用分组,而后一应用分组为单位将部署包安装于应用分组内的应用服务器,优先将部署包安装于剩余资源较多的应用分组,从而提高应用部署的效率和成功率。

本发明的其它特征和优点以及本发明的各种实施例的结构和操作,将在以下参照附图进行详细的描述。应当注意,本发明不限于本文描述的具体实施例。在本文给出的这些实施例仅仅是为了说明的目的。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。

图1为本发明的较佳的实施例中,一种用于将应用部署于应用服务器的方法的具体实施场景;

图2为本发明的较佳的实施例中,一种在部署设备端用于将应用部署于应用服务器的方法的流程图;

图3为本发明的较佳的实施例中,一种划分应用分组的流程示意图;

图4为本发明的较佳的实施例中,一种发送部署指令的流程示意图;

图5为本发明的较佳的实施例中,一种在部署包生成设备端用于将应用部署于应用服务器的方法流程图;

图6为本发明的较佳的实施例中,一种用于将应用部署于应用服务器的部署设备示意图;

图7为本发明的较佳的实施例中,一种计算机可读存储介质的结构示意图。

从以下结合附图的详细描述中,本发明的特征和优点将变得更加明显。贯穿附图,相同的附图标识相应元素。在附图中,相同附图标记通常指示相同的、功能上相似的和/或结构上相似的元件。

具体实施方式

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

本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。

图1是一种用于将应用部署于应用服务器的方法的具体实施场景。图1示出的实施场景中,包括:用户设备101、部署设备102、应用集群103、代码数据库104、部署包生成设备105、文件服务器106、检测服务器107,应用集群103中包括了多个应用服务器108。用户设备101可以通过网络与部署设备102以及代码数据库104相连,部署设备102分别通过网络与应用集群103以及部署包生成设备105相连,部署包生成设备105同通过网络与代码数据库104和文件服务器106相连,文件服务器106与应用集群103相连,应用集群103还通过网络与检测服务器107相连。用户设备101可以是但不限于任何一种可以与用户进行交互的人机交互电子产品,例如:智能手机、平板电脑以及台式电脑等。该用户设备101的操作系统可以是任意操作系统,例如:android操作系统、ios操作系统。部署设备102和部署包生成设备105均可以是但不限于一种能够按照实现设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(asic)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、数字信号处理器(dsp)以及嵌入式设备等。部署设备102还可以是台式计算机、网络主机、单个网络服务器、多个网络服务器集群或多个服务器构成的云;在此,云由基于云计算(cloudcomputing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机组成的虚拟超级计算机。应用集群103中包括了多个应用服务器108,每一个应用服务器108中都部署了若干应用(应用软件或应用程序),应用服务器108运行该应用可以通过网络为其它设备提供相应的服务器。

图2为一种在部署设备端用于将应用部署于应用服务器的方法的流程图。以下基于图1所示的场景,对用于将应用部署于应用服务器108的方法进行详细的描述。

图2中示出的在部署设备102端用于将应用部署于应用服务器108的方法具体包括以下步骤:步骤s202,接收一任务创建请求,所述任务创建请求中包括一代码编号,每一代码编号与一存储于一文件服务器106的部署包对应;步骤s204,响应于任务创建请求,将由若干应用服务器108组成的应用集群103划分为若干应用分组,每一应用分组中至少包括一个应用服务器108;步骤s206,根据任务创建请求生成一包括代码编号的部署指令,并发送至应用分组中的每一应用服务器108,以使得应用分组中应用服务器108部署与代码编号对应的部署包。

在步骤s202中,部署设备102接收一任务创建请求,任务创建请求中包括一代码编号,每一代码编号与一存储于一文件服务器106的部署包对应。任务创建请求是由通过网络与部署设备102相连的用户设备101建立并发出的。在任务创建请求中包括了需要进行部署的代码编号,该代码编号对应了一个应用的完整的原始代码。该原始代码是由用户通过用户设备101存储于代码数据库104中,并且每一个应用的原始代码都有相应且唯一的代码编号,用于标识该原始代码。部署包生成设备105可以提取代码数据库104中的原始代码生成部署包(安装包),该部署包仍旧通过原始代码对应的代码编号来识别,即原始代码和根据该原始代码生成的部署包都采用同一个代码编号来进行识别。代码编号与文件服务器106中的部署包一一对应。

在步骤s204中,部署设备102响应于任务创建请求,将由若干应用服务器108组成的应用集群103划分为若干应用分组,每一应用分组中至少包括一个应用服务器108。在安装(部署)部署包之前,需要对应用集群103中的应用服务器108进行分组,将应用服务器108划分为若干的应用分组。

图3为一种划分应用分组的流程示意图。图3中示出的步骤s204具体包括:步骤s302、步骤s304、步骤s306以及步骤s308。在步骤s302中,部署设备102获取应用集群103中的每一应用服务器108的第一资源余量和第二资源余量。具体的,第一资源余量为cpu剩余资源,第二资源余量为ram剩余资源,cpu剩余资源和ram剩余资源均用0-1之间的数值表示,例如,0.1、0.8、0.6等,数值越大则剩余的资源量越多。在步骤s304中,部署设备102根据第一资源余量和第二资源余量获得每一应用服务器108的资源剩余系数。即根据cpu剩余资源和ram剩余资源计算每一个应用服务器108的资源剩余系数。

在步骤s304中,资源剩余系数的计算公式为:

其中:

δ为资源剩余系数;

α1为第一资源系数;

r1为第一剩余资源;

α2为第二资源系数,并且α1+α2=1;

r2为第二剩余资源。

在步骤s306中,部署设备102根据资源剩余系数从大到小对应用集群103中的应用服务器108进行排序形成一应用服务器108的应用队列。部署设备102根据应用服务器108的资源剩余系数δ从大到小的对应用服务器108进行排序。资源剩余系数δ越大的应用服务器108在在应用队列中越靠前,资源剩余系数δ越大的应用服务器108剩余的资源量也越大。可以实现优先对资源剩余系数δ较大的应用服务器108进行部署,从而提高部署效率以及成功率。

在步骤s308中,部署设备102从应用队列的队首依次提取若干应用服务器108组成应用分组。例如,从队首提取一个应用服务器108作为1个应用分组,之后再次提取2个应用服务器108组成一个应用分组,再次提取4个应用服务器108组成一个应用分组,将剩余的3个组成一个应用分组。

在步骤s206中,部署设备102根据任务创建请求生成一包括代码编号的部署指令,并发送至应用分组中的每一应用服务器108,以使得应用分组中应用服务器108部署与代码编号对应的部署包。部署设备102将生成的部署指令按照一定的顺序即选择不同的应用分组发送。一些实施例中,应用分组中的应用服务器108的数量构成一个等差数列或一个等比数列。

图4为一种发送部署指令的流程示意图。步骤s206具体包括,步骤s402、步骤s404以及步骤s406。在步骤s402中,部署设备102根据应用分组中的应用服务器108的数量从小到大对应用分组进行排序。在步骤s404中,部署设备102根据任务创建请求生成包括代码编号的部署指令。在步骤s406中,部署设备102将部署指令依次发送至排序后的应用分组,即从包含应用服务器108数量最小的应用分组进行部署。一些实施例中,第一个应用分组完成部署之后,检测服务器107需要对该应用分组中的应用服务器108进行检测,若未发现异常,则再继续后续所有应用分组的部署并且不再进行检测。也可以在每一个应用分组完成之后都需要通过检测服务器107对应用服务器108进行检测,检测未发现异常则再进行下一个应用分组的部署。也可以不通过检测服务器107检测,直接对各个应用分组进行部署。

图5是一种在部署包生成设备端用于将应用部署于应用服务器的方法流程图。图5示出的在部署包生成设备105端用于将应用部署于应用服务器108的方法具体包括:步骤s502、步骤s504、步骤s506以及步骤s508。在步骤s502中,部署包生成设备105接收部署设备102发送构建信息,构建信息包括代码编号。在步骤s504中,部署包生成设备105根据代码编号于一代码数据库104中提取应用的原始代码。在步骤s506中,部署包生成设备105根据原始代码生成一部署包。在步骤s508中,部署包生成设备105将部署包上传至一文件服务器106,以供应用服务器108提取部署包。通过部署包生成设备105来将原始代码生成部署包,之后再将部署包上传至文件服务器106中,各个应用服务器108需要进行部署时只需到文件服务器106中提取相应的部署包。

根据本发明一个方面提供一种用于将应用部署于应用服务器的方法,包括以下步骤:

部署设备102接收一任务创建请求,任务创建请求中包括一代码编号,每一代码编号与一存储于一文件服务器106的一部署包对应;

部署设备102响应于任务创建请求,将由若干应用服务器108组成的应用集群103划分为若干应用分组,每一应用分组中至少包括一个应用服务器108;

部署包生成设备105接收部署设备102发送一构建信息,构建信息包括代码编号;

部署包生成设备105根据代码编号于一代码数据库104中提取应用的原始代码;

部署包生成设备105根据原始代码生成部署包;

部署包生成设备105将部署包上传至文件服务器106,以供应用服务器108提取部署包;

部署设备102根据任务创建请求生成一包括代码编号的部署指令,并发送至应用分组中的每一应用服务器108,以使得应用分组中应用服务器108部署与代码编号对应的部署包。

根据本发明的一个方面,提供一种用于将应用部署于应用服务器的部署包生成设备,包括:

处理器;

存储器,其中存储有处理器的可执行指令;

其中,处理器配置为经由执行可执行指令来执行在部署包生成设备端用于将应用部署于应用服务器的方法的步骤。

根据本发明的一个方面,提供一种用于将应用部署于应用服务器的部署设备,包括:

处理器;

存储器,其中存储有处理器的可执行指令;其中,可执行指令在被执行时处理器执行在部署设备端用于将应用部署于应用服务器的方法的步骤。

图6是本发明的用于将应用部署于应用服务器的部署设备。下面参照图6来描述根据本发明的这种实施方式的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图6所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同平台组件(包括存储单元620和处理单元610)的总线630、显示单元640等。

其中,存储单元存储有程序代码,程序代码可以被处理单元610执行,使得处理单元610执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元610可以执行如图2中所示的步骤。

存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(rom)6203。

存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储平台等。

根据本发明的一个方面,提供一种计算机可读存储介质,用于存储程序,程序被执行时实现上述方法的步骤。

图7是本发明的计算机可读存储介质的结构示意图。参考图7所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

综上,本发明的用于将应用部署于应用服务器的方法、设备以及介质,能够自动的根据代码数据库中的原始代码生成部署包,对需要部署应用的应用服务器进行分组得到应用分组,而后一应用分组为单位将部署包安装于应用分组内的应用服务器,优先将部署包安装于剩余资源较多的应用分组,从而提高应用部署的效率和成功率。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1