CN111209097A - 软件部署方法及系统 - Google Patents
软件部署方法及系统 Download PDFInfo
- Publication number
- CN111209097A CN111209097A CN201911295035.1A CN201911295035A CN111209097A CN 111209097 A CN111209097 A CN 111209097A CN 201911295035 A CN201911295035 A CN 201911295035A CN 111209097 A CN111209097 A CN 111209097A
- Authority
- CN
- China
- Prior art keywords
- planning
- task
- software
- planning object
- software version
- 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
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例涉及CDN网络技术领域,公开了一种软件部署方法及系统,软件部署方法包括:根据层级树的各层级包括的规划对象关联的软件版本,将主任务拆分为多个子任务;每个子任务对应于至少一规划对象;将多个子任务分配给多个任务执行机执行,以供各任务执行机执行被分配的子任务,获取对应的规划对象包括的服务对象关联的软件版本,并在各服务对象上部署关联软件版本的软件。本发明中,根据各层级的规划对象关联的软件版本,将需要部署软件的主任务拆分为不同的子任务,实现了主任务的微小化,能够充分利用各任务执行机的资源,避免单台任务执行机负载过重,有效的节省了软件部署的耗时,提升了软件部署的执行效率。
Description
技术领域
本发明实施例涉及CDN网络技术领域,特别涉及一种软件部署方法及系统。
背景技术
内容分发网络(Content Delivery Network,简称CDN)是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘节点,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。对CDN网络的服务器节点来说,一台服务器上一般会部署多套软件,以提供多种服务。
发明人发现现有技术中至少存在如下问题:在对CDN网络中的各服务器节点进行软件部署时,不同的服务器节点可以关联不同的软件版本,因此软件部署服务器需要遍历CDN网络中的所有服务器节点,以获取各服务器节点关联的软件版本,计算耗时长,且处理压力大。
发明内容
本发明实施方式的目的在于提供一种软件部署方法及系统,将部署软件的主任务按照层级树不同的规划对象分支拆分为不同的子任务,实现了主任务的微小化,能够充分利用各任务执行机的资源,避免单台任务执行机负载过重,有效的节省了软件部署的耗时,提升了软件部署的执行效率。
为解决上述技术问题,本发明的实施方式提供了一种软件部署方法,应用于任务调度机,方法包括:根据层级树的各层级包括的规划对象关联的软件版本,将主任务拆分为多个子任务;每个子任务对应于至少一规划对象;将多个子任务分配给多个任务执行机执行,以供各任务执行机执行被分配的子任务,获取对应的规划对象包括的服务对象关联的软件版本,并在各服务对象上部署关联软件版本的软件。
本发明的实施方式还提供了一种软件部署方法,应用于任务执行机,方法包括:在接收到任务调度机分配的对应于至少一规划对象的子任务时,执行被分配的子任务,获取对应的规划对象包括的服务对象关联的软件版本,其中任务调度机根据层级树的各层级包括的规划对象关联的软件版本,将主任务拆分为多个子任务;在各服务对象上部署关联软件版本的软件。
本发明的实施方式还提供了一种软件部署系统,包括:任务调度机与连接于任务调度机的多个任务执行机;任务调度机用于根据层级树的各层级包括的规划对象关联的软件版本,将主任务拆分为多个子任务;每个子任务对应于至少一规划对象;任务调度机还用于将多个子任务分配给多个任务执行机执行;任务执行机用于执行被分配的子任务,获取对应的规划对象包括的服务对象关联的软件版本,并在各服务对象上部署关联软件版本的软件。
本发明实施方式相对于现有技术而言,任务调度机能够根据层级树的各层级包括的规划对象关联的软件版本,将主任务拆分为多个对应于至少一规划对象的子任务,继而将拆分出的子任务分配到任务执行机,任务执行机执行被分配的子任务,获取其对应的规划对象包括的各服务器对象关联的软件版本,继而在各服务对象上部署关联软件版本的软件;本发明中,根据各层级的规划对象关联的软件版本,将需要部署软件的主任务拆分为不同的子任务,实现了主任务的微小化,能够充分利用各任务执行机的资源,避免单台任务执行机负载过重,有效的节省了软件部署的耗时,提升了软件部署的执行效率。
另外,根据层级树的各层级包括的规划对象关联的软件版本,将主任务拆分为多个子任务,包括:对于各层级中的每个第一规划对象,若第一规划对象的上级规划对象存在关联的软件版本,从主任务中拆分出与第一规划对象对应子任务;第一规划对象为不存在关联的软件版本的规划对象;对于各层级中的第二规划对象,若第二规划对象的下级规划对象为服务对象,从主任务中拆分出与第二规划对象对应子任务;第二规划对象为存在关联的软件版本的规划对象。本实施方式提供了一种根据层级树的各层级包括的规划对象关联的软件版本,将主任务拆分为多个子任务的具体实现方式,能够更加合理的对主任务进行拆分,进一步提升了软件部署的执行效率。
另外,对于各层级中的每个第一规划对象,若第一规划对象的上级规划对象存在关联的软件版本,从主任务中拆分出与第一规划对象对应子任务,包括:若同一层级中的多个第一规划对象对应于同一个上级规划对象,且上级规划对象存在关联的软件版本,从主任务中拆分出与多个第一规划对象对应子任务。本实施方式中,进一步提升了主任务拆分的合理性。
另外,任务调度机中存储各任务执行的状态信息,将多个子任务分配给多个任务执行机执行,包括:根据各任务执行机的状态信息,将子任务分配给多个任务执行机执行。本实施方式中,能够根据各任务执行机的状态信息,更加合理的进行任务调度,从而提升了任务调度的效率,实现了子任务的均衡分配,即实现了任务执行机资源的均衡使用。
另外,状态信息包括以下任意之一或任意组合:可执行任务数、当前正在执行的任务数、任务执行状态以及优先级信息。
另外,执行被分配的子任务,获取对应的规划对象包括的服务对象关联的软件版本,包括:对于子任务对应的每个第一规划对象,将第一规划对象对应的上级规划对象关联的软件版本作为第一规划对象包括的各服务对象关联的软件版本;第一规划对象为不存在关联的软件版本的规划对象;对于子任务对应的第二规划对象,遍历第二规划对象包括的各服务对象,获取各服务对象关联的软件版本;第二规划对象为存在关联的软件版本规划对象。本实施方式提供了执行被分配的子任务,获取对应的规划对象包括的服务对象关联的软件版本的一种具体实现方式,支持新增服务对象自动继承上层级关联的软件版本,并且支持服务对象独立关联软件版本。
另外,任务调度机包括相互连接的多个子调度机,每个子调度机分别连接于多个任务执行机,每个子调度机中存储有连接的子调度机的状态信息;子调度机用于根据连接的各子调度机的状态信息,从任务缓存队列中获取主任务。本实施方式中,主任务在多个子调度机之间均衡分配,提升了多个主任务情形下的主任务拆分效率。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施方式中的应用于软件部署方法的软件部署系统的方框示意图;
图2是根据本发明第一实施方式中的层级树的结构示意图;
图3至图5是根据本发明第一实施方式中的层级树的示例结构示意图;
图6是根据本发明第一实施方式中的软件部署方法的具体流程图;
图7是根据本发明第二实施方式中的软件部署方法的具体流程图;
图8是根据本发明第二实施方式中的层级树的示例结构示意图;
图9是根据本发明第三实施方式中的软件部署方法的具体流程图;
图10是根据本发明第四实施方式中的软件部署方法的具体流程图;
图11是根据本发明第五实施方式中的软件部署方法的具体流程图;
图12是根据本发明第九实施方式中的软件部署系统的方框示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种软件部署方法,应用于软件部署系统中的任务调度机,用于对CDN网络的层级树中各服务对象中的软件进行部署,请参考图1,软件部署系统还包括连接于任务调度机1的多个任务执行机2,任务调度机1和任务执行机2均为单独部署的服务器。
请参考图2,为层级树的层级对象之间的关系图,层级对象包括:CDN,包括CDN网络中所有的服务器Sever;服务器分类Server Categrory,根据用途划分的的服务器范围;服务器类型Server Type,根据单个服务器提供的服务不同划分的服务器范围;应用服务器Service,根据业务需求划分的提供服务的服务器范围;服务集群Server Cluster,根据定义的对外提供服务的服务器集合划分的服务器范围;逻辑服务器Logical Server,针对特定场景提供服务器的逻辑单元,单台物理服务器中可以根据不同的服务器类型创建多种逻辑服务器;其中,每个层级对象可以包括至少一个规划对象,举例来说,一个CDN下包括服务器分类A、服务器分类B以及服务器分类C,则在服务器分类这个层级中,包括三个规划对象,分别为服务器分类A、服务器分类B以及服务器分类C。示例性的,请参考图3,层级树包括CDN、服务器分类、服务器类型、应用服务器、服务集群、逻辑服务器;请参考图4,层级树包括CDN、服务器分类、服务器类型、应用服务器、逻辑服务器;请参考图5,层级树包括CDN、服务器分类、服务器类型、服务器。需要说明的是,层级树包括的层级对象可以按照需求设定,本实施例对此不作任何限定。
本实施方式的软件部署方法的具体流程如图6所示。
步骤101,根据层级树的各层级包括的规划对象关联的软件版本,将主任务拆分为多个子任务;每个子任务对应于至少一规划对象。
具体而言,对于层级树来说,层级树的层级即为上述的层级对象,每个层级可以包括一个或多个规划对象,每个规划对象关联的软件版本可以预先设置,每个规划对象包括的服务对象为其所在链路下所有的服务对象,服务对象可以为逻辑服务器或服务器(即物理服务器)。任务调度机在部署软件时,预先加载CDN网络的层级树结构,继而可以根据各规划对象关联的软件版本,将待部署软件对应的主任务划分为多个子任务,每个子任务对应于至少一规划对象。
步骤102,将多个子任务分配给多个任务执行机执行,以供各任务执行机执行被分配的子任务,获取对应的规划对象包括的服务对象关联的软件版本,并在各服务对象上部署关联软件版本的软件。
具体而言,任务调度机将拆分得到的子任务分别分配给多个任务执行机执行,每个任务执行机在接收到子任务时,执行被分配的子任务,获取该子任务对应的规划对象所包括的各服务对象关联的软件版本,继而在各服务对象上部署其关联软件版本的软件。
本实施方式相对于现有技术而言,任务调度机能够根据层级树的各层级包括的规划对象关联的软件版本,将主任务拆分为多个对应于至少一规划对象的子任务,继而将拆分出的子任务分配到任务执行机,任务执行机执行被分配的子任务,获取其对应的规划对象包括的各服务器对象关联的软件版本,继而在各服务对象上部署关联软件版本的软件;本发明中,根据各层级的规划对象关联的软件版本,将需要部署软件的主任务拆分为不同的子任务,实现了主任务的微小化,能够充分利用各任务执行机的资源,避免单台任务执行机负载过重,有效的节省了软件部署的耗时,提升了软件部署的执行效率。
本发明的第二实施方式涉及一种软件部署方法,本实施方式相对于第一实施方式来说,主要区别之处在于:提供了对主任务进行拆分的一种具体实现方式。
本实施方式的软件部署方法的具体流程如图7所示。本实施例中,以图8所示的层级树为例进行说明。
步骤201包括以下子步骤:
子步骤2011,对于各层级中的每个第一规划对象,若第一规划对象的上级规划对象存在关联的软件版本,且第一规划对象的下级规划对象不存在关联的软件版本,从主任务中拆分出与第一规划对象对应子任务;第一规划对象为不存在关联的软件版本的规划对象。
子步骤2012,对于各层级中的第二规划对象,若第二规划对象的下级规划对象为服务对象,从主任务中拆分出与第二规划对象对应子任务;第二规划对象为存在关联的软件版本的规划对象。
具体而言,任务调度机从上到下遍历层级树,首先是服务器分类层级,对于服务器分类中的每个规划对象,以规划对象A和规划对象C为不存在关联的软件版本的第一规划对象、规划对象B为存在关联的软件版本的第二规划对象为例,在遍历服务器分类中中的规划对象A、规划对象B以及规划对象C之后,规划对象A和规划对象C为第一规划对象均属于服务器分类层级,规划对象A和规划对象C均对应于同一个上级规划对象,即CDN层级,并且CDN层级中存在关联的软件版本,此时从主任务中拆分出一个子任务1,子任务1对应于规划对象A和规划对象C,需要说明的是,此时也可以拆分出两个子任务,分别对应于规划对象A和规划对象C;规划对象B为第二规划对象,由于其下级规划对象为服务器类型中的规划对象,不是服务对象,继而遍历规划对象B的下级规划对象,即遍历服务器类型中的规划对象B1和B2。
以规划对象B1为第一规划对象,规划对象B2为第二规划对象为例,此时从主任务中拆分一个子任务2,子任务2对应于规划对象B1;由于规划对象B2的下级规划对象为服务对象,从主任务中拆分一个子任务3,子任务3对应于规划对象B2。
步骤202,将多个子任务分配给多个任务执行机执行,以供各任务执行机执行被分配的子任务,获取对应的规划对象包括的服务对象关联的软件版本,并在各服务对象上部署关联软件版本的软件。
具体而言,任务调度机将拆分得到的子任务1至子任务3分别分配给多个任务执行机执行,每个任务执行机在接收到子任务时,执行被分配的子任务,获取该子任务对应的规划对象所包括的各服务对象关联的软件版本,继而在各服务对象上部署其关联软件版本的软件。
本实施方式相对于第一实施方式而言,提供了一种根据层级树的各层级包括的规划对象关联的软件版本,将主任务拆分为多个子任务的具体实现方式,能够更加合理的对主任务进行拆分,进一步提升了软件部署的执行效率。
本发明的第三实施方式涉及一种软件部署方法,本实施方式相对于第一实施方式来说,主要区别之处在于:提供了对主任务进行拆分得到多个子任务进行分配的一种具体实现方式。
本实施例中,任务调度机中存储有各软件执行机的状态信息,软件部署方法的具体流程如图9所示。其中,状态信息包括以下任意之一或任意组合:可执行任务数、当前正在执行的任务数、任务执行状态以及优先级信息。其中,优先级信息可以根据各任务执行机的IP地址来设定,例如,首先根据各任务执行机的IP地址计算得到多个比较值,根据比较值的大小,设定任务执行机的优先级,比较值大的任务执行机的优先级高、比较值小的任务执行机的优先级低;任务执行状态为任务执行机执行子任务是否成功,任务调度机可以周期性探测任务执行机的任务执行状态。
步骤301,根据层级树的各层级包括的规划对象关联的软件版本,将主任务拆分为多个子任务;每个子任务对应于至少一规划对象。与第一实施例中的步骤101大致相同,在此不再赘述。
步骤302,根据各任务执行机的状态信息,将子任务分配给多个任务执行机执行,以供各任务执行机执行被分配的子任务,获取对应的规划对象包括的服务对象关联的软件版本,并在各服务对象上部署关联软件版本的软件。
具体而言,以状态信息同时包括可执行任务数、当前正在执行的任务数、任务执行状态以及优先级信息为例,任务调度机在分配子任务时,获取任务执行状态为成功的任务执行机,并计算这些任务执行机的当前执行任务数在可执行任务数中的占比值,优先将子任务分配给占比值最小的任务执行机,若占比值最小的任务执行机的数量为多个,则将子任务分给优先级高的任务执行机,任务执行机在执行子任务完成后,生成子任务的执行状态,并向任务调度机返回执行的子任务ID。
在一个例子中,任务调度机为各任务执行机配置了对应的令牌池,每个令牌池包括多个令牌,即令牌1至令牌N(N为大于1的整数),任务调度机在获取任务执行状态为成功的任务执行机后,从这多个任务执行机中获取令牌号小的任务执行机,若存在多个任务执行机的令牌号相等,则将子任务分给优先级高的任务执行机,任务执行机在执行子任务完成后,生成子任务的执行状态,向任务调度机返回执行的子任务ID,并释放令牌。其中,在所有任务执行机的令牌池满时,将待分配的子任务放入等待队列,当有任务执行机释放令牌时,按照先进先出的原则获取令牌,将等待队列中子任务按顺序分配给任务执行机。
本实施方式相对于第一实施方式而言,能够根据各任务执行机的状态信息,更加合理的进行任务调度,从而提升了任务调度的效率,实现了子任务的均衡分配,即实现了任务执行机资源的均衡使用。
本发明的第四实施方式涉及一种软件部署方法,应用于软件部署系统中的任务执行机,用于对CDN网络的层级树中各服务对象中的软件进行部署,请参考图1,软件部署系统还包括连接于分别连接于各任务执行机2的任务调度机1,任务调度机1和任务执行机2均为单独部署的服务器。请参考图2,为层级树的层级对象之间的关系图,层级对象的相关内容与第一实施例中相同,在此不再赘述。
本实施方式的软件部署方法的具体流程如图10所示。
步骤401,在接收到任务调度机分配的对应于至少一规划对象的子任务时,执行被分配的子任务,获取对应的规划对象包括的服务对象关联的软件版本。
具体而言,对于层级树来说,层级树的层级即为上述的层级对象,每个层级可以包括一个或多个规划对象,每个规划对象关联的软件版本可以预先设置,每个规划对象包括的服务对象为其所在链路下所有的服务对象,服务对象可以为逻辑服务器或服务器(即物理服务器)。任务调度机在部署软件时,预先加载CDN网络的层级树结构,继而可以根据各规划对象关联的软件版本,将待部署软件对应的主任务划分为多个子任务,每个子任务对应于至少一规划对象。
任务调度机将拆分得到的子任务分别分配给多个任务执行机执行,每个任务执行机在接收到子任务时,执行被分配的子任务,获取该子任务对应的规划对象所包括的各服务对象关联的软件版本。
步骤402,在各服务对象上部署关联软件版本的软件。
由于第一实施例与本实施例相互对应,因此本实施例可与第一实施例互相配合实施。第一实施例中提到的相关技术细节在本实施例中依然有效,在第一实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第一实施例中。
本实施方式相对于现有技术而言,任务调度机能够根据层级树的各层级包括的规划对象关联的软件版本,将主任务拆分为多个对应于至少一规划对象的子任务,继而将拆分出的子任务分配到任务执行机,任务执行机执行被分配的子任务,获取其对应的规划对象包括的各服务器对象关联的软件版本,继而在各服务对象上部署关联软件版本的软件;本发明中,根据各层级的规划对象关联的软件版本,将需要部署软件的主任务拆分为不同的子任务,实现了主任务的微小化,能够充分利用各任务执行机的资源,避免单台任务执行机负载过重,有效的节省了软件部署的耗时,提升了软件部署的执行效率。
本发明的第五实施方式涉及一种软件部署方法,本实施方式相对于第一实施方式来说,主要区别之处在于:提供了执行被分配的子任务,获取对应的规划对象包括的服务对象关联的软件版本的一种具体实现方式。
本实施方式的软件部署方法的具体流程如图11所示。
步骤501,包括以下子步骤:
子步骤5011,对于子任务对应的每个第一规划对象,将第一规划对象对应的上级规划对象关联的软件版本作为第一规划对象包括的各服务对象关联的软件版本;第一规划对象为不存在关联的软件版本的规划对象。
子步骤5012,对于子任务对应的每个第二规划对象,遍历第二规划对象包括的各服务对象,获取各服务对象关联的软件版本;第二规划对象为存在关联的软件版本规划对象。
具体而言,任务执行机在接收到子任务时,若该子任务对应于至少一第一规划对象,对于每个第一规划对象来说,其上级规划对象存在关联的软件版本,且其下级规划对象不存在关联的软件版本,此时将其上级规划对象关联的软件版本作为该第一规划对象包括的各服务对象关联的软件版本,以图8的层级树结构为例,任务执行机在执行子任务1时,则将CDN层级关联的软件版本作为服务器1至服务器4、服务器9至服务器12关联的软件版本,任务执行机在执行子任务2时,将规划对象B关联的软件版本作为服务器5和服务器6关联的软件版本。
若任务执行机执行的子任务对应于第二规划对象,则其上级规划对象存在关联的软件版本,且其下级规划对象为服务对象,此时任务执行机遍历该第二规划对象下的所有的服务对象,获取各服务对象被配置的软件版本,从而能够得到各服务器对象关联的软件版本,以图8的层级树结构为例,任务执行机在执行子任务3时,遍历服务器7和服务器8被配置的软件版本,作为其关联的软件版本。
步骤502,在各服务对象上部署关联软件版本的软件。
由于第二实施例与本实施例相互对应,因此本实施例可与第二实施例互相配合实施。第二实施例中提到的相关技术细节在本实施例中依然有效,在第二实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第二实施例中。
本实施方式相对于第四实施方式而言,提供了执行被分配的子任务,获取对应的规划对象包括的服务对象关联的软件版本的一种具体实现方式,支持新增服务对象自动继承上层级关联的软件版本,并且支持服务对象独立关联软件版本。
本发明的第六实施方式涉及一种软件部署系统,用于对CDN网络的层级树中各服务对象中的软件进行部署,请参考图1,软件部署系统包括任务调度机1与连接于任务调度机1的多个任务执行机2,任务调度机1和任务执行机2均为单独部署的服务器。请参考图2,为层级树的层级对象之间的关系图,层级对象的相关内容与第一实施例中相同,在此不再赘述。
任务调度机1用于根据层级树的各层级包括的规划对象关联的软件版本,将主任务拆分为多个子任务;每个子任务对应于至少一规划对象。
任务调度机1还用于将多个子任务分配给多个任务执行机执行;
任务执行机2用于执行被分配的子任务,获取对应的规划对象包括的服务对象关联的软件版本,并在各服务对象上部署关联软件版本的软件。
由于第一实施例、第四实施例与本实施例相互对应,因此本实施例可与第一实施例、第四实施例互相配合实施。第一实施例、第四实施例中提到的相关技术细节在本实施例中依然有效,在第一实施例、第四实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第一实施例、第四实施例中。
本实施方式相对于现有而言,任务调度机能够根据层级树的各层级包括的规划对象关联的软件版本,将主任务拆分为多个对应于至少一规划对象的子任务,继而将拆分出的子任务分配到任务执行机,任务执行机执行被分配的子任务,获取其对应的规划对象包括的各服务器对象关联的软件版本,继而在各服务对象上部署关联软件版本的软件;本发明中,将部署软件的主任务按照层级树不同的规划对象分支拆分为不同的子任务,实现了主任务的微小化,能够充分利用各任务执行机的资源,避免单台任务执行机负载过重,有效的节省了软件部署的耗时,提升了软件部署的执行效率。
本发明的第七实施方式涉及一种软件部署系统,本实施方式相对于第六实施方式而言,主要区别之处在于:提供了任务调度机对对主任务进行拆分的一种具体实现方式,以及在该拆分方式下,任务执行机执行子任务获取对应的规划对象包括的服务对象关联的软件版本的一种具体实现方式。
任务调度机1用于对于各层级中的每个第一规划对象,若第一规划对象的上级规划对象存在关联的软件版本,从主任务中拆分出与第一规划对象对应子任务;第一规划对象为不存在关联的软件版本的规划对象。
在一个例子中,任务调度机1用于在同一层级中的多个第一规划对象对应于同一个上级规划对象,且上级规划对象存在关联的软件版本,从主任务中拆分出与多个第一规划对象对应子任务。
任务调度机1用于对于各层级中的第二规划对象,若第二规划对象的下级规划对象为服务对象,从主任务中拆分出与第二规划对象对应子任务;第二规划对象为存在关联的软件版本的规划对象。
任务执行机2用于对于子任务对应的每个第一规划对象,将第一规划对象对应的上级规划对象关联的软件版本作为第一规划对象包括的各服务对象关联的软件版本。
任务执行机2用于对于子任务对应的第二规划对象,遍历第二规划对象包括的各服务对象,获取各服务对象关联的软件版本。
由于第二实施例、第五实施例与本实施例相互对应,因此本实施例可与第二实施例、第五实施例互相配合实施。第二实施例、第五实施例中提到的相关技术细节在本实施例中依然有效,在第二实施例、第五实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第二实施例、第五实施例中。
本实施方式相对于第六实施方式而言,提供了一种根据层级树的各层级包括的规划对象关联的软件版本,将主任务拆分为多个子任务的具体实现方式,能够更加合理的对主任务进行拆分,进一步提升了软件部署的执行效率;同时提供了在上述主任务拆分方式下,执行被分配的子任务,获取对应的规划对象包括的服务对象关联的软件版本的一种具体实现方式,支持新增服务对象自动继承上层级关联的软件版本,并且支持服务对象独立关联软件版本。
本发明的第八实施方式涉及一种软件部署系统,本实施方式相对于第六实施方式而言,主要区别之处在于:提供了对主任务进行拆分得到多个子任务进行分配的一种具体实现方式。
任务调度机1中存储各任务执行的状态信息。
任务调度机1用于根据各任务执行机的状态信息,将子任务分配给多个任务执行机执行。
在一个例子中,状态信息包括以下任意之一或任意组合:可执行任务数、当前正在执行的任务数、任务执行状态以及优先级信息。
由于第三实施例与本实施例相互对应,因此本实施例可与第三实施例互相配合实施。第三实施例中提到的相关技术细节在本实施例中依然有效,在第三实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第三实施例中。
本实施方式相对于第七实施方式而言,能够根据各任务执行机的状态信息,更加合理的进行任务调度,从而提升了任务调度的效率,实现了子任务的均衡分配,即实现了任务执行机资源的均衡使用。
本发明的第九实施方式涉及一种软件部署系统,本实施方式相对于第六实施方式而言,主要区别之处在于:请参考图12,任务调度机1包括相互连接的多个子调度机11,每个子调度机11分别连接于多个任务执行机2,每个子调度机11中存储有连接的子调度机11的状态信息。
子调度机11用于根据连接的各子调度机11的状态信息,从任务缓存队列中获取主任务。
在一个例子中,该状态信息包括当前执行的主任务数与可执行的主任务数。子调度机11计算自身以及其他子调度机11的当前执行的主任务数在可执行的主任务数中的占比值,从而在自身的占比值最小时,接收主任务,并进行拆分。其中,若所有的子调度机11的正在执行的主任务数均达到其可执行的主任务数,则将剩余的主任务放入缓存队列,等待任一子调度机11执行主任务拆分完毕时,按照先进先出的规则接收缓存队列中的子任务。
本实施方式相对于第六实施方式而言,主任务在多个子调度机之间均衡分配,提升了多个主任务情形下的主任务拆分效率。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (14)
1.一种软件部署方法,其特征在于,应用于任务调度机,所述方法包括:
根据层级树的各层级包括的规划对象关联的软件版本,将主任务拆分为多个子任务;每个所述子任务对应于至少一所述规划对象;
将多个所述子任务分配给多个任务执行机执行,以供各所述任务执行机执行被分配的所述子任务,获取对应的所述规划对象包括的服务对象关联的软件版本,并在各所述服务对象上部署关联软件版本的软件。
2.根据权利要求1所述的软件部署方法,其特征在于,所述根据层级树的各层级包括的规划对象关联的软件版本,将主任务拆分为多个子任务,包括:
对于各层级中的每个第一规划对象,若所述第一规划对象的上级规划对象存在关联的软件版本,从所述主任务中拆分出与所述第一规划对象对应所述子任务;所述第一规划对象为不存在关联的软件版本的规划对象;
对于各层级中的第二规划对象,若所述第二规划对象的下级规划对象为所述服务对象,从所述主任务中拆分出与所述第二规划对象对应所述子任务;所述第二规划对象为存在关联的软件版本的规划对象。
3.根据权利要求2所述的软件部署方法,其特征在于,所述对于各层级中的每个第一规划对象,若所述第一规划对象的上级规划对象存在关联的软件版本,从所述主任务中拆分出与所述第一规划对象对应所述子任务,包括:
若同一层级中的多个所述第一规划对象对应于同一个上级规划对象,且所述上级规划对象存在关联的软件版本,从所述主任务中拆分出与所述多个所述第一规划对象对应所述子任务。
4.根据权利要求1所述的软件部署方法,其特征在于,所述任务调度机中存储各所述任务执行的状态信息,所述将多个所述子任务分配给多个任务执行机执行,包括:
根据各所述任务执行机的状态信息,将所述子任务分配给多个任务执行机执行。
5.根据权利要求4所述的软件部署方法,其特征在于,所述状态信息包括以下任意之一或任意组合:可执行任务数、当前正在执行的任务数、任务执行状态以及优先级信息。
6.一种软件部署方法,其特征在于,应用于任务执行机,所述方法包括:
在接收到任务调度机分配的对应于至少一规划对象的子任务时,执行被分配的所述子任务,获取对应的所述规划对象包括的服务对象关联的软件版本,其中所述任务调度机根据层级树的各层级包括的规划对象关联的软件版本,将主任务拆分为多个所述子任务;
在各所述服务对象上部署关联软件版本的软件。
7.根据权利要求6所述的软件部署方法,其特征在于,所述执行被分配的所述子任务,获取对应的所述规划对象包括的服务对象关联的软件版本,包括:
对于所述子任务对应的每个第一规划对象,将所述第一规划对象对应的上级规划对象关联的软件版本作为所述第一规划对象包括的各所述服务对象关联的软件版本;所述第一规划对象为不存在关联的软件版本的所述规划对象;
对于所述子任务对应的第二规划对象,遍历所述第二规划对象包括的各所述服务对象,获取各所述服务对象关联的软件版本;所述第二规划对象为存在关联的软件版本所述规划对象。
8.一种软件部署系统,其特征在于,包括:任务调度机与连接于所述任务调度机的多个任务执行机;
所述任务调度机用于根据层级树的各层级包括的规划对象关联的软件版本,将主任务拆分为多个子任务;每个所述子任务对应于至少一所述规划对象;
所述任务调度机还用于将多个所述子任务分配给多个任务执行机执行;
所述任务执行机用于执行被分配的所述子任务,获取对应的所述规划对象包括的服务对象关联的软件版本,并在各所述服务对象上部署关联软件版本的软件。
9.根据权利要求8所述的软件部署系统,其特征在于,所述任务调度机用于对于各层级中的每个第一规划对象,若所述第一规划对象的上级规划对象存在关联的软件版本,从所述主任务中拆分出与所述第一规划对象对应所述子任务;所述第一规划对象为不存在关联的软件版本的规划对象;
所述任务调度机用于对于各层级中的第二规划对象,若所述第二规划对象的下级规划对象为所述服务对象,从所述主任务中拆分出与所述第二规划对象对应所述子任务;所述第二规划对象为存在关联的软件版本的规划对象;
所述任务执行机用于对于所述子任务对应的每个所述第一规划对象,将所述第一规划对象对应的上级规划对象关联的软件版本作为所述第一规划对象包括的各所述服务对象关联的软件版本;
所述任务执行机用于对于所述子任务对应的所述第二规划对象,遍历所述第二规划对象包括的各所述服务对象,获取各所述服务对象关联的软件版本。
10.根据权利要求9所述的软件部署系统,其特征在于,所述任务调度机用于在同一层级中的多个所述第一规划对象对应于同一个上级规划对象,且所述上级规划对象存在关联的软件版本,从所述主任务中拆分出与所述多个所述第一规划对象对应所述子任务。
11.根据权利要求8所述的软件部署系统,其特征在于,所述任务调度机中存储各所述任务执行的状态信息;
所述任务调度机用于根据各所述任务执行机的状态信息,将所述子任务分配给多个任务执行机执行。
12.根据权利要求11所述的软件部署系统,其特征在于,所述状态信息包括以下任意之一或任意组合:可执行任务数、当前正在执行的任务数、任务执行状态以及优先级信息。
13.根据权利要求8所述的软件部署系统,其特征在于,所述任务调度机包括相互连接的多个子调度机,每个所述子调度机分别连接于多个所述任务执行机,每个所述子调度机中存储有连接的所述子调度机的状态信息;
所述子调度机用于根据连接的各所述子调度机的状态信息,从任务缓存队列中获取所述主任务。
14.根据权利要求13所述的软件部署系统,其特征在于,所述状态信息包括当前执行的主任务数与可执行的主任务数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911295035.1A CN111209097B (zh) | 2019-12-16 | 2019-12-16 | 软件部署方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911295035.1A CN111209097B (zh) | 2019-12-16 | 2019-12-16 | 软件部署方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111209097A true CN111209097A (zh) | 2020-05-29 |
CN111209097B CN111209097B (zh) | 2024-04-05 |
Family
ID=70787054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911295035.1A Active CN111209097B (zh) | 2019-12-16 | 2019-12-16 | 软件部署方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111209097B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120131093A1 (en) * | 2010-11-22 | 2012-05-24 | International Business Machines Corporation | Connection distribution for load balancing in a distributed database |
US20180321984A1 (en) * | 2017-05-02 | 2018-11-08 | Home Box Office, Inc. | Virtual graph nodes |
CN109618003A (zh) * | 2019-01-14 | 2019-04-12 | 网宿科技股份有限公司 | 一种服务器规划方法、服务器及存储介质 |
-
2019
- 2019-12-16 CN CN201911295035.1A patent/CN111209097B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120131093A1 (en) * | 2010-11-22 | 2012-05-24 | International Business Machines Corporation | Connection distribution for load balancing in a distributed database |
US20180321984A1 (en) * | 2017-05-02 | 2018-11-08 | Home Box Office, Inc. | Virtual graph nodes |
CN109618003A (zh) * | 2019-01-14 | 2019-04-12 | 网宿科技股份有限公司 | 一种服务器规划方法、服务器及存储介质 |
Non-Patent Citations (1)
Title |
---|
官东亮;: "基于微服务的业务平台架构重构" * |
Also Published As
Publication number | Publication date |
---|---|
CN111209097B (zh) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Krishnamurthy et al. | Pratyaastha: an efficient elastic distributed sdn control plane | |
EP3770774B1 (en) | Control method for household appliance, and household appliance | |
EP2957068B1 (en) | Methods, systems, and computer readable media for providing a virtualized diameter network architecture and for routing traffic to dynamically instantiated diameter resource instances | |
AU2013277589B2 (en) | Offloading virtual machine flows to physical queues | |
CN115328663B (zh) | 基于PaaS平台进行资源调度的方法、装置、设备和存储介质 | |
US20170141944A1 (en) | Verifier for network function virtualization resource allocation | |
Tsai et al. | Two-tier multi-tenancy scaling and load balancing | |
CN108702316B (zh) | 一种vnf的资源分配方法及装置 | |
US20110055377A1 (en) | Methods and systems for automated migration of cloud processes to external clouds | |
US20120117242A1 (en) | Service linkage system and information processing system | |
Wang et al. | Bandwidth guaranteed virtual network function placement and scaling in datacenter networks | |
CN110187960A (zh) | 一种分布式资源调度方法及装置 | |
CN104995604A (zh) | 虚拟机的资源分配方法及装置 | |
CN110086726A (zh) | 一种自动切换Kubernetes主节点的方法 | |
EP3458959A1 (en) | Reconfigurable distributed processing | |
CN106576260B (zh) | Nfv系统中的策略协调方法和装置 | |
US20230037293A1 (en) | Systems and methods of hybrid centralized distributive scheduling on shared physical hosts | |
CN112214318A (zh) | 一种任务调度方法、系统、设备以及介质 | |
CN116113923A (zh) | 容器集群管理方法及其系统 | |
WO2020108337A1 (zh) | 一种cpu资源调度方法及电子设备 | |
CN114528099A (zh) | 一种gpu卡分配的方法、系统、设备和存储介质 | |
Paulos et al. | Priority-enabled load balancing for dispersed computing | |
CN110120978B (zh) | 一种弹性用户云计算资源的安全保护方法 | |
Tripathi et al. | Modified optimal algorithm: for load balancing in cloud computing | |
CN111209097B (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 |