JP2023535168A - Run-time environment determination for software containers - Google Patents

Run-time environment determination for software containers Download PDF

Info

Publication number
JP2023535168A
JP2023535168A JP2023503107A JP2023503107A JP2023535168A JP 2023535168 A JP2023535168 A JP 2023535168A JP 2023503107 A JP2023503107 A JP 2023503107A JP 2023503107 A JP2023503107 A JP 2023503107A JP 2023535168 A JP2023535168 A JP 2023535168A
Authority
JP
Japan
Prior art keywords
time
software container
run
parameters
runtime
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
Application number
JP2023503107A
Other languages
Japanese (ja)
Inventor
コチュラ、ナディヤ
スト、チベリュー
ルーガー、エリック
スゴッバ、ニコロ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2023535168A publication Critical patent/JP2023535168A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/15Indexing scheme related to printer interfaces for computers, indexing schema related to group G06F3/12
    • G06F2206/1508Load balancing

Abstract

ソフトウェア・コンテナ自体のメタデータに関連する、ソフトウェア・コンテナの静的パラメータが、識別される。ソフトウェア・コンテナは、第1の機械学習モデルを使用して、静的パラメータに基づいて、選択された実行時間環境に割り当てられる。ソフトウェア・コンテナの実行時間パラメータは、実行時間にソフトウェア・コンテナを分析することによって、識別される。実行時間パラメータは、実行時間中にソフトウェア・コンテナが必要とする動作に関連する。第2の機械学習モデルを使用して、選択された実行時間環境は実行時間パラメータにマッチするかどうかが決定される。実行時間環境がマッチする場合、ソフトウェア・コンテナは、この環境において継続して実行する。実行時間環境がマッチしない場合、ソフトウェア・コンテナは、静的パラメータと実行時間パラメータとの両方にマッチする異なる実行時間環境において実行される。Static parameters of the software container are identified that relate to metadata of the software container itself. Software containers are assigned to selected runtime environments based on static parameters using a first machine learning model. Runtime parameters of a software container are identified by analyzing the software container at runtime. Runtime parameters relate to actions required by the software container during runtime. A second machine learning model is used to determine whether the selected runtime environment matches the runtime parameters. If the runtime environment matches, the software container will continue to run in this environment. If the runtime environment does not match, the software container runs in a different runtime environment that matches both static and runtime parameters.

Description

ソフトウェアを実行することができるシステムを開発することの一部には、ソフトウェアが最終的にそこで実行することになる実行時間環境を提供するようにシステムを構成することが含まれる。実行時間環境は、アプリケーションを実行するために必要とされることになる資源のすべてを有するように定義されるべきであり、実行時間環境はまた、アプリケーションのために必要な何らかの基本機能性を提供し得る。たとえば、ソフトウェア言語およびアプリケーションに応じて、実行時間環境は、たとえば、ガーベッジ収集、スタックおよびヒープの管理などの機能性を提供し得る。さらに、実行時間環境は、たとえば、負荷バランシング、ビン・パッキング、自己回復アクションなどの機能性を実行し得る。 Part of developing a system in which software can run involves configuring the system to provide the run-time environment in which the software will eventually run. The runtime environment should be defined to have all of the resources that will be required to run the application, and the runtime environment also provides some basic functionality needed for the application. can. For example, depending on the software language and application, the runtime environment may provide functionality such as garbage collection, stack and heap management, and the like. Additionally, the runtime environment may perform functionality such as load balancing, bin packing, self-healing actions, and the like, for example.

本開示の態様は、ソフトウェア・コンテナの実行時間環境の要件を決定することに関する方法、システム、およびコンピュータ・プログラム製品に関する。たとえば、方法は、ソフトウェア・コンテナの静的パラメータを識別することを含む。静的パラメータは、ソフトウェア・コンテナ自体のメタデータに関する。方法はさらに、第1の機械学習モデルを使用して静的パラメータに基づいてソフトウェア・コンテナを選択された実行時間環境に割り当てることを含む。方法はさらに、ソフトウェア・コンテナの実行時間パラメータを識別することを含む。実行時間パラメータは、第2の機械学習モデルに基づいてソフトウェア・コンテナの実行時間より前にソフトウェア・コンテナを分析することによって識別される。実行時間パラメータは、ソフトウェア・コンテナが実行時間中に必要とすることになる動作に関する。方法はさらに、選択された実行時間環境が実行時間パラメータにマッチするかどうかを決定することと、選択された実行時間環境が実行時間パラメータにマッチするときに選択された実行時間環境においてソフトウェア・コンテナを実行すること、または選択された実行時間環境が実行時間パラメータにマッチしないときに静的パラメータと実行時間パラメータとの両方にマッチする異なる実行時間環境においてソフトウェア・コンテナを実行することのいずれかとを含む。前述の方法を実行するように構成されたシステムおよびコンピュータ製品もまた、開示される。 Aspects of the present disclosure relate to methods, systems, and computer program products related to determining runtime environment requirements of a software container. For example, the method includes identifying static parameters of the software container. Static parameters relate to metadata of the software container itself. The method further includes assigning the software containers to the selected runtime environment based on the static parameters using the first machine learning model. The method further includes identifying runtime parameters of the software container. Execution time parameters are identified by analyzing the software container prior to the execution time of the software container based on a second machine learning model. Runtime parameters relate to operations that the software container will require during runtime. The method further includes determining whether the selected runtime environment matches the runtime parameters; and executing the software container in the selected runtime environment when the selected runtime environment matches the runtime parameters. or running the software container in a different runtime environment that matches both the static and runtime parameters when the selected runtime environment does not match the runtime parameters. include. Systems and computer products configured to carry out the aforementioned methods are also disclosed.

前述の概要は、本開示のそれぞれの示された実施形態またはあらゆる実装形態を説明することは意図されていない。 The above summary is not intended to describe each illustrated embodiment or every implementation of the present disclosure.

本願に含まれる図面は、本明細書に組み込まれ、その一部を形成する。それらは、本開示の実施形態を解説し、記述と共に、本開示の原理を説明する働きをする。図面は、ある種の実施形態の単なる例示であり、本開示を制限しない。 The drawings included in this application are incorporated into and form a part of this specification. They illustrate embodiments of the disclosure and, together with the description, serve to explain the principles of the disclosure. The drawings are merely illustrative of certain embodiments and do not limit the disclosure.

コントローラが複数の機械学習モデルに基づいて様々な実行時間環境に標識ソフトウェア・コンテナを割り当て得る例示的システムの概念図を示す。1 depicts a conceptual diagram of an exemplary system in which a controller may assign tagged software containers to various run-time environments based on multiple machine learning models; FIG. 図1のコントローラの例示的構成要素の概念的箱図表を示す。2 shows a conceptual box diagram of exemplary components of the controller of FIG. 1; それによって図1のコントローラがソフトウェア・コンテナを複数の実行時間環境のうちの1つに割り当て得る、例示的流れ図を示す。FIG. 2 illustrates an exemplary flow diagram by which the controller of FIG. 1 may assign software containers to one of multiple runtime environments; 再生速度が識別され得るクラウド・コンピューティング環境の概略図である。1 is a schematic diagram of a cloud computing environment in which playback speeds may be identified; FIG. そこにおいて再生速度が識別され得るクラウド・コンピューティング環境の抽象化モデル層の図である。1 is a diagram of an abstract model layer of a cloud computing environment in which playback speeds may be identified; FIG.

本発明は、様々な修正形態および代替形態を受け入れるが、その詳細は、図面に例として示されており、詳述されることになる。しかしながら、その意図は、記載された特定の実施形態に発明を制限することではない、ということが理解されるべきである。むしろ、その意図するものは、本発明の思想および範囲内にあるすべての修正形態、同等物、および代替を包含することである。 While the invention is susceptible to various modifications and alternative forms, specifics thereof have been shown by way of example in the drawings and will be described in detail. It should be understood, however, that the intention is not to limit the invention to particular embodiments described. Rather, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

本開示の態様は、ソフトウェア・コンテナを実行時間環境に割り当てることに関するが、本開示のより特定の態様は、ソフトウェア・コンテナの静的パラメータを分析するように第1の機械学習モデルを設定することと、ソフトウェア・コンテナを実行時間環境に割り当てることを目的としてソフトウェア・コンテナの実行時間パラメータを分析してソフトウェア・コンテナの実行時間特性を決定するように第2の機械学習モデルを設定することとに関する。本開示は、そのような適用分野に必ずしも限定されないが、本開示の様々な態様は、この文脈を使用する様々な例の論考を通して理解され得る。 While aspects of this disclosure relate to assigning software containers to runtime environments, more particular aspects of this disclosure relate to configuring a first machine learning model to analyze static parameters of software containers. and configuring a second machine learning model to analyze runtime parameters of software containers to determine runtime characteristics of software containers for the purpose of assigning software containers to runtime environments. . Although the disclosure is not necessarily limited to such applications, various aspects of the disclosure can be understood through discussion of various examples using this context.

現代コンピュータ解法において、たとえば、様々な仮想構成要素または現実構成要素あるいはその両方、モジュール、ワークロードなどが、異なる位置に移動され得るように、演算要素は、ますますモジュール式になっている。たとえば、現代クラウド環境において、非常に多数の顧客の非常に多数のソフトウェア・コンテナを実行するために利用可能である非常に多数の実行時間環境が存在し得る。いくつかのまたはすべての実行時間環境は、それらに利用可能な異なる種類の資源(たとえば、異なる量の処理能力、異なる量のメモリ、異なる入力/出力(IO)能力など)を有し得、各ソフトウェア・コンテナは、実行時間環境内で異なる機能(たとえば、異なる比率の負荷バランシング、異なる数のロールバック、異なる比率の自動ビン・パッキング、異なる比率の自己回復など)を実行するために、これらの資源の異なる組合せを必要とし得る。 In modern computer solutions, computing elements are becoming increasingly modular such that, for example, various virtual and/or real components, modules, workloads, etc. can be moved to different locations. For example, in a modern cloud environment there may be a large number of runtime environments available for running a large number of software containers for a large number of customers. Some or all runtime environments may have different kinds of resources available to them (e.g., different amounts of processing power, different amounts of memory, different input/output (IO) capabilities, etc.), and each A software container may use these functions to perform different functions within its run-time environment (e.g. different ratios of load balancing, different numbers of rollbacks, different ratios of automatic bin-packing, different ratios of self-healing, etc.). Different combinations of resources may be required.

ソフトウェア・コンテナが、必要以上に堅牢である実行時間環境内にある(たとえば、ソフトウェア・コンテナが、毎時X個の負荷バランシング・アクションのみを必要とし、実行時間環境は、毎時2X個の負荷バランシング・アクションを提供することができる)場合、完全計算システム(単一コンピュータ内でもネットワーク、たとえば、クラウド・コンピューティング・ネットワーク、を横断しても)のいくつかの資源が、浪費されるまたは十分に活用されないあるいはその両方の可能性がある。同様に、ソフトウェア・コンテナが、全能力でソフトウェア・コンテナを実行するために必要とされる資源を提供しない実行時間環境内にある場合、そのとき、ソフトウェア・コンテナの性能は、損なわれ得る。現代システムは、異なる実行時間環境の間でソフトウェア・コンテナを定期的に移動して、資源を有効活用しないことまたは実行時間環境の不十分な資源により実行時間中にソフトウェア・コンテナを減速することあるいはその両方の回避を試み得る。 The software container is in a run-time environment that is more robust than necessary (e.g., the software container only requires X load balancing actions per hour, and the run-time environment requires 2X load balancing actions per hour). actions can be provided), some resources of a complete computing system (whether within a single computer or across a network, e.g., a cloud computing network) are wasted or underutilized may not or both. Similarly, if the software container is in a runtime environment that does not provide the resources needed to run the software container at full capacity, then performance of the software container may be compromised. Modern systems routinely move software containers between different run-time environments to make poor use of resources or to slow down software containers during run-time due to insufficient resources of the run-time environment, or You can try to avoid both.

たとえば、従来のシステムは、トレーニングされたオペレータがどの実行時間環境がソフトウェア・コンテナに最良適合するかどうかを推測するプロセスを用い得る。たとえば、トレーニングされたオペレータが、複数のソフトウェア・コンテナを複数の実行時間環境に割り当てていることがあり、ソフトウェア・コンテナをそのような実行時間環境にその中で割り当てて、類似のソフトウェア・コンテナのために前に機能したものを呼び出そうと試みることがある。オペレータまたはシステムあるいはその両方は、次いで、ソフトウェア・コンテナのニーズが実行時間環境の能力によくマッチしたように見えるまで、異なる環境に経時的に増分的にコンテナを移動して、コンテナが環境内においてどのように実行するかどうかをモニタし得る。しかしながら、このプロセスは、煩雑で、ユーザ・エラーを起こしやすく、それは、ソフトウェア・コンテナによくマッチした実行時間環境でソフトウェア・コンテナが実行するまで、比較的長い時間を要し得る。 For example, conventional systems may employ a process in which a trained operator guesses which runtime environment best fits a software container. For example, a trained operator may have assigned multiple software containers to multiple run-time environments, assigning software containers to such run-time environments therein, and assigning similar software containers to similar software containers. may try to call something that worked before. The operator and/or the system then incrementally move the container to different environments over time until the needs of the software container appear to be a good match to the capabilities of the runtime environment, allowing the container to grow within the environment. You can monitor how it performs. However, this process is cumbersome and prone to user error, and it can take a relatively long time before the software container executes in a well-matched runtime environment.

この目的で、従来のシステムは、ソフトウェア・コンテナおよび実行時間環境にマッチするように機械学習モデルを使用しようと試み得る。そのような機械学習モデルは、ソフトウェア・コンテナの特性、実行時間環境内のソフトウェア・コンテナのニーズ、および潜在的実行時間環境の間の相関関係を見つけようと試み得る。しかしながら、ソフトウェア・コンテナを区別する多数のファクタが存在し、さらに、実行時間環境を区別する多数の能力が存在する。そのようなものとして、単一の機械学習モデルを使用する従来のシステムは、真の相関関係を見つけるのが難しいことがある。 To this end, conventional systems may attempt to use machine learning models to match software containers and runtime environments. Such machine learning models may attempt to find correlations between the characteristics of software containers, the needs of software containers within runtime environments, and potential runtime environments. However, there are many factors that distinguish software containers, and many capabilities that distinguish runtime environments. As such, conventional systems that use a single machine learning model can have difficulty finding true correlations.

本開示の態様は、従来のシステムのこれらの問題の低減または解消を目的としている。たとえば、本開示の態様は、実行時間環境を最初に選択するためにソフトウェア・コンテナの静的パラメータを分析する第1の機械学習モデルの使用と、実行時間環境において実行した後はソフトウェア・コンテナは移動されるべきかをチェックするために実行時間におけるソフトウェア・コンテナの実行時間パラメータを分析する第2の機械学習モデルの使用とに関する。これらの2つのモデルは、初期(および任意の後続の)実行時間環境におけるソフトウェア・コンテナの性能に基づいて、独立して更新され得る。個別のセットの変数を処理する2つの異なるセット内の2つの別個のモデルを使用することによって、本開示の態様は、比較的速い時間枠内のおよび比較的少ない反復を有する(たとえば、数時間の実行時間内の、および第4の、第5の、第6のなどの割り当てではなくて所与の実行時間環境への第1のまたは第2の割り当て内の)ソフトウェア・コンテナによく合わせた実行時間環境にソフトウェア・コンテナを割り当てる能力を向上させ得る。 Aspects of the present disclosure are intended to reduce or eliminate these problems of conventional systems. For example, aspects of the present disclosure include the use of a first machine learning model that analyzes static parameters of a software container to initially select a runtime environment, and that after executing in the runtime environment, the software container and using a second machine learning model that analyzes runtime parameters of the software container at runtime to check if it should be migrated. These two models can be updated independently based on the software container's performance in the initial (and any subsequent) runtime environment. By using two separate models in two different sets that process separate sets of variables, aspects of the present disclosure have relatively fast timeframes and relatively few iterations (e.g., several hours and within the first or second allocation to a given runtime environment, rather than the fourth, fifth, sixth, etc. allocation). It may improve the ability to assign software containers to runtime environments.

たとえば、図1は、コントローラ110がソフトウェア・コンテナ120を複数の実行時間環境130A、130B(集合的に、「実行時間環境130」)のうちの1つに割り当てる、環境100を示す。コントローラ110は、計算デバイス、たとえば、プロセッサによって実行されるときにコントローラ110に後述の1つまたは複数の動作を実行させる命令を含むメモリに通信可能に連結されたプロセッサを含む図2の計算システム200、を含み得る。 For example, FIG. 1 illustrates environment 100 in which controller 110 assigns software container 120 to one of a plurality of runtime environments 130A, 130B (collectively, "runtime environments 130"). Controller 110 includes a computing device, such as a processor communicatively coupled to a memory that, when executed by the processor, causes controller 110 to perform one or more of the operations described below. , can include

ソフトウェア・コンテナ120は、コードおよび1セットの依存関係を含む自己完結型パッケージを含み得る。このコードおよびセットの依存関係は、本明細書に記載のようにソフトウェア・コンテナにマッチする複数の実行時間環境130でソフトウェア・コンテナ120が実行することを可能にし得る。いくつかの例において、ソフトウェア・コンテナ120は、遠隔コンピュータ・デバイスから受信され得るが、他の例では、ソフトウェア・コンテナ120は、コントローラ110に対してローカルでもよい。実行時間環境130のうちの1つで実行した後は、ソフトウェア・コンテナ120は、1人または複数のユーザによって、このようにアクセスされ得る。これらのユーザは、コントローラ110、ソフトウェア・コンテナ120、またはそれぞれの割り当てられた実行時間環境130、あるいはその組合せのうちの1つまたはそれぞれに対してローカルまたは遠隔でもよい。 A software container 120 may contain a self-contained package containing code and a set of dependencies. This code and set dependencies may allow the software container 120 to execute in multiple runtime environments 130 that match the software container as described herein. In some examples, software container 120 may be received from a remote computing device, while in other examples software container 120 may be local to controller 110 . After executing in one of runtime environments 130, software container 120 may be accessed in this manner by one or more users. These users may be local or remote to one or each of controller 110, software container 120, or each assigned runtime environment 130, or a combination thereof.

実行時間環境130は、1つまたは複数のソフトウェア・コンテナ120が実行され得るコンピュータ・システム内の構築された環境でもよい(たとえば、ソフトウェア・コンテナ120の実行モデルが、それぞれの実行時間環境130によって実装されるような)。たとえば、実行時間環境130は、分散されたシステムを横断する異なるノードに関連し得る。2つのみの実行時間環境130が、説明を目的として図1に描かれているが、他の例では、コントローラ110は、異なる能力をそれぞれ定義するかなり多数の実行時間環境130を有し得る。 Runtime environment 130 may be a structured environment within a computer system in which one or more software containers 120 may execute (e.g., the execution model of software container 120 is implemented by each runtime environment 130). (like being done). For example, runtime environment 130 may be associated with different nodes across a distributed system. Although only two runtime environments 130 are depicted in FIG. 1 for purposes of illustration, in other examples, controller 110 may have any number of runtime environments 130, each defining different capabilities.

実行時間環境130は、1つまたは複数の計算デバイス(たとえば、図2の計算システム200に類似の計算デバイス)によって提供(たとえば、ホスト)され得る。そのような計算デバイスは、コントローラ110をホストするもしくはソフトウェア・コンテナ120を提供するまたはその両方を行う計算デバイスに統合され得る、あるいはそのような計算デバイスとは別々でもよい。環境100のそのような様々な計算デバイスは、ネットワーク140を介して通信し得る。ネットワーク140は、それを介してコンピューティング・メッセージが送信または受信あるいはその両方が行われ得るコンピューティング・ネットワークを含み得る。たとえば、ネットワーク140は、インターネット、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、ワイヤレスLAN(WLAN)等のワイヤレス・ネットワークなどを含み得る。ネットワーク140は、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含み得る。各計算/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワーク140からまたはネットワーク140を介してあるいはその両方でメッセージまたは命令あるいはその両方を受信し、メッセージまたは命令あるいはその両方をそれぞれの計算/処理デバイスのそれぞれのメモリまたはプロセッサに対して、記憶または実行等を行うために転送し得る。ネットワーク140は、説明を目的として図1では単一エンティティとして描かれているが、他の例ではネットワーク140は、それを介してコントローラ110が本明細書に記載のように接続性を管理することができる、複数のプライベートまたはパブリックあるいはその両方のネットワークを含み得る。 Runtime environment 130 may be provided (eg, hosted) by one or more computing devices (eg, computing devices similar to computing system 200 of FIG. 2). Such computing device may be integrated with the computing device that hosts controller 110 and/or provides software container 120, or may be separate from such computing device. Such various computing devices in environment 100 may communicate via network 140 . Network 140 may include a computing network over which computing messages may be sent and/or received. For example, network 140 may include the Internet, a local area network (LAN), a wide area network (WAN), a wireless network such as a wireless LAN (WLAN), and the like. Network 140 may include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, or edge servers, or combinations thereof. A network adapter card or network interface within each computing/processing device receives messages and/or instructions from and/or over network 140 and sends messages and/or instructions to respective may be transferred to a respective memory or processor of a computing/processing device for storage, execution, or the like. Network 140 is depicted as a single entity in FIG. 1 for purposes of explanation, but in other examples network 140 is the one through which controller 110 manages connectivity as described herein. It may include multiple private and/or public networks that allow

コントローラ110は、ソフトウェア・コンテナ120の静的パラメータを分析してソフトウェア・コンテナ120を実行時間環境130のうちの1つに割り当てることができる。これらの静的パラメータは、ソフトウェア・コンテナ自体のメタデータに関連し得る。いくつかの例において、これらの初期静的パラメータのうちのどれも、実行時間中にソフトウェア・コンテナ120によって必要とされる要件を直接定義しない可能性がある。静的パラメータのうちのいくつかは、ソフトウェア・コンテナ120の静的パラメータが経時的に変化することになることが起こりそうにないまたは不可能であるように、本質的にほぼ恒久的でもよい。 Controller 110 may analyze static parameters of software container 120 to assign software container 120 to one of runtime environments 130 . These static parameters may relate to metadata of the software container itself. In some examples, none of these initial static parameters may directly define the requirements required by the software container 120 during runtime. Some of the static parameters may be nearly permanent in nature such that it is unlikely or impossible that the static parameters of the software container 120 will change over time.

たとえば、ソフトウェア・コンテナ120の静的パラメータは、ソフトウェア・コンテナ120が作成された日付および時刻のような変数、ソフトウェア・コンテナ120が最後にアクセスされた(たとえば、ユーザによってアクセスされた、または開発者によってアクセスされた)日付または時刻あるいはその両方、ソフトウェア・コンテナ120が最後に修正された(たとえば、ソフトウェア・コンテナ120のコードまたは依存関係あるいはその両方が変化したような)日付または時刻あるいはその両方、ソフトウェア・コンテナ120のサイズ(バイト単位)、ソフトウェア・コンテナ120のカテゴリまたはタイプ(たとえば、ソフトウェア・コンテナ120の機能性、ソフトウェア・コンテナ120の対象視聴者、ソフトウェア・コンテナ120がクラウド・ベースのアプリケーションであるかどうか、などに基づく)、ソフトウェア・コンテナ120のテンプレート、あるいは他のそのような変数を含み得る。 For example, static parameters of the software container 120 may include variables such as the date and time when the software container 120 was created, when the software container 120 was last accessed (e.g., by a user or by a developer). the date and/or time that the software container 120 was last modified (e.g., such that the code and/or dependencies of the software container 120 changed); Size of software container 120 (in bytes), category or type of software container 120 (e.g., functionality of software container 120, target audience for software container 120, software container 120 being a cloud-based application) (based on whether there is, etc.), the template of the software container 120, or other such variables.

コントローラ110が、これらの静的パラメータを識別した後は、コントローラ110は、ソフトウェア・コンテナ120を実行時間環境130のうちの1つに割り当てる。コントローラ110は、これらの静的パラメータと実行時間環境130との相関関係を決定してソフトウェア・コンテナ120を実行時間環境130のうちの1つに割り当てる第1の機械学習モデルを使用し得る。たとえば、コントローラ110は、ソフトウェア・コンテナ120が作成されたが静的パラメータによって反映された時間フレーム内に更新されなかった年に作成されたソフトウェア・コンテナ120のサイズは実行時間環境130Aにマッチすると決定することができる。そのようなものとして、コントローラ110は、ソフトウェア・コンテナ120を実行時間環境130Aに割り当て、実行時間環境130Aにおいてソフトウェア・コンテナ120が実行することを可能にするために必要とされるようなステップ(たとえば、ソフトウェア・コンテナ120が実行時間環境130Aにおいて実行し得る位置に遠隔位置からソフトウェア・コンテナ120を移動すること)を実行することができる。 After controller 110 identifies these static parameters, controller 110 assigns software container 120 to one of runtime environments 130 . Controller 110 may use a first machine learning model to determine correlations between these static parameters and runtime environments 130 to assign software container 120 to one of runtime environments 130 . For example, controller 110 determines that the size of software container 120 created in the year in which software container 120 was created but not updated within the time frame reflected by the static parameters matches runtime environment 130A. can do. As such, controller 110 assigns software container 120 to runtime environment 130A and performs such steps (e.g., , moving software container 120 from a remote location to a location where software container 120 can execute in runtime environment 130A).

コントローラ110は、割り当てられた実行時間環境130Aにおいて実行時間中にソフトウェア・コンテナ120をモニタすることができる。コントローラ110は、ソフトウェア・コンテナの実行時間パラメータ120をモニタすることができる。これらの実行時間パラメータは、実行時間中にソフトウェア・コンテナ120が必要とする動作に関連し得る。たとえば、前述のように、実行時間パラメータは、ソフトウェア・コンテナ120の再起動ポリシ、1時間当たりの負荷バランシング・アクションの数(たとえば、ソフトウェア・コンテナ120の処理需要がソフトウェア・コンテナ120のホストによって割り当てられた処理より高く、保守、ハードウェア障害などのインスタンスをさらに考慮するまたはフィルタで除去する、あるいはその両方を行う回数を含む)、自動ロールバックの数、自動的ビン・パッキングアクションの数、自己回復アクションの数などに関連し得る。 Controller 110 can monitor software container 120 during runtime in assigned runtime environment 130A. The controller 110 can monitor runtime parameters 120 of software containers. These run-time parameters may relate to actions required by the software container 120 during run-time. For example, as described above, the run-time parameters may include the restart policy of the software container 120, the number of load balancing actions per hour (e.g., the processing demand of the software container 120 allocated by the host of the software container 120). processing performed, including the number of times to further consider and/or filter out instances of maintenance, hardware failures, etc.), number of automatic rollbacks, number of automatic bin-packing actions, self It can relate to the number of recovery actions, and so on.

さらに、コントローラ110は、作成以後のソフトウェア・コンテナ120のアクセス(読み取り)の量またはソフトウェア・コンテナ120の修正(書き込み)アクションの数あるいはその両方、ソフトウェア・コンテナ120がリセットされて以来のアクセスまたは修正動作あるいはその両方の数などのパラメータについてモニタすることができる。 In addition, the controller 110 may determine the amount of accesses (reads) and/or the number of modification (write) actions of the software container 120 since its creation, and the number of accesses or modifications since the software container 120 was reset. Parameters such as the number of operations or both can be monitored.

コントローラ110は、いかに良くソフトウェア・コンテナ120が実行時間環境130Aとマッチするかどうかを決定し得る。コントローラ110は、実行時間環境130Aにおけるソフトウェア・コンテナ120の性能に基づいて、ソフトウェア・コンテナ120は実行時間環境130Aとマッチすると決定することができる。たとえば、コントローラ110は、中央処理装置の使用量、メモリ使用量、入力/出力使用量、ソフトウェア・コンテナ120が実行時間中にユーザによってアクセス/修正された回数、などをモニタすることができる。 Controller 110 may determine how well software container 120 matches runtime environment 130A. Controller 110 may determine that software container 120 matches runtime environment 130A based on the performance of software container 120 in runtime environment 130A. For example, the controller 110 can monitor central processing unit usage, memory usage, input/output usage, the number of times the software container 120 is accessed/modified by a user during runtime, and the like.

コントローラ110は、次いで、第2の機械学習モデルを使用して、このモニタされる性能は実行時間パラメータによって数値化されたソフトウェア・コンテナ120が実行時間環境130Aにマッチすることを示すか否かを決定する。この第2の機械学習モデルは、静的パラメータを含んでも含まなくてもあるいは反映してもしなくてもよい。いくつかの例において、第2の機械学習モデルは、いくつかの静的パラメータ、たとえば、ソフトウェア・コンテナ120のサイズ、を含み得る。他の例では、第2の機械学習モデルは、すべての静的パラメータならびに実行時間パラメータを含むことができ、既に割り当てられた(第1の機械学習モデルによって)実行時間環境130Aにおいてソフトウェア・コンテナ120の性能を使用して相関関係を見つけることによって、コントローラ110は、実行時間環境130Aはソフトウェア・コンテナ120にマッチするか否か、または実行時間環境130のうちのもう1つはソフトウェア・コンテナ120によりよくマッチし得るかどうか、あるいはその両方を迅速に識別する能力を向上させ得る。 Controller 110 then uses a second machine learning model to determine whether this monitored performance indicates that software container 120, quantified by the runtime parameters, matches runtime environment 130A. decide. This second machine learning model may or may not include or reflect static parameters. In some examples, the second machine learning model may include some static parameters, such as the size of software container 120 . In another example, the second machine learning model can include all static parameters as well as run-time parameters, and the software container 120 in the already assigned (by the first machine learning model) run-time environment 130A. controller 110 determines whether runtime environment 130A matches software container 120, or whether another of runtime environments 130 is matched by software container 120. It can improve the ability to quickly identify if a good match can be made, or both.

コントローラ110は、ソフトウェア・コンテナ120の性能が閾値を満たすとき、または割り当てられた実行時間環境130内で実行されるソフトウェア・コンテナ120の費用(たとえば、支払い請求可能な資源使用量、たとえば、メモリの使用量または処理能力)が閾値を満たすとき、あるいはその両方のときに、実行時間環境130のうちの1つはソフトウェア・コンテナ120にマッチすると決定することができる。 The controller 110 determines the cost (e.g., billable resource usage, e.g. One of the runtime environments 130 may be determined to match the software container 120 when the usage or processing power) meets a threshold, or both.

コントローラ110は、性能に関するまたは変化するパラメータに関するあるいはその両方に関する増加したデータを集めて、経時的にソフトウェア・コンテナ120をモニタし続けることができる。たとえば、コントローラ110は、性能(または費用あるいはその両方)が閾値に満たないように、実行時間環境130A内のソフトウェア・コンテナ120の処理使用量またはメモリ使用量あるいはその両方が急増すると決定することができる。これに応答して、この異なる実行時間環境130において実行されるときに実行時間の性能(または費用あるいはその両方)が閾値を満たし得るように、コントローラ110は、実行時間環境130のうちのもう1つがソフトウェア・コンテナ120によりよくマッチするかどうかを分析することができる。コントローラ110が、このようにして異なる実行時間環境実行時間環境130Bは静的パラメータまたは実行時間パラメータあるいはその両方にマッチすることになると決定した場合、コントローラ110は、ソフトウェア・コンテナ120をこの異なる実行時間環境130Bにおいて代わりに実行させることができる。 Controller 110 may continue to monitor software container 120 over time, gathering increased data regarding performance and/or changing parameters. For example, controller 110 may determine that processing usage and/or memory usage of software containers 120 in runtime environment 130A spike such that performance (and/or cost) falls below a threshold. can. In response, controller 110 selects another one of run-time environments 130 so that run-time performance (and/or cost) may meet a threshold when running in this different run-time environment 130 . It can be analyzed whether one better matches the software container 120 . If controller 110 thus determines that a different runtime environment runtime environment 130B will match the static and/or runtime parameters, controller 110 will cause software container 120 to match this different runtime environment. It can instead run in environment 130B.

コントローラ110は、進行中の更新情報が閾値未満になるまで、ソフトウェア・コンテナ120をモニタし続けることができる。割り当てられた実行時間環境130内のソフトウェア・コンテナ120の使用量、費用、または性能あるいはその組合せが安定したものとして識別されるように、これは、閾値を下回る静的パラメータまたは実行時間パラメータあるいはその両方への変更を含み得る。これはまた、ソフトウェア・コンテナ120と実行時間環境130との間の任意の識別されたミスマッチが閾値未満であることを含み得る(たとえば、98%マッチでソフトウェア・コンテナ120が実行時間環境130にマッチしていると識別することは、モニタリングを継続する必要の閾値に満たないようになり得る)。コントローラ110が、進行中の更新情報は最小限であると決定したとき(ソフトウェア・コンテナ120および実行時間環境130が、前述のようによくマッチするように)、コントローラ110は、実行時間環境130内のソフトウェア・コンテナ120のモニタリングを終了し得る。 Controller 110 may continue to monitor software container 120 until the update in progress falls below the threshold. This is done so that the usage, cost, or performance, or combination thereof, of the software container 120 within the assigned runtime environment 130 is identified as stable, below a threshold static or runtime parameter, or both. May include changes to both. This may also include any identified mismatch between software container 120 and runtime environment 130 being below a threshold (e.g., 98% match for software container 120 to runtime environment 130). identifying as doing so may fall below the threshold for the need to continue monitoring). When controller 110 determines that ongoing updates are minimal (so that software container 120 and runtime environment 130 are well-matched, as described above), controller 110 updates the runtime environment 130 with software container 120 monitoring may be terminated.

コントローラ110は、第1の機械学習モデルと第2の機械学習モデルとの両方を独立して更新することができる。たとえば、コントローラ110は、その両方を、最終決定された静的パラメータまたは実行時間パラメータあるいはその両方、それぞれの割り当てられた実行時間環境130におけるソフトウェア・コンテナ120の完全な過去の性能、それぞれの割り当てられた実行時間環境130におけるソフトウェア・コンテナ120の完全な過去の費用、などに関する情報で更新することができる。コントローラ110はさらに、各モデルを区別してソフトウェア・コンテナ(たとえば、ソフトウェア・コンテナ120)の異なるクラス、タイプ、カテゴリ等の間で区別することができる。経時的に、コントローラ110はさらに、様々な実行時間環境130への割り当てを決定づけるべき真の相関関係をソフトウェア・コンテナ120のどんな特性が保持するかを決定し、機械学習モデルのルールを強化して将来はそれに応じてソフトウェア・コンテナ120を割り当てることができる。このようにして、経時的な実行時間環境130におけるソフトウェア・コンテナ120の性能および費用のモニタされたデータは、将来のソフトウェア・コンテナ120の割り当てにおいて改善する方法を決定するためのトレーニング・データになり得る。 Controller 110 can independently update both the first machine learning model and the second machine learning model. For example, the controller 110 may include both the finalized static and/or run-time parameters, the complete past performance of the software container 120 in each assigned run-time environment 130, each assigned can be updated with information regarding the full historical cost of the software container 120 in the runtime environment 130, and so on. Controller 110 can further distinguish between different classes, types, categories, etc. of software containers (eg, software containers 120) by distinguishing between each model. Over time, controller 110 also determines what properties of software container 120 hold true correlations that should dictate assignment to various runtime environments 130, and enforces the rules of the machine learning model. In the future, software containers 120 can be allocated accordingly. In this way, the monitored data of software container 120 performance and cost in runtime environment 130 over time becomes training data for determining how to improve in future software container 120 allocations. obtain.

いくつかの例において、コントローラ110によって決定およびモニタされる実行時間パラメータは、割り当てられた実行時間環境130内の実行中のソフトウェア・コンテナ120の、下流プロセスに対する他への影響を含み得る。たとえば、コントローラ110は、ソフトウェア・コンテナ120は印刷ジョブをスプールするために使用される、および別のコンテナは会議通話のためのライブ・オーディオ処理のために使用されること(たとえば、これらはこれらのコンテナのカテゴリである)を決定し得る。コントローラ110はさらに、動作中に、高いCPU使用量がいくつかの減速を引き起こす場合に、ソフトウェア・コンテナ120を含むプロセスは、実質的に影響を及ぼされない可能性があると決定することができ、その一方で、第2のコンテナの処理されたオーディオを受信するプロセスは、コンピュータ処理競合によってもたらされる任意のレイテンシまたはジッタによってより実質的に影響を及ぼされ得る。これを決定したとき、コントローラ110は、ソフトウェア・コンテナ120の性能閾値は第2のソフトウェア・コンテナの性能閾値とは異なると決定することができる。このようにして、コントローラ110は、所与の実行時間環境において実行するためのソフトウェア・コンテナ120の能力を向上させるのみならず、割り当てられた実行時間環境におけるソフトウェア・コンテナ120の実行時間を一部含む完全計算プロセスの実行もまた改善することができる。 In some examples, the runtime parameters determined and monitored by controller 110 may include the effect of software container 120 running within assigned runtime environment 130 on other downstream processes. For example, controller 110 determines that software container 120 is used to spool print jobs and another container is used for live audio processing for conference calls (e.g., these ), which is the category of the container. The controller 110 may further determine that if high CPU usage causes some slowdown during operation, the process containing the software container 120 may be substantially unaffected; On the other hand, the process of receiving the processed audio of the second container may be more substantially impacted by any latency or jitter introduced by computer processing conflicts. Upon determining this, controller 110 may determine that the performance threshold of software container 120 is different than the performance threshold of the second software container. In this way, the controller 110 not only enhances the ability of the software container 120 to execute in a given runtime environment, but also reduces the execution time of the software container 120 in its assigned runtime environment. The execution of the full computation process, including, can also be improved.

前述のように、コントローラ110は、本明細書に記載の技法を実行するためにメモリに記憶された命令を実行するように構成されたプロセッサを含む計算デバイスを含み得る、またはそのような計算デバイスの一部であり得る。たとえば、図2は、コントローラ110のそのような計算システム200の概念的箱図表である。コントローラ110は、説明を目的として単一エンティティ(たとえば、単一の筐体内)として描かれているが、他の例では、コントローラ110は、複数の個別の物理システム(たとえば、複数の個別の筐体内)を含み得る。コントローラ110は、インターフェース210、プロセッサ220、およびメモリ230を含み得る。コントローラ110は、任意の数または量のインターフェース210、プロセッサ220、またはメモリ230あるいはその組合せを含み得る。 As noted above, controller 110 may include or be a computing device that includes a processor configured to execute instructions stored in memory to perform the techniques described herein. can be part of For example, FIG. 2 is a conceptual box diagram of such a computing system 200 of controller 110 . Although the controller 110 is depicted as a single entity (eg, within a single enclosure) for purposes of explanation, in other examples, the controller 110 may be multiple separate physical systems (eg, multiple separate enclosures). in the body). Controller 110 may include interface 210 , processor 220 , and memory 230 . Controller 110 may include any number or amount of interfaces 210, processors 220, or memory 230, or combinations thereof.

コントローラ110は、コントローラ110の外部であるデバイスとコントローラ110が通信する(たとえば、データをそこに送信する、およびそれによって送信されたデータを受信および使用する)ことを可能にする構成要素を含み得る。たとえば、コントローラ110は、コントローラ110の外部のエンティティとコントローラ110およびコントローラ110内の他の構成要素(たとえば、プロセッサ220など)が通信することを可能にするように構成されたインターフェース210を含み得る。具体的には、インターフェース210は、ソフトウェア・コンテナ120を提供する計算デバイス、実行時間環境130をホストする1つまたは複数の計算デバイスなどとコントローラ110の構成要素が通信することを可能にするように構成され得る。インターフェース210は、1つまたは複数のネットワーク・インターフェース・カード、たとえば、イーサネット(R)・カード、または情報を送信および受信することができる任意の他のタイプのインターフェース・デバイス、あるいはその両方、を含み得る。任意の適切な数のインターフェースが、特定のニーズに応じて記載された機能を実行するために使用され得る。 Controller 110 may include components that enable controller 110 to communicate (eg, transmit data to, and receive and use data transmitted by) devices that are external to controller 110 . . For example, controller 110 may include interface 210 configured to enable controller 110 and other components within controller 110 (eg, processor 220, etc.) to communicate with entities external to controller 110. Specifically, interface 210 enables components of controller 110 to communicate with a computing device that provides software container 120, one or more computing devices that host runtime environment 130, and the like. can be configured. Interface 210 includes one or more network interface cards, such as Ethernet cards, and/or any other type of interface device capable of sending and receiving information. obtain. Any suitable number of interfaces may be used to perform the functions described according to particular needs.

本明細書に記載のように、コントローラ110は、異なる機械学習モデルを使用してソフトウェア・コンテナを実行時間環境に割り当てるように構成され得る。コントローラ110は、プロセッサ220を使用して、このようにソフトウェア・コンテナを割り当てることができる。プロセッサ220は、たとえば、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、または同等のディスクリートもしくは集積論理回路あるいはその組合せを含み得る。プロセッサ220のうちの2つ以上が、それぞれ、異なる機械学習モデルを使用して異なる相関関係を学習して協働して最初におよび次いで反復して実行時間の前または実行時間中にソフトウェア・コンテナを実行時間環境に割り当てるように構成され得る。 As described herein, controller 110 may be configured to assign software containers to runtime environments using different machine learning models. Controller 110 may use processor 220 to allocate software containers in this manner. Processor 220 may include, for example, a microprocessor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or equivalent discrete or integrated logic circuits or combinations thereof. . Two or more of the processors 220 each use a different machine learning model to learn different correlations and cooperate to initially and then iteratively load the software container before or during run time. to the runtime environment.

プロセッサ220は、コントローラ110のメモリ230に記憶された命令232に従ってソフトウェア・コンテナを実行時間環境に割り当てることができる。メモリ230は、コンピュータ可読記憶媒体またはコンピュータ可読記憶デバイスを含み得る。いくつかの例において、メモリ230は、短期メモリまたは長期メモリのうちの1つまたは複数を含み得る。メモリ230は、たとえば、ランダム・アクセス・メモリ(RAM)、ダイナミック・ランダム・アクセス・メモリ(DRAM)、スタティック・ランダム・アクセス・メモリ(SRAM)、磁気ハード・ディスク、光ディスク、フロッピ・ディスク、フラッシュ・メモリ、電気的プログラマブル・メモリ(EPROM)の形態、電気的消去可能プログラム可能メモリ(EEPROM)などを含み得る。いくつかの例において、プロセッサ220は、コントローラ110のメモリ230に記憶された1つまたは複数のアプリケーション(たとえば、ソフトウェア・アプリケーション)の命令232に従って、本明細書に記載のように実行時間環境にソフトウェア・コンテナを割り当てることができる。 Processor 220 may assign software containers to runtime environments according to instructions 232 stored in memory 230 of controller 110 . Memory 230 may include a computer-readable storage medium or computer-readable storage device. In some examples, memory 230 may include one or more of short-term memory or long-term memory. Memory 230 may be, for example, random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), magnetic hard disk, optical disk, floppy disk, flash memory, The memory may include forms of electrically programmable memory (EPROM), electrically erasable programmable memory (EEPROM), and the like. In some examples, processor 220 implements software in a runtime environment as described herein according to instructions 232 of one or more applications (eg, software applications) stored in memory 230 of controller 110 . • Containers can be assigned.

命令232に加えて、いくつかの例において、本明細書に記載のようにソフトウェア・コンテナを実行時間環境に割り当てるためにプロセッサ220によって使用される収集された/所定のデータもしくは技法などは、メモリ230に記憶され得る。たとえば、メモリ230は、第1のモデル234(静的パラメータ・データ236をそれ自体が含み得る)と第2のモデル238(静的パラメータ・データ240または実行時間パラメータ・データ242あるいはその両方を含み得る)とを含み得る。2つのみのモデル234、238が、説明を目的として図2には描かれているが、他の例では、各モデル234、238は、ソフトウェア・コンテナが実行時間環境にどのように割り当てられるべきかをソフトウェア・コンテナのどのように異なるパラメータが示すかを学習する複数のサブ機械学習モデルをそれら自体で生み出すために使用され得る。たとえば、実際には、ソフトウェア・コンテナ120が、割り当てられた実行時間環境内で実行している間に、コントローラ110は、パラメータ・データをモニタおよびキャプチャすることができ、コントローラ110は、後述のものなどの機械学習技法246を使用してこのメタデータの間の関連付けを決定して後続の機械学習モデルの入力ベクトルを定義することができる。入力層のサイズは、入力ベクトルの次元によって定義することができ、関連付けは、実行時間環境内のモニタされた性能によって分類され得る。この情報は、適宜に重み付けして(たとえば、より古い注釈を取り除く、より新しいものを補強する、などを行って)、経時的に各モデルを作成およびトレーニング(および再トレーニング)するために使用され得る。 In addition to instructions 232, in some examples, collected/predetermined data or techniques used by processor 220 to assign software containers to runtime environments as described herein may be stored in memory. 230. For example, memory 230 may include first model 234 (which may itself include static parameter data 236) and second model 238 (which may include static parameter data 240 and/or runtime parameter data 242). obtain). Although only two models 234, 238 are depicted in FIG. 2 for purposes of illustration, in other examples, each model 234, 238 describes how software containers should be assigned to run-time environments. It can be used to generate multiple sub-machine learning models themselves that learn how different parameters of the software container indicate what. For example, in practice, the controller 110 could monitor and capture parameter data while the software container 120 was executing within its assigned runtime environment, and the controller 110 would Machine learning techniques 246 such as can be used to determine associations between this metadata to define input vectors for subsequent machine learning models. The size of the input layer can be defined by the dimensions of the input vector, and associations can be classified by monitored performance within the run-time environment. This information is used to build and train (and retrain) each model over time, weighted accordingly (e.g., removing older annotations, reinforcing newer ones, etc.). obtain.

さらに、メモリ230は、閾値データ244を含み得る。閾値データ244は、実行時間環境内のソフトウェア・コンテナの性能または費用あるいはその両方が、ソフトウェア・コンテナは異なる実行時間環境に移動されるべきであることを示す、ポイントを示し得る。閾値データ244はまた、ソフトウェア・コンテナのモニタリングが停止すべきである、ソフトウェア・コンテナと実行時間環境とのマッチが非常に優れた、または性能もしくは費用またはその両方が非常に安定したあるいはその両方のポイントに関するデータを含み得る。 Additionally, memory 230 may include threshold data 244 . Threshold data 244 may indicate a point at which the performance and/or cost of a software container within a runtime environment indicates that the software container should be moved to a different runtime environment. Threshold data 244 may also indicate when monitoring of the software container should stop, when the match between the software container and the runtime environment is very good, or when performance and/or cost are very stable or both. It may contain data about points.

メモリ230はさらに、コントローラ110が、経時的に本明細書で論じるように実行時間環境にこれらのソフトウェア・コンテナを割り当てるためのソフトウェア・コンテナのパラメータの決定のプロセスを改善するために使用することができる、機械学習技法246を含み得る。機械学習技法244は、データセットの監視された、監視されていない、または半分監視されたトレーニングを実行することと、その後に、生成されたアルゴリズムまたはモデルを適用してソフトウェア・コンテナを割り当てることとによって生成される、アルゴリズムまたはモデルを含み得る。これらの機械学習技法246を使用して、コントローラ110は、経時的にソフトウェア・コンテナを割り当てる能力を向上させることができる。 Memory 230 may also be used by controller 110 to improve the process of determining parameters of software containers for assigning these software containers to runtime environments as discussed herein over time. machine learning techniques 246 may be included. Machine learning techniques 244 perform supervised, unsupervised, or semi-supervised training of datasets and then apply the generated algorithms or models to assign software containers. may include algorithms or models generated by Using these machine learning techniques 246, the controller 110 can improve its ability to allocate software containers over time.

機械学習技法246は、決定木学習、関連付けルール学習、人工神経ネットワーク、深層学習、帰納的論理プログラミング、サポート・ベクトル・マシン、クラスタリング、ベイジアン・ネットワーク、強化学習、表現学習、類似性/メトリック・トレーニング、スパース辞書学習、遺伝的アルゴリズム、ルール・ベースの学習、または他の機械学習技法あるいはその組合せを含み得るが、これらに限定されない。具体的には、機械学習技法246は、以下の例示的技法のうちの1つまたは複数を使用し得る:k近傍法(KNN)、学習ベクトル量子化(LVQ)、自己組織化マップ(SOM)、ロジスティック回帰、最小二乗回帰(OLSR)、線形回帰、段階的回帰、多変量適応回帰スプライン(MARS)、リッジ回帰、ラッソ(LASSO:least absolute shrinkage and selection operator)、エラスティック・ネット、LARS(least-angle regression)、確率的分類法、ナイーブ・ベイズ分類器、バイナリ分類器、線形分類器、階層的分類器、正準相関分析(CCA)、ファクタ分析、独立成分分析(ICA)、線形判別分析(LDA)、多次元尺度構成法(MDS)、非負値メトリック因数分解(NMF:non-negative metric factorization)、部分最小二乗回帰(PLSR)、主成分分析(PCA)、主成分回帰(PCR)、サモン・マッピング、t分布型確率的近傍埋め込み法(t-SNE:t-distributed stochastic neighbor embedding)、ブーストラップ・アグリゲーティング、調和平均の算出、勾配ブースト決定木(GBRT)、勾配ブースティング・マシン(GBM)、帰納バイアス・アルゴリズム、Q学習、SARSA(state-action-reward-state-action)、時間差(TD:temporal difference)学習、アプリオリ・アルゴリズム、ECLAT(equivalence class transformation)アルゴリズム、ガウス・プロセス回帰、遺伝子発現プログラミング、GMDH(group method of data handling)、帰納的論理プログラミング、インスタンス・ベース学習、ロジスティック・モデル木、情報ファジー・ネットワーク(IFN)、隠れマルコフ・モデル、ガウス・ナイーブ・ベイズ、多項ナイーブ・ベイズ(multinomial naive Bayes)、AODE(averaged one-dependence estimators)、分類および回帰木(CART)、CHAID(chi-squared automatic interaction detection)、期待値最大化アルゴリズム、フィードフォワード・ニューラル・ネットワーク、論理学習マシン、自己組織化マップ、単リンク・クラスタリング、ファジー・クラスタリング、階層的クラスタリング、ボルツマン・マシン、畳み込みニューラル・ネットワーク、リカレント・ニューラル・ネットワーク、階層一過性メモリ(HTM:hierarchical temporal memory)、または他の機械学習アルゴリズムあるいはその組合せ。 Machine learning techniques 246 include decision tree learning, association rule learning, artificial neural networks, deep learning, inductive logic programming, support vector machines, clustering, Bayesian networks, reinforcement learning, representation learning, similarity/metric training. , sparse dictionary learning, genetic algorithms, rule-based learning, or other machine learning techniques or combinations thereof. Specifically, machine learning techniques 246 may use one or more of the following exemplary techniques: k-nearest neighbor (KNN), learning vector quantization (LVQ), self-organizing maps (SOM). , logistic regression, least squares regression (OLSR), linear regression, stepwise regression, multivariate adaptive regression splines (MARS), ridge regression, LASSO (least absolute shrinkage and selection operator), elastic nets, LARS (least -angle regression), Probabilistic Classifier, Naive Bayes Classifier, Binary Classifier, Linear Classifier, Hierarchical Classifier, Canonical Correlation Analysis (CCA), Factor Analysis, Independent Component Analysis (ICA), Linear Discriminant Analysis (LDA), multidimensional scaling (MDS), non-negative metric factorization (NMF), partial least squares regression (PLSR), principal component analysis (PCA), principal component regression (PCR), Sammon mapping, t-distributed stochastic neighbor embedding (t-SNE), bootstrap aggregating, harmonic mean calculation, gradient boosted decision tree (GBRT), gradient boosting machine (GBM), recursive bias algorithm, Q-learning, SARSA (state-action-reward-state-action), temporal difference (TD) learning, a priori algorithm, ECLAT (equivalence class transformation) algorithm, Gaussian process regression , gene expression programming, GMDH (group method of data handling), inductive logic programming, instance-based learning, logistic model tree, information fuzzy network (IFN), hidden Markov model, Gaussian naive Bayes, multinomial naive Bayes (multinomial naive Bayes), AODE (averaged one-dependence estimators), classification and regression trees (CART), CHAID (chi-squared automatic interaction detection), expectation maximization algorithm, feedforward neural network, logic learning Machines, Self-Organizing Maps, Single-Link Clustering, Fuzzy Clustering, Hierarchical Clustering, Boltzmann Machines, Convolutional Neural Networks, Recurrent Neural Networks, Hierarchical Temporal Memory (HTM), or others machine learning algorithms or combinations thereof.

これらの構成要素を使用して、コントローラ110は、本明細書に記載のようにソフトウェア・コンテナを実行時間環境に割り当てることができる。たとえば、コントローラ110は、図3に描かれた流れ図300に従ってソフトウェア・コンテナを割り当てることができる。図3の流れ図300は、説明を目的として図1に関して論じられているが、他の例では、他のシステムが、図3の流れ図300を実行するために、使用され得る、ということが理解されるべきである。さらに、いくつかの例において、コントローラ110は、図3の流れ図300とは異なる方法を実行し得る、またはコントローラ110は、異なる順序でより多数または少数のステップを有する類似の方法などを実行し得る。 Using these components, the controller 110 can assign software containers to runtime environments as described herein. For example, controller 110 may allocate software containers according to flowchart 300 depicted in FIG. Although flowchart 300 of FIG. 3 is discussed with respect to FIG. 1 for purposes of explanation, it is understood that in other examples, other systems may be used to implement flowchart 300 of FIG. should. Further, in some examples, the controller 110 may perform a different method than the flowchart 300 of FIG. 3, or the controller 110 may perform a similar method with more or fewer steps in a different order, etc. .

流れ図300は、コントローラ110がソフトウェア・コンテナ120の静的パラメータを識別すること(302)で開始し得る。コントローラ110は、第1の機械学習モデルを使用してソフトウェア・コンテナ120を実行時間環境130A(または、流れ図300において提供されるRTE)に割り当て得る(304)。コントローラは、識別された静的パラメータに基づいてソフトウェア・コンテナ120を実行時間環境130Aに割り当て得る。 Flowchart 300 may begin with controller 110 identifying 302 static parameters for software container 120 . Controller 110 may assign software containers 120 to runtime environments 130A (or RTEs provided in flowchart 300) using the first machine learning model (304). The controller may assign software containers 120 to runtime environments 130A based on the identified static parameters.

コントローラ110は、ソフトウェア・コンテナ120の実行時間パラメータを識別し得る(306)。コントローラ110は、実行時間環境130Aにおけるソフトウェア・コンテナ120の実行時間中にこれらの実行時間環境を識別し得る。いくつかの例では、これらの実時間静的パラメータが、コントローラ110によって識別された予備の静的パラメータの更新されたバージョンである場合(予備の静的パラメータが、ステップ302において識別されたそれらの静的パラメータだった場合)、コントローラ110は、ソフトウェア・コンテナ120の1セットの実時間静的パラメータを収集し得る。言い換えるなら、静的パラメータが、初期実行時間環境130を識別するための実行時間の前およびその後の実行時間中の両方にコントローラ110によって収集される場合、実行時間より前に収集された静的パラメータのバージョンは、予備の静的パラメータとして分類され得、実行時間中に収集されたそれらの静的パラメータの(潜在的に、しかし、必然的ではなく)異なるバージョンは、実時間静的パラメータとして分類され得る。 Controller 110 may identify runtime parameters for software container 120 (306). Controller 110 may identify these runtime environments during execution of software container 120 in runtime environment 130A. In some examples, if these real-time static parameters are updated versions of the preliminary static parameters identified by controller 110 (the preliminary static parameters are those identified in step 302). static parameters), controller 110 may collect a set of real-time static parameters for software container 120 . In other words, if the static parameters are collected by the controller 110 both before the runtime to identify the initial runtime environment 130 and during a subsequent runtime, then the static parameters collected prior to the runtime are: can be classified as preliminary static parameters, and (potentially, but not necessarily) different versions of those static parameters collected during runtime are classified as real-time static parameters can be

コントローラ110は、割り当てられた実行時間環境130Aが識別された実行時間パラメータにマッチするか否かを決定し得る(308)。コントローラ110は、第2の機械学習モデルを使用して、割り当てられた実行時間環境130Aが識別された実行時間パラメータにマッチするかどうかを決定し得る。いくつかの例において、コントローラ110は、モデルを使用して、実行時間パラメータと実時間静的パラメータとの両方が割り当てられた実行時間環境130Aにマッチするかどうかを決定し得る。割り当てられた実行時間環境130A内のソフトウェア・コンテナ120の性能または費用あるいはその両方が、1つまたは複数の閾値を満たす(たとえば、閾値を超える性能を有する、および閾値未満の費用を有する)とき、コントローラ110は、ソフトウェア・コンテナ120の実行時間パラメータまたは実時間静的パラメータあるいはその両方は割り当てられた実行時間環境130Aにマッチすると決定し得る。 Controller 110 may determine whether the assigned runtime environment 130A matches the identified runtime parameters (308). Controller 110 may use a second machine learning model to determine whether assigned runtime environment 130A matches the identified runtime parameters. In some examples, controller 110 may use the model to determine whether both run-time parameters and real-time static parameters match assigned run-time environment 130A. When the performance and/or cost of the software container 120 within the assigned runtime environment 130A meets one or more thresholds (e.g., has performance above the threshold and has cost below the threshold), Controller 110 may determine that runtime and/or real-time static parameters of software container 120 match assigned runtime environment 130A.

コントローラ110が、パラメータのうちの一方(または両方)が割り当てられた実行時間環境130Aにマッチすることをモデルは示すと決定した場合、コントローラ110は、選択された実行時間環境130Aにおいてソフトウェア・コンテナ120を実行し続け得る(310)。別法として、コントローラ110が、本明細書で論じられるようなマッチは存在しないと決定した場合、コントローラ110は、第2のモデルを使用して、パラメータとの改善されたマッチを有すると決定された異なる実行時間環境130Bにソフトウェア・コンテナ120を移動し得る(312)。同様に、コントローラ110が、本明細書で論じられるようなマッチは存在しないが、マッチ・スコアは他の実行時間環境130間よりもソフトウェア・コンテナ120と割り当てられた実行時間環境130Aとの間でより良いと決定した場合、コントローラ110は、1つまたは複数の改善された実行時間環境130が発見される、オンラインにされる、作成される、等が生じるまで、割り当てられた実行時間環境130Aにおいてソフトウェア・コンテナ120を維持することを決定し得る。 If the controller 110 determines that the model indicates that one (or both) of the parameters match the assigned run-time environment 130A, the controller 110 creates the software container 120 in the selected run-time environment 130A. may continue to execute (310). Alternatively, if controller 110 determines that there is no match as discussed herein, controller 110 is determined to have an improved match with the parameters using a second model. A software container 120 may be moved 312 to a different runtime environment 130B. Similarly, controller 110 determines that although there is no match as discussed herein, the match score is higher between software container 120 and assigned run-time environment 130A than between other run-time environments 130. If so, controller 110 may continue to run in assigned run-time environment 130A until one or more improved run-time environments 130 are discovered, brought online, created, etc., occur. A decision may be made to maintain the software container 120 .

いずれにしても、コントローラ110は、経時的に更新情報を集めることができる(314)。コントローラ110は、所定のスケジュールで(たとえば、20分ごとに1度、またはいくつかのアクションごとに1度など)これらの更新情報を収集することができる。これらの更新情報は、パラメータの更新情報/変更、性能更新情報、費用更新情報などでもよい。コントローラ110は、次いで、これらの更新情報が閾値未満であるか否かを決定することができる(316)。たとえば、閾値は、パラメータの完全および最終セットまたはソフトウェア・コンテナ120の完全および最終性能のいずれかが未知であるような、変更の閾値量、または変更の閾値重大度を含み得る。更新情報が、閾値よりも厳格でないまたは数が少ない(ソフトウェア・コンテナ120が、ソフトウェア・コンテナ120が現在割り当てられた実行時間環境130のどれにでもマッチするような)場合、コントローラ110は、ソフトウェア・コンテナ120はソフトウェア・コンテナ120が安定した方式で現在実行している実行時間環境130のどれにでもマッチすると決定し、実行時間中にソフトウェア・コンテナ120のその後の分析(たとえば、所定のスケジュールによる)を終了すると決定する(318)。モニタリングを停止することの一部として、コントローラ110はまた、両方の(または、3つ以上が存在する場合には、すべての)機械学習モデルを最終パラメータ示度、性能データ、費用データなどで更新し得る。 In any event, controller 110 may collect updates over time (314). Controller 110 may collect these updates on a predetermined schedule (eg, once every 20 minutes, or once every few actions, etc.). These updates may be parameter updates/changes, performance updates, cost updates, and the like. Controller 110 may then determine whether these updates are below a threshold (316). For example, thresholds may include a threshold amount of change, or a threshold severity of change such that either the complete and final set of parameters or the complete and final performance of software container 120 are unknown. If the updates are less stringent or less numerous than the threshold (such that the software container 120 matches any runtime environment 130 to which the software container 120 is currently assigned), the controller 110 The container 120 determines that the software container 120 matches any of the runtime environments 130 currently executing in a stable manner, and subsequent analysis of the software container 120 during runtime (e.g., according to a predetermined schedule). is terminated (318). As part of stopping monitoring, controller 110 also updates both (or all, if more than two exist) machine learning models with final parameter readings, performance data, cost data, etc. can.

別法として、コントローラ110が、更新情報は閾値を超える重大度または数あるいはその両方である(マッチはまだ満足のいくものではないこと、またはパラメータもしくは性能またはその両方はまだ流動的と思われること、あるいはその両方を示す)と決定した場合、コントローラ110は、現在の実行時間環境130はソフトウェア・コンテナ120にマッチするかどうか、または他の実行時間環境130は第2のモデルによるソフトウェア・コンテナ120によりよくマッチするかどうか、あるいはその両方を分析し得る(320)。現在の実行時間環境130が、他の実行時間環境130と同様にソフトウェア・コンテナ120にマッチする場合、コントローラ110は、現在のソフトウェア環境130においてソフトウェア・コンテナ120を実行し続ける(322)。 Alternatively, the controller 110 determines that the updates are of severity and/or number above a threshold (match is not yet satisfactory, or parameters and/or performance still appear to be in flux). , or both), the controller 110 determines whether the current runtime environment 130 matches the software container 120 or the other runtime environment 130 matches the software container 120 according to the second model. A better match, or both, may be analyzed (320). If the current runtime environment 130 matches the software container 120 as well as other runtime environments 130, the controller 110 continues executing the software container 120 in the current software environment 130 (322).

いくつかの例において、コントローラ110は、別の実行時間環境130がソフトウェア・コンテナ120により適していると決定し得る。この例では、コントローラ110は、ソフトウェア・コンテナ120をこの他の実行時間環境130に移動し、この異なる実行時間環境130でソフトウェア・コンテナ120を実行させる(324)。コントローラ110が、現在の実行時間環境130においてソフトウェア・コンテナ120を実行し続けるか否かに関わりなく、コントローラ110は、継続してパラメータ更新情報を収集し(たとえば、所定のスケジュールに従って314において)、収集された更新情報の重大度または数あるいはその両方が閾値未満であるとコントローラが決定する(316において)まで、別の実行時間環境130がソフトウェア・コンテナ120によりマッチするかどうかを決定する(320において)。 In some examples, controller 110 may determine that another runtime environment 130 is more suitable for software container 120 . In this example, controller 110 moves software container 120 to this other runtime environment 130 and causes software container 120 to run in this different runtime environment 130 (324). Regardless of whether controller 110 continues to execute software container 120 in current runtime environment 130, controller 110 continues to collect parameter update information (e.g., at 314 according to a predetermined schedule), Determine if another runtime environment 130 is matched by the software container 120 (at 320) until the controller determines (at 316) that the severity and/or number of updates collected are below a threshold. in).

クラウド・コンピューティング cloud computing

本開示は、クラウド・コンピューティングに関する詳細な記述を含むが、本明細書で列挙された教示の実装形態は、クラウド・コンピューティング環境に限定されない、ということが理解されるべきである。むしろ、本発明の実施形態は、現在知られているまたは後に開発される任意の他のタイプのコンピューティング環境と併せて実装することができる。 Although this disclosure includes detailed descriptions of cloud computing, it should be understood that implementations of the teachings recited herein are not limited to cloud computing environments. Rather, embodiments of the invention may be implemented in conjunction with any other type of computing environment now known or later developed.

クラウド・コンピューティングは、サービスのプロバイダとの最小限の管理努力または対話で迅速にプロビジョニングおよび解放され得る構成可能なコンピューティング資源(たとえば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの配備モデルを含み得る。 Cloud computing provides configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, application , virtual machines, and services) to enable convenient, on-demand network access to a shared pool. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

特性は、以下のとおり: Characteristics are:

オンデマンド・セルフサービス:クラウド消費者は、サービスのプロバイダとの人の対話を必要とせずに自動的に必要に応じて、計算能力、たとえば、サーバ時間およびネットワーク・ストレージ、を一方的にプロビジョニングし得る。 On-demand self-service: Cloud consumers unilaterally provision computing power, e.g., server time and network storage, as needed automatically without requiring human interaction with the provider of the service. obtain.

広範なネットワーク・アクセス:能力は、ネットワークを介して利用可能であり、異種のシンまたはシック・クライアント・プラットフォーム(たとえば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準機構を介してアクセスされる。 Broad Network Access: Capabilities are available over the network and accessed through standard mechanisms facilitating use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs) be done.

資源プーリング:プロバイダのコンピューティング資源は、異なる物理および仮想資源が需要に応じて動的に割り当ておよび再割り当てされて、マルチテナント・モデルを使用する多数の消費者の役に立つようにプールされる。消費者は、提供された資源の正確な位置の制御または知識を一般に有さないが、より高いレベルの抽象化での位置(たとえば、国、州、またはデータセンタ)を指定することができ得るという点において、位置独立の感覚がある。 Resource Pooling: A provider's computing resources are pooled to serve a large number of consumers using a multi-tenant model, with different physical and virtual resources dynamically allocated and reassigned on demand. Consumers generally do not have control or knowledge of the exact location of the resources provided, but may be able to specify location at a higher level of abstraction (e.g., country, state, or data center). In that sense, there is a sense of position independence.

迅速な弾力性:能力は、速くスケール・アウトするために、場合によっては自動的に、迅速に弾力的にプロビジョニングされ得、速くスケール・インするために迅速に解除され得る。消費者には、プロビジョニングするために利用可能な能力は、しばしば、無制限であるように見え、任意の時間に任意の数量で購入され得る。 Rapid Elasticity: Capacities can be rapidly elastically provisioned, possibly automatically, to scale out quickly, and can be quickly released to scale in quickly. To consumers, the capacity available to provision often appears unlimited and can be purchased in any quantity at any time.

測定されたサービス:クラウド・システムは、サービスのタイプ(たとえば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適した何らかのレベルの抽象化で計測機能を活用することによって資源利用を自動的に制御および最適化する。資源使用量が、利用されるサービスのプロバイダと消費者との両方の透過性を提供して、モニタ、制御、および報告され得る。 Measured services: Cloud systems automate resource utilization by leveraging metering capabilities at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). control and optimize Resource usage can be monitored, controlled, and reported, providing transparency for both providers and consumers of the services utilized.

サービス・モデルは、以下のとおり: The service model is as follows:

サービス型ソフトウェア(SaaS):消費者に提供される能力は、クラウド・インフラストラクチャで実行するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(たとえば、ウェブベースの電子メール)などのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である。消費者は、制限されたユーザ固有のアプリケーション構成設定は例外の可能性があるが、ネットワーク、サーバ、オペレーティング・システム、ストレージ、あるいは個々のアプリケーション能力を含む基礎的クラウド・インフラストラクチャを管理または制御しない。 Software as a Service (SaaS): The ability offered to consumers is to use the provider's applications running on cloud infrastructure. Applications are accessible from various client devices via thin client interfaces such as web browsers (eg, web-based email). Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, storage, or individual application capabilities, with the possible exception of limited user-specific application configuration settings. .

サービス型プラットフォーム(PaaS):消費者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成されたクラウド・インフラストラクチャ消費者作成または取得アプリケーションへと配備することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎的クラウド・インフラストラクチャを管理または制御しないが、配備されたアプリケーションおよび場合によりアプリケーション・ホスティング環境構成を制御する。 Platform as a Service (PaaS): The ability offered to consumers is to deploy to cloud infrastructure consumer create or acquire applications created using programming languages and tools supported by the provider. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but do control the deployed applications and possibly the application hosting environment configuration.

サービス型インフラストラクチャ(IaaS):消費者に提供される能力は、オペレーティング・システムおよびアプリケーションを含み得る、処理、ストレージ、ネットワーク、および任意のソフトウェアを消費者が配備および実行することができる他の基本的コンピューティング資源をプロビジョニングすることである。消費者は、基礎的クラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションを制御し、場合により、選択ネットワーク構成要素(たとえば、ホスト・ファイアウォール)の制限された制御を行う。 Infrastructure as a Service (IaaS): Capabilities provided to consumers are processing, storage, networking, and other fundamentals that allow consumers to deploy and run arbitrary software, which may include operating systems and applications. It is provisioning of generic computing resources. Consumers do not manage or control the underlying cloud infrastructure, but do control the operating system, storage, deployed applications, and may have limited control over select network components (e.g., host firewalls) I do.

配備モデルは、以下のとおり: The deployment model is as follows:

プライベート・クラウド:クラウド・インフラストラクチャは、組織のためにのみ操作される。クラウド・インフラストラクチャは、組織または第三者によって管理され得、オンプレミスまたはオフプレミスに存在し得る。 Private Cloud: A cloud infrastructure operated solely for an organization. Cloud infrastructure can be managed by an organization or a third party and can exist on-premises or off-premises.

コミュニティ・クラウド:クラウド・インフラストラクチャが、いくつかの組織によって共有され、共通の関心事(たとえば、任務、セキュリティ要件、ポリシ、およびコンプライアンス留意事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、組織または第三者によって管理され得、オンプレミスまたはオフプレミスに存在し得る。 Community cloud: A cloud infrastructure shared by several organizations to support a specific community with common concerns (eg, missions, security requirements, policies, and compliance considerations). Cloud infrastructure can be managed by an organization or a third party and can exist on-premises or off-premises.

パブリック・クラウド:クラウド・インフラストラクチャが、一般大衆または大きな業界団体に利用可能にされ、クラウド・サービスを販売する組織によって所有される。 Public cloud: A cloud infrastructure that is made available to the general public or large industry groups and owned by an organization that sells cloud services.

ハイブリッド・クラウド:クラウド・インフラストラクチャは、一意のエンティティのままであるが、データおよびアプリケーション移植性(たとえば、クラウドの間の負荷バランシングのためのクラウド・バースティング)を可能にする標準化されたまたは専有の技術によって結び付けられた、複数のクラウド(プライベート、コミュニティ、または公衆)の合成である。 Hybrid cloud: The cloud infrastructure remains a unique entity, but is standardized or proprietary to enable data and application portability (e.g., cloud bursting for load balancing between clouds) is a composition of multiple clouds (private, community, or public) connected by technology.

クラウド・コンピューティング環境は、ステートレス、低結合、モジュール性、および意味論的相互運用性に重点を置いて方向付けられたサービスである。クラウド・コンピューティングの中心にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。 Cloud computing environments are service oriented with an emphasis on statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that includes a network of interconnected nodes.

ここで図4を参照すると、例示的クラウド・コンピューティング環境50が、描かれている。図示するように、クラウド・コンピューティング環境50は、クラウド消費者によって使用されるローカル計算デバイス、たとえば、携帯情報端末(PDA)またはセルラ電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54Nあるいはその組合せなど、がそれを用いて通信することができる、1つまたは複数のクラウド・コンピューティング・ノード10を含む。ノード10は、互いに通信し得る。それらは、1つまたは複数のネットワーク、たとえば、前述のようなプライベート、コミュニティ、公衆、またはハイブリッド・クラウド、あるいはその組合せ、において物理的にまたは仮想的にグループ化され得る(図示せず)。これは、クラウド消費者がローカル計算デバイスで資源を維持する必要がないサービスとしてインフラストラクチャ、プラットフォームまたはソフトウェアあるいはその組合せをクラウド・コンピューティング環境50が提供することを可能にする。図4に示された計算デバイス54A~Nのタイプは単に例示を意図されていることと、コンピューティング・ノード10およびクラウド・コンピューティング環境50は任意のタイプのネットワークまたはネットワーク・アドレス可能接続(たとえば、ウェブ・ブラウザを使用)あるいはその両方を介して任意のタイプのコンピュータ化されたデバイスと通信し得ることとが、理解される。 Referring now to Figure 4, an exemplary cloud computing environment 50 is depicted. As shown, cloud computing environment 50 includes local computing devices used by cloud consumers, such as personal digital assistants (PDA) or cellular phones 54A, desktop computers 54B, laptop computers 54C, or automobiles. includes one or more cloud computing nodes 10 with which computer systems 54N, or combinations thereof, may communicate. Nodes 10 may communicate with each other. They may be physically or virtually grouped in one or more networks, eg, private, community, public, or hybrid clouds as described above, or combinations thereof (not shown). This enables cloud computing environment 50 to provide infrastructure, platform and/or software as a service that does not require cloud consumers to maintain resources on local computing devices. The types of computing devices 54A-N shown in FIG. 4 are intended to be exemplary only, and that computing nodes 10 and cloud computing environment 50 may have any type of network or network-addressable connection (e.g., , using a web browser), or both, with any type of computerized device.

ここで図5を参照すると、クラウド・コンピューティング環境50(図4)によって提供される1セットの機能的抽象化層が、示されている。図5に示された構成要素、層、および機能は単に例示を意図されており、本発明の実施形態はそれに限定されない、ということをあらかじめ理解されたい。描かれているように、以下の層および対応する機能が、提供される: Referring now to Figure 5, a set of functional abstraction layers provided by cloud computing environment 50 (Figure 4) is shown. It should be foreseen that the components, layers, and functions shown in FIG. 5 are intended to be exemplary only, and that embodiments of the present invention are not so limited. As depicted, the following layers and corresponding functions are provided:

ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素の例には、以下が含まれる:メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャベースのサーバ62、サーバ63、ブレード・サーバ64、記憶デバイス65、ならびにネットワークおよびネットワーク構成要素66。いくつかの実施形態では、ソフトウェア構成要素は、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。 Hardware and software layer 60 includes hardware and software components. Examples of hardware components include: mainframes 61, RISC (reduced instruction set computer) architecture-based servers 62, servers 63, blade servers 64, storage devices 65, and networks and network components. 66. In some embodiments, the software components include network application server software 67 and database software 68 .

仮想化層70は、仮想エンティティの以下の例がそこから提供され得る、抽象化層を提供する:仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75。 The virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual servers 71, virtual storage 72, virtual networks 73 including virtual private networks, virtual applications and operating systems. 74, as well as virtual clients 75;

1つの例において、管理層80は、後述される機能を提供し得る。資源プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために使用されるコンピューティング資源および他の資源の動的調達を提供する。計測および価格決定82は、資源がクラウド・コンピューティング環境内で使用されるときの費用追跡、およびこれらの資源の消費に関する課金もしくは請求を提供する。1つの例において、これらの資源は、アプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、クラウド消費者およびタスクの同一性検証、ならびにデータおよび他の資源の保護を提供する。ユーザ・ポータル83は、消費者およびシステム管理者のクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、必要なサービス・レベルが満たされるように、クラウド・コンピューティング資源割り当ておよび管理を提供する。サービス水準合意(SLA)の企画および履行85は、SLAに従って将来の要求が予期されるクラウド・コンピューティング資源の事前手配、および調達を提供する。 In one example, management layer 80 may provide the functionality described below. Resource provisioning 81 provides dynamic procurement of computing and other resources used to perform tasks within the cloud computing environment. Metering and pricing 82 provides cost tracking as resources are used within the cloud computing environment and billing or billing for consumption of those resources. In one example, these resources may include application software licenses. Security provides identity verification of cloud consumers and tasks, and protection of data and other resources. User portal 83 provides access to the cloud computing environment for consumers and system administrators. Service level management 84 provides cloud computing resource allocation and management such that required service levels are met. Planning and fulfillment of service level agreements (SLAs) 85 provides for pre-arranging and procurement of cloud computing resources in anticipation of future demand according to SLAs.

ワークロード層90は、そのためにクラウド・コンピューティング環境が使用され得る、機能性の例を提供する。この層から提供され得るワークロードおよび機能の例には、以下が含まれる:マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ分析処理94、トランザクション処理95、およびソフトウェア・コンテナの実行時間環境決定96。 Workload tier 90 provides an example of functionality for which a cloud computing environment may be used. Examples of workloads and functions that may be provided from this layer include: mapping and navigation 91, software development and lifecycle management 92, virtual classroom teaching delivery 93, data analysis processing 94, transaction processing 95, and software. • Determining the runtime environment 96 of the container.

本開示の様々な実施形態の記述は、説明を目的として提示されてあるが、包括的であることまたは開示された実施形態に限定されることは意図されていない。多数の修正形態および変更形態が、記載された実施形態の範囲および思想を逸脱せずに当業者には明らかとなろう。本明細書で使用される専門用語は、実施形態の原理、実際の適用または市場で見つかる技術への技術的改良を説明するために、あるいは本明細書で開示される実施形態を他の当業者が理解することを可能にするために、選ばれた。 The description of various embodiments of the present disclosure has been presented for purposes of illustration, but is not intended to be exhaustive or limited to the disclosed embodiments. Numerous modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein may be used to describe principles of the embodiments, practical applications, or technical improvements to technology found on the market, or to explain the embodiments disclosed herein to others skilled in the art. was chosen to allow the understanding of

本発明は、任意の可能な技術的詳細レベルの統合における、システム、方法、またはコンピュータ・プログラム製品あるいはその組合せでもよい。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実施させるためのコンピュータ可読プログラム命令を有する1つまたは複数のコンピュータ可読記憶媒体を含み得る。 The present invention may be a system, method, or computer program product, or combination thereof, in any level of technical detail possible. A computer program product may include one or more computer-readable storage media having computer-readable program instructions for causing a processor to implement aspects of the present invention.

コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および記憶することができる有形デバイスであり得る。コンピュータ可読記憶媒体は、たとえば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または前述の任意の適切な組合せでもよいが、これらに限定されない。コンピュータ可読記憶媒体のより多くの特定の例の非包括的リストには、以下が含まれる:携帯用コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、携帯用CD-ROM、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、パンチカードもしくは命令が記録された溝内の隆起した構造体などの機械的にエンコードされたデバイス、および前述の任意の適切な組合せ。本明細書では、コンピュータ可読記憶媒体は、一過性の信号自体、たとえば、無線波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を伝播する電磁波(たとえば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号、であるとして解釈されるべきではない。 A computer-readable storage medium may be a tangible device capable of holding and storing instructions for use by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer readable storage media include: portable computer diskettes, hard disks, random access memory (RAM), read only memory (ROM) ), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable CD-ROM, digital versatile disk (DVD), memory stick, floppy disk Mechanically encoded devices such as discs, punched cards or raised structures in grooves on which instructions are recorded, and any suitable combination of the foregoing. As used herein, computer-readable storage media refers to transient signals themselves, e.g., radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating in waveguides or other transmission media (e.g., fiber optic cables). light pulse passing through a wire), or an electrical signal transmitted through a wire.

本明細書に記載のコンピュータ可読プログラム命令は、それぞれの計算/処理デバイスにコンピュータ可読記憶媒体から、あるいは、ネットワーク、たとえば、インターネット、ローカル・エリア・ネットワーク、広域ネットワークもしくはワイヤレス・ネットワークまたはその組合せ、を介して外部コンピュータまたは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを含み得る。各計算/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、それぞれの計算/処理デバイス内のコンピュータ可読記憶媒体において記憶するためにコンピュータ可読プログラム命令を転送する。 The computer readable program instructions described herein can be transferred to a respective computing/processing device from a computer readable storage medium or over a network such as the Internet, a local area network, a wide area network or a wireless network or combinations thereof. can be downloaded to an external computer or external storage device via A network may include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers or edge servers, or a combination thereof. A network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the respective computing/processing device. do.

本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存の命令、マイクロコード、ファームウェア命令、状態・状況データ、集積回路のための構成データ、あるいは、Smalltalk、C++などのオブジェクト指向プログラミング言語、および手続き型プログラミング言語、たとえば、「C」プログラミング言語または類似のプログラミング言語、を含む、1つまたは複数のプログラミング言語の任意の組合せで書き込まれたソース・コードまたはオブジェクト・コードでもよい。コンピュータ可読プログラム命令は、ユーザのコンピュータで完全に、ユーザのコンピュータで部分的に、スタンドアロンのソフトウェア・パッケージとして、ユーザのコンピュータで部分的におよびリモート・コンピュータで部分的に、あるいはリモート・コンピュータまたはサーバで完全に実行し得る。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む、任意のタイプのネットワークを介してユーザのコンピュータに接続され得る、あるいは、接続は、外部コンピュータに(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)行われ得る。いくつかの実施形態では、たとえば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む、電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を使用して電子回路をカスタマイズすることによって、コンピュータ可読プログラム命令を実行し得る。 Computer readable program instructions for implementing the operations of the present invention include assembler instructions, Instruction Set Architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state and status data, for integrated circuits. or in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, and procedural programming languages, e.g., the "C" programming language or similar programming languages It may be written source code or object code. The computer-readable program instructions may reside entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or on a remote computer or server. can be fully executed with In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or wide area network (WAN), or the connection may be an external computer (eg, over the Internet using an Internet service provider). In some embodiments, electronic circuits including, for example, programmable logic circuits, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) are computer readable to carry out aspects of the invention. Computer readable program instructions may be executed by customizing electronic circuitry using the state information of the program instructions.

本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図の解説またはブロック図あるいはその両方を参照して、本明細書で説明されている。流れ図の解説またはブロック図あるいはその両方の各ブロック、および流れ図の解説またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実装され得る、ということが理解されよう。 Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/活動を実装するための手段を生み出すように、これらのコンピュータ可読プログラム命令は、汎用コンピュータ、特定目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを生み出し得る。命令が記憶されたコンピュータ可読記憶媒体が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/活動の態様を実装する命令を含む製品を含むように、これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに特定の方式で機能するように指示することができるコンピュータ可読記憶媒体に記憶され得る。 Instructions executing through a processor of a computer or other programmable data processing apparatus produce means for implementing the functions/acts specified in one or more blocks of the flowchart illustrations and/or block diagrams. , these computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine. A computer-readable storage medium having instructions stored thereon may comprise an article of manufacture that includes instructions for implementing aspects of the functions/activities specified in one or more blocks of the flow diagrams and/or block diagrams. Program instructions may also be stored on a computer-readable storage medium capable of directing a computer, programmable data processing device, or other device, or combination thereof, to function in a specific manner.

コンピュータ、他のプログラマブル装置、または他のデバイスで実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/活動を実装するように、コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、コンピュータ、他のプログラマブル装置または他のデバイスで一連の動作ステップを実行させて、コンピュータ実施プロセスを生み出し得る。 Computer readable program instructions also such that the instructions executing on a computer, other programmable apparatus, or other device implement the functions/acts specified in one or more blocks of the flowchart illustrations and/or block diagrams. , computer or other programmable data processing apparatus, or other device to cause the computer, other programmable apparatus, or other device to perform a series of operational steps to produce a computer-implemented process.

図中の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を説明する。この関連で、流れ図またはブロック図中の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表し得る。いくつかの代替実装形態において、ブロックで言及された機能は、図において言及された順番以外で生じ得る。たとえば、連続して示された2つのブロックは、実際には、1つのステップとして完遂する、同時に、実質的に同時に、部分的にまたは完全に時間的に重複する方式で実行することができ、あるいは、それらのブロックは、関連する機能性に応じて、時には逆順で実行され得る。ブロック図または流れ図解説あるいはその両方の各ブロック、ならびにブロック図または流れ図解説あるいはその両方のブロックの組合せは、指定された機能もしくは活動を実行するまたは特定目的ハードウェアおよびコンピュータ命令の組合せを実施する特定目的のハードウェアベースのシステムによって、実装され得る、ということにも留意されたい。 The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions containing one or more executable instructions to implement the specified logical function. In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may actually be executed concurrently, substantially contemporaneously, partially or completely in a temporally overlapping fashion to accomplish as one step; Alternatively, the blocks may sometimes be executed in reverse order, depending on the functionality involved. Each block in the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, is intended to perform a specified function or activity or implement a combination of special purpose hardware and computer instructions. Note also that it can be implemented by any hardware-based system of interest.

Claims (20)

ソフトウェア・コンテナの静的パラメータを識別することであって、前記静的パラメータが前記ソフトウェア・コンテナ自体のメタデータに関連する、前記静的パラメータを識別することと、
第1の機械学習モデルを使用して前記静的パラメータに基づいて前記ソフトウェア・コンテナを選択された実行時間環境に割り当てることと、
実行時間に前記ソフトウェア・コンテナを分析することによって前記ソフトウェア・コンテナの実行時間パラメータを識別することであって、前記実行時間パラメータが、前記ソフトウェア・コンテナによって実行時間中に必要とされる動作に関連する、前記実行時間パラメータを識別することと、
第2の機械学習モデルを使用して、前記選択された実行時間環境は前記実行時間パラメータにマッチすると決定することに応答して、前記選択された実行時間環境において前記ソフトウェア・コンテナを実行し続けることと、
前記第2の機械学習モデルを使用して、前記選択された実行時間環境は前記実行時間パラメータにマッチしないと決定することに応答して、前記静的パラメータと前記実行時間パラメータとの両方にマッチする異なる実行時間環境において前記ソフトウェア・コンテナを実行することと
を含む、コンピュータ実施方法。
identifying static parameters of a software container, the static parameters relating to metadata of the software container itself;
assigning the software container to a selected runtime environment based on the static parameters using a first machine learning model;
identifying run-time parameters of the software container by analyzing the software container at run-time, wherein the run-time parameters relate to operations required by the software container during run-time; identifying the run-time parameter for
continuing execution of the software container in the selected runtime environment in response to determining that the selected runtime environment matches the runtime parameters using a second machine learning model; and
Matching both the static parameter and the run-time parameter in response to determining that the selected run-time environment does not match the run-time parameter using the second machine learning model. and executing the software container in different runtime environments.
実行時間中に前記ソフトウェア・コンテナの性能をモニタすることと、
前記性能に基づいて前記第1の機械学習モデルを更新することと、
前記性能に基づいて前記第2の機械学習モデルを更新することと
をさらに含む、請求項1に記載のコンピュータ実施方法。
monitoring performance of the software container during runtime;
updating the first machine learning model based on the performance;
2. The computer-implemented method of claim 1, further comprising: updating the second machine learning model based on the performance.
前記性能が、少なくとも中央処理装置(CPU)使用量、メモリ使用量、および入力/出力(I/O)メトリックについてモニタされる、請求項2に記載のコンピュータ実施方法。 3. The computer-implemented method of claim 2, wherein the performance is monitored for at least central processing unit (CPU) usage, memory usage, and input/output (I/O) metrics. 前記静的パラメータが、予備の静的パラメータであり、前記コンピュータ実施方法がさらに、
実行時間に前記ソフトウェア・コンテナを分析することによって前記ソフトウェア・コンテナの実時間静的パラメータを識別することと、
前記第2の機械学習モデルを使用して、前記選択された実行時間環境は前記実時間静的パラメータと前記実行時間パラメータとの両方にマッチすると決定することに応答して、前記選択された実行時間環境において前記ソフトウェア・コンテナを実行し続けることと、
前記第2の機械学習モデルを使用して、前記選択された実行時間環境は前記実時間静的パラメータおよび前記実行時間パラメータにマッチしないと決定することに応答して、前記実時間パラメータと前記実行時間パラメータとの両方にマッチする前記異なる実行時間環境において前記ソフトウェア・コンテナを実行することと
を含む、請求項1ないし3のいずれか一項に記載のコンピュータ実施方法。
the static parameter is a preliminary static parameter, the computer-implemented method further comprising:
identifying real-time static parameters of the software container by analyzing the software container at runtime;
the selected execution in response to determining, using the second machine learning model, that the selected runtime environment matches both the real-time static parameters and the runtime parameters; continuing to run the software container in a time environment;
responsive to determining that the selected runtime environment does not match the real-time static parameters and the runtime parameters using the second machine learning model; 4. The computer-implemented method of any one of claims 1-3, comprising: executing the software container in the different runtime environment that matches both a time parameter and a time parameter.
前記実行時間中に前記ソフトウェア・コンテナを分析することによって前記実時間静的パラメータまたは前記実行時間パラメータのいずれかの1つまたは複数の更新情報を、所定のスケジュールに従って前記実行時間パラメータを前記識別することの後に、識別することと、
前記第2の機械学習モデルを使用して、前記更新情報により、前記選択された実行時間環境は前記実時間静的パラメータと前記実行時間パラメータとの両方にまだマッチすると決定することに応答して、前記選択された実行時間環境において前記ソフトウェア・コンテナを実行することと、
前記第2の機械学習モデルを使用して、前記更新情報により、前記選択された実行時間環境は前記実時間静的パラメータおよび前記実行時間パラメータにマッチしないと決定することに応答して、前記異なる実行時間環境において前記ソフトウェア・コンテナを実行することと
をさらに含む、請求項4に記載のコンピュータ実施方法。
identifying one or more updates to either the real-time static parameters or the run-time parameters by analyzing the software container during the run-time, and identifying the run-time parameters according to a predetermined schedule; identifying after the
in response to determining, using the second machine learning model, that with the updated information, the selected runtime environment still matches both the real-time static parameters and the runtime parameters. , executing the software container in the selected runtime environment;
In response to determining, using the second machine learning model, that the update information does not match the selected run-time environment to the real-time static parameters and the run-time parameters, the different 5. The computer-implemented method of claim 4, further comprising: executing the software container in a runtime environment.
前記1つまたは複数の更新情報の数量または重大度は閾値未満であると決定することに応答して、前記所定のスケジュールに従って前記実行時間中に前記ソフトウェア・コンテナのその後の分析を終了することをさらに含む、請求項5に記載のコンピュータ実施方法。 terminating subsequent analysis of the software container during the execution time according to the predetermined schedule, in response to determining that the quantity or severity of the one or more updates is below a threshold; 6. The computer-implemented method of claim 5, further comprising: 前記実行時間パラメータが、前記ソフトウェア・コンテナがその一部である計算プロセスを含む、請求項1ないし6のいずれか一項に記載のコンピュータ実施方法。 7. The computer-implemented method of any one of claims 1-6, wherein the run-time parameter comprises a computational process of which the software container is a part. 前記静的パラメータが、
ソフトウェア・コンテナのタイプと、
前記ソフトウェア・コンテナのテンプレートと、
前記ソフトウェア・コンテナのカテゴリと
を含む、請求項1ないし7のいずれか一項に記載のコンピュータ実施方法。
The static parameter is
the type of software container;
a template for the software container;
8. The computer-implemented method of any one of claims 1-7, comprising: the category of software containers;
前記実行時間パラメータが、
1時間当たりの負荷バランシング動作の数と、
自動ロールバックの数と、
1時間当たりの自動的ビン・パッキング動作の数と、
1時間当たりの自己回復アクションの数と
を含む、請求項1ないし8のいずれか一項に記載のコンピュータ実施方法。
said run-time parameter is
the number of load balancing operations per hour; and
the number of automatic rollbacks and
the number of automatic bin-packing operations per hour;
9. The computer-implemented method of any one of claims 1-8, comprising: a number of self-healing actions per hour;
プロセッサと、
前記プロセッサと通信するメモリであって、
ソフトウェア・コンテナの静的パラメータを識別することであって、前記静的パラメータが前記ソフトウェア・コンテナ自体のメタデータに関連する、前記静的パラメータを識別すること、
第1の機械学習モデルを使用して前記静的パラメータに基づいて前記ソフトウェア・コンテナを選択された実行時間環境に割り当てること、
実行時間に前記ソフトウェア・コンテナを分析することによって前記ソフトウェア・コンテナの実行時間パラメータを識別することであって、前記実行時間パラメータが、前記ソフトウェア・コンテナによって実行時間中に必要とされる動作に関連する、前記実行時間パラメータを識別すること、
第2の機械学習モデルを使用して、前記選択された実行時間環境は前記実行時間パラメータにマッチすると決定することに応答して、前記選択された実行時間環境において前記ソフトウェア・コンテナを実行し続けること、および、
前記第2の機械学習モデルを使用して、前記選択された実行時間環境は前記実行時間パラメータにマッチしないと決定することに応答して、前記静的パラメータと前記実行時間パラメータとの両方にマッチする異なる実行時間環境において前記ソフトウェア・コンテナを実行すること
を、前記プロセッサによって実行されるとき、前記プロセッサに行わせる命令を含む前記メモリと
を備える、システム。
a processor;
a memory in communication with the processor, comprising:
identifying static parameters of a software container, the static parameters relating to metadata of the software container itself;
assigning the software container to a selected runtime environment based on the static parameters using a first machine learning model;
identifying run-time parameters of the software container by analyzing the software container at run-time, wherein the run-time parameters relate to operations required by the software container during run-time; identifying the run-time parameter;
continuing execution of the software container in the selected runtime environment in response to determining that the selected runtime environment matches the runtime parameters using a second machine learning model; that, and
Matching both the static parameter and the run-time parameter in response to determining that the selected run-time environment does not match the run-time parameter using the second machine learning model. and said memory containing instructions that, when executed by said processor, cause said processor to execute said software container in different runtime environments.
前記メモリが、前記プロセッサによって実行されるときに、
実行時間中に前記ソフトウェア・コンテナの性能をモニタすることと、
前記性能に基づいて前記第1の機械学習モデルを更新することと、
前記性能に基づいて前記第2の機械学習モデルを更新することと
を前記プロセッサに行わせる追加命令を含む、請求項10に記載のシステム。
When the memory is executed by the processor,
monitoring performance of the software container during runtime;
updating the first machine learning model based on the performance;
11. The system of claim 10, comprising additional instructions that cause the processor to: update the second machine learning model based on the performance.
前記性能が、少なくとも中央処理装置(CPU)使用量、メモリ使用量、および入力/出力(I/O)メトリックについてモニタされる、請求項11に記載のシステム。 12. The system of claim 11, wherein the performance is monitored for at least central processing unit (CPU) usage, memory usage, and input/output (I/O) metrics. 前記静的パラメータが、予備の静的パラメータであり、前記メモリが、
実行時間に前記ソフトウェア・コンテナを分析することによって前記ソフトウェア・コンテナの実時間静的パラメータを識別することと、
前記第2の機械学習モデルを使用して、前記選択された実行時間環境は前記実時間静的パラメータと前記実行時間パラメータとの両方にマッチすると決定することに応答して、前記選択された実行時間環境において前記ソフトウェア・コンテナを実行し続けることと、
前記第2の機械学習モデルを使用して、前記選択された実行時間環境は前記実時間静的パラメータおよび前記実行時間パラメータにマッチしないと決定することに応答して、前記実時間パラメータと前記実行時間パラメータとの両方にマッチする前記異なる実行時間環境において前記ソフトウェア・コンテナを実行することと
を、前記プロセッサによって実行されるとき、前記プロセッサに行わせる追加命令を含む、請求項10ないし12のいずれ一項に記載のシステム。
the static parameter is a spare static parameter, and the memory comprises:
identifying real-time static parameters of the software container by analyzing the software container at runtime;
the selected execution in response to determining, using the second machine learning model, that the selected runtime environment matches both the real-time static parameters and the runtime parameters; continuing to run the software container in a time environment;
responsive to determining that the selected runtime environment does not match the real-time static parameters and the runtime parameters using the second machine learning model; executing the software container in the different runtime environment that matches both a time parameter and a time parameter; The system according to item 1.
前記メモリが、
前記実行時間中に前記ソフトウェア・コンテナを分析することによって前記実時間静的パラメータまたは前記実行時間パラメータのいずれかの1つまたは複数の更新情報を、所定のスケジュールに従って前記実行時間パラメータを前記識別することの後に、識別することと、
第2の機械学習モデルを使用して、前記更新情報により、前記選択された実行時間環境は前記実時間静的パラメータと前記実行時間パラメータとの両方にまだマッチすると決定することに応答して、前記選択された実行時間環境において前記ソフトウェア・コンテナを実行することと、
第2の機械学習モデルを使用して、前記更新情報により、前記選択された実行時間環境は前記実時間静的パラメータおよび前記実行時間パラメータにマッチしないと決定することに応答して、前記異なる実行時間環境において前記ソフトウェア・コンテナを実行することと
を、前記プロセッサによって実行されるとき、前記プロセッサに行わせる、追加命令を含む、請求項13に記載のシステム。
the memory
identifying one or more updates to either the real-time static parameters or the run-time parameters by analyzing the software container during the run-time, and identifying the run-time parameters according to a predetermined schedule; identifying after the
in response to determining, using a second machine learning model, that the updated information still matches the selected run-time environment with both the real-time static parameters and the run-time parameters; executing the software container in the selected runtime environment;
using a second machine learning model, in response to determining from the updated information that the selected runtime environment does not match the real-time static parameters and the runtime parameters; 14. The system of claim 13, comprising additional instructions that, when executed by the processor, cause the processor to: execute the software container in a time environment.
前記メモリが、前記プロセッサによって実行されるとき、前記1つまたは複数の更新情報の数量または重大度は閾値未満であると決定することに応答して前記所定のスケジュールに従って前記実行時間中に前記ソフトウェア・コンテナのその後の分析を前記プロセッサに終了させる、追加命令を含む、請求項14に記載のシステム。 the memory, when executed by the processor, in response to determining that the quantity or severity of the one or more updates is below a threshold; 15. The system of claim 14, comprising additional instructions that cause the processor to finish subsequent analysis of the container. プログラム命令がそれとともに実施されるコンピュータ可読記憶媒体を備えるコンピュータ・プログラム製品であって、前記プログラム命令が、
ソフトウェア・コンテナの実行時間環境の静的パラメータを識別することであって、前記静的パラメータが前記ソフトウェア・コンテナ自体のメタデータに関連する、前記静的パラメータを識別することと、
第1の機械学習モデルを使用して、前記静的パラメータに基づいて前記ソフトウェア・コンテナを選択された実行時間環境に割り当てることと、
実行時間に前記ソフトウェア・コンテナを分析することによって前記ソフトウェア・コンテナの実行時間パラメータを識別することであって、前記実行時間パラメータが、前記ソフトウェア・コンテナによって実行時間中に必要とされる動作に関連する、前記実行時間パラメータを識別することと、
第2の機械学習モデルを使用して、前記選択された実行時間環境は前記実行時間パラメータにマッチすると決定することに応答して、前記選択された実行時間環境において前記ソフトウェア・コンテナを実行し続けることと、
第2の機械学習モデルを使用して、前記選択された実行時間環境は前記実行時間パラメータにマッチしないと決定することに応答して、前記静的パラメータと前記実行時間パラメータとの両方にマッチする異なる実行時間環境において前記ソフトウェア・コンテナを実行することと
をコンピュータに行わせるために前記コンピュータによって実行可能である、コンピュータ・プログラム製品。
A computer program product comprising a computer-readable storage medium with program instructions embodied thereon, said program instructions for:
identifying static parameters of a runtime environment of a software container, the static parameters relating to metadata of the software container itself;
assigning the software containers to selected runtime environments based on the static parameters using a first machine learning model;
identifying run-time parameters of the software container by analyzing the software container at run-time, wherein the run-time parameters relate to operations required by the software container during run-time; identifying the run-time parameter for
continuing execution of the software container in the selected runtime environment in response to determining that the selected runtime environment matches the runtime parameters using a second machine learning model; and
Match both the static parameter and the run-time parameter in response to determining that the selected run-time environment does not match the run-time parameter using a second machine learning model. A computer program product executable by said computer to cause said computer to: run said software container in a different runtime environment.
前記コンピュータ可読記憶媒体が、
前記コンピュータによって実行されるとき、前記コンピュータに
実行時間中に前記ソフトウェア・コンテナの性能をモニタすることと、
前記性能に基づいて前記第1の機械学習モデルを更新することと、
前記性能に基づいて前記第2の機械学習モデルを更新することと
を行わせる追加プログラム命令を含む、請求項16に記載のコンピュータ・プログラム製品。
The computer-readable storage medium is
monitoring the performance of the software container during runtime to the computer when executed by the computer;
updating the first machine learning model based on the performance;
17. The computer program product of claim 16, comprising additional program instructions to: update the second machine learning model based on the performance;
前記性能が、少なくとも中央処理装置(CPU)使用量、メモリ使用量、および入力/出力(I/O)メトリックについてモニタされる、請求項17に記載のコンピュータ・プログラム製品。 18. The computer program product of claim 17, wherein the performance is monitored for at least central processing unit (CPU) usage, memory usage, and input/output (I/O) metrics. 前記静的パラメータが、予備の静的パラメータであり、前記コンピュータ可読記憶媒体が、
前記実行時間より前に前記ソフトウェア・コンテナを分析することによって前記ソフトウェア・コンテナの実時間静的パラメータを識別することと、
第2の機械学習モデルを使用して、前記選択された実行時間環境は前記実時間静的パラメータと前記実行時間パラメータとの両方にマッチすると決定することに応答して、前記選択された実行時間環境において前記ソフトウェア・コンテナを実行し続けることと、
第2の機械学習モデルを使用して、前記選択された実行時間環境は前記実時間静的パラメータおよび前記実行時間パラメータにマッチしないと決定することに応答して、前記異なる実行時間環境において前記ソフトウェア・コンテナを実行することと
を、前記コンピュータによって実行されるとき、前記コンピュータに行わせる追加プログラム命令を含む、請求項16ないし18のいずれか一項に記載のコンピュータ・プログラム製品。
wherein the static parameter is a preliminary static parameter, and the computer-readable storage medium comprises:
identifying real-time static parameters of the software container by analyzing the software container prior to the execution time;
the selected runtime in response to determining, using a second machine learning model, that the selected runtime environment matches both the real-time static parameter and the runtime parameter; continuing to run the software container in an environment;
the software in the different runtime environment in response to determining that the selected runtime environment does not match the real-time static parameters and the runtime parameters using a second machine learning model; 19. A computer program product according to any one of claims 16 to 18, comprising additional program instructions which, when executed by said computer, cause said computer to: - run a container.
前記コンピュータ可読記憶媒体が、
前記実行時間中に前記ソフトウェア・コンテナを分析することによって前記実時間静的パラメータまたは前記実行時間パラメータのいずれかの1つまたは複数の更新情報を、前記実行時間パラメータを前記識別することの後におよび所定のスケジュールに従って、識別することと、
第2の機械学習モデルを使用して、前記更新情報により、前記選択された実行時間環境は前記実時間静的パラメータと前記実行時間パラメータとの両方にまだマッチすると決定することに応答して、前記選択された実行時間環境において前記ソフトウェア・コンテナを実行し続けることと、
第2の機械学習モデルを使用して、前記更新情報により、前記選択された実行時間環境は前記実時間静的パラメータおよび前記実行時間パラメータにマッチしないと決定することに応答して、前記異なる実行時間環境において前記ソフトウェア・コンテナを実行することと
を、前記コンピュータによって実行されるとき、前記コンピュータに行わせる追加プログラム命令を含む、請求項19に記載のコンピュータ・プログラム製品。
The computer-readable storage medium is
one or more updates to either the real-time static parameters or the run-time parameters by analyzing the software container during the run-time, after the identifying the run-time parameters; and identifying according to a predetermined schedule;
in response to determining, using a second machine learning model, that the updated information still matches the selected run-time environment with both the real-time static parameters and the run-time parameters; continuing to run the software container in the selected runtime environment;
using a second machine learning model, in response to determining from the updated information that the selected runtime environment does not match the real-time static parameters and the runtime parameters; 20. The computer program product of claim 19, comprising additional program instructions that, when executed by the computer, cause the computer to: execute the software container in a time environment.
JP2023503107A 2020-07-22 2021-07-21 Run-time environment determination for software containers Pending JP2023535168A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/935,921 US20220027778A1 (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
JP2023535168A true JP2023535168A (en) 2023-08-16

Family

ID=79689095

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023503107A Pending JP2023535168A (en) 2020-07-22 2021-07-21 Run-time environment determination for software containers

Country Status (6)

Country Link
US (1) US20220027778A1 (en)
JP (1) JP2023535168A (en)
CN (1) CN116134419A (en)
DE (1) DE112021003184T5 (en)
GB (1) GB2611993A (en)
WO (1) WO2022018646A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113296868B (en) * 2021-07-27 2021-11-23 杭州筋斗腾云科技有限公司 Application platform and application management method
US11625240B1 (en) * 2021-09-28 2023-04-11 Red Hat, Inc. Generating rules for migrating dependencies of a software application

Family Cites Families (17)

* Cited by examiner, † Cited by third party
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
US20170154017A1 (en) * 2014-05-08 2017-06-01 Telefonaktiebolaget Lm Ericsson (Publ) Web Application Management
US10104166B2 (en) * 2014-05-20 2018-10-16 Citrix Systems, Inc. Systems and methods for providing load balancing as a service
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
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
US20200117576A1 (en) * 2018-10-12 2020-04-16 Ca, Inc. Assessing the container-readiness of software applications
JP7081514B2 (en) * 2019-01-30 2022-06-07 日本電信電話株式会社 Autoscale type performance guarantee system and autoscale type performance guarantee method
DE102019112485A1 (en) * 2019-05-13 2020-11-19 Eberhard-Karls-Universität Tübingen Procedure for selectively executing a container
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
US20230008176A1 (en) * 2019-12-13 2023-01-12 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

Also Published As

Publication number Publication date
US20220027778A1 (en) 2022-01-27
CN116134419A (en) 2023-05-16
DE112021003184T5 (en) 2023-04-20
WO2022018646A1 (en) 2022-01-27
GB202301816D0 (en) 2023-03-29
GB2611993A (en) 2023-04-19

Similar Documents

Publication Publication Date Title
US10614269B2 (en) Training data update
US11663486B2 (en) Intelligent learning system with noisy label data
US11340924B2 (en) Machine-learning based heap memory tuning
US11483211B2 (en) Infrastructure discovery and analysis
US11595269B1 (en) Identifying upgrades to an edge network by artificial intelligence
US20220092464A1 (en) Accelerated machine learning
JP2023535168A (en) Run-time environment determination for software containers
US20180060737A1 (en) Adaptive analytical modeling tool
US11663228B2 (en) Automated management of data transformation flows based on semantics
US11573770B2 (en) Container file creation based on classified non-functional requirements
US20230186107A1 (en) Boosting classification and regression tree performance with dimension reduction
US11556558B2 (en) Insight expansion in smart data retention systems
US11782918B2 (en) Selecting access flow path in complex queries
JP2022092604A (en) Computer-implemented method, system and computer program (automated extension of program data storage)
CN114492808A (en) Early experimental stop for batch bayesian optimization in industrial processes
JP2023521695A (en) Collaborative Neural Networks with Spatial Confinement Constraints
US11568235B2 (en) Data driven mixed precision learning for neural networks
US20220198268A1 (en) Estimated online hard negative mining via probabilistic selection and scores history consideration
US11847431B2 (en) Automatic container specification file generation for a codebase
US20230136461A1 (en) Data allocation with user interaction in a machine learning system
US11900106B2 (en) Personalized patch notes based on software usage
US20230099635A1 (en) Context aware automated artificial intelligence framework
TWI822290B (en) Computer-implemented method, computer system and computer program product related to federated learning for training machine learning models
US20230114013A1 (en) Enhanced machine learning pipelines with multiple objectives and tradeoffs
WO2022227860A1 (en) Fair simultaneous comparison of parallel machine learning models

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230202

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231212