CN117032834A - 一种价值流插件运行方法、装置、设备及存储介质 - Google Patents
一种价值流插件运行方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117032834A CN117032834A CN202311237206.1A CN202311237206A CN117032834A CN 117032834 A CN117032834 A CN 117032834A CN 202311237206 A CN202311237206 A CN 202311237206A CN 117032834 A CN117032834 A CN 117032834A
- Authority
- CN
- China
- Prior art keywords
- plug
- value flow
- server
- determining
- candidate
- 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 55
- 238000004458 analytical method Methods 0.000 claims abstract description 11
- 230000006870 function Effects 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 6
- 238000007689 inspection Methods 0.000 claims description 2
- 230000008878 coupling Effects 0.000 abstract description 5
- 238000010168 coupling process Methods 0.000 abstract description 5
- 238000005859 coupling reaction Methods 0.000 abstract description 5
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 230000002349 favourable effect Effects 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000012512 characterization method Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/301—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提出一种价值流插件运行方法、装置、设备及存储介质,价值流插件运行方法通过在价值流启动的情况下,确定价值流插件的运行信息,根据运行信息,确定候选服务器,对所述候选服务器的负载指标信息进行负载分析,确定目标服务器,保证目标服务器具有充足的计算资源,有利于减少价值流插件消耗资源过多而导致其他插件无法使用的情况出现;通过所述目标服务器生成插件容器,在插件容器内运行价值流插件,使得价值流插件之间通过插件容器实现隔离解耦,有利于保证价值流插件的正常运行,避免由于插件间耦合而导致其他插件无法使用的情况。
Description
技术领域
本申请涉及插件领域,尤其涉及一种价值流插件运行方法、装置、设备及存储介质。
背景技术
随着互联网的不断发展,市场变化越来越快,DevOps价值流VSM的概念愈发明显,涉及产品管理、开发、测试、IT 运维和信息安全专员等等不同角色,它在整个系统中收集广泛的信息,并从更高级别查看流程。由于每个公司的业务情况不同使得价值流的过程必然不同,端到端价值流过程中需要很多业务服务去做支撑,这时就需要创建一个共用价值流平台+场景插件来满足企业的要求,当前常用的方式是采用嵌入插件的开发方式,存在插件间耦合、插件与主程序之间共享资源,可能由于某个插件消耗资源过多导致其他插件用不了,甚至主程序进程崩掉,主程序挂掉插件进程会跟着挂掉,不利于插件的运行。
发明内容
本申请实施例提供一种价值流插件运行方法、装置、设备及存储介质,以解决相关技术存在的至少一问题,技术方案如下:
第一方面,本申请实施例提供了一种价值流插件运行的方法,包括:
在价值流启动的情况下,确定价值流插件的运行信息;
根据所述运行信息,确定候选服务器;
对所述候选服务器的负载指标信息进行负载分析,确定目标服务器;
通过所述目标服务器生成插件容器,在所述插件容器内运行所述价值流插件。
在一种实施方式中,所述根据所述运行信息,确定候选服务器包括:
根据所述运行信息确定所述价值流插件是否首次运行;
当所述价值流插件为首次运行时,从所有第一服务器中确定候选服务器;
当所述价值流插件不是首次运行时,从历史运行所述价值流插件的第二服务器中确定候选服务器。
在一种实施方式中,所述负载指标信息包括处理器负载、内存负载、磁盘负载、磁盘IO负载以及插件容器的使用量;所述对所述候选服务器的负载指标信息进行负载分析,确定目标服务器包括:
在所述候选服务器的所述处理器负载、所述内存负载、所述磁盘负载、所述磁盘IO负载以及所述使用量均满足预设阈值条件的情况下,确定所述候选服务器为目标候选服务器;
根据所述目标候选服务器确定目标服务器。
在一种实施方式中,所述根据所述目标候选服务器确定目标服务器包括:
当所述目标候选服务器的数量为一个时,确定所述目标候选服务器为所述目标服务器;
或者,
当所述目标候选服务器的数量为两个以上时,对所述目标候选服务器对应的所述处理器负载、所述内存负载、所述磁盘负载、所述磁盘IO负载以及预设权重进行加权计算,得到计算结果;
确定所述计算结果最小的所述目标候选服务器为所述目标服务器。
在一种实施方式中,所述通过所述目标服务器生成插件容器包括:
通过所述目标服务器确定所述价值流插件的基础镜像;
通过所述目标服务器利用所述基础镜像生成插件容器。
在一种实施方式中,还包括:
确定所述目标服务器的端口参数、连接时长以及IP地址,根据所述端口参数、所述连接时长以及所述IP地址生成检查对象函数;
通过所述检查对象函数连接对应的候选地址以及候选端口以确定连接状态;
当所述连接状态表征成功时,确定所述候选端口为可用端口;
其中,所述可用端口用于供所述插件容器提供对外访问端口。
在一种实施方式中,还包括:
在所述价值流插件处于运行的情况下,当新的价值流生成所述价值流插件的第一启动信息,根据所述第一启动信息生成启动失败结果;
或者,
在所述价值流插件运行结束的情况下,将所述目标服务器中的所述插件容器进行销毁;
当新的价值流确定新的目标服务器并生成所述价值流插件的第二启动信息,所述新的目标服务器响应于所述第二启动信息,根据所述插件容器的容器ID拉取所述插件容器。
第二方面,本申请实施例提供了一种价值流插件运行装置,包括:
第一确定模块,用于在价值流启动的情况下,确定价值流插件的运行信息;
第二确定模块,用于根据所述运行信息,确定候选服务器;
第三确定模块,用于确定所述候选服务器对应的负载指标信息,根据所述负载指标信息进行负载分析,确定目标服务器;
运行模块,用于通过所述目标服务器为所述价值流插件生成独立的插件容器进行封装,运行所述价值流插件。
第三方面,本申请实施例提供了一种电子设备,包括:处理器和存储器,该存储器中存储指令,该指令由该处理器加载并执行,以实现上述各方面任一种实施方式中的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被执行时实现上述各方面任一种实施方式中的方法。
上述技术方案中的有益效果至少包括:
在价值流启动的情况下,确定价值流插件的运行信息,根据运行信息,确定候选服务器,对所述候选服务器的负载指标信息进行负载分析,确定目标服务器,保证目标服务器具有充足的计算资源,有利于减少价值流插件消耗资源过多而导致其他插件无法使用的情况出现;通过所述目标服务器生成插件容器,在插件容器内运行价值流插件,使得价值流插件之间通过插件容器实现隔离解耦,有利于保证价值流插件的正常运行,避免由于插件间耦合而导致其他插件无法使用的情况。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本申请进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本申请公开的一些实施方式,而不应将其视为是对本申请范围的限制。
图1为本申请一实施例价值流插件运行方法的步骤流程示意图;
图2为本申请一实施例价值流插件运行方法的流程示意图;
图3为本申请一实施例的价值流插件运行装置的结构框图;
图4为本申请一实施例的电子设备的结构框图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本申请的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
参照图1和图2,示出本申请一实施例的价值流插件运行方法的流程图,该价值流插件运行方法至少可以包括步骤S100-S400:
S100、在价值流启动的情况下,确定价值流插件的运行信息。
S200、根据运行信息,确定候选服务器。
S300、对候选服务器的负载指标信息进行负载分析,确定目标服务器。
S400、通过目标服务器生成插件容器,在插件容器内运行价值流插件。
本申请实施例中,价值流插件指的是在价值流实现的过程中利用到的插件,价值流在价值流平台中产生,价值流可以通过研发人员配置,例如包含价值流阶段、活动插件、状态集、状态、迭代需求、插件的快捷入口等价值流流程插件(即价值流插件的配置)、初始化变量配置、需求状态流转规则、自动触发规则、数据处理和汇集、平台功能集成、各系统流程绑定等信息。例如,价值流可以用于执行实现具体的研发活动,响应于启动指令可以启动价值流;价值流平台中具有多个服务器,每一个服务器可以设置多个插件容器,每一个插件容器可以用于容纳一个独立的价值流插件。其中,价值流插件可以辅助执行实际的研发活动,可以由用户基于实际场景并按照插件开发规范进行自定义配置而生成,运行价值流插件可以处理的场景包括但不限于:快捷入口、初始化配置、数据处理、汇集、平台功能集成等等。
可选地,插件容器为Docker容器,其他实施例中可以为其他容器。
本申请实施例的价值流插件运行方法可以通过计算机、手机、平板、车载终端等终端的电子控制单元、控制器、处理器等执行,也可以通过云服务器执行。在一些实施例中,本申请实施例的价值流插件运行方法可以由部署于计算机、手机、平板、车载终端等终端的电子控制单元、控制器、处理器以及云服务器中的价值流平台执行。
本申请实施例的价值流插件运行方法,在价值流启动的情况下,确定价值流插件的运行信息,根据运行信息,确定候选服务器,对候选服务器的负载指标信息进行负载分析,确定目标服务器,保证目标服务器具有充足的计算资源,有利于减少价值流插件消耗资源过多而导致其他插件无法使用的情况出现;通过目标服务器生成插件容器,在插件容器内运行价值流插件,使得价值流插件之间通过插件容器实现隔离解耦,有利于保证价值流插件的正常运行,避免由于插件间耦合而导致其他插件无法使用的情况。
在一种实施方式中,步骤S200包括步骤S210,以及包括S220或S230:
S210、根据运行信息确定价值流插件是否首次运行。
可选地,价值流插件启动时,会对价值流插件进行验证,例如从服务器中确定价值流插件的运行信息,如果从运行信息中能找到当前的价值流插件的相关信息,说明当前的价值流插件不是首次运行,否则说明当前的价值流插件是首次运行。
S220、当价值流插件为首次运行时,从所有第一服务器中确定候选服务器。
可选地,当价值流插件为首次运行时,从所有第一服务器中确定候选服务器,具体为将所有第一服务器确定为候选服务器。需要说明的是,第一服务器可以为价值流平台中所具有的服务器。
S230、当价值流插件不是首次运行时,从历史运行价值流插件的第二服务器中确定候选服务器。
可选地,当价值流插件为不是首次运行时,说明当前的价值流插件被服务器执行过,因此查询之前运行过该价值流插件的服务器信息,从而从历史运行价值流插件的第二服务器中确定候选服务器,即将第二服务器确定为候选服务器,从而减少候选服务器的数量,有利于提高后续确定目标服务器的效率。需要说明的是,第二服务器的数量可以为一个或多个。
如图2所示,在一种实施方式中,负载指标信息包括但不限于处理器负载、内存负载、磁盘负载、磁盘IO负载以及插件容器的使用量。可选地,需要确定当前的候选服务器各项负载指标信息(简称指标)是否超载。可选地,步骤S300包括步骤S310-S320:
S310、在候选服务器的处理器负载、内存负载、磁盘负载、磁盘IO负载以及使用量均满足预设阈值条件的情况下,确定候选服务器为目标候选服务器。
需要说明的是,预设阈值条件可以根据需求自定义调整,本申请实施例中示例性地以预设阈值条件为处理器负载小于90%、内存负载小于70%,磁盘负载小于90%,磁盘IO负载小于70%、插件容器的使用量小于50个为例进行说明,不作具体限定。因此,当满足预设阈值条件即为候选服务器的处理器负载小于90%、内存负载小于70%、磁盘负载小于90%、磁盘IO负载小于70%以及使用量小于50个,将该候选服务器确定为目标候选服务器。
S320、根据目标候选服务器确定目标服务器。
可选地,步骤S320包括步骤S3201或者S3202:
S3201、当目标候选服务器的数量为一个时,确定目标候选服务器为目标服务器。
本申请实施例中,当目标候选服务器的数量为唯一一个时,确定目标候选服务器为目标服务器。
S3202、当目标候选服务器的数量为两个以上时,对目标候选服务器对应的处理器负载、内存负载、磁盘负载、磁盘IO负载以及预设权重进行加权计算,得到计算结果;确定计算结果最小的目标候选服务器为目标服务器。
本申请实施例中,当目标候选服务器的数量为两个以上时,此时为了确定最优的目标服务器需要进行进一步的计算。需要说明的是,本申请实施例示例性地以预设权重包括处理器负载的权重30%、内存负载的权重40%、磁盘负载的权重20%、磁盘IO负载的权重10%为例,其他实施例中可以为自定义的其他权重,不作具体限定。因此,基于每一目标候选服务器对应的处理器负载、内存负载、磁盘负载、磁盘IO负载以及上述的预设权重进行加权计算,可以得到每一目标候选服务器对应的计算结果。然后,将计算结果最小的目标候选服务器确定为目标服务器,得到计算资源最优的目标服务器,从而从服务器列表中选车满足条件的最优的服务器,保证后续价值流插件的正常、快速运行。
在一种实施方式中,步骤S400中通过目标服务器生成插件容器包括步骤S410-S420:
S410、通过目标服务器确定价值流插件的基础镜像。
本申请实施例中,以插件容器为docker 容器为例进行说明。由于需要将每一价值流插件分别封装在独立的docker 容器中,因此价值流插件均是Docker容器服务,以Devopscentos7.2作为价值流插件的基础镜像,通过DockerAPI DockerClientImpl.pullImage把基础镜像拉取到目标服务器中。
S420、通过目标服务器利用基础镜像生成插件容器。
本申请实施例中,通过目标服务器运行插件容器服务,利用基础镜像生成独立的docker容器,该docker容器可以用于容纳、封装价值流插件。因此,每一价值流插件都可以通过独立的docker 容器容纳,实现不同价值流插件之间的隔离解耦,当目标服务器运行价值流插件时,有利于保证价值流插件的正常运行,避免由于插件间耦合而导致其他插件无法使用的情况。
在一种实施方式中,为了进一步保证价值流插件的正常运行,对目标服务器的端口进行检查,确定是否具有可用端口即价值流插件的启动端口,本申请实施例中利用JavaJDK ServerSocket技术进行检查,可以包括步骤S510-S530:
S510、确定目标服务器的端口参数、连接时长以及IP地址,根据端口参数、连接时长以及IP地址生成检查对象函数。
可选地,本申请为了不与服务器经常使用的端口(如:80、8080、3306以及本服务器运行的进程端口)产生冲突,采用预设范围15000至25000作为插件容器的端口范围。具体地,对目标服务器15000至25000的端口范围进行遍历,初始化java.net.ServerSocket对象,确定端口范围中其中一端口对应的端口参数、连接时长以及(服务器的)IP地址,根据端口参数、连接时长以及IP地址生成检查对象函数ServerSocket(int port, int backlog,InetAddress bindAddr)对象函数。
S520、通过检查对象函数连接对应的候选地址以及候选端口以确定连接状态。
可选地,基于对象函数新建socket,连接到对应的候选地址以及候选端口,得到连接状态。例如,确定的是端口A的端口参数、连接时长以及IP地址,此时连接的候选地址即为端口A的IP地址,连接的候选端口即为端口A。
S530、当连接状态表征成功时,确定候选端口为可用端口。
可选地,如果连接状态表征成功时,例如当端口A的连接状态表征成功时,确定候选端口即端口A为可用端口。需要说明的是,可用端口用于供插件容器提供对外访问端口,由于每个价值流插件是一个docker容器进程,在价值流平台中需要访问价值流插件的功能,即docker容器需要对外提供访问能力,所以docker容器运行时需要暴露对外端口,即暴露对外访问端口供访问docker容器中的价值流插件。
可选地,如果连接状态表征失败时,例如当端口A的连接状态表征失败时,确定候选端口即端口A为不可用端口,生成异常表示端口A被占用,返回S510重新确定新的端口对应的端口参数、连接时长以及(服务器的)IP地址,直至某个端口连接状态表征成功时得到可用端口。
可选地,S510-S530可以在确定价值流插件的基础镜像后或者生成独立的插件容器后执行。
在一种实施方式中,步骤S420中通过目标服务器利用基础镜像为价值流插件生成独立的插件容器进行封装,可以包括:初始化插件启动命令、插件容器名称以及插件变量,基于基础镜像,通过DockerApi DockerClient.createContainerCmd()创建出插件容器并初始化信息,对价值流插件进行封装,启动插件容器服务,最后给价值流平台提供价值流插件服务。
在一种实施方式中,运行价值流插件的过程中,如果变量值发生改变或新增变量则可以通过系统属性变量方式设置以及加载,由于与其他插件隔离解耦,因此设置方便、加载方便。需要说明的是,系统属性变量是Java本身维护的变量,如安装JDK的时候需要配置环境变量,安装完之后我们需要查看JDK的版本,就需要使用查看系统属性,通过System.getProperty的方式加载,通过System.setProperty方式设置)
在一种实施方式中,本申请实施例的价值流插件运行方法,还可以包括步骤S600,或者S700-S800:
S600、在价值流插件处于运行的情况下,当新的价值流生成价值流插件的第一启动信息,根据第一启动信息生成启动失败结果。
可选地,在价值流插件处于运行的情况下,通过Redis的分布式锁设置价值流插件的插件状态为"启动中",当新的价值流生成价值流插件的第一启动信息,即新的价值流同样需要使用该价值流插件时,根据第一启动信息生成启动失败结果,而不能重复启动该价值流插件,保证插相同的价值流插件以及版本一致情况下只有一个容器实例,即使在不同价值流的流程中也其同一份数据,而不是重新启动一个新容器,节省资源。
S700、在价值流插件运行结束的情况下,将目标服务器中的插件容器进行销毁。
S800、当新的价值流确定新的目标服务器并生成价值流插件的第二启动信息,新的目标服务器响应于第二启动信息,根据插件容器的容器ID拉取插件容器。
可选地,在价值流插件运行结束的情况下,设置价值流插件的插件状态为"可用"或者"完成状态",此时插件容器在目标服务器中就会销毁,直至有新的价值流产生新的需求,该需求需要使用价值流插件。具体地,当新的价值流确定新的目标服务器并生成价值流插件的第二启动信息,第二启动信息为启动价值流插件的信息,新的目标服务器确定步骤如S100-S300的原理,不再赘述。然后,新的目标服务器响应于第二启动信息,根据插件容器的容器ID拉取插件容器重新点亮价值流插件而不需要重新创建新的插件容器,缩短启动价值流插件的耗时。需要说明的是,在生成每一插件容器时,每一插件容器具有对应的ID。
可选地,本申请实施例的价值流插件运行方法还可以包括价值流指标计算,例如基于自定义编排的价值流插件所产生的数据可用于度量,价值流平台会自动计算价值流指标,反应价值流动的速率和在制品分布情况;同时编排后的价值流将产生统一的数据标准,在价值流流动过程中汇聚以需求为维度的上下文数据,对进一步精细化的研效度量提供数据支撑。其中,价值流指标包括但不限于价值流交付完成率:上线状态的需求数量/需求总数,价值流交付周期:价值流从开启到关闭的耗时,价值流平均等待时间:价值流下的需求在等待状态停留的平均时间,价值流平均处理时间:价值流下的需求在处理状态停留的平均时间。
在一种实施方式中,本申请实施例的价值流插件运行方法,还可以包括维护及管理插件容器步骤。其中,该步骤一方面根据服务器的各项指标(CPU、内存、磁盘、磁盘IO、容器使用量)等信息维护插件容器的可用性,另一方面由价值流平台流程管理插件容器的生命周期,具体地:上传价值流插件并验证其正确性,此时状态为“初始状态”;创建价值流,选择接入的数据源(如:敏捷平台的迭代、版本需求);编排价值流流程插件,配置流程阶段、插件的状态集、状态等信息;初始化价值流,根据敏捷平台的需求映射到流程配置的插件状态,当需求的状态等于插件状态时,插件引擎会调用DockerApiDockerClient.createContainerCmd()启动此插件,此时的状态为“启动状态”。而没有需求映射的插件属于“未启动状态”。
本申请实施例中,在价值流插件运行期间会产出许多有价值的运行数据存储于中间级mysql中,用于价值流流程统计以及度量数据展示。可选地,目前主要的统计指标为需求总数、交付完成率、交付周期、平均等待时间、平台处理时间、同流程处理平均值、同流程等待平均值以及每个流程停留处理趋势图等。
本申请实施例通过以上方法,实现了基于Docker容器动态调度、运行的价值流流程插件,更好对研发活动的过程进行规范化管理。另外,利用独立Docker容器封装价值流插件,价值流插件相互解耦且性能可控,实现多种价值流插件的有效解耦与配合,支持多种语言,同时会根据服务器资源情况在动态调度容器插件的创建。
参照图3,示出了本申请一实施例的价值流插件运行装置的结构框图,该装置可以包括:
第一确定模块,用于在价值流启动的情况下,确定价值流插件的运行信息;
第二确定模块,用于根据运行信息,确定候选服务器;
第三确定模块,用于对候选服务器的负载指标信息进行负载分析,确定目标服务器;
运行模块,用于通过目标服务器生成插件容器,在插件容器内运行价值流插件。
本申请实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。
参照图4,示出了本申请一实施例电子设备的结构框图,该电子设备包括:存储器310和处理器320,存储器310内存储有可在处理器320上运行的指令,处理器320加载并执行该指令实现上述实施例中的价值流插件运行方法。其中,存储器310和处理器320的数量可以为一个或多个。
在一种实施方式中,电子设备还包括通信接口330,用于与外界设备进行通信,进行数据交互传输。如果存储器310、处理器320和通信接口330独立实现,则存储器310、处理器320和通信接口330可以通过总线相互连接并完成相互间的通信。该总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(PeripheralComponent Interconnect ,PCI)总线或扩展工业标准体系结构(Extended IndustryStandard Architecture ,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器310、处理器320及通信接口330集成在一块芯片上,则存储器310、处理器320及通信接口330可以通过内部接口完成相互间的通信。
本申请实施例提供了一种计算机可读存储介质,其存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的价值流插件运行方法。
本申请实施例还提供了一种芯片,该芯片包括,包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行本申请实施例提供的方法。
本申请实施例还提供了一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行申请实施例提供的方法。
应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammablegate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。
进一步地,可选的,上述存储器可以包括只读存储器和随机存取存储器,还可以包括非易失性随机存取存储器。该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以包括只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以包括随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic random access memory ,DRAM) 、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
应理解的是,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种价值流插件运行方法,其特征在于,包括:
在价值流启动的情况下,确定价值流插件的运行信息;
根据所述运行信息,确定候选服务器;
对所述候选服务器的负载指标信息进行负载分析,确定目标服务器;
通过所述目标服务器生成插件容器,在所述插件容器内运行所述价值流插件。
2.根据权利要求1所述价值流插件运行方法,其特征在于:所述根据所述运行信息,确定候选服务器包括:
根据所述运行信息确定所述价值流插件是否首次运行;
当所述价值流插件为首次运行时,从所有第一服务器中确定候选服务器;
当所述价值流插件不是首次运行时,从历史运行所述价值流插件的第二服务器中确定候选服务器。
3.根据权利要求1或2所述价值流插件运行方法,其特征在于:所述负载指标信息包括处理器负载、内存负载、磁盘负载、磁盘IO负载以及插件容器的使用量;所述对所述候选服务器的负载指标信息进行负载分析,确定目标服务器包括:
在所述候选服务器的所述处理器负载、所述内存负载、所述磁盘负载、所述磁盘IO负载以及所述使用量均满足预设阈值条件的情况下,确定所述候选服务器为目标候选服务器;
根据所述目标候选服务器确定目标服务器。
4.根据权利要求3所述价值流插件运行方法,其特征在于:所述根据所述目标候选服务器确定目标服务器包括:
当所述目标候选服务器的数量为一个时,确定所述目标候选服务器为所述目标服务器;
或者,
当所述目标候选服务器的数量为两个以上时,对所述目标候选服务器对应的所述处理器负载、所述内存负载、所述磁盘负载、所述磁盘IO负载以及预设权重进行加权计算,得到计算结果;
确定所述计算结果最小的所述目标候选服务器为所述目标服务器。
5.根据权利要求1或2所述价值流插件运行方法,其特征在于:所述通过所述目标服务器生成插件容器包括:
通过所述目标服务器确定所述价值流插件的基础镜像;
通过所述目标服务器利用所述基础镜像生成插件容器。
6.根据权利要求1或2所述价值流插件运行方法,其特征在于:还包括:
确定所述目标服务器的端口参数、连接时长以及IP地址,根据所述端口参数、所述连接时长以及所述IP地址生成检查对象函数;
通过所述检查对象函数连接对应的候选地址以及候选端口以确定连接状态;
当所述连接状态表征成功时,确定所述候选端口为可用端口;
其中,所述可用端口用于供所述插件容器提供对外访问端口。
7.根据权利要求1或2所述价值流插件运行方法,其特征在于:还包括:
在所述价值流插件处于运行的情况下,当新的价值流生成所述价值流插件的第一启动信息,根据所述第一启动信息生成启动失败结果;
或者,
在所述价值流插件运行结束的情况下,将所述目标服务器中的所述插件容器进行销毁;
当新的价值流确定新的目标服务器并生成所述价值流插件的第二启动信息,所述新的目标服务器响应于所述第二启动信息,根据所述插件容器的容器ID拉取所述插件容器。
8.一种价值流插件运行装置,其特征在于,包括:
第一确定模块,用于在价值流启动的情况下,确定价值流插件的运行信息;
第二确定模块,用于根据所述运行信息,确定候选服务器;
第三确定模块,用于对所述候选服务器的负载指标信息进行负载分析,确定目标服务器;
运行模块,用于通过所述目标服务器生成插件容器,在所述插件容器内运行所述价值流插件。
9.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器中存储指令,所述指令由所述处理器加载并执行,以实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被执行时实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311237206.1A CN117032834B (zh) | 2023-09-25 | 2023-09-25 | 一种价值流插件运行方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311237206.1A CN117032834B (zh) | 2023-09-25 | 2023-09-25 | 一种价值流插件运行方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117032834A true CN117032834A (zh) | 2023-11-10 |
CN117032834B CN117032834B (zh) | 2024-01-16 |
Family
ID=88630169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311237206.1A Active CN117032834B (zh) | 2023-09-25 | 2023-09-25 | 一种价值流插件运行方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117032834B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090043622A1 (en) * | 2007-08-10 | 2009-02-12 | Finlayson Ronald D | Waste Determinants Identification and Elimination Process Model Within a Software Factory Operating Environment |
US20090254572A1 (en) * | 2007-01-05 | 2009-10-08 | Redlich Ron M | Digital information infrastructure and method |
US7644161B1 (en) * | 2005-01-28 | 2010-01-05 | Hewlett-Packard Development Company, L.P. | Topology for a hierarchy of control plug-ins used in a control system |
CN104506628A (zh) * | 2014-12-25 | 2015-04-08 | 深圳市科漫达智能管理科技有限公司 | 一种插件仓库管理方法与系统 |
CN109597623A (zh) * | 2018-12-05 | 2019-04-09 | 上海中商网络股份有限公司 | 一种插件管理方法、装置、设备及存储介质 |
WO2020137452A1 (ja) * | 2018-12-25 | 2020-07-02 | サンコール株式会社 | 保護システム |
CN112558982A (zh) * | 2020-12-23 | 2021-03-26 | 平安银行股份有限公司 | 代码检测方法、装置及计算机设备 |
-
2023
- 2023-09-25 CN CN202311237206.1A patent/CN117032834B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7644161B1 (en) * | 2005-01-28 | 2010-01-05 | Hewlett-Packard Development Company, L.P. | Topology for a hierarchy of control plug-ins used in a control system |
US20090254572A1 (en) * | 2007-01-05 | 2009-10-08 | Redlich Ron M | Digital information infrastructure and method |
US20090043622A1 (en) * | 2007-08-10 | 2009-02-12 | Finlayson Ronald D | Waste Determinants Identification and Elimination Process Model Within a Software Factory Operating Environment |
CN104506628A (zh) * | 2014-12-25 | 2015-04-08 | 深圳市科漫达智能管理科技有限公司 | 一种插件仓库管理方法与系统 |
CN109597623A (zh) * | 2018-12-05 | 2019-04-09 | 上海中商网络股份有限公司 | 一种插件管理方法、装置、设备及存储介质 |
WO2020137452A1 (ja) * | 2018-12-25 | 2020-07-02 | サンコール株式会社 | 保護システム |
CN112558982A (zh) * | 2020-12-23 | 2021-03-26 | 平安银行股份有限公司 | 代码检测方法、装置及计算机设备 |
Non-Patent Citations (1)
Title |
---|
张殿荣: "基于价值流的精益成本管理模式研究", 《财会通讯》, no. 2, pages 104 - 108 * |
Also Published As
Publication number | Publication date |
---|---|
CN117032834B (zh) | 2024-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190324772A1 (en) | Method and device for processing smart contracts | |
US20210406079A1 (en) | Persistent Non-Homogeneous Worker Pools | |
CN109088905B (zh) | 一种基于云计算的数学模型服务系统及数学模型管理方法 | |
CN108462760B (zh) | 电子装置、集群访问域名自动生成方法及存储介质 | |
CN110597531B (zh) | 分布式的模块升级方法、装置及存储介质 | |
CN108492005B (zh) | 项目数据处理方法、装置、计算机设备和存储介质 | |
CN110765026A (zh) | 自动化测试方法、装置、存储介质及设备 | |
US20120297099A1 (en) | Control over loading of device drivers for an individual instance of a pci device | |
CN113504918A (zh) | 设备树配置优化方法、装置、计算机设备和存储介质 | |
CN113010265A (zh) | Pod的调度方法、调度器、存储插件及系统 | |
CN110225094A (zh) | 负载均衡应用虚拟ip切换方法、装置、计算机设备及存储介质 | |
US11750451B2 (en) | Batch manager for complex workflows | |
CN113485830A (zh) | 一种电网监控系统微服务自动扩容方法 | |
WO2019222941A1 (zh) | 用于评估应用部署的方法、设备、计算机程序产品和可读介质 | |
CN113703975A (zh) | 模型分配方法、装置、电子设备及计算机可读存储介质 | |
CN117032834B (zh) | 一种价值流插件运行方法、装置、设备及存储介质 | |
CN116401014A (zh) | 服务发布方法、装置、存储介质及服务器 | |
US11966466B2 (en) | Unified workload runtime protection | |
CN114756451A (zh) | 电网系统的安全测试方法、装置、计算机设备、存储介质 | |
CN114691496A (zh) | 单元测试方法、装置、计算设备及介质 | |
CN112130900B (zh) | 一种bmc的用户信息管理方法、系统、设备以及介质 | |
CN113918345A (zh) | 一种配置硬件的容量计算方法、装置、计算机设备及介质 | |
CN112100058A (zh) | 一种接口规范检测方法及其装置 | |
WO2020211358A1 (zh) | 数据库调度方法、装置、计算机设备及存储介质 | |
CN113760446A (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 |