CN118051298A - 确定应用程序是否可容器化的方法、装置、设备及介质 - Google Patents
确定应用程序是否可容器化的方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN118051298A CN118051298A CN202410223762.1A CN202410223762A CN118051298A CN 118051298 A CN118051298 A CN 118051298A CN 202410223762 A CN202410223762 A CN 202410223762A CN 118051298 A CN118051298 A CN 118051298A
- Authority
- CN
- China
- Prior art keywords
- target
- application program
- target application
- index value
- determining
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000015654 memory Effects 0.000 claims description 98
- 238000004806 packaging method and process Methods 0.000 claims description 8
- 238000005538 encapsulation Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 238000013468 resource allocation Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 239000002699 waste material Substances 0.000 abstract description 6
- 238000011156 evaluation Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000011161 development Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000012854 evaluation process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000011835 investigation Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 238000004445 quantitative analysis Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009295 sperm incapacitation Effects 0.000 description 1
- 239000013585 weight reducing agent Substances 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及容器技术领域,公开了确定应用程序是否可容器化的方法、装置、设备及介质,本发明包括:获取目标应用程序的标识;根据目标应用程序的标识,获取与目标应用程序对应的部署环境信息,其中,部署环境信息中包括开发目标应用程序使用的目标编程语言、目标应用程序依赖的目标操作系统、部署目标应用程序所需的硬件资源信息,以及目标应用程序的目标应用架构类型;分别根据目标编程语言、目标操作系统、硬件资源信息,以及目标应用架构类型中的一种或多种部署环境信息,确定与目标应用程序对应的指标值,并根据指标值,确定目标应用程序是否可容器化。本发明可以避免资源浪费的问题。
Description
技术领域
本发明涉及容器技术领域,具体涉及确定应用程序是否可容器化的方法、装置、设备及介质。
背景技术
在容器技术领域内,由于容器具有轻量化、标准化、敏捷化等技术特点,因此,越来越多的软件厂商开始将原先运行在物理机或虚拟机上的应用程序迁移到容器(也可以称为应用程序的容器化),在容器上运行应用程序。这样,用户可以在容器上使用相关应用程序运行各项业务。
市场上的各个应用程序的技术特点不同,有的应用程序适合容器化,有的应用程序不适合容器化。在相关技术中,用户可以直接对应用程序进行容器化操作。如果容器化失败,那么用户可以对应用程序进行改造,并对改造后的应用程序再次进行容器化操作。
但是,容器化过程会占用计算机设备的资源,因此,多次容器化操作会造成严重的资源浪费问题。
发明内容
有鉴于此,本发明提供了一种确定应用程序是否可容器化的方法、装置、设备及介质,以解决资源浪费的问题。
第一方面,本发明提供了一种确定应用程序是否可容器化的方法,包括:
获取目标应用程序的标识;
根据所述目标应用程序的标识,获取与所述目标应用程序对应的部署环境信息,其中,所述部署环境信息中包括开发所述目标应用程序使用的目标编程语言、所述目标应用程序依赖的目标操作系统、部署所述目标应用程序所需的硬件资源信息,以及所述目标应用程序的目标应用架构类型;
分别根据所述目标编程语言、所述目标操作系统、所述硬件资源信息,以及所述目标应用架构类型中的一种或多种部署环境信息,确定与所述目标应用程序对应的指标值,并根据所述指标值,确定所述目标应用程序是否可容器化。
本发明提供的一种确定应用程序是否可容器化的方法,具有如下优点:
第一,本方案实现容器化自动化评估过程,可以减少人工判断带来的不确定性,并且提高了容器化评估的效率。第二,通过对应用程序开发所使用的编程语言、依赖的操作系统,以及硬件资源需求(处理器数量、内存容量和磁盘容量)进行综合考虑,能够全面了解应用程序运行的基础条件,进一步可以根据应用程序运行的基础条件确定容器是否可以容器化,准确性较高。
在一种可选的实施方式中,所述分别根据所述目标编程语言、所述目标操作系统、所述硬件资源信息,以及所述目标应用架构类型中的一种或多种部署环境信息,确定与所述目标应用程序对应的指标值,并根据所述指标值,确定所述目标应用程序是否可容器化,包括:
根据所述目标编程语言、编程语言类型与指标值之间的对应关系,确定与所述目标应用程序对应的第一指标值;
当确定所述第一指标值小于或等于预设阈值时,确定所述目标应用程序不可容器化;
或者,当确定所述第一指标值大于所述预设阈值时,根据所述目标操作系统、操作系统与指标值之间的对应关系,确定与所述目标应用程序对应的第二指标值;
当确定所述第二指标值小于或等于所述预设阈值时,确定所述目标应用程序不可容器化;
或者,当确定所述第二指标值大于所述预设阈值时,根据所述硬件资源信息,确定与所述目标应用程序对应的第三指标值;
当确定所述第三指标值小于或等于所述预设阈值时,确定所述目标应用程序不可容器化;
或者,当确定所述第三指标值大于所述预设阈值时,根据所述目标应用架构类型,以及应用架构类型与指标值的对应关系,确定与所述目标应用程序对应的第四指标值;
当确定所述第四指标值小于或等于所述预设阈值时,确定所述目标应用程序不可容器化;
或者,当确定所述第四指标值大于所述预设阈值时,确定所述目标应用程序可容器化。
具体地,通过逐步排查的方式,在满足条件的情况下快速推进至下一阶段评估,而不是一次性检查所有条件,从而提高了决策效率,减少了不必要的计算和分析成本。通过对多个维度综合判断,能够更准确地识别出那些真正能从容器化中受益且能够在容器环境中稳定运行的应用程序。另外,使用预设阈值作为评判基准,确保了评判过程的一致性和客观性,避免主观臆断带来的不确定性。
在一种可选的实施方式中,所述硬件资源信息包括处理器数量和内存容量;
所述当确定所述第二指标值大于所述预设阈值时,根据所述硬件资源信息,确定与所述目标应用程序对应的第三指标值,包括:
分别确定所述处理器数量所属的数量区间范围和所述内存容量所属的容量区间范围;
根据所述处理器数量所属的数量区间范围和所述内存容量所属的容量区间范围,确定所述第三指标值。
具体地,实现了对硬件资源需求的量化分析,避免了单一数值比较的局限性,能够更准确地反映不同资源配置对于目标应用程序容器化的影响。
在一种可选的实施方式中,所述当确定所述第四指标值大于所述预设阈值时,确定所述目标应用程序可容器化之后,所述方法还包括:
将所述第一指标值、所述第二指标值、所述第三指标值和所述第四指标值的和值确定为与所述目标应用程序对应的目标指标值;
根据所述目标指标值,确定所述目标指标值所属的目标指标区间;
根据所述目标指标区间,确定与所述目标应用程序对应的可容器化程度。
具体地,通过将第一至第四指标值进行累加,形成目标指标值,能够从多维度全面考量应用程序是否适合容器化部署,而不是仅仅依赖于某一个单一因素。根据目标指标区间来确定可容器化程度,有利于清晰地了解应用程序能否以及在何种程度上能被容器化,从而为后续的技术选型和优化提供明确指导。
在一种可选的实施方式中,所述根据所述目标指标区间,确定与所述目标应用程序对应的可容器化程度之后,所述方法还包括:
识别所述目标应用程序的代码形式,其中,所述代码形式包括源代码的形式,以及软件包的形式;
当确定所述目标应用程序的可容器化程度为第一等级且所述目标应用程序的代码形式为所述源代码的形式时,根据所述目标编程语言,确定与所述目标编程语言对应的代码编译程序;
通过所述代码编译程序,对所述目标应用程序的源代码进行编译和打包,得到与所述目标应用程序对应的软件包;
根据所述目标操作系统,获取与所述目标操作系统对应的多个插件;
根据预获取的封装脚本,对所述目标应用程序的软件包和多个所述插件进行封装,得到目标容器镜像包;
根据所述目标容器镜像包,生成目标容器;
或者,
当确定所述目标应用程序的可容器化程度为第一等级且所述目标应用程序的代码形式为软件包形式时,直接根据所述目标操作系统,获取与所述目标操作系统对应的多个插件;
并根据所述封装脚本,对所述目标应用程序的软件包和多个所述插件进行封装,得到所述目标容器镜像包;
根据所述目标容器镜像包,生成所述目标容器。
具体地,可以根据应用程序的源代码形式或软件包形式进行适应性处理,大大简化了将虚拟机或物理机的应用程序进行容器化迁移的过程。根据目标操作系统的特性获取相应的插件,确保生成的目标容器镜像能够在不同操作系统上运行,提高了容器在多种环境下的移植性和兼容性。针对不同的编程语言,可以灵活选择与之对应的编译和打包工具,使得支持多语言开发的应用程序都能顺利地进行容器化。
在一种可选的实施方式中,所述硬件资源信息包括处理器利用率信息和内存利用率信息,所述处理器利用率信息包括处理器高峰利用率和处理器低谷利用率,所述内存利用率信息包括内存高峰利用率和内存低谷利用率;
所述根据所述目标容器镜像包,生成目标容器之后,所述方法还包括:
根据所述处理器高峰利用率和第一预设阈值,确定第一处理器资源配置值;
根据所述处理器低谷利用率和第二预设阈值,确定第二处理器资源配置值;
根据所述内存高峰利用率和第三预设阈值,确定第一内存资源配置值;
根据所述内存低谷利用率和第四预设阈值,确定第二内存资源配置值;
根据所述第一处理器资源配置值和所述第二处理器资源配置值,对所述目标容器的处理器资源进行配置;
根据所述第一内存资源配置值和所述第二内存资源配置值,对所述目标容器的内存资源进行配置。
具体地,通过预先获取的处理器和内存的高峰与低谷利用率信息,可以根据实际工作负载情况为目标容器配置资源。这样可以确保在高峰期有足够的计算能力应对高并发场景,而在低谷期则避免资源浪费,提高资源使用效率。
在一种可选的实施方式中,当确定所述目标应用程序的可容器化程度为第二等级时,所述方法还包括:
根据所述第一指标值、所述第二指标值、所述第三指标值、所述第四指标值,确定对所述目标应用程序的可容器化程度影响最大的目标部署环境信息,其中,所述目标部署环境信息为所述目标编程语言、所述目标操作系统、所述硬件资源信息,以及所述目标应用架构类型中的一种;
根据所述目标应用程序的可容器化程度和所述目标部署环境信息,生成目标提示信息。
具体地,通过分析目标应用程序的第一至第四指标值,能够精准识别出影响可容器化程度的关键因素。这样可以针对这些关键因素进行调整和优化,提高容器化的成功率和效率。
第二方面,本发明提供了一种确定应用程序是否可容器化的装置,获取模块,用于获取目标应用程序的标识;根据所述目标应用程序的标识,获取与所述目标应用程序对应的部署环境信息,其中,所述部署环境信息中包括开发所述目标应用程序使用的目标编程语言、所述目标应用程序依赖的目标操作系统、部署所述目标应用程序所需的硬件资源信息,以及所述目标应用程序的目标应用架构类型;
确定模块,用于分别根据所述目标编程语言、所述目标操作系统、所述硬件资源信息,以及所述目标应用架构类型中的一种或多种部署环境信息,确定与所述目标应用程序对应的指标值,并根据所述指标值,确定所述目标应用程序是否可容器化。
第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的确定应用程序是否可容器化的方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的确定应用程序是否可容器化的方法。
第五方面,本发明提供了一种计算机程序产品,包括计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的确定应用程序是否可容器化的方法。
附图说明
为了更清楚地说明本发明具体实施方式或相关技术中的技术方案,下面将对具体实施方式或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的确定应用程序是否可容器化的方法的流程示意图;
图2是根据本发明实施例的另一确定应用程序是否可容器化的方法的流程示意图;
图3是根据本发明实施例的目标提示信息的显示界面图;
图4是根据本发明实施例的生成目标容器的方法的流程示意图;
图5是根据本发明实施例的对目标容器进行资源配置的方法的流程示意图;
图6是根据本发明实施例的确定应用程序是否可容器化的装置的结构框图;
图7是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着容器虚拟化技术的不断成熟和完善,越来越多的软件厂商开始基于容器底座重构自己的应用程序,利用容器轻量化、标准化、敏捷化的技术特点,更好的实现应用程序的快速部署和自动化运维。
本发明实施例提供了一种确定应用程序是否可容器化的方法,通过预先根据应用程序自身的特点确定应用程序是否可以容器化,可以避免计算机资源浪费的问题。
根据本发明实施例,提供了一种确定应用程序是否可容器化的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种确定应用程序是否可容器化的方法,可以由服务器或服务器集群(本实施例以服务器为例进行说明)执行,图1是根据本发明实施例的确定应用程序是否可容器化的方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,获取目标应用程序的标识。
具体地,用户可以在终端选择或输入需要进行容器化的应用程序(即目标应用程序),终端可以检测到用户的选择或输入操作之后,可以获取到目标应用程序的标识,并发送至服务器。这样,服务器即可获取到目标应用程序的标识,以进行后续的步骤。
步骤S102,根据目标应用程序的标识,获取与目标应用程序对应的部署环境信息。
其中,部署环境信息中可以包括开发目标应用程序使用的目标编程语言、目标应用程序依赖的目标操作系统、部署目标应用程序所需的硬件资源信息,以及目标应用程序的目标应用架构类型。目标编程语言可以是Java、C++、Python等中的一种。目标操作系统可以是Windows、银河麒麟等中的一种。硬件资源信息可以包括处理器(Central ProcessingUnit,CPU)数量、内存容量、磁盘容量。目标应用架构类型可以是有状态业务或无状态业务。在一些可选的实施方式中,部署环境信息中还可以包括CPU架构、目标操作系统的部署模式、安装目标操作系统所需的插件的相关信息、安装目标操作系统所依赖的数据库、中间件、消息队列等的相关信息、以及软件包大小等等。部署模式可以是单机部署、集群部署等。
具体地,部署环境信息可以存储以表格的形式存储在服务器中,可以如表1和表2所示,这两张表可以根据目标应用程序的更新而进行更新。表1的名称可以是“APP_BASE_INFO”,表2的名称可以是“APP_RANNING_INFO”。
表1
表2
其中,APP_BASE_INFO_ID为应用程序在表1中的标识。
步骤S103,分别根据目标编程语言、目标操作系统、硬件资源信息,以及应用架构类型中的一种或多种部署环境信息,确定与目标应用程序对应的指标值,并根据指标值,确定目标应用程序是否可容器化。
具体地,服务器可以从目标编程语言、目标操作系统、硬件资源信息中,随机选取一种部署环境信息,并确定所选取的部署环境信息对应的指标值,如果该指标值等于第一预设阈值,则确定目标应用程序不可以容器化,如果该指标值大于第一预设阈值,则可以从剩余的部署环境信息中随机选取一种部署环境信息,重复上述操作。在对选择的最后一种部署环境信息进行完相关操作后,可以获取与每一种部署环境信息对应的权重值,并根据与每一种部署环境信息对应的权重值和指标值进行加权求和,得到与目标应用程序对应的指标值。进一步,确定与目标应用程序对应的指标值是否大于第二预设阈值,当确定与目标应用程序对应的指标值大于第二预设阈值时,确定目标应用程序可以容器化。
本实施例提供的确定应用程序是否可容器化的方法,第一,本方案实现容器化自动化评估过程,可以减少人工判断带来的不确定性,并且提高了容器化评估的效率。第二,通过对应用程序开发所使用的编程语言、依赖的操作系统,以及硬件资源需求(处理器数量、内存容量和磁盘容量)进行综合考虑,能够全面了解应用程序运行的基础条件,进一步可以根据应用程序运行的基础条件确定容器是否可以容器化,准确性较高。
在本实施例中提供了一种确定应用程序是否可容器化的方法,可以由服务器或服务器集群(本实施例以服务器为例进行说明)执行,图2是根据本发明实施例的确定应用程序是否可容器化的方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,获取目标应用程序的标识。
步骤S202,根据目标应用程序的标识,获取与目标应用程序对应的部署环境信息。
步骤S201和步骤S202的具体处理可以参见步骤S101和步骤S102的具体处理,此处不再赘述。
步骤S203,分别根据目标编程语言、目标操作系统、硬件资源信息,以及目标应用架构类型中的一种或多种部署环境信息,确定与目标应用程序对应的指标值,并根据指标值,确定目标应用程序是否可容器化。
具体地,上述步骤S203包括:
步骤S2031,根据目标编程语言、编程语言类型与指标值之间的对应关系,确定与目标应用程序对应的第一指标值。
其中,编程语言类型与指标值之间的对应关系可以如表3所示。
表3
编程语言类型 | 指标值 |
解释型编程语言 | 5 |
编译型编程语言 | 3 |
基于Windows的编程语言 | 0 |
…… | …… |
具体地,服务器可以先确定目标编程语言所属的目标编程语言类型。例如,Java、Go、Python等属于解释型编程语言,C++、C语言等属于编译型编程语言,.NET属于基于Windows的编程语言。然后,再根据编程语言类型与指标值之间的对应关系,确定目标编程语言类型对应的指标值,也即第一指标值。例如,Java、Go、Python等属于解释型编程语言,当目标编程语言为解释型编程语言时,即可以将“5”确定为目标应用程序的第一指标值。例如,当目标编程语言为解释型编程语言时,即可以将“5”确定为目标应用程序的第一指标值。当目标编程语言为编译型编程语言时,即可以将“3”确定为目标应用程序的第一指标值。当目标编程语言为基于Windows的编程语言时,即可以将“0”确定为目标应用程序的第一指标值。
步骤S2032,当确定第一指标值小于或等于预设阈值时,确定目标应用程序不可容器化。
其中,预设阈值可以小于或等于0。
具体地,当第一指标值小于或等于预设阈值时,说明开发目标应用程序所使用的目标编程语言不适用于容器化。
步骤S2033,当确定第一指标值大于预设阈值时,根据目标操作系统、操作系统与指标值之间的对应关系,确定与目标应用程序对应的第二指标值。
其中,操作系统与指标值之间的对应关系可以如表4所示。
表4
操作系统 | 指标值 |
Linux系统 | 5 |
非Linux系统 | 0 |
…… | …… |
例如,Linux系统可以是Centos、Redhat等,非Linux系统可以是Windows。
具体地,由于编程语言对容器化的影响最大,因此,可以将编程语言作为第一个评估节点。当根据与编程语言相关的第一指标值确定目标应用程序可容器化时,再进入下一个评估节点,即与操作系统相关的评估节点。此时,服务器可以先确定目标操作系统是否为Linux系统,如果是,则可以确定第二指标值为“5”,如果是,则可以确定第二指标值为“0”。
步骤S2034,当确定第二指标值小于或等于预设阈值时,确定目标应用程序不可容器化。
具体地,由于当前容器都是基于Linux系统开发的,因此,基于非Linux系统开发的应用程序无法进行容器化。当确定第二指标值小于或等于预设阈值时,可以确定目标应用程序无法进行容器化。
步骤S2035,当确定第二指标值大于预设阈值时,根据硬件资源信息,确定与目标应用程序对应的第三指标值。
在一些可选的实施方式中,当硬件资源信息中包括处理器数量和内存容量时,上述步骤S2035包括:
步骤a1,分别确定处理器数量所属的数量区间范围和内存容量所属的容量区间范围。
步骤a2,根据处理器数量所属的数量区间范围和内存容量所属的容量区间范围,确定第三指标值。
具体地,服务器中可以存储有数量区间范围、容量区间范围指标值的对应关系,可以如表5所示。进一步,服务器在确定第二指标值大于预设阈值时,可以进入下一个评估节点,即与硬件资源信息相关的评估节点。此时,服务器可以先分别确定出处理器数量所属的数量区间范围和内容容量所属的容量区间范围。最后,再根据与确定出的数量区间范围和容量区间范围均匹配的指标值。
表5
其中,“CPU≤2,内存容量≤4GB”对应微量应用程序,占用硬件资源较少,与容器的轻量化特点相适应,“2<CPU≤8,4<内存容量≤8GB”对应体量稍大的应用程序,也可以将就容器化,即可以正常容器化,但运行效果可能不是最佳的,“8<CPU≤16,8<内存容量≤16GB”对应大体量应用程序,“8CPU≥16,内存容量≥16GB”对应超大体量应用程序,不适合容器化。
步骤S2036,当确定第三指标值小于或等于预设阈值时,确定目标应用程序不可容器化。
具体地,当确定第三指标值小于或等于预设阈值时,表明目标应用程序为体量较大的应用程序,占用硬件资源较多,不可以进行容器化。
步骤S2037,当确定第三指标值大于预设阈值时,根据目标应用架构类型,,以及应用架构类型与指标值的对应关系,确定与目标应用程序对应的第四指标值。
其中,应用架构类型与指标值的对应关系可以如表6所示。
表6
应用架构类型 | 指标值 |
有状态业务 | 3 |
无状态业务 | 5 |
…… | …… |
具体地,服务器在确定第二指标值大于预设阈值时,可以进入下一个评估节点,即与应用架构类型相关的评估节点。此时,服务器可以确定目标应用程序的目标应用架构类型,再根据目标应用架构类型从表6中确定相应的指标值。例如,当目标应用架构类型为无状态业务时,第三指标值为“3”,当目标应用架构类型为有状态业务时,第三指标值为“5”。
步骤S2038,当确定第四指标值小于或等于预设阈值时,确定目标应用程序不可容器化。
具体地,由于不同应用架构类型对应的容器技术发展程度不同,有些应用架构类型对应的容器开发技术较为成熟,相应地,运行应用程序较为稳定。例如,有状态业务需要与底层存储系统进行配合使用,而且在多副本模式上会因为存储方式的差异有所限制。因此,当确定第四指标值小于或等于预设阈值时,表明目标应用程序不可以进行容器化。
步骤S2039,当确定第四指标值大于预设阈值时,确定目标应用程序可容器化。
具体地,当确定第四指标值大于预设阈值时,说明目标应用程序的技术特点与容器的技术特点相适应,可以进行容器化。
步骤S204,将第一指标值、第二指标值、第三指标值和第四指标值的和值确定为与目标应用程序对应的目标指标值。
具体地,在确定出第四指标值之后,可以对四个指标值进行求和,得到目标指标值。
步骤S205,根据目标指标值,确定目标指标值所属的目标指标区间。
步骤S206,根据目标指标区间,确定与目标应用程序对应的可容器化程度。
具体地,服务器可以存储有指标区间和可容器化程度的对应关系,该对应关系可以如表7所示。服务器可以根据表7确定目标指标值所属的目标指标区间,以及目标指标区间所对应的可容器化程度。
表7
指标区间 | 可容器化程度 |
≥20 | 非常适合容器化 |
[10,20) | 适合容器化 |
(0,10) | 不适合容器化 |
=0 | 不可容器化 |
在一些可选的实施方式中,当确定目标应用程序的可容器化程度为第二等级时,还可以执行如下步骤:
步骤b1,根据第一指标值、第二指标值、第三指标值、第四指标值,确定对目标应用程序的可容器化程度影响最大的目标部署环境信息。
其中,目标部署环境信息为目标编程语言、目标操作系统、硬件资源信息,以及应用架构类型中的一种。
步骤b2,根据目标应用程序的可容器化程度和目标部署环境信息,生成目标提示信息。
具体地,服务器可以对第一指标值、第二指标值、第三指标值、第四指标值进行排序,确定出最小的指标值,并将该指标值对应的部署环境信息确定为目标部署环境信息。进一步,可以根据目标应用程序的可容器化程度和目标部署环境信息,生成目标提示信息。服务器可以将目标提示信息发送至用户所在终端,用户可以通过目标提示信息确认目标应用程序的可容器化程度,并且可以根据目标部署环境信息确定出改进方向。例如,目标提示信息可以如图3所示。
在一些可选的实施方式中,在步骤S2032或步骤S2034或步骤S2036或步骤S2038之后,服务器还可以根据与该步骤对应的评估节点所评估的部署环境信息,以及与该部署环境信息对应的指标值,生成提示信息,并将提示信息发送至用户所在终端。这样,用户即可得知目标应用程序不可容器化。另外,由于各个评估节点的先后顺序是根据影响容器化的重要程度设定的,因此,用户还可以根据该部署环境信息,确定影响目标应用程序不可容器化的最重要的影响因素,并对目标应用程序进行相应的改进。
本实施例提供的确定应用程序是否可容器化的方法:
第一,通过逐步排查的方式,在满足条件的情况下快速推进至下一阶段评估,而不是一次性检查所有条件,从而提高了决策效率,减少了不必要的计算和分析成本。通过对多个维度综合判断,能够更准确地识别出那些真正能从容器化中受益且能够在容器环境中稳定运行的应用程序。另外,使用预设阈值作为评判基准,确保了评判过程的一致性和客观性,避免主观臆断带来的不确定性。
第二,在确定第三指标值的具体方案中,实现了对硬件资源需求的量化分析,避免了单一数值比较的局限性,能够更准确地反映不同资源配置对于目标应用程序容器化的影响。
第三,在确定目标指标值的具体方案中,通过将第一至第四指标值进行累加,形成目标指标值,能够从多维度全面考量应用程序是否适合容器化部署,而不是仅仅依赖于某一个单一因素。根据目标指标区间来确定可容器化程度,有利于清晰地了解应用程序能否以及在何种程度上能被容器化,从而为后续的技术选型和优化提供明确指导。
第四,通过分析目标应用程序的第一至第四指标值,能够精准识别出影响可容器化程度的关键因素。这样可以针对这些关键因素进行调整和优化,提高容器化的成功率和效率。
在确定完目标应用程序的可容器化程度之后,可以执行由本实施例中提供的一种生成目标容器的方法,实现目标应用程序的自动容器化。本方法可以由服务器或服务器集群(本实施例以服务器为例进行说明)执行,图4是根据本发明实施例的生成目标容器的方法的流程图,如图4所示,该流程包括如下步骤:
步骤S401,识别目标应用程序的代码形式。
其中,代码形式可以包括源代码的形式,以及软件包的形式。
具体地,服务器可以识别目标应用程序的代码文件的目标扩展名,并根据目标扩展名,以及扩展名和代码形式的对应关系,确定目标扩展名对应的代码形式。
步骤S402,当确定目标应用程序的可容器化程度为第一等级且目标应用程序的代码形式为源代码的形式时,根据目标编程语言,确定与目标编程语言对应的代码编译程序。
具体地,服务器可以根据目标应用程序的可容器化程度,确定其对应的等级,例如,当目标应用程序的可容器化程度为“非常适合容器化”或“适合容器化”时,可以确定目标应用程序的可容器化程度为第一等级,说明可以继续进行对目标应用程序的容器化部署。如果目标应用程序的代码形式为源代码,则需要先对目标应用程序的代码文件进行编译操作,编译操作可以通过相关的代码编译程序执行。因此,可以根据开发目标应用程序所使用的目标编程语言,确定相应的代码编译程序。例如,代码编译程序可以是Jenkins插件。
步骤S403,通过代码编译程序,对目标应用程序的源代码进行编译和打包,得到与目标应用程序对应的软件包。
具体地,服务器可以将目标应用程序的代码文件输入到代码编译程序中,代码编译程序就可以对目标应用程序的源代码进行编译和打包,得到与目标应用程序对应的软件包。
步骤S404,根据目标操作系统,获取与目标操作系统对应的多个插件。
其中,多个插件可以包括存储、网络插件等等。
具体地,目标应用程序的容器化部署,还需要与其对应的目标操作系统的插件,因此,服务器从自身存储的文件中获取与目标操作系统对应的多个插件。
步骤S405,根据预获取的封装脚本,对目标应用程序的软件包和多个插件进行封装,得到目标容器镜像包。
具体地,服务器可以根据预获取的封装脚本,对目标应用程序的软件包和多个插件进行封装,得到目标容器镜像包。
步骤S406,根据目标容器镜像包,生成目标容器。
具体地,服务器可以根据目标容器镜像包,生成目标容器,并将目标容器进行部署。
步骤S407,当确定目标应用程序的可容器化程度为第一等级且目标应用程序的代码形式为软件包形式时,直接根据目标操作系统,获取与目标操作系统对应的多个插件。
步骤S408,根据封装脚本,对目标应用程序的软件包和多个插件进行封装,得到目标容器镜像包。
步骤S409,根据目标容器镜像包,生成目标容器。
步骤S407和步骤S409的具体处理可以参见步骤S404和步骤S406的具体处理,此处不再赘述。
本实施例提供的生成目标容器的方法,可以根据应用程序的源代码形式或软件包形式进行适应性处理,大大简化了将虚拟机或物理机的应用程序进行容器化迁移的过程。根据目标操作系统的特性获取相应的插件,确保生成的目标容器镜像能够在不同操作系统上运行,提高了容器在多种环境下的移植性和兼容性。针对不同的编程语言,可以灵活选择与之对应的编译和打包工具,使得支持多语言开发的应用程序都能顺利地进行容器化。
当硬件资源信息包括处理器利用率信息和内存利用率信息,处理器利用率信息包括处理器高峰利用率和处理器低谷利用率,内存利用率信息包括内存高峰利用率和内存低谷利用率。在生成目标容器之后,可以执行由本实施例中提供的一种对目标容器进行资源配置的方法,本方法可以由服务器或服务器集群(本实施例以服务器为例进行说明)执行,图5是根据本发明实施例的对目标容器进行资源配置的方法的流程图,如图5所示,该流程包括如下步骤:
步骤S501,根据处理器高峰利用率和第一预设阈值,确定第一处理器资源配置值。
其中,第一预设阈值可以大于1,例如,可以是120%。
具体地,服务器可以将处理器高峰利用率和第一预设阈值的乘积确定为第一处理器资源配置值。
步骤S502,根据处理器低谷利用率和第二预设阈值,确定第二处理器资源配置值。
其中,第二预设阈值可以大于1,例如,可以是120%。
具体地,服务器可以将处理器低谷利用率和第二预设阈值的乘积确定为第二处理器资源配置值。
步骤S503,根据内存高峰利用率和第三预设阈值,确定第一内存资源配置值。
其中,第二预设阈值可以大于1,例如,可以是120%。
具体地,服务器可以将内存高峰利用率和第三预设阈值的乘积确定为第一内存资源配置值。
步骤S504,根据内存低谷利用率和第四预设阈值,确定第二内存资源配置值。
其中,第二预设阈值可以大于1,例如,可以是120%。
具体地,服务器可以将内存低谷利用率和第四预设阈值的乘积确定为第二内存资源配置值。
步骤S505,根据第一处理器资源配置值和第二处理器资源配置值,对目标容器的处理器资源进行配置。
具体地,服务器可以将目标容器的处理器资源对应的Request值设置为第一处理器资源配置值,将目标容器的处理器资源对应的Limit值设置为第二处理器资源配置值。
步骤S506,根据第一内存资源配置值和第二内存资源配置值,对目标容器的内存资源进行配置。
具体地,服务器可以将目标容器的内存资源对应的Request值设置为第一内存资源配置值,将目标容器的内存资源对应的Limit值设置为第二内存资源配置值。
在一些可选的实施方式中,服务器可以对目标容器的业务并发数阈值进行设置,这样,目标容器在运行的过程中,可以监控业务的并发数,当监控到并发数达到设置的业务并发数阈值时,可以采用横向多副本模式(横向扩容),在监控到并发数讲到业务并发数阈值以下时,可以采用单副本模式(纵向扩容)。
本实施例提供的对目标容器进行资源配置的方法,通过预先获取的处理器和内存的高峰与低谷利用率信息,可以根据实际工作负载情况为目标容器配置资源。这样可以确保在高峰期有足够的计算能力应对高并发场景,而在低谷期则避免资源浪费,提高资源使用效率。
在本实施例中还提供了一种确定应用程序是否可容器化的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种确定应用程序是否可容器化的装置,如图6所示,包括:
获取模块601,用于获取目标应用程序的标识;根据目标应用程序的标识,获取与目标应用程序对应的部署环境信息,其中,部署环境信息中包括开发目标应用程序使用的目标编程语言、目标应用程序依赖的目标操作系统、部署目标应用程序所需的硬件资源信息,以及目标应用程序的目标应用架构类型;
确定模块602,用于分别根据目标编程语言、目标操作系统、硬件资源信息,以及目标应用架构类型中的一种或多种部署环境信息,确定与目标应用程序对应的指标值,并根据指标值,确定目标应用程序是否可容器化。
在一种可选的实施方式中,确定模块602,用于:
根据目标编程语言、编程语言类型与指标值之间的对应关系,确定与目标应用程序对应的第一指标值;
当确定第一指标值小于或等于预设阈值时,确定目标应用程序不可容器化;
或者,当确定第一指标值大于预设阈值时,根据目标操作系统、操作系统与指标值之间的对应关系,确定与目标应用程序对应的第二指标值;
当确定第二指标值小于或等于预设阈值时,确定目标应用程序不可容器化;
或者,当确定第二指标值大于预设阈值时,根据硬件资源信息,确定与目标应用程序对应的第三指标值;
当确定第三指标值小于或等于预设阈值时,确定目标应用程序不可容器化;
或者,当确定第三指标值大于预设阈值时,根据目标应用架构类型,以及应用架构类型与指标值的对应关系,确定与目标应用程序对应第四指标值;
当确定第四指标值小于或等于预设阈值时,确定目标应用程序不可容器化;
或者,当确定第四指标值大于预设阈值时,确定目标应用程序可容器化。
在一种可选的实施方式中,硬件资源信息包括处理器数量和内存容量;
确定模块602,用于:
分别确定处理器数量所属的数量区间范围和内存容量所属的容量区间范围;
根据处理器数量所属的数量区间范围和内存容量所属的容量区间范围,确定第三指标值。
在一种可选的实施方式中,确定模块602,还用于:
将第一指标值、第二指标值、第三指标值和第四指标值的和值确定为与目标应用程序对应的目标指标值;
根据目标指标值,确定目标指标值所属的目标指标区间;
根据目标指标区间,确定与目标应用程序对应的可容器化程度。
在一种可选的实施方式中,该装置还包括生成模块603,用于:
识别目标应用程序的代码形式,其中,代码形式包括源代码的形式,以及软件包的形式;
当确定目标应用程序的可容器化程度为第一等级且目标应用程序的代码形式为源代码的形式时,根据目标编程语言,确定与目标编程语言对应的代码编译程序;
通过代码编译程序,对目标应用程序的源代码进行编译和打包,得到与目标应用程序对应的软件包;
根据目标操作系统,获取与目标操作系统对应的多个插件;
根据预获取的封装脚本,对目标应用程序的软件包和多个插件进行封装,得到目标容器镜像包;
根据目标容器镜像包,生成目标容器;
或者,
当确定目标应用程序的可容器化程度为第一等级且目标应用程序的代码形式为软件包形式时,直接根据目标操作系统,获取与目标操作系统对应的多个插件;
并根据封装脚本,对目标应用程序的软件包和多个插件进行封装,得到目标容器镜像包;
根据目标容器镜像包,生成目标容器。
在一种可选的实施方式中,硬件资源信息包括处理器利用率信息和内存利用率信息,处理器利用率信息包括处理器高峰利用率和处理器低谷利用率,内存利用率信息包括内存高峰利用率和内存低谷利用率;
确定模块602,还用于:
根据处理器高峰利用率和第一预设阈值,确定第一处理器资源配置值;
根据处理器低谷利用率和第二预设阈值,确定第二处理器资源配置值;
根据内存高峰利用率和第三预设阈值,确定第一内存资源配置值;
根据内存低谷利用率和第四预设阈值,确定第二内存资源配置值;
根据第一处理器资源配置值和第二处理器资源配置值,对目标容器的处理器资源进行配置;
根据第一内存资源配置值和第二内存资源配置值,对目标容器的内存资源进行配置。
在一种可选的实施方式中,当确定目标应用程序的可容器化程度为第二等级时,生成模块603,还用于:
根据第一指标值、第二指标值、第三指标值、第四指标值,确定对目标应用程序的可容器化程度影响最大的目标部署环境信息,其中,目标部署环境信息为目标编程语言、目标操作系统、硬件资源信息,以及目标应用架构类型中的一种;
根据目标应用程序的可容器化程度和目标部署环境信息,生成目标提示信息。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的确定应用程序是否可容器化的装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图6所示的确定应用程序是否可容器化的装置。
请参阅图7,图7是本发明可选实施例提供的一种计算机设备的结构示意图,如图7所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储目标操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (11)
1.一种确定应用程序是否可容器化的方法,其特征在于,所述方法包括:
获取目标应用程序的标识;
根据所述目标应用程序的标识,获取与所述目标应用程序对应的部署环境信息,其中,所述部署环境信息中包括开发所述目标应用程序使用的目标编程语言、所述目标应用程序依赖的目标操作系统、部署所述目标应用程序所需的硬件资源信息,以及所述目标应用程序的目标应用架构类型;
分别根据所述目标编程语言、所述目标操作系统、所述硬件资源信息,以及所述目标应用架构类型中的一种或多种部署环境信息,确定与所述目标应用程序对应的指标值,并根据所述指标值,确定所述目标应用程序是否可容器化。
2.根据权利要求1所述的方法,其特征在于,所述分别根据所述目标编程语言、所述目标操作系统、所述硬件资源信息,以及所述目标应用架构类型中的一种或多种部署环境信息,确定与所述目标应用程序对应的指标值,并根据所述指标值,确定所述目标应用程序是否可容器化,包括:
根据所述目标编程语言、编程语言类型与指标值之间的对应关系,确定与所述目标应用程序对应的第一指标值;
当确定所述第一指标值小于或等于预设阈值时,确定所述目标应用程序不可容器化;
或者,当确定所述第一指标值大于所述预设阈值时,根据所述目标操作系统、操作系统与指标值之间的对应关系,确定与所述目标应用程序对应的第二指标值;
当确定所述第二指标值小于或等于所述预设阈值时,确定所述目标应用程序不可容器化;
或者,当确定所述第二指标值大于所述预设阈值时,根据所述硬件资源信息,确定与所述目标应用程序对应的第三指标值;
当确定所述第三指标值小于或等于所述预设阈值时,确定所述目标应用程序不可容器化;
或者,当确定所述第三指标值大于所述预设阈值时,根据所述目标应用架构类型,以及应用架构类型与指标值的对应关系,确定与所述目标应用程序对应的第四指标值;
当确定所述第四指标值小于或等于所述预设阈值时,确定所述目标应用程序不可容器化;
或者,当确定所述第四指标值大于所述预设阈值时,确定所述目标应用程序可容器化。
3.根据权利要求2所述的方法,其特征在于,所述硬件资源信息包括处理器数量和内存容量;
所述当确定所述第二指标值大于所述预设阈值时,根据所述硬件资源信息,确定与所述目标应用程序对应的第三指标值,包括:
分别确定所述处理器数量所属的数量区间范围和所述内存容量所属的容量区间范围;
根据所述处理器数量所属的数量区间范围和所述内存容量所属的容量区间范围,确定所述第三指标值。
4.根据权利要求2或3所述的方法,其特征在于,所述当确定所述第四指标值大于所述预设阈值时,确定所述目标应用程序可容器化之后,所述方法还包括:
将所述第一指标值、所述第二指标值、所述第三指标值和所述第四指标值的和值确定为与所述目标应用程序对应的目标指标值;
根据所述目标指标值,确定所述目标指标值所属的目标指标区间;
根据所述目标指标区间,确定与所述目标应用程序对应的可容器化程度。
5.根据权利要求4所述的方法,其特征在于,所述根据所述目标指标区间,确定与所述目标应用程序对应的可容器化程度之后,所述方法还包括:
识别所述目标应用程序的代码形式,其中,所述代码形式包括源代码的形式,以及软件包的形式;
当确定所述目标应用程序的可容器化程度为第一等级且所述目标应用程序的代码形式为所述源代码的形式时,根据所述目标编程语言,确定与所述目标编程语言对应的代码编译程序;
通过所述代码编译程序,对所述目标应用程序的源代码进行编译和打包,得到与所述目标应用程序对应的软件包;
根据所述目标操作系统,获取与所述目标操作系统对应的多个插件;
根据预获取的封装脚本,对所述目标应用程序的软件包和多个所述插件进行封装,得到目标容器镜像包;
根据所述目标容器镜像包,生成目标容器;
或者,
当确定所述目标应用程序的可容器化程度为第一等级且所述目标应用程序的代码形式为软件包形式时,直接根据所述目标操作系统,获取与所述目标操作系统对应的多个插件;
并根据所述封装脚本,对所述目标应用程序的软件包和多个所述插件进行封装,得到所述目标容器镜像包;
根据所述目标容器镜像包,生成所述目标容器。
6.根据权利要求5所述的方法,其特征在于,所述硬件资源信息包括处理器利用率信息和内存利用率信息,所述处理器利用率信息包括处理器高峰利用率和处理器低谷利用率,所述内存利用率信息包括内存高峰利用率和内存低谷利用率;
所述根据所述目标容器镜像包,生成目标容器之后,所述方法还包括:
根据所述处理器高峰利用率和第一预设阈值,确定第一处理器资源配置值;
根据所述处理器低谷利用率和第二预设阈值,确定第二处理器资源配置值;
根据所述内存高峰利用率和第三预设阈值,确定第一内存资源配置值;
根据所述内存低谷利用率和第四预设阈值,确定第二内存资源配置值;
根据所述第一处理器资源配置值和所述第二处理器资源配置值,对所述目标容器的处理器资源进行配置;
根据所述第一内存资源配置值和所述第二内存资源配置值,对所述目标容器的内存资源进行配置。
7.根据权利要求4所述的方法,其特征在于,当确定所述目标应用程序的可容器化程度为第二等级时,所述方法还包括:
根据所述第一指标值、所述第二指标值、所述第三指标值、所述第四指标值,确定对所述目标应用程序的可容器化程度影响最大的目标部署环境信息,其中,所述目标部署环境信息为所述目标编程语言、所述目标操作系统、所述硬件资源信息,以及所述目标应用架构类型中的一种;
根据所述目标应用程序的可容器化程度和所述目标部署环境信息,生成目标提示信息。
8.一种确定应用程序是否可容器化的装置,其特征在于,所述装置包括:
获取模块,用于获取目标应用程序的标识;根据所述目标应用程序的标识,获取与所述目标应用程序对应的部署环境信息,其中,所述部署环境信息中包括开发所述目标应用程序使用的目标编程语言、所述目标应用程序依赖的目标操作系统、部署所述目标应用程序所需的硬件资源信息,以及所述目标应用程序的目标应用架构类型;
确定模块,用于分别根据所述目标编程语言、所述目标操作系统、所述硬件资源信息,以及所述目标应用架构类型中的一种或多种部署环境信息,确定与所述目标应用程序对应的指标值,并根据所述指标值,确定所述目标应用程序是否可容器化。
9.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的确定应用程序是否可容器化的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的确定应用程序是否可容器化的方法。
11.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的确定应用程序是否可容器化的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410223762.1A CN118051298A (zh) | 2024-02-28 | 2024-02-28 | 确定应用程序是否可容器化的方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410223762.1A CN118051298A (zh) | 2024-02-28 | 2024-02-28 | 确定应用程序是否可容器化的方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118051298A true CN118051298A (zh) | 2024-05-17 |
Family
ID=91044469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410223762.1A Pending CN118051298A (zh) | 2024-02-28 | 2024-02-28 | 确定应用程序是否可容器化的方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118051298A (zh) |
-
2024
- 2024-02-28 CN CN202410223762.1A patent/CN118051298A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976761B (zh) | 软件开发工具包的生成方法、装置及终端设备 | |
CN104683180A (zh) | 一种性能监控方法、系统及应用服务器 | |
CN109597618B (zh) | 程序开发方法、装置、计算机设备及存储介质 | |
CN110597531A (zh) | 分布式的模块升级方法、装置及存储介质 | |
CN110928802A (zh) | 基于自动生成用例的测试方法、装置、设备及存储介质 | |
US11422917B2 (en) | Deriving software application dependency trees for white-box testing | |
CN112241360A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
CN111309332A (zh) | 文件内容按需加载方法、装置及电子设备、存储介质 | |
CN105404574B (zh) | 一种智能卡与移动终端一致性测试方法及装置 | |
CN112181822A (zh) | 一种测试方法和应用程序的启动耗时测试方法 | |
CN110109684B (zh) | 区块链节点管理代理服务安装方法、电子装置及存储介质 | |
CN111240772A (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
CN112860251A (zh) | 一种网站前端构建的方法与系统 | |
CN104834643B (zh) | 一种快速公共网关接口文件分析方法和装置 | |
CN111580409B (zh) | 面向实时嵌入式系统的故障仿真测试方法 | |
CN114490103A (zh) | 一种操作系统接口调用方法、装置以及电子设备 | |
CN116450165A (zh) | 一种快速搭建环境及部署程序的方法、系统、终端及存储介质 | |
CN115794384A (zh) | 代码编译任务分配方法、装置、设备及存储介质 | |
CN112559313A (zh) | 测试用例的设置方法及装置、存储介质、电子设备 | |
CN118051298A (zh) | 确定应用程序是否可容器化的方法、装置、设备及介质 | |
CN110806891A (zh) | 嵌入式设备软件版本的生成方法及装置 | |
CN112015436A (zh) | 短信平台部署方法及装置、计算设备、计算机存储介质 | |
CN115525545A (zh) | 一种基于Docker的自动化测试方法、系统、设备及介质 | |
CN107291439B (zh) | 一种目标增量数据构建方法及装置 | |
CN115048082A (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 |