CN112084040B - 一种基于应用镜像数据识别的容器资源规划***与方法 - Google Patents
一种基于应用镜像数据识别的容器资源规划***与方法 Download PDFInfo
- Publication number
- CN112084040B CN112084040B CN202011038544.9A CN202011038544A CN112084040B CN 112084040 B CN112084040 B CN 112084040B CN 202011038544 A CN202011038544 A CN 202011038544A CN 112084040 B CN112084040 B CN 112084040B
- Authority
- CN
- China
- Prior art keywords
- application
- container
- resource
- mirror image
- probe
- 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
Links
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于应用镜像数据识别的容器资源规划***与方法,***包含容器管理平台、容器资源规划模块、一个或多个应用,每个所述应用包含应用镜像和应用容器两种形态,所述应用镜像和所述应用容器均设有一个或多个;容器管理平台上部署有应用信息探针;容器资源规划模块上部署有资源模型库、资源模型计算引擎、资源规划控制器;方法包含步骤1‑7,本发明以整体容器镜像数据为应用容器资源消耗类型识别的依据,通过丰富的应用信息探针对应用容器资源消耗类型进行全面的分析,并将机器学习技术应用到应用容器资源消耗类型分析识别中,极大地提高了应用类型识别的准确度和资源配置的精确性。
Description
技术领域
本发明涉及容器平台上应用的资源规划,具体涉及一种基于应用镜像数据识别的容器资源规划***与方法。
背景技术
容器由于其具有秒级启动、轻量化、安全隔离等特点而得到广泛运用,在使用容器平台的过程中,需要对应用进行资源管理,包括应用容器使用的CPU、内存、网络、进程以及存储I/O等,通常会给每一种资源设置限制值和预留值,限制值即为该容器可使用的资源上限,预留值则是该容器使用的资源下限,即***为该容易预留的资源份额,通过设置限制值和预留值,实现性能隔离和资源的高效使用,防止资源浪费并保证服务率的可预测性;启动容器时,服务器会检查是否有足够的未预留资源可用,并仅在有足够的资源时才允许启动容器,然而在真实的企业场景中,往往用户配置容器资源量时,会出于风险考虑根据经验设置一个保守的较大值,并非经过测试得出的测试数值,从而导致一台主机部署的应用数量较少,造成资源的浪费;目前存在一些优化容器资源规划相关的容器平台解决方案,包括:
1、有些容器平台在每一个容器部署前,都对其进行模拟运行测试来获得资源的合理分配值,但是这种方法往往对每一种容器镜像都会引入相应的测试工作,大大增加了用户的工作量和容器平台的使用成本,因此,当容器平台上运行的容器数量较多时,这类方法就不适用了;
2、有些容器平台会设置统一的默认容器资源推荐值,即用户在部署容器时如果不对该容器进行资源设置,***会用统一的默认值为之设置资源限制值和预留值,这种方式忽略了容器之间的差异性,而不同类型的应用程序对于资源的需求可能是截然不同的,例如,采用Python和Golang编程语言的的应用程序对资源的需求是较低的,而采用Java编程语言的应用程序相对就需要占用更多的CPU、内存等资源,因此,当容器平台上运行的应用程序种类比较多样时,这类方法就不适用了;
3、有些容器平台可以根据容器镜像信息(比如镜像名称、镜像类型、镜像版本)对容器进行分类,并对不同的容器类型预设资源配置值,比如凡是镜像名称包括「tomcat」的容器,无论是tomcat:6.0或者是app-tomcat:7.0,都可以根据预设值来自动设置相应容器的资源配置;但是,镜像信息所能承载的信息量是非常有限的,仅仅通过镜像信息来识别和分类的话,往往资源配置很不精确,比如同样是tomcat容器镜像,有些容器内部应用非常大可能需要8G内存才能运行,有些容器内部应用比较小,仅需1G内存就能运行,另外,在这类方法中,平台的资源预设值往往都是静态配置在平台数据库中,也缺乏根据实际容器运行情况不断调优的能力;
4、有些容器平台可以根据容器运行的历史数据,对容器未来的资源需求进行预判,并根据预判对容器的放置策略和资源进行实时调整,但是这类方法只关注在容器运行过程中的资源调整,并不解决容器部署时的资源规划问题,也不会根据容器运行的历史数据对容器部署时的资源规划策略进行智能优化;
中国发明专利申请CN108829494A公开了一种基于负载预测的容器云平台智能资源优化方法,没有在容器部署前进行智能资源分配,只做到将运行中的容器迁移到其他负载适合的节点上以提高整个集群的资源使用率,属于运行中的资源调配,并且没有对容器做资源请求值与限制值的设置,而在互联网场景下容器的资源使用情况常常是波动的、甚至不可预测的,这样的调度方式会带来的问题是容器可能因为流量的波动而需要频繁地进行打包成镜像、再部署、删除原容器等一系列操作,反而带来了更多额外的资源消耗用于启动和终止容器,甚至会影响用户业务的固定IP需求、数据挂载、日志一致性等。本专利把资源分配优化前置到了容器应用的初次部署,即在容器应用上线前就做了资源使用预测和分配,同时在运行时持续优化,并且通过内置的资源模型库持续积累不同镜像的资源模型,以节省对于同一镜像启动容器的资源模型预测与优化重复计算所消耗的资源。
中国发明专利申请 CN109656717A公开了一种容器化云资源分配方法,给应用分配资源必须要有前置的测试环节,即把应用分别部署在不同的资源类型后进行分析和评估后得出应该配置的资源类型,而这恰恰是本专利所要避免的容器部署前的增加用户工作量和容器平台使用成本的测试工作。
中国发明专利申请CN111327655A公开了多租户容器资源配额预测方法、装置及电子设备,对容器资源使用的预测算法还是要基于容器运行测试的历史数据,即需要有前置的测试环节来产生所需历史数据,同样,这也是本专利所要避免的容器部署前的增加用户工作量和容器平台使用成本的测试工作。
容器平台上的容器数量尤其是在微服务的场景下时可能是巨大的,因此通过人工的方式进行设置的工作量是非常庞大而重复机械的,并且极易出错,考虑到在同一个企业中,相同类型的容器对资源的需求是类似的,因此需要一种基于应用镜像数据识别的容器资源规划***与方法。
发明内容
本发明要解决的技术问题是容器平台上的容器数量尤其是在微服务的场景下时可能是巨大的,因此通过人工的方式进行设置的工作量是非常庞大而重复机械的,并且极易出错,本发明提供一种基于应用镜像数据识别的容器资源规划***,以整体容器镜像数据为应用容器资源消耗类型识别的依据,通过丰富的应用信息探针对应用容器资源消耗类型进行全面的分析,并将机器学***台上要部署的容器类型进行识别和分类,并基于策略给出相应容器资源的推荐值,极大地提升效率和准确率;整体流程全部采用自动化的方式,通过预置大量的基于最佳实践的应用资源消耗模型,极大了降低了人工进行容器资源配置的工作量和门槛,提升了容器资源配置的准确度,非常适用于当前越来越广泛的容器化应用部署场景;还能够根据应用的实时运行数据的收集和分析,对应用容器资源模型进行持续优化,从而通过不断的自学习进一步提升后续应用资源规划的科学性,用以解决现有技术导致的缺陷。
本发明还提供一种基于应用镜像数据识别的容器资源规划方法。
为解决上述技术问题本发明提供以下的技术方案:
一种基于应用镜像数据识别的容器资源规划***,其中,包含容器管理平台、容器资源规划模块、一个或多个应用,每个所述应用包含应用镜像和应用容器两种形态,所述应用镜像和所述应用容器均设有一个或多个;
所述容器管理平台上部署有应用信息探针;
所述容器资源规划模块上部署有资源模型库、资源模型计算引擎、资源规划控制器;
所述应用信息探针用于对所述应用镜像进行容器类型的探测扫描获取容器镜像数据,还用于获取所述应用中的运行时应用容器的资源消耗数据;
所述资源模型计算引擎用于获取所述容器镜像数据、所述容器运行时资源消耗数据;还用于计算传输至所述资源模型库中的所述容器镜像的资源消耗模式;还用于生成传输至所述资源模型库中的资源模型;还用于进行数据验证和算法参数优化;还用于检测所述应用镜像是否被识别;
所述资源规划控制器用于将所述资源模型映射为所述容器资源设置数据传回所述容器管理平台并恢复执行应用容器部署行为,完成应用容器部署;
所述资源模型库用于存储所述容器资源设置数据、所述资源模型、所述资源消耗模式,供所述资源规划控制器提取。
上述的一种基于应用镜像数据识别的容器资源规划***,其中,所述应用信息探针包含探针应用语言探针、应用中间件探针、应用数据源探针、应用算法探针、应用访问探针、CPU探针、内存探针、网络探针、存储探针、I/O探针中的一个或多个,所述应用实际运行中对资源的使用需求可能与根据经验计算得出的所述资源模型存在一定差异,为了得到最优的资源配置,所述应用信息探针会持续从运行中的所述应用容器中读取实际消耗的资源值并反馈到所述资源模型计算引擎中进行数据验证和算法参数优化,一方面根据实际数据不断对算法进行优化,另一方面优化后的资源配置值会实时同步到所述资源模型库中,并根据策略按需应用到已经运行的所述应用容器中;
所述应用语言探针用于根据所述容器镜像数据检测所述应用的编写语言,比如是Java、Python、Golang还是Ruby等;
所述应用中间件探针用于根据所述容器镜像数据检测所述应用使用的Web中间件及其配置信息,比如 Tomcat、Flask等Web中间件及其配置;
所述应用数据源探针用于根据所述容器镜像数据检测所述应用的数据源;
所述应用算法探针用于根据所述容器镜像数据检测所述应用的算法及其复杂程度;
所述应用访问探针用于根据所述容器镜像数据检测所述应用是否需要对外访问、对内访问及访问类型和频次;
所述CPU探针用于检测所述应用容器运行实际消耗的CPU;
所述内存探针用于检测所述应用容器运行实际消耗的内存;
所述网络探针用于检测所述应用容器运行实际消耗的网络资源;
所述存储探针用于检测所述应用容器运行实际消耗的存储资源;
所述I/O探针用于检测应用容器运行实际占用的I/O;
上述涉及到的探针适用于单个集群与多集群的环境中,每个集群都保持了上述的部署架构。
上述的一种基于应用镜像数据识别的容器资源规划***,其中,所述容器管理平台内置有镜像仓库;
所述镜像仓库用于存储应用镜像。
上述的一种基于应用镜像数据识别的容器资源规划***,其中,所述数据验证为容器运行时实际资源消耗数据值与预测数据进行对比。
上述的一种基于应用镜像数据识别的容器资源规划***,其中,所述实际资源消耗数据值与所述预测数据通过分类分析、聚类分析进行对比。
上述的一种基于应用镜像数据识别的容器资源规划***,其中,所述资源模型库内存储有所述应用镜像与所述资源模型的对应关系列表。
第二方面,一种基于应用镜像数据识别的容器资源规划方法,其中,包含以下步骤:
步骤1:资源规划控制器实时监听容器管理平台的应用部署行为并进行捕获;
步骤2:资源规划控制器捕获到应用部署行为后进行拦截并触发应用信息探针对应用进行信息收集,比如资源规划控制器可以通过准入控制机制(Admission Control)捕获并拦截应用部署行为,本技术方案并不限定于使用准入控制机制(Admission Control)作为拦截技术;
步骤3:应用信息探针获取应用中应用镜像中的容器镜像数据并传输至资源模型计算引擎进行应用资源消耗模型计算分析;
步骤4:资源模型计算引擎接收容器镜像数据先检测应用镜像进行是否被识别过;
若应用镜像被标记为已识别镜像,则资源模型库中存储有该应用镜像的资源消耗模式,资源规划控制器直接从资源模型库中调取该应用镜像的资源消耗模式;
若应用镜像未被标记为已识别镜像,则资源模型计算引擎通过预先设定的应用资源消耗模型算法进行运算,计算出该应用镜像的资源模型并添加进资源模型库,同时将该应用镜像标记为已识别镜像,资源模型库对应用镜像与资源模型的对应关系进行更新,并将资源模型传输至资源规划控制器;
步骤5:资源规划控制器将接收的资源模型映射为容器资源设置数据,并根据该容器资源设置数据更新在步骤2拦截的应用部署行为中的应用容器资源配置中,并恢复容器管理平台的应用部署行为,完成应用部署;
步骤6:应用容器运行后,应用信息探针继续从运行中的应用容器中读取资源的实际消耗数据值并反馈到资源模型计算引擎中进行持续算法优化和资源配置优化,生成优化后的资源消耗模式;
步骤7:优化后的资源消耗模式同步更新到资源模型库中,同时优化后的资源消耗模式映射的容器资源设置数据应用到已经运行的应用容器中。
上述的一种基于应用镜像数据识别的容器资源规划方法,其中,步骤4中还需要将标记为已识别镜像的应用镜像存储至所述容器管理平台中的镜像仓库内;
所述镜像仓库用于存储应用镜像。
第三方面,一种基于应用镜像数据识别的容器资源规划的处理器,其中,包含至少一个处理器以及与所述至少一个处理器耦合的存储器,所述存储器存储有可执行指令,所述可执行指令在被所述至少一个处理器执行时使得实现上述的方法。
第四方面,一种芯片,其中,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行:上述的方法。
容器技术是通过层式结构的联合文件***将应用及其运行的环境封装到了一起,而封装的产物就是应用镜像,是构建容器的基石,应用镜像是容器化应用生命周期的构建部分,是一种静态表示和数据存储格式,可以当做应用容器的源代码;当应用镜像中封装的程序被容器引擎运行起来时就成为一个应用容器;容器化的应用都是通过应用镜像发布的,同一个应用镜像运行出应用容器的资源消耗模式应该是相似的,因此,本***会根据应用镜像数据中收集到的信息计算出应用的资源消耗模式,即以应用镜像为单位进行应用资源模型的识别和比对,同时***中内置一个资源模型库,已预先存放了一些常用的应用资源模型的最佳实践,并且维护了应用镜像与资源模型的对应关系列表。
依据上述本发明一种基于应用镜像数据识别的容器资源规划***与方法提供的技术方案具有以下技术效果:
以整体容器镜像数据为应用容器资源消耗类型识别的依据,通过丰富的应用信息探针对应用容器资源消耗类型进行全面的分析,并将机器学习技术应用到应用容器资源消耗类型分析识别中,极大地提高了应用类型识别的准确度和资源配置的精确性;
能够根据容器镜像数据自动对容器平台上要部署的容器类型进行识别和分类,并基于策略给出相应容器资源的推荐值,极大地提升效率和准确率;
整体流程全部采用自动化的方式,通过预置大量的基于最佳实践的应用资源消耗模型,极大了降低了人工进行容器资源配置的工作量和门槛,提升了容器资源配置的准确度,非常适用于当前越来越广泛的容器化应用部署场景;
还能够根据应用的实时运行数据的收集和分析,对应用容器资源模型进行持续优化,从而通过不断的自学习进一步提升后续应用资源规划的科学性;
相对于中国发明专利申请CN108829494A公开了一种基于负载预测的容器云平台智能资源优化方法,本发明通过容器资源请求值与限制值的设置,给出了一个运行时容器资源使用限定的范围段,在容器实际使用资源波动时能保障一定时间内设置不会随波动而消耗额外的资源去频繁地调整,同时能够保障即使面对突发的流量过高或过低的场景,该服务依然是可用的,并且不会去占用过多的主机资源导致其他服务乃至集群的不可用,由于本发明不需要把容器迁移到不同节点上,可保障应用服务的一致性和连续性,保障服务固定IP的需求、数据挂载和日志一致性;
相对于中国发明专利申请 CN109656717A公开了一种容器化云资源分配方法,本发明把资源分配优化前置到了容器应用的初次部署,即在容器应用上线前就做了资源使用预测和分配,大大降低了容器平台的使用成本,节省用户的工作量,同时在运行时持续优化,并且通过内置的资源模型库持续积累不同镜像的资源模型,以节省对于同一镜像启动容器的资源模型预测与优化重复计算所消耗的资源;
相对于中国发明专利申请CN111327655A公开了多租户容器资源配额预测方法、装置及电子设备,本发明把资源分配优化前置到了容器应用的初次部署,即在容器应用上线前就通过容器的静态镜像来做资源使用预测和分配,大大降低了容器平台的使用成本,节省用户的工作量,同时在运行时持续优化,并且通过内置的资源模型库持续积累不同镜像的资源模型,以节省对于同一镜像启动容器的资源模型预测与优化重复计算所消耗的资源。
附图说明
图1为本发明一种基于应用镜像数据识别的容器资源规划***的结构示意图;
图2为本发明一种基于应用镜像数据识别的容器资源规划***中应用信息探针一种集群的结构示意图;
图3为本发明一种基于应用镜像数据识别的容器资源规划***中应用信息探针另一种集群的结构示意图;
图4为本发明一种基于应用镜像数据识别的容器资源规划***具体实施例的结构示意图。
具体实施方式
为了使发明实现的技术手段、创造特征、达成目的和功效易于明白了解,下结合具体图示,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。
基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。
同时,本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”及“一”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
本发明的一较佳实施例是提供一种基于应用镜像数据识别的容器资源规划***与方法,目的是以整体容器镜像数据为应用容器资源消耗类型识别的依据,通过丰富的应用信息探针对应用容器资源消耗类型进行全面的分析,并将机器学***台上要部署的容器类型进行识别和分类,并基于策略给出相应容器资源的推荐值,极大地提升效率和准确率;整体流程全部采用自动化的方式,通过预置大量的基于最佳实践的应用资源消耗模型,极大了降低了人工进行容器资源配置的工作量和门槛,提升了容器资源配置的准确度,非常适用于当前越来越广泛的容器化应用部署场景;还能够根据应用的实时运行数据的收集和分析,对应用容器资源模型进行持续优化,从而通过不断的自学习进一步提升后续应用资源规划的科学性。
如图1所示,一种基于应用镜像数据识别的容器资源规划***,其中,包含容器管理平台、容器资源规划模块、一个或多个应用,每个应用包含应用镜像和应用容器两种形态,应用镜像和应用容器均设有一个或多个,容器管理平台跑在容器运行主机上;
容器管理平台上部署有应用信息探针;
容器资源规划模块上部署有资源模型库、资源模型计算引擎、资源规划控制器;
应用信息探针用于对应用镜像进行容器类型的探测扫描获取容器镜像数据,还用于获取应用中的运行时应用容器的资源消耗数据;
资源模型计算引擎用于获取容器镜像数据、容器运行时资源消耗数据;还用于计算传输至资源模型库中的容器镜像的资源消耗模式;还用于生成传输至资源模型库中的资源模型;还用于进行数据验证和算法参数优化;还用于检测应用镜像是否被识别;
资源规划控制器用于将资源模型映射为容器资源设置数据传回容器管理平台并恢复执行应用容器部署行为,完成应用容器部署;
资源模型库用于存储容器资源设置数据、资源模型、资源消耗模式,供资源规划控制器提取。
如图2-3所示,其中,应用信息探针包含探针应用语言探针、应用中间件探针、应用数据源探针、应用算法探针、应用访问探针、CPU探针、内存探针、网络探针、存储探针、I/O探针中的一个或多个,应用实际运行中对资源的使用需求可能与根据经验计算得出的资源模型存在一定差异,为了得到最优的资源配置,应用信息探针会持续从运行中的应用容器中读取实际消耗的资源值并反馈到资源模型计算引擎中进行数据验证和算法参数优化,一方面根据实际数据不断对算法进行优化,另一方面优化后的资源配置值会实时同步到资源模型库中,并根据策略按需应用到已经运行的应用容器中;
应用语言探针用于根据容器镜像数据检测应用的编写语言,比如是Java、Python、Golang还是Ruby等;
应用中间件探针用于根据容器镜像数据检测应用使用的Web中间件及其配置信息,比如 Tomcat、Flask等Web中间件及其配置;
应用数据源探针用于根据容器镜像数据检测应用的数据源;
应用算法探针用于根据容器镜像数据检测应用的算法及其复杂程度;
应用访问探针用于根据容器镜像数据检测应用是否需要对外访问、对内访问及访问类型和频次;
CPU探针用于检测应用容器运行实际消耗的CPU;
内存探针用于检测应用容器运行实际消耗的内存;
网络探针用于检测应用容器运行实际消耗的网络资源;
存储探针用于检测应用容器运行实际消耗的存储资源;
I/O探针用于检测应用容器运行实际占用的I/O;
上述涉及到的探针适用于单个集群与多集群的环境中,每个集群都保持了上述的部署架构。
其中,所述容器管理平台内置有镜像仓库;
所述镜像仓库用于存储应用镜像。
其中,数据验证为容器运行时实际资源消耗数据值与预测数据进行对比。
其中,实际资源消耗数据值与预测数据通过分类分析、聚类分析进行对比。
其中,资源模型库内存储有应用镜像与资源模型的对应关系列表。
第二方面,一种基于应用镜像数据识别的容器资源规划方法,其中,包含以下步骤:
步骤1:资源规划控制器实时监听容器管理平台的应用部署行为并进行捕获;
步骤2:资源规划控制器捕获到应用部署行为后进行拦截并触发应用信息探针对应用进行信息收集,比如资源规划控制器可以通过准入控制机制(Admission Control)捕获并拦截应用部署行为,本技术方案并不限定于使用准入控制机制(Admission Control)作为拦截技术;
步骤3:应用信息探针获取应用中应用镜像中的容器镜像数据并传输至资源模型计算引擎进行应用资源消耗模型计算分析;
步骤4:资源模型计算引擎接收容器镜像数据先检测应用镜像进行是否被识别过;
若应用镜像被标记为已识别镜像,则资源模型库中存储有该应用镜像的资源消耗模式,资源规划控制器直接从资源模型库中调取该应用镜像的资源消耗模式;
若应用镜像未被标记为已识别镜像,则资源模型计算引擎通过预先设定的应用资源消耗模型算法进行运算,计算出该应用镜像的资源模型并添加进资源模型库,同时将该应用镜像标记为已识别镜像,资源模型库对应用镜像与资源模型的对应关系进行更新,并将资源模型传输至资源规划控制器;
步骤5:资源规划控制器将接收的资源模型映射为容器资源设置数据,并根据该容器资源设置数据更新在步骤2拦截的应用部署行为中的应用容器资源配置中,并恢复容器管理平台的应用部署行为,完成应用部署;
步骤6:应用容器运行后,应用信息探针继续从运行中的应用容器中读取资源的实际消耗数据值并反馈到资源模型计算引擎中进行持续算法优化和资源配置优化,生成优化后的资源消耗模式;
步骤7:优化后的资源消耗模式同步更新到资源模型库中,同时优化后的资源消耗模式映射的容器资源设置数据应用到已经运行的应用容器中。
其中,步骤4中还需要将标记为已识别镜像的应用镜像存储至容器管理平台中的镜像仓库内;
镜像仓库用于存储应用镜像。
如图4所示,从同一应用镜像启动的应用容器的资源消耗行为会和同一应用镜像标示的资源消耗模式进行关联,该图只涉及到了单个集群,在多集群的环境中也是相同的机制,每个集群都保持了上述的部署架构;容器技术是通过层式结构的联合文件***将应用及其运行的环境封装到了一起,而封装的产物就是应用镜像,是构建容器的基石,应用镜像是容器化应用生命周期的构建部分,是一种静态表示和数据存储格式,可以当做应用容器的源代码;当应用镜像中封装的程序被容器引擎运行起来时就成为一个应用容器;容器化的应用都是通过应用镜像发布的,同一个应用镜像运行出应用容器的资源消耗模式应该是相似的,因此,本***会根据应用镜像数据中收集到的信息计算出应用的资源消耗模式,即以应用镜像为单位进行应用资源模型的识别和比对,同时***中内置一个资源模型库,已预先存放了一些常用的应用资源模型的最佳实践,并且维护了应用镜像与资源模型的对应关系列表。
第三方面,一种基于应用镜像数据识别的容器资源规划的处理器,其中,包含至少一个处理器以及与所述至少一个处理器耦合的存储器,所述存储器存储有可执行指令,所述可执行指令在被所述至少一个处理器执行时使得实现上述的方法。
第四方面,一种芯片,其中,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行:上述的方法。
本领域技术人员可以明白的是,结合本文中所公开的实施例描述的各示例的单元及算法步骤能够以电子硬件、或者软件和电子硬件的结合来实现;
这些功能是以硬件还是软件方式来实现,取决于技术方案的特定应用和设计约束条件;
本领域技术人员可以针对每个特定的应用,使用不同的方式来实现所描述的功能,但是这种实现并不应认为超出本申请的范围。
在本申请实施例中,所公开的***、装置和方法可以通过其它方式来实现;
例如,单元或模块的划分仅仅为一种逻辑功能划分,在实际实现时还可以有另外的划分方式;
例如,多个单元或模块或组件可以进行组合或者可以集成到另一个***中;
另外,在本申请实施例中的各功能单元或模块可以集成在一个处理单元或模块中,也可以是单独的物理存在等等。
应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在机器可读存储介质中;
因此,本申请的技术方案可以以软件产品的形式来体现,该软件产品可以存储在机器可读存储介质中,其可以包括若干指令用以使得电子设备执行本申请实施例所描述的技术方案的全部或部分过程;
上述存储介质可以包括ROM、RAM、可移动盘、硬盘、磁盘或者光盘等各种可以存储程序代码的介质。
综上,本发明的一种基于应用镜像数据识别的容器资源规划***与方法,能够以整体容器镜像数据为应用容器资源消耗类型识别的依据,通过丰富的应用信息探针对应用容器资源消耗类型进行全面的分析,并将机器学***台上要部署的容器类型进行识别和分类,并基于策略给出相应容器资源的推荐值,极大地提升效率和准确率;整体流程全部采用自动化的方式,通过预置大量的基于最佳实践的应用资源消耗模型,极大了降低了人工进行容器资源配置的工作量和门槛,提升了容器资源配置的准确度,非常适用于当前越来越广泛的容器化应用部署场景;还能够根据应用的实时运行数据的收集和分析,对应用容器资源模型进行持续优化,从而通过不断的自学习进一步提升后续应用资源规划的科学性。
以上对发明的具体实施例进行了描述。需要理解的是,发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;本领域技术人员可以在权利要求的范围内做出各种变形或修改做出若干简单推演、变形或替换,这并不影响发明的实质内容。
Claims (10)
1.一种基于应用镜像数据识别的容器资源规划***,其特征在于,包含容器管理平台、容器资源规划模块、一个或多个应用,每个所述应用包含应用镜像和应用容器两种形态,所述应用镜像和所述应用容器均设有一个或多个;
所述容器管理平台上部署有应用信息探针;
所述容器资源规划模块上部署有资源模型库、资源模型计算引擎、资源规划控制器;
所述应用信息探针用于对所述应用镜像进行容器类型的探测扫描获取容器镜像数据,还用于获取所述应用中的运行时应用容器的资源消耗数据;
所述资源模型计算引擎用于获取所述容器镜像数据、所述容器运行时资源消耗数据;还用于计算传输至所述资源模型库中的所述容器镜像的资源消耗模式;还用于生成传输至所述资源模型库中的资源模型;还用于进行数据验证和算法参数优化;还用于检测所述应用镜像是否被识别;
所述资源规划控制器用于将所述资源模型映射为所述容器资源设置数据传回所述容器管理平台并恢复执行应用容器部署行为,完成应用容器部署;
所述资源模型库用于存储所述容器资源设置数据、所述资源模型、所述资源消耗模式,供所述资源规划控制器提取。
2.如权利要求1所述的一种基于应用镜像数据识别的容器资源规划***,其特征在于,所述应用信息探针包含探针应用语言探针、应用中间件探针、应用数据源探针、应用算法探针、应用访问探针、CPU探针、内存探针、网络探针、存储探针、I/O探针中的一个或多个;
所述应用语言探针用于根据所述容器镜像数据检测所述应用的编写语言;
所述应用中间件探针用于根据所述容器镜像数据检测所述应用使用的Web中间件及其配置信息;
所述应用数据源探针用于根据所述容器镜像数据检测所述应用的数据源;
所述应用算法探针用于根据所述容器镜像数据检测所述应用的算法及其复杂程度;
所述应用访问探针用于根据所述容器镜像数据检测所述应用是否需要对外访问、对内访问及访问类型和频次;
所述CPU探针用于检测所述应用容器运行实际消耗的CPU;
所述内存探针用于检测所述应用容器运行实际消耗的内存;
所述网络探针用于检测所述应用容器运行实际消耗的网络资源;
所述存储探针用于检测所述应用容器运行实际消耗的存储资源;
所述I/O探针用于检测应用容器运行实际占用的I/O。
3.如权利要求1或2所述的一种基于应用镜像数据识别的容器资源规划***,其特征在于,所述容器管理平台内置有镜像仓库;
所述镜像仓库用于存储应用镜像。
4.如权利要求3所述的一种基于应用镜像数据识别的容器资源规划***,其特征在于,所述数据验证为容器运行时实际资源消耗数据值与预测数据进行对比。
5.如权利要求4所述的一种基于应用镜像数据识别的容器资源规划***,其特征在于,所述实际资源消耗数据值与所述预测数据通过分类分析、聚类分析进行对比。
6.如权利要求1或2或4或5所述的一种基于应用镜像数据识别的容器资源规划***,其特征在于,所述资源模型库内存储有所述应用镜像与所述资源模型的对应关系列表。
7.一种如权利要求1-6 任一项所述的基于应用镜像数据识别的容器资源规划***的实现方法,其特征在于,包含以下步骤:
步骤1:资源规划控制器实时监听容器管理平台的应用部署行为并进行捕获;
步骤2:资源规划控制器捕获到应用部署行为后进行拦截并触发应用信息探针对应用进行信息收集;
步骤3:应用信息探针获取应用中应用镜像中的容器镜像数据并传输至资源模型计算引擎进行应用资源消耗模型计算分析;
步骤4:资源模型计算引擎接收容器镜像数据先检测应用镜像是否被识别过;
若应用镜像被标记为已识别镜像,则资源模型库中存储有该应用镜像的资源消耗模式,资源规划控制器直接从资源模型库中调取该应用镜像的资源消耗模式;
若应用镜像未被标记为已识别镜像,则资源模型计算引擎通过预先设定的应用资源消耗模型算法进行运算,计算出该应用镜像的资源模型并添加进资源模型库,同时将该应用镜像标记为已识别镜像,资源模型库对应用镜像与资源模型的对应关系进行更新,并将资源模型传输至资源规划控制器;
步骤5:资源规划控制器将接收的资源模型映射为容器资源设置数据,并根据该容器资源设置数据更新步骤2拦截的应用部署行为中的应用容器资源配置,并恢复容器管理平台的应用部署行为,完成应用部署;
步骤6:应用容器运行后,应用信息探针继续从运行中的应用容器中读取资源的实际消耗数据值并反馈到资源模型计算引擎中进行持续算法优化和资源配置优化,生成优化后的资源消耗模式;
步骤7:优化后的资源消耗模式同步更新到资源模型库中,同时将优化后的资源消耗模式映射的容器资源设置数据应用到已经运行的应用容器中。
8.如权利要求7所述的一种基于应用镜像数据识别的容器资源规划***的实现方法 ,其特征在于,步骤4中还需要将标记为已识别镜像的应用镜像存储至所述容器管理平台中的镜像仓库内;
所述镜像仓库用于存储应用镜像。
9.一种基于应用镜像数据识别的容器资源规划的处理器,其特征在于,包含至少一个处理器以及与所述至少一个处理器耦合的存储器,所述存储器存储有可执行指令,所述可执行指令在被所述至少一个处理器执行时使得实现根据权利要求7至8中任一项所述的方法。
10.一种芯片,其特征在于,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行:如权利要求7至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011038544.9A CN112084040B (zh) | 2020-09-28 | 2020-09-28 | 一种基于应用镜像数据识别的容器资源规划***与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011038544.9A CN112084040B (zh) | 2020-09-28 | 2020-09-28 | 一种基于应用镜像数据识别的容器资源规划***与方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112084040A CN112084040A (zh) | 2020-12-15 |
CN112084040B true CN112084040B (zh) | 2021-07-20 |
Family
ID=73739788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011038544.9A Active CN112084040B (zh) | 2020-09-28 | 2020-09-28 | 一种基于应用镜像数据识别的容器资源规划***与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112084040B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113067818B (zh) * | 2021-03-18 | 2022-07-01 | 中电运行(北京)信息技术有限公司 | 基于网络资产盘查的探针分配方法及装置 |
CN113467941A (zh) * | 2021-06-25 | 2021-10-01 | 北京汇钧科技有限公司 | 用于分享信息的方法和装置 |
CN113992525B (zh) * | 2021-10-12 | 2024-06-21 | 支付宝(杭州)信息技术有限公司 | 一种应用的容器数量调节方法及装置 |
CN117194049B (zh) * | 2023-10-16 | 2024-02-27 | 上海佑瞻智能科技有限公司 | 一种基于机器学习算法的云主机智能行为分析方法及*** |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776005A (zh) * | 2016-11-23 | 2017-05-31 | 华中科技大学 | 一种面向容器化应用的资源管理***及方法 |
CN106843945A (zh) * | 2017-01-04 | 2017-06-13 | 厦门亿力吉奥信息科技有限公司 | 基于PaaS的GIS应用部署方法及*** |
CN108833197A (zh) * | 2018-04-10 | 2018-11-16 | 中国科学院信息工程研究所 | 一种基于云的主动探测方法和探测平台 |
CN110109686A (zh) * | 2019-04-25 | 2019-08-09 | 中电科嘉兴新型智慧城市科技发展有限公司 | 一种基于容器管理引擎的应用运维方法和*** |
CN110333877A (zh) * | 2019-07-09 | 2019-10-15 | 西安点告网络科技有限公司 | 基于应用的可视化容器配置管理方法、装置及*** |
CN110704277A (zh) * | 2019-09-27 | 2020-01-17 | 中电万维信息技术有限责任公司 | 一种监测应用性能的方法、相关设备及存储介质 |
CN110764786A (zh) * | 2019-12-27 | 2020-02-07 | 凯泰铭科技(北京)有限公司 | 一种云计算环境下优化部署资源与软件交付平台 |
WO2020081134A1 (en) * | 2018-10-16 | 2020-04-23 | Ebay Inc. | User interface resource file optimization |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404381A (zh) * | 2011-09-02 | 2012-04-04 | 西安交通大学 | 一种云计算环境下基于工作流的软件部署***及部署方法 |
US9804880B2 (en) * | 2015-06-16 | 2017-10-31 | Vmware, Inc. | Reservation for a multi-machine application |
US10838750B2 (en) * | 2019-01-10 | 2020-11-17 | Red Hat, Inc. | Combining ahead-of-time compilation and just-in-time compilation to improve application deployment |
-
2020
- 2020-09-28 CN CN202011038544.9A patent/CN112084040B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776005A (zh) * | 2016-11-23 | 2017-05-31 | 华中科技大学 | 一种面向容器化应用的资源管理***及方法 |
CN106843945A (zh) * | 2017-01-04 | 2017-06-13 | 厦门亿力吉奥信息科技有限公司 | 基于PaaS的GIS应用部署方法及*** |
CN108833197A (zh) * | 2018-04-10 | 2018-11-16 | 中国科学院信息工程研究所 | 一种基于云的主动探测方法和探测平台 |
WO2020081134A1 (en) * | 2018-10-16 | 2020-04-23 | Ebay Inc. | User interface resource file optimization |
CN110109686A (zh) * | 2019-04-25 | 2019-08-09 | 中电科嘉兴新型智慧城市科技发展有限公司 | 一种基于容器管理引擎的应用运维方法和*** |
CN110333877A (zh) * | 2019-07-09 | 2019-10-15 | 西安点告网络科技有限公司 | 基于应用的可视化容器配置管理方法、装置及*** |
CN110704277A (zh) * | 2019-09-27 | 2020-01-17 | 中电万维信息技术有限责任公司 | 一种监测应用性能的方法、相关设备及存储介质 |
CN110764786A (zh) * | 2019-12-27 | 2020-02-07 | 凯泰铭科技(北京)有限公司 | 一种云计算环境下优化部署资源与软件交付平台 |
Non-Patent Citations (2)
Title |
---|
基于Kubernetes的容器云平台设计与实践;翁湦元等;《铁路计算机应用》;20191231;第28卷(第12期);第49-53页 * |
基于容器引擎的云平台设计与实现;朱小亮;《中国优秀硕士学位论文全文数据库信息科技辑》;20200315;第2020年卷(第3期);I139-154 * |
Also Published As
Publication number | Publication date |
---|---|
CN112084040A (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112084040B (zh) | 一种基于应用镜像数据识别的容器资源规划***与方法 | |
CN109756364B (zh) | 一种基于日志分析的微服务性能优化***和分析方法 | |
CN111355606B (zh) | 面向web应用的容器集群自适应扩缩容***和方法 | |
US8108456B2 (en) | Method and apparatus for migrating the system environment on which the applications depend | |
CN100451989C (zh) | 软件测试***及测试方法 | |
CN112199150A (zh) | 一种基于微服务调用依赖感知的在线应用动态扩缩容方法 | |
CN108920153B (zh) | 一种基于负载预测的Docker容器动态调度方法 | |
CN111125444A (zh) | 大数据任务调度管理方法、装置、设备及存储介质 | |
CN108229799B (zh) | 一种多源异构电网运行实时数据接入***及方法 | |
CN116127899B (zh) | 芯片设计***、方法、电子设备和存储介质 | |
CN111181773A (zh) | 面向异构边云协同智能***的多组件应用的延迟预测方法 | |
CN116594913B (zh) | 一种智能软件自动化测试方法 | |
CN110716875A (zh) | 一种国产办公环境下基于反馈机制的并发测试方法 | |
CN111324599A (zh) | 一种区块链实验***及管理方法 | |
CN114138501B (zh) | 用于现场安全监控的边缘智能服务的处理方法和装置 | |
CN114967887A (zh) | 基于工业智能的能耗管理方法、装置、设备及存储介质 | |
CN117235527A (zh) | 端到端容器化的大数据模型构建方法、装置、设备及介质 | |
CN112506791A (zh) | 应用程序测试方法、装置、计算机设备和存储介质 | |
CN115525392A (zh) | 容器监控方法、装置、电子设备及存储介质 | |
KR102418892B1 (ko) | 신뢰구간에 기반한 에너지 절감 방법 및 이를 이용한 장치 | |
CN109660392A (zh) | 一种Linux***下硬件统一化自适应管理部署方法及*** | |
CN114185639A (zh) | 一种应用容器扩展引擎平台 | |
CN113703394A (zh) | 一种基于边缘计算的刀具监测管理方法及*** | |
CN111367632B (zh) | 一种基于周期特征的容器云调度方法 | |
CN112214278A (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 | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: 200433 floor 7, building 6, No. 99, jiangwancheng Road, Yangpu District, Shanghai Patentee after: Shanghai Daoke Network Technology Co.,Ltd. Address before: Room 1305-12, No.6 Weide Road, Yangpu District, Shanghai 200433 Patentee before: Shanghai Daoke Network Technology Co.,Ltd. |