CN116134419A - 软件容器的运行时环境确定 - Google Patents
软件容器的运行时环境确定 Download PDFInfo
- Publication number
- CN116134419A CN116134419A CN202180060597.7A CN202180060597A CN116134419A CN 116134419 A CN116134419 A CN 116134419A CN 202180060597 A CN202180060597 A CN 202180060597A CN 116134419 A CN116134419 A CN 116134419A
- Authority
- CN
- China
- Prior art keywords
- runtime
- software container
- parameters
- runtime environment
- machine learning
- 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
- 230000003068 static effect Effects 0.000 claims abstract description 79
- 238000010801 machine learning Methods 0.000 claims abstract description 62
- 238000000034 method Methods 0.000 claims description 44
- 230000015654 memory Effects 0.000 claims description 38
- 238000003860 storage Methods 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 12
- 230000009471 action Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000012856 packing Methods 0.000 claims description 2
- 230000008439 repair process Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 229910052802 copper Inorganic materials 0.000 description 2
- 239000010949 copper Substances 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012880 independent component analysis Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000010238 partial least squares regression Methods 0.000 description 2
- 238000000513 principal component analysis Methods 0.000 description 2
- 238000012628 principal component regression Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000010219 correlation analysis Methods 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011143 downstream manufacturing Methods 0.000 description 1
- 238000000556 factor analysis Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3447—Performance evaluation by modeling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- 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
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3495—Performance evaluation by tracing or monitoring for systems
-
- 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/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2206/00—Indexing scheme related to dedicated interfaces for computers
- G06F2206/10—Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
- G06F2206/1012—Load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2206/00—Indexing scheme related to dedicated interfaces for computers
- G06F2206/15—Indexing scheme related to printer interfaces for computers, indexing schema related to group G06F3/12
- G06F2206/1508—Load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
识别软件容器的与软件容器本身的元数据有关的静态参数。使用第一机器学习模型基于静态参数将软件容器分配给选择的运行时环境。通过在运行时分析软件容器来识别软件容器的运行时参数。运行时参数涉及软件容器在运行时期间需要的操作。使用第二机器学习模型,确定所选择的运行时环境是否匹配所述运行时参数。在运行时环境匹配的情况下,软件容器继续在该环境中运行。在运行时环境不匹配的情况下,软件容器在匹配静态和运行时参数两者的不同运行时环境中运行。
Description
背景技术
可以运行软件的开发系统的一部分包括配置该系统以提供软件将最终在其中运行的运行时环境。运行时环境应被定义为具有运行应用程序所需的所有资源,并且运行时环境还可提供应用程序所需的一些基本功能。例如,取决于软件语言和应用程序,运行时环境可提供诸如垃圾收集、管理栈和堆等的功能。进一步,运行时环境可执行诸如负载平衡、箱封装、自我修复动作等的功能。
发明内容
本公开的方面涉及涉及确定软件容器的运行时环境的要求的方法、系统和计算机程序产品。例如,该方法包括识别软件容器的静态参数。静态参数与软件容器本身的元数据有关。该方法还包括使用第一机器学习模型基于静态参数将软件容器分配给所选择的运行时环境。所述方法进一步包括识别软件容器的运行时参数。通过基于第二机器学习模型在软件容器的运行时之前分析软件容器来识别运行时参数。运行时参数涉及软件容器在运行时期间将需要的操作。该方法还包括确定所选运行时环境是否匹配运行时参数,以及当所选运行时环境匹配运行时参数时在所选运行时环境中运行软件容器,或者当所选运行时环境不匹配运行时参数时在匹配静态参数和运行时参数两者的不同运行时环境中运行软件容器。还公开了被配置为执行上述方法的系统和计算机产品。
以上发明内容并不旨在描述本公开的每个展示的实施例或每个实现方式。
附图说明
本申请包括的附图被结合到说明书中并且形成说明书的一部分。它们示出了本公开的实施方式,并且与具体实施方式一起用于解释本公开的原理。附图仅说明某些实施例,而并不限制本公开。
图1描绘了示例系统的概念图,其中,控制器可以基于多个机器学习模型将软件容器分配给各个运行时环境。
图2描绘了图1的控制器的示例部件的概念性框图。
图3描绘了示例流程图,图1的控制器可以通过该流程图向多个运行时环境之一分配软件容器。
图4是可以识别回放速度的云计算环境的示意图。
图5是可以识别回放速度的云计算环境的抽象模型层的图示。
虽然本发明可服从不同修改和替代形式,但其细节已经通过举例在附图中示出并且将被详细描述。然而,应当理解,本发明并不局限于所描述的具体实施例。相反,本发明旨在覆盖落入本发明的精神和范围内的所有修改、等同物和替代物。
具体实施方式
本公开的各方面涉及将软件容器分配给运行时环境,而本公开的更具体的方面涉及设置第一机器学习模型以分析软件容器的静态参数,并且设置第二机器学习模型以分析软件容器的运行时参数以确定用于软件容器的运行时特性,以便将软件容器分配给运行时环境。虽然本公开不必限于这样的应用程序,但是可以通过使用该上下文对不同示例的讨论来理解本公开的各个方面。
在现代计算机解决方案中,计算元件变得越来越模块化,从而使得各种虚拟和/或真实组件、模块、工作负荷等可以被迁移至不同位置。例如,在现代云环境中,可能存在可用于为大量客户运行大量软件容器的大量运行时环境。一些或所有运行时环境可具有对它们可用的不同种类的资源(例如,不同量的处理能力、不同量的存储器、不同输入/输出(IO)能力等),且每一软件容器可要求这些资源的不同组合以在运行时环境内执行不同功能(例如,不同负载平衡速率、不同回滚数量、不同自动仓打包速率、不同自我修复速率等)。
如果软件容器处于比必需的更强健的运行时环境中(例如,软件容器每小时仅需要X个负载平衡动作,并且运行时环境每小时可以提供2X个负载平衡动作),那么完整计算系统的一些资源(无论是在单个计算机内还是跨网络,诸如云计算网络)可能被浪费和/或未被充分利用。类似地,如果软件容器在不提供以全容量运行该软件容器所需的资源的运行时环境中,则该软件容器的性能可能受损。现代系统可定期在不同运行时环境之间迁移软件容器,以试图避免由于运行时环境的资源不足而在运行时期间欠利用资源和/或减慢软件容器。
例如,常规系统可以利用受过训练的操作员猜测哪个运行时环境最适合软件容器的过程。例如,经训练的操作者可能已将多个软件容器指派给多个运行时环境,并且可尝试回忆先前针对相似软件容器做了什么工作,其中将软件容器指派给此类运行时环境。操作者和/或系统可随后监视容器在环境中如何执行,随时间推移将容器递增地迁移到不同环境,直到看起来软件容器的需求与运行时环境的能力良好地匹配。然而,此过程繁琐且易于出现用户错误,且在软件容器在针对软件容器良好匹配的运行时环境中运行之前可能需要相对长的时间。
为此,常规系统可以尝试使用机器学习模型来匹配软件容器和运行时环境。这样的机器学习模型可以尝试找到软件容器的特性、运行时环境内的软件容器的需求、以及潜在的运行时环境之间的相关性。然而,存在区分软件容器的大量因素,并且进一步存在区分运行时环境的大量能力。照此,使用单个机器学习模型的常规系统可能难以找到真实相关。
本公开的多个方面旨在减少或消除常规系统的这些问题。例如,本公开的各方面涉及使用分析软件容器的静态参数的第一机器学习模型来最初选择运行时环境,以及使用在运行时分析软件容器的运行时参数的第二机器学习模型来检查软件容器一旦在运行时环境中运行时是否应当被迁移。这两个模型可基于软件容器在初始(和任何后续)运行时环境中的性能来独立地更新。通过在处置离散变量集合的两个不同集合中使用两个单独模型,本发明的各方面可改进将软件容器指派到运行时环境的能力,所述运行时环境在相对较快的时间范围内并且通过相对少的迭代(例如,在运行时间的几个小时内,和在到给定运行时环境的第一或第二指派内,而不是在第四、第五、第六等指派内)为软件容器很好地定制。
例如,图1描绘了环境100,其中控制器110将软件容器120分配给多个运行时环境130A、130B(统称为“运行时环境130”)中的一个。控制器110可包括计算装置,诸如图2的计算系统200,该计算装置包括通信地耦接至存储器的处理器,该存储器包括指令,当由处理器执行时,该指令致使控制器110执行以下描述的一个或多个操作。
软件容器120可以包括自包含包,该自包含包包括代码和依赖性集合。该代码和依赖性集合可使得软件容器120能够在与如本文所述的软件容器匹配的多个运行时环境130上运行。在一些示例中,可以从远程计算机设备接收软件容器120,但是在其他示例中,软件容器120可以是控制器110本地的。一旦在运行时环境130之一上运行,软件容器120就可因此被一个或多个用户访问。这些用户可以相对于控制器110、软件容器120和/或相应分配的运行时环境130中的一个或每一个是本地的或远程的。
运行时环境130可以是计算机系统内的在其中可以运行一个或多个软件容器120的构建环境(例如,从而使得软件容器120的执行模型由相应的运行时环境130来实现)。例如,运行时环境130可涉及跨分布式系统的不同节点。尽管出于说明的目的在图1中仅描绘了两个运行时环境130,但是在其他示例中,控制器110可具有各自定义不同能力的大量多个运行时环境130。
运行时环境130可以由一个或多个计算设备(例如,类似于图2的计算系统200的计算设备)提供(例如,托管)。这样的计算设备可以被集成到托管控制器110的计算设备中或者与其分立和/或提供软件容器120。环境100的这样的不同计算设备可通过网络140通信。网络140可以包括计算网络,通过该计算网络可以发送和/或接收计算消息。例如,网络140可以包括互联网、局域网(LAN)、广域网(WAN)、诸如无线LAN(WLAN)的无线网络等。网络140可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口可从网络140接收消息和/或指令和/或通过网络140接收消息和/或指令,并且将用于存储或执行等的消息和/或指令转发到相应计算/处理设备的相应存储器或处理器。虽然为了说明的目的,网络140在图1中描述为单个实体,但是在其他示例中,网络140可包括多个专用和/或公共网络,控制器110可通过这些专用和/或公共网络管理如本文所述的连接性。
控制器110可以分析软件容器120的静态参数以将软件容器120分配给运行时环境130之一。这些静态参数可以涉及软件容器本身的元数据。在一些示例中,这些初始静态参数中没有一个可以直接定义软件容器120在运行时期间所需的要求。一些静态参数本质上可能是基本上永久的,使得软件容器120的静态参数不太可能或不可能随时间而改变。
例如,软件容器120的静态参数可包括诸如创建软件容器120的日期和时间、最后访问软件容器120的日期和/或时间(例如,用户访问或开发者访问)、最后修改软件容器120的日期和/或时间(例如,使得软件容器120的代码和/或依赖性已经改变),软件容器120的大小(以字节为单位)、软件容器120的类别或类型(例如,基于软件容器120的功能性、软件容器120的目标受众),软件容器120是否是基于云的应用程序等)、软件容器120的模板的变量。或其他这样的变量。
一旦控制器110已经识别这些静态参数,控制器110将软件容器120分配给运行时环境130之一。控制器110可以使用确定这些静态参数与运行时环境130之间的相关性的第一机器学习模型来将软件容器120分配给运行时环境130之一。例如,控制器110可确定如在软件容器120被创建并且在静态参数反映的时间帧内不被更新的年度中创建的软件容器120的尺寸与运行时间环境130A匹配。照此,控制器110可将软件容器120分配给运行时环境130A,并执行使软件容器120能够在运行时环境130A中执行所需的步骤(例如,将软件容器120从远程位置迁移到软件容器120可在运行时环境130A中运行的位置)。
控制器110可在所分配的运行时环境130A中的运行时期间监视软件容器120。控制器110可以监视软件容器120的运行时参数。这些运行时参数可以涉及软件容器120在运行时期间所需的操作。例如,如以上所讨论的,运行时参数可涉及软件容器120的重启策略、每小时的负载平衡动作的数量(例如,包括软件容器120的处理需求高于由软件容器120的主机分配的处理的次数,进一步考虑和/或过滤维护、硬件故障等的实例)、自动回滚的数量、自动箱包装动作的数量、自我修复动作的数量等。
进一步地,控制器110可以监视此类参数,如软件容器120的访问(读取)量和/或自创建以来软件容器120的修改(写入)动作的数量、自软件容器120被重置以来的访问和/或修改操作的数量等。
控制器110可确定软件容器120与运行时环境130A的匹配程度。控制器110可基于软件容器120在运行时环境130A中的性能来确定软件容器120与运行时环境130A匹配。例如,控制器110可监视中央处理单元的使用、存储器使用、输入/输出使用、软件容器120在运行时期间被用户访问/修改的次数等。
控制器110然后利用第二机器学习模型来确定这个所监视的性能是否指示由运行时参数量化的软件容器120匹配运行时环境130A。该第二机器学习模型可以包括或可以不包括或反映任何静态参数。在一些示例中,第二机器学习模型可以包括一些静态参数,诸如软件容器120的大小。在其他示例中,第二机器学习模型可以包括所有静态参数以及运行时参数,并且通过使用(由第一机器学习模型)已经分配的运行时环境130A中的软件容器120的性能来找到相关性,控制器110可以改善快速识别运行时环境130A是否匹配软件容器120和/或运行时环境130中的另一个是否可以更好地匹配软件容器120的能力。
当软件容器120的性能满足阈值时,和/或当在所分配的运行时环境130内执行的软件容器120的成本(例如,可计费的资源使用,诸如存储器或处理能力的使用)满足阈值时,控制器110可确定运行时环境130中的一个与软件容器120匹配。
控制器110可以随着时间继续监视软件容器120,从而收集关于性能和/或关于变化的参数的增加的数据。例如,控制器110可确定运行时环境130A内的软件容器120的处理使用和/或存储器使用尖峰,使得性能(和/或成本)超过阈值。响应于此,控制器110可分析运行时环境130中的另一个是否更好地匹配软件容器120,使得运行时的性能(和/或成本)当在该不同运行时环境130中执行时可满足阈值。如果控制器110确定不同的运行时环境运行时环境130B将以此方式匹配静态和/或运行时参数,则控制器110可使软件容器120改为在该不同的运行时环境130B中运行。
控制器110可以继续监视软件容器120,直到正在进行的更新降到阈值以下。这可包括对落在阈值以下的静态和/或运行时参数的改变,使得在所分配的运行时环境130内的软件容器120的使用、成本和/或性能被识别为稳定的。这还可包括软件容器120与运行时环境130之间的任何所识别的失配低于阈值(例如,识别软件容器120与运行时环境130匹配,其中98%的匹配可能未达到需要继续监视的阈值)。当控制器110确定正在进行的更新最小时(使得软件容器120和运行时环境130如上所述良好地匹配),控制器110可终止在运行时环境130内对软件容器120的监视。
控制器110可以独立地更新第一和第二机器学习模型两者。例如,控制器110可利用关于最终确定的静态和/或运行时参数、软件容器120在每个分配的运行时环境130中的完整历史性能、软件容器120在每个分配的运行时环境130中的完整历史成本等的信息来更新。控制器110可进一步分离出每个模型以区分软件容器(诸如软件容器120)的不同分类、类型、类别等。随着时间的推移,控制器110可以进一步确定软件容器120的什么特性保持应当指示对不同运行时环境130的分配的真实相关性,并且加强机器学习模型的规则以在未来相应地分配软件容器120。以此方式,运行时环境130中的软件容器120的性能和成本随时间的所监视数据可变成训练数据以确定在将来在分配软件容器120时如何改进。
在一些示例中,由控制器110确定和监视的运行时参数可包括在所分配的运行时环境130内运行的软件容器120对其他下游进程的影响。例如,控制器110可确定软件容器120用于假脱机打印作业,并且另一容器用于会议呼叫的实况音频处理(例如,这些是这些容器的类别)。控制器110可进一步确定在操作期间,如果高CPU使用造成一些减速,那么包括软件容器120的进程可实质上不受影响,而接收第二容器的经处理的音频的进程可实质上受由计算机处理争用引入的任何等待时间或抖动影响。在确定此之后,控制器110可确定软件容器120的性能阈值不同于第二软件容器的性能阈值。以这种方式,控制器110不仅可以提高软件容器120在给定运行时环境中执行的能力,而且可以提高完整计算进程的执行,该完整计算进程的一部分包括在所分配的运行时环境中的软件容器120的运行时。
如上所述,控制器110可以包括计算设备或作为计算设备的一部分,该计算设备包括被配置成用于执行存储在存储器上的指令以便执行本文描述的技术的处理器。例如,图2是控制器110的这种计算系统200的概念框图。虽然为了说明的目的控制器110被描绘为单个实体(例如,在单个壳体内),但是在其他示例中,控制器110可以包括两个或更多个分立的物理系统(例如,在两个或更多个分立壳体内)。控制器110可以包括接口210、处理器220和存储器230。控制器110可以包括任何数量或数量的接口210、处理器220和/或存储器230。
控制器110可以包括使得控制器110能够与控制器110外部的装置通信(例如,向其发送数据并接收和使用由其发送的数据)的部件。例如,控制器110可以包括接口210,该接口210被配置为使控制器110和控制器110内的其他组件(例如,诸如处理器220)能够与控制器110外部的实体通信。具体地,接口210可被配置为使控制器110的部件能够与提供软件容器120的计算设备、托管运行时环境130的一个或多个计算设备等通信。接口210可以包括一个或多个网络接口卡,诸如以太网卡和/或可以发送和接收信息的任何其他类型的接口设备。根据特定需要,可以使用任何合适数量的接口来执行所描述的功能。
如本文所讨论的,控制器110可以被配置成用于使用不同的机器学习模型来将软件容器分配给运行时环境。控制器110可以利用处理器220由此分配软件容器。处理器220可包括例如微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和/或等效的分立或集成逻辑电路。处理器220中的两个或更多个可以被配置为使用不同的机器学习模型来学习不同的相关性以一起工作,以在运行时之前和运行时期间分别初始地并且然后迭代地将软件容器分配给运行时环境。
处理器220可以根据控制器110的存储器230上存储的指令232将软件容器分配给运行时环境。存储器230可以包括计算机可读存储介质或计算机可读存储设备。在一些示例中,存储器230可以包括短期存储器或长期存储器中的一个或多个。存储器230可以包括例如随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、磁性硬盘、光盘、软盘、闪存、电可编程存储器(EPROM)、电可擦除和可编程存储器(EEPROM)的形式等。在一些实例中,处理器220可根据存储在控制器110的存储器230中的一个或一个以上应用程序(例如,软件应用程序)的指令232将软件容器指派给如本文中所描述的运行时环境。
除了指令232之外,在一些示例中,可以将如由处理器220使用以如本文描述的将软件容器分配给运行时环境的收集/预先确定的数据或技术等存储在存储器230内。例如,存储器230可以包括第一模型234(其本身可以包括静态参数数据236)和第二模型238(其可以包括静态参数数据240和/或运行时参数数据242)。尽管出于说明的目的在图2中仅描绘了两个模型234、238,但是在其他示例中,每个模型234、238可以用于自己创建多个子机器学习模型,所述多个子机器学习模型学习软件容器的不同参数如何指示软件容器应当如何被分配给运行时环境。例如,在实践中,当软件容器120在所分配的运行时环境内运行时,控制器110可以监视和捕获参数数据,并且控制器110可以使用机器学习技术246(诸如下文描述的那些技术)来确定该元数据之间的关联以定义后续机器学习模型的输入向量。输入层的大小可由输入向量的维度来定义,并且关联可由运行时环境内的受监视的性能来分类。该信息可以用于随着时间创建和训练(和再训练)每个模型,相应地加权(例如,移除较旧的注释、增强较新的注释等)。
进一步地,存储器230可以包括阈值数据244。阈值数据244可指示运行时环境内的软件容器的性能和/或成本指示软件容器应被移动到不同运行时环境的点。阈值数据244还可包括关于软件容器与运行时环境之间的匹配如此好和/或性能和/或成本如此稳定以使得停止对软件容器的监视的点的数据。
存储器230可以进一步包括机器学习技术246,控制器110可以使用机器学习技术246来改进确定软件容器的参数以便如本文讨论的将这些软件容器随时间推移指配给运行时环境的过程。机器学习技术244可包括通过对数据集执行监督的、非监督的或半监督的训练来生成的算法或模型并随后应用所生成的(或多个)算法或(或多个)模型来分配软件容器。使用这些机器学习技术246,控制器110可随时间改进分配软件容器的能力。
机器学习技术246可以包括但不限于:决策树学习、关联规则学习、人工神经网络、深度学习、感应逻辑编程、支持向量机、聚类、贝叶斯网络、增强学习、表示学习、相似性/度量训练、稀疏字典学习、基因算法、基于规则的学习和/或其他机器学习技术。具体而言,机器学习技术246可利用以下示例技术中的一个或多个:K最近邻(KNN)、学习向量量化(LVQ)、自组织映射(SOM)、逻辑回归、普通最小二乘回归(OLSR),线性回归、逐步回归、多元适应性回归样条(MARS)、脊回归、最小绝对收缩和选择算子(LASSO)、弹性网、最小角度回归(LARS)、概率性分类器、朴素贝叶斯分类器,二进制分类器、线性分类器、分层分类器、标准相关分析(CCA)、因子分析、独立分量分析(ICA)、线性判别分析(LDA)、多维缩放(MDS)、非负度量因子分解(NMF)、偏最小二乘回归(PLSR),主成分分析(PCA)、主成分回归(PCR)、Sammon映射、t分布式随机相邻嵌入(t-SNE)、引导聚合、整体平均、梯度增强决策树(GBRT)、梯度增强机器(GBM),诱导偏置算法、Q学习、状态动作奖赏状态动作(SARSA)、时间差(TD)学习、先验算法、等价类转换(ECLAT)算法、高斯过程回归、基因表达编程、数据处理组方法(GMDH),诱导逻辑编程、基于实例的学习、逻辑模型树、信息模糊网络(IFN)、隐马尔可夫模型、高斯朴素贝叶斯、多项式朴素贝叶斯、平均单依赖性估计器(AODE)、分类和回归树(CART),卡方自动交互检测(CHAID)、期望最大化算法、前馈神经网络、逻辑学习机、自组织图、单链接聚类、模糊聚类、层级聚类、玻尔兹曼机、卷积神经网络,递归神经网络、分级暂时存储器(HTM)和/或其他机器学习算法。
使用这些组件,控制器110可以如本文讨论的将软件容器分配给运行时环境。例如,控制器110可根据图3所示的流程图300分配软件容器。为了说明的目的,参照图1讨论图3的流程图300,但是应理解的是,在其他实例中,可以使用其他系统执行图3的流程图300。此外,在一些示例中,控制器110可执行与图3的流程图300不同的方法,或者控制器110可执行具有不同顺序的更多或更少步骤的类似方法等。
流程图300可以开始于控制器110识别软件容器120的静态参数(302)。控制器110可以使用第一机器学习模型来将软件容器120分配给运行时环境130A(或者如在流程图300中提供的RTE)(304)。控制器可基于所识别的静态参数将软件容器120分配给运行时环境130A。
控制器110可以识别软件容器120的运行时参数(306)。控制器110可以在软件容器120在运行时环境130A中的运行时期间识别这些运行时环境。在一些示例中,控制器110可以收集软件容器120的一组实时静态参数,其中,这些实时静态参数是由控制器110识别的初步静态参数的更新版本(其中,初步静态参数是在步骤302识别的那些静态参数)。换言之,在由控制器110在运行时间之前收集静态参数以识别初始运行时环境130并且然后在运行时期间收集静态参数的情况下,在运行时间之前收集的静态参数的版本可以被分类为初步静态参数,并且在运行时期间收集的那些静态参数的不同版本(潜在地但不一定)可以被分类为实时静态参数。
控制器110可确定所分配的运行时环境130A是否匹配所识别的运行时参数(308)。控制器110可使用第二机器学习模型来确定所指派的运行时环境130A是否匹配所识别的运行时参数。在一些示例中,控制器110可以使用该模型来确定运行时参数和实时静态参数是否匹配所分配的运行时环境130A。当软件容器120在所分配的运行时环境130A内的性能和/或成本满足一个或多个阈值(例如,具有高于阈值的性能和具有低于阈值的成本)时,控制器110可确定软件容器120的运行时参数和/或实时静态参数与所分配的运行时环境130A匹配。
如果控制器110确定该模型指示参数中的一个(或两个)匹配所分配的运行时环境130A,则控制器110可继续在所选择的运行时环境130A中运行软件容器120(310)。或者,如果控制器110确定不存在匹配(如本文所论述),则控制器110可将软件容器120移动到使用第二模型被确定为具有与参数的改进匹配的不同运行时环境130B(312)。类似地,如果控制器110确定不存在如本文所讨论的匹配,但匹配分数在软件容器120与所指派的运行时环境130A之间比在其他运行时环境130之间更好,则控制器110可确定将软件容器120保持在所指派的运行时环境130A中,直到一个或多个改进的运行时环境130被发现、联机、创建等为止。
以任一方式,控制器110可以随时间收集更新(314)。控制器110可以按预定计划表收集这些更新(例如,每20分钟一次,或每动作次数一次,等等)。这些更新可以是对参数的更新/改变、性能更新、成本更新等。控制器110然后可以确定这些更新是否低于阈值(316)。例如,阈值可以包括阈值改变量或阈值改变严重性,使得还不知道软件容器120的全部和最终的参数集合或者全部和最终性能。如果更新不太严重和/或数量小于阈值(使得软件容器120匹配软件容器120当前被指派给的运行时环境130中的任一个),则控制器110确定软件容器120匹配软件容器120以稳定方式匹配当前运行的运行时环境130中的任一个,并且确定在运行时间期间终止对软件容器120的后续分析(例如,如根据预定计划表)(318)。作为停止监视的一部分,控制器110还可以用最终参数读数、性能数据、成本数据等来更新两个(或所有,在存在多于两个的情况下)机器学习模型。
可替代地,如果控制器110确定更新具有高于阈值的严重性和/或数量(指示匹配仍然不令人满意,和/或参数和/或性能仍然看起来是通量的),则控制器110可根据第二模型分析当前运行时环境130是否匹配软件容器120,和/或其他运行时环境130是否更好地匹配软件容器120(320)。如果当前运行时环境130匹配软件容器120以及其他运行时环境130,则控制器110继续在当前软件环境130中运行软件容器120(322)。
在一些示例中,控制器110可以确定另一个运行时环境130更适合于软件容器120。在该示例中,控制器110将软件容器120迁移到该另一运行时环境130,并且使软件容器120在不同的运行时环境130中运行(324)。控制器110是否继续在当前运行时环境130中运行软件容器120,控制器110继续收集参数更新(例如,根据预定计划表在314)并确定另一运行时环境130是否具有对于软件容器120的更好匹配(在320),直到控制器确定所收集的更新的严重性和/或数量低于阈值(在316)。
云计算
应当理解,尽管本公开包括关于云计算的详细描述,但本文所叙述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
云计算是一种服务交付模型,用于使得能够方便的、按需的网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池,所述可配置计算资源可以以最小的管理努力或与所述服务的提供者的交互被快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特点如下:
按需自助服务:云消费者可以按需自动地单方面配设计算能力,如服务器时间和网络存储,而无需与服务的提供商进行人类交互。
广泛的网络接入:能力可通过网络获得并且通过标准机制接入,该标准机制促进异构瘦客户机平台或厚客户机平台(例如,移动电话、膝上型计算机、和PDA)的使用。
资源池:提供者的计算资源被池化以使用多租户模型来服务多个消费者,其中根据需求动态地分配和重新分配不同的物理和虚拟资源。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够以较高抽象级别(例如,国家、州或数据中心)指定位置。
快速弹性:可以快速和弹性地提供能力(在一些情况下,自动地)以快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
测量服务:云系统通过在适合于服务类型(例如,存储、处理、带宽、和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供商的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建的或获取的使用由提供商支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
基础设施即服务(IaaS):向消费者提供的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述任意软件可以包括操作系统和应用程序。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
部署模型如下:
私有云:云基础架构仅为组织运作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础设施由若干组织共享并且支持具有共享关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公共云:云基础设施对于一般公众或大型行业组可用并且由出售云服务的组织拥有。
混合云:云基础设施是两个或更多个云(私有云、社区云、或公共云)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化技术或私有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
现在参见图4,描绘了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,本地计算设备诸如例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N。节点10可彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图4中所示的计算设备54A-N的类型仅旨在是说明性的,并且计算节点10和云计算环境50可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
现在参见图5,示出了由云计算环境50(图4)提供的一组功能抽象层。应提前理解,图5中所示的组件、层和功能仅旨在是说明性的,并且本发明的实施例不限于此。如所描述,提供以下层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:大型机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户端75。
在一个示例中,管理层80可以提供以下所描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价82在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务水平管理84提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行85提供根据SLA预期未来需求的云计算资源的预安排和采购。
工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航91;软件开发和生命周期管理92;虚拟课堂教育交付93;数据分析处理94;事务处理95;以及软件容器96的运行时环境确定。
已经出于说明的目的呈现了对本公开的不同实施例的描述,但并不旨在是详尽的或限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域普通技术人员将是显而易见的。这里使用的术语被选择来解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
本发明可以是在任何可能的技术细节集成水平下的系统、方法、和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载至相应的计算/处理设备或下载至外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态情况数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和过程程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
本文参考根据本发明的实施例的方法、设备(系统)和计算机程序产品的流程图说明和/或框图描述了本发明的多个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,这样使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的或多个框中所指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
所述计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置、或其他设备上,以使得在所述计算机、其他可编程装置或其他设备上执行一系列操作步骤以产生计算机实现的过程,从而使得在所述计算机、其他可编程装置或其他设备上执行的所述指令实现在所述流程图和/或框图的或多个框中指定的功能/动作。
附图中的流程图和框图展示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个方框实际上可以作为一个步骤完成,同时、基本上同时、以部分或完全时间上重叠的方式执行,或者方框有时可以以相反的顺序执行,这取决于所涉及的功能。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
Claims (20)
1.一种计算机实现方法,包括:
识别软件容器的静态参数,其中所述静态参数与所述软件容器自身的元数据有关;
使用第一机器学习模型基于所述静态参数将所述软件容器分配给选择的运行时环境;
通过在运行时分析所述软件容器来识别所述软件容器的运行时参数,其中所述运行时参数与所述软件容器在运行时期间需要的操作相关;
响应于使用第二机器学习模型确定所述选择的运行时环境匹配所述运行时参数,继续在所述选择的运行时环境中运行所述软件容器;以及
响应于使用所述第二机器学习模型确定所述选择的运行时环境不匹配所述运行时参数,在匹配所述静态参数和所述运行时参数两者的不同运行时环境中运行所述软件容器。
2.根据权利要求1所述的计算机实现的方法,进一步包括:
在运行时期间监视所述软件容器的性能;
基于所述性能更新所述第一机器学习模型;以及
基于所述性能更新所述第二机器学习模型。
3.根据权利要求2所述的计算机实现的方法,其中,至少针对中央处理单元(CPU)使用、存储器使用和输入/输出(I/O)度量监视所述性能。
4.根据前述权利要求中任一项所述的计算机实现的方法,其中,所述静态参数是初步静态参数,所述计算机实现的方法进一步包括:
通过在运行时分析所述软件容器来识别所述软件容器的实时静态参数;
响应于使用所述第二机器学习模型确定所述选择的运行时环境匹配所述实时静态参数和所述运行时参数两者,继续在所述选择的运行时环境中运行所述软件容器;以及
响应于使用所述第二机器学习模型确定所选择的运行时环境不匹配所述实时静态参数和所述运行时参数,在匹配所述实时参数和所述运行时参数两者的所述不同运行时环境中运行所述软件容器。
5.根据权利要求4所述的计算机实现的方法,进一步包括:
在根据预定计划表来识别所述运行时参数之后,通过在所述运行时期间分析所述软件容器来识别所述实时静态参数或所述运行时参数的一个或多个更新;
响应于使用所述第二机器学习模型确定所述选择的运行时环境仍然匹配具有所述更新的所述实时静态参数和所述运行时参数,在所述选择的运行时环境中运行所述软件容器;以及
响应于使用所述第二机器学习模型确定所述选择的运行时环境不匹配具有所述更新的所述实时静态参数和所述运行时参数,在所述不同的运行时环境中运行所述软件容器。
6.根据权利要求5所述的计算机实现的方法,进一步包括:响应于确定所述一个或多个更新的量或严重性低于阈值,根据所述预定计划表在所述运行期间终止所述软件容器的后续分析。
7.根据前述权利要求中任一项所述的计算机实现的方法,其中,所述运行时参数包括所述软件容器是其一部分的计算过程。
8.根据前述权利要求中任一项所述的计算机实现的方法,其中,所述静态参数包括:
软件容器的类型;
所述软件容器的模板;以及
该软件容器的类别。
9.根据前述权利要求中任一项所述的计算机实现的方法,其中,所述运行时参数包括:
每小时的负载平衡操作的数量;
自动回滚的数量;
每小时的自动箱包装操作的数量;以及
每小时的修复动作的数量。
10.一种系统,包括:
处理器;以及
存储器,与所述处理器通信,所述存储器包含指令,所述指令在由所述处理器执行时使所述处理器:
识别软件容器的静态参数,其中所述静态参数与所述软件容器自身的元数据有关;
使用第一机器学习模型基于所述静态参数将所述软件容器分配给所选择的运行时环境;
通过在运行时分析所述软件容器来识别所述软件容器的运行时参数,其中所述运行时参数与所述软件容器在运行时期间需要的操作相关;
响应于使用第二机器学习模型确定所述选择的运行时环境匹配所述运行时参数,继续在所述选择的运行时环境中运行所述软件容器;以及
响应于使用所述第二机器学习模型确定所述选择的运行时环境不匹配所述运行时参数,在匹配所述静态参数和所述运行时参数两者的不同运行时环境中运行所述软件容器。
11.根据权利要求10所述的系统,所述存储器包含附加指令,所述附加指令在由所述处理器执行时使所述处理器:
在运行时期间监视所述软件容器的性能;
基于所述性能更新所述第一机器学习模型;以及
基于所述性能更新所述第二机器学习模型。
12.根据权利要求11所述的系统,其中,至少针对中央处理单元(CPU)使用、存储器使用和输入/输出(I/O)度量监视所述性能。
13.根据权利要求10至12中任一项所述的系统,其中,所述静态参数是初步静态参数,所述存储器包含附加指令,所述附加指令在由所述处理器执行时使所述处理器:
通过在运行时分析所述软件容器来识别所述软件容器的实时静态参数;
响应于使用所述第二机器学习模型确定所述选择的运行时环境匹配所述实时静态参数和所述运行时参数两者,继续在所述选择的运行时环境中运行所述软件容器;以及
响应于使用所述第二机器学习模型确定所选择的运行时环境不匹配所述实时静态参数和所述运行时参数,在匹配所述实时参数和所述运行时参数两者的所述不同的运行时环境中运行所述软件容器。
14.根据权利要求13所述的系统,所述存储器包含附加指令,所述附加指令在由所述处理器执行时使所述处理器:
在根据预定计划表来识别所述运行时参数之后,通过在所述运行时期间分析所述软件容器来识别所述实时静态参数或所述运行时参数的一个或多个更新;
响应于使用第二机器学习模型确定所述选择的运行时环境仍然匹配具有所述更新的所述实时静态参数和所述运行时参数,在所述选择的运行时环境中运行所述软件容器;以及
响应于使用第二机器学习模型确定所述选择的运行时环境不匹配具有所述更新的所述实时静态参数和所述运行时参数,在所述不同的运行时环境中运行所述软件容器。
15.根据权利要求14所述的系统,所述存储器包含附加指令,当由所述处理器执行时,所述附加指令使所述处理器响应于确定所述一个或多个更新的量或严重性低于阈值,根据所述预定计划表在所述运行期间终止所述软件容器的后续分析。
16.一种计算机程序产品,所述计算机程序产品包括具有体现在其中的程序指令的计算机可读存储介质,所述程序指令可由计算机执行以使所述计算机:
识别软件容器的运行时环境的静态参数,其中所述静态参数与所述软件容器自身的元数据有关;
使用第一机器学习模型基于所述静态参数将所述软件容器分配给选择的运行时环境;
通过在运行时分析所述软件容器来识别所述软件容器的运行时参数,其中所述运行时参数与所述软件容器在运行时期间需要的操作相关;
响应于使用第二机器学习模型确定所述选择的运行时环境匹配所述运行时参数,继续在所述选择的运行时环境中运行所述软件容器;以及
响应于使用第二机器学习模型确定所述选择的运行时环境不匹配所述运行时参数,在匹配所述静态参数和所述运行时参数两者的不同运行时环境中运行所述软件容器。
17.根据权利要求16所述的计算机程序产品,所述计算机可读存储介质包含另外的程序指令,当由所述计算机执行时,所述另外的程序指令使所述计算机:
在运行时间期间监视所述软件容器的性能;
基于所述性能更新所述第一机器学习模型;以及
基于所述性能更新所述第二机器学习模型。
18.根据权利要求17所述的计算机程序产品,其中,至少针对中央处理单元(CPU)使用、存储器使用和输入/输出(I/O)度量对所述性能进行监视。
19.根据权利要求16至18中任一项所述的计算机程序产品,其中,所述静态参数是初步静态参数,所述计算机可读存储介质包含当由所述计算机执行时使所述计算机执行以下操作的附加程序指令:
通过在所述运行时之前分析所述软件容器来识别所述软件容器的实时静态参数;
响应于使用第二机器学习模型确定所述选择的运行时环境匹配所述实时静态参数和所述运行时参数两者,继续在所述选择的运行时环境中运行所述软件容器;以及
响应于使用第二机器学习模型确定所选择的运行时环境不匹配所述实时静态参数和所述运行时参数,在所述不同的运行时环境中运行所述软件容器。
20.根据权利要求19所述的计算机程序产品,所述计算机可读存储介质包含另外的程序指令,当由所述计算机执行时,所述另外的程序指令使所述计算机:
在识别所述运行时参数之后并且根据预定计划表,通过在所述运行时期间分析所述软件容器来识别所述实时静态参数或所述运行时参数的一个或多个更新;
响应于使用第二机器学习模型确定所述选择的运行时环境仍匹配所述更新匹配具有所述更新的所述实时静态参数和所述运行时参数,继续在所选择的运行时环境中运行所述软件容器;以及
响应于使用第二机器学习模型确定所述选择的运行时环境不匹配具有所述更新的所述实时静态参数和所述运行时参数,在所述不同的运行时环境中运行所述软件容器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/935,921 US12117914B2 (en) | 2020-07-22 | 2020-07-22 | Runtime environment determination for software containers |
US16/935,921 | 2020-07-22 | ||
PCT/IB2021/056569 WO2022018646A1 (en) | 2020-07-22 | 2021-07-21 | Runtime environment determination for software containers |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116134419A true CN116134419A (zh) | 2023-05-16 |
Family
ID=79689095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180060597.7A Pending CN116134419A (zh) | 2020-07-22 | 2021-07-21 | 软件容器的运行时环境确定 |
Country Status (6)
Country | Link |
---|---|
US (1) | US12117914B2 (zh) |
JP (1) | JP2023535168A (zh) |
CN (1) | CN116134419A (zh) |
DE (1) | DE112021003184T5 (zh) |
GB (1) | GB2611993A (zh) |
WO (1) | WO2022018646A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117873650A (zh) * | 2024-01-25 | 2024-04-12 | 镁佳(北京)科技有限公司 | 实时运行环境生成系统、方法、计算机设备及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296868B (zh) * | 2021-07-27 | 2021-11-23 | 杭州筋斗腾云科技有限公司 | 应用平台及应用管理方法 |
US11625240B1 (en) * | 2021-09-28 | 2023-04-11 | Red Hat, Inc. | Generating rules for migrating dependencies of a software application |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060230396A1 (en) | 2005-04-07 | 2006-10-12 | International Business Machines Corporation | Deployment of reusable software components to be hosted in a container running on a modular code runtime platform through a runtime platform extension point |
US10191778B1 (en) | 2015-11-16 | 2019-01-29 | Turbonomic, Inc. | Systems, apparatus and methods for management of software containers |
WO2015171030A1 (en) | 2014-05-08 | 2015-11-12 | Telefonaktiebolaget L M Ericsson (Publ) | Web application managment |
US10104166B2 (en) * | 2014-05-20 | 2018-10-16 | Citrix Systems, Inc. | Systems and methods for providing load balancing as a service |
US10756995B2 (en) | 2015-07-27 | 2020-08-25 | Datagrid Systems, Inc. | Method, apparatus and system for real-time optimization of computer-implemented application operations using machine learning techniques |
CN105468362B (zh) | 2015-11-17 | 2019-03-08 | 广州杰赛科技股份有限公司 | 应用部署方法和云计算系统 |
US10091070B2 (en) | 2016-06-01 | 2018-10-02 | Cisco Technology, Inc. | System and method of using a machine learning algorithm to meet SLA requirements |
CN105979009B (zh) | 2016-07-06 | 2019-05-17 | 乾云数创(山东)信息技术研究院有限公司 | 一种针对云应用容器的增加负载自动均衡方法 |
US20180136931A1 (en) | 2016-11-14 | 2018-05-17 | Ca, Inc. | Affinity of microservice containers |
US10318314B2 (en) | 2017-02-24 | 2019-06-11 | International Business Machines Corporation | Techniques for managing software container dependencies |
US10747568B2 (en) | 2017-05-30 | 2020-08-18 | Magalix Corporation | Systems and methods for managing a cloud computing environment |
US10565092B2 (en) | 2017-10-06 | 2020-02-18 | Red Hat, Inc. | Enabling attributes for containerization of applications |
US10601679B2 (en) | 2017-12-26 | 2020-03-24 | International Business Machines Corporation | Data-centric predictive container migration based on cognitive modelling |
US11132293B2 (en) * | 2018-04-10 | 2021-09-28 | Red Hat Israel, Ltd. | Intelligent garbage collector for containers |
US11372689B1 (en) * | 2018-05-31 | 2022-06-28 | NODUS Software Solutions LLC | Cloud bursting technologies |
CN109376012A (zh) | 2018-10-10 | 2019-02-22 | 电子科技大学 | 一种针对异构环境的基于Spark的自适应任务调度方法 |
US20200117576A1 (en) * | 2018-10-12 | 2020-04-16 | Ca, Inc. | Assessing the container-readiness of software applications |
US11769035B1 (en) * | 2018-12-13 | 2023-09-26 | Amazon Technologies, Inc. | Automatically determining configurations for executing recurrent neural networks |
JP7081514B2 (ja) * | 2019-01-30 | 2022-06-07 | 日本電信電話株式会社 | オートスケール型性能保証システム及びオートスケール型性能保証方法 |
DE102019112485A1 (de) * | 2019-05-13 | 2020-11-19 | Eberhard-Karls-Universität Tübingen | Verfahren zum selektiven Ausführen eines Containers |
CN110309559A (zh) | 2019-06-13 | 2019-10-08 | 上海交通大学 | 基于多目标优化和拓扑优化的集装箱相似模型构建方法 |
US11422785B2 (en) * | 2019-07-23 | 2022-08-23 | Paypal, Inc. | Container orchestration framework |
US11321141B2 (en) * | 2019-09-20 | 2022-05-03 | Dell Products L.P. | Resource management for software containers using container profiles |
US11113158B2 (en) * | 2019-10-04 | 2021-09-07 | Robin Systems, Inc. | Rolling back kubernetes applications |
US11537809B2 (en) * | 2019-11-21 | 2022-12-27 | Kyndryl, Inc. | Dynamic container grouping |
EP4073643A1 (en) * | 2019-12-13 | 2022-10-19 | Telefonaktiebolaget LM ERICSSON (PUBL) | A multi-tenant real-time process controller for edge cloud environments |
US11861410B2 (en) * | 2020-02-19 | 2024-01-02 | Nant Holdings Ip, Llc | Cloud computing burst instance management through transfer of cloud computing task portions between resources satisfying burst criteria |
WO2021197588A1 (en) * | 2020-03-31 | 2021-10-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Orchestration of virtualization technology and application implementation |
US11301276B2 (en) * | 2020-06-22 | 2022-04-12 | Hewlett Packard Enterprise Development Lp | Container-as-a-service (CaaS) controller for monitoring clusters and implemeting autoscaling policies |
-
2020
- 2020-07-22 US US16/935,921 patent/US12117914B2/en active Active
-
2021
- 2021-07-21 JP JP2023503107A patent/JP2023535168A/ja active Pending
- 2021-07-21 GB GB2301816.1A patent/GB2611993A/en active Pending
- 2021-07-21 WO PCT/IB2021/056569 patent/WO2022018646A1/en active Application Filing
- 2021-07-21 CN CN202180060597.7A patent/CN116134419A/zh active Pending
- 2021-07-21 DE DE112021003184.8T patent/DE112021003184T5/de active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117873650A (zh) * | 2024-01-25 | 2024-04-12 | 镁佳(北京)科技有限公司 | 实时运行环境生成系统、方法、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2022018646A1 (en) | 2022-01-27 |
US12117914B2 (en) | 2024-10-15 |
GB202301816D0 (en) | 2023-03-29 |
DE112021003184T5 (de) | 2023-04-20 |
JP2023535168A (ja) | 2023-08-16 |
GB2611993A (en) | 2023-04-19 |
US20220027778A1 (en) | 2022-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11704123B2 (en) | Automated orchestration of containers by assessing microservices | |
US11558451B2 (en) | Machine learning based application deployment | |
US11595269B1 (en) | Identifying upgrades to an edge network by artificial intelligence | |
US11340924B2 (en) | Machine-learning based heap memory tuning | |
US11226889B2 (en) | Regression prediction in software development | |
US11636185B2 (en) | AI governance using tamper proof model metrics | |
US10832169B2 (en) | Intelligent service negotiation using cognitive techniques | |
US20220108147A1 (en) | Predictive microservices activation using machine learning | |
CN116134419A (zh) | 软件容器的运行时环境确定 | |
US11263172B1 (en) | Modifying a particular physical system according to future operational states | |
US20220308862A1 (en) | Coordinated source code commits utilizing risk and error tolerance | |
US11614963B2 (en) | Machine learning based runtime optimization | |
US11030015B2 (en) | Hardware and software resource optimization | |
US11573770B2 (en) | Container file creation based on classified non-functional requirements | |
WO2023077989A1 (en) | Incremental machine learning for a parametric machine learning model | |
US20230177355A1 (en) | Automated fairness-driven graph node label classification | |
US12026480B2 (en) | Software development automated assessment and modification | |
US11392473B2 (en) | Automated extension of program data storage | |
WO2021208808A1 (en) | Cooperative neural networks with spatial containment constraints | |
US20220013239A1 (en) | Time-window based attention long short-term memory network of deep learning | |
US11568235B2 (en) | Data driven mixed precision learning for neural networks | |
US11847431B2 (en) | Automatic container specification file generation for a codebase | |
US12020080B2 (en) | Automated resource request mechanism for heterogeneous infrastructure using profiling information | |
US20220198268A1 (en) | Estimated online hard negative mining via probabilistic selection and scores history consideration | |
US12124887B2 (en) | Microservice measurement and merging |
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 |