System, method, and server for optimizing the deployment of containerized applications
Patent Information
- Application Number
- JP2023503187
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2020-07-17
- Publication Date
- 2025-03-26
- Estimated Expiration
- 2040-07-17
Smart Images

Figure 0007651678000001 
Figure 0007651678000002 
Figure 0007651678000003
Abstract
Description
[Technical field]
[0001]
[0001] The present disclosure relates to orchestrating containerized applications. [Background technology]
[0002]
[0002] Containers provide a logical packaging mechanism by which applications can be abstracted from the environment in which they actually run. This allows container-based, or containerized, applications to be consistently deployed regardless of whether the target environment is a private data center, a public cloud, or a developer's personal laptop. Similar to a virtual machine, which provides a guest OS running on top of a host operating system (OS) with virtualized access to the underlying hardware, containers allow applications to be packaged with libraries and other dependencies, thereby providing an isolated environment for running software services. However, containers provide a much more lightweight unit for developers and information technology operations teams to work with, which comes with a myriad of benefits. For example, instead of virtualizing the hardware stack, containers virtualize at the OS level, and multiple containers run directly on the OS kernel. By sharing the OS kernel, containerized applications start much faster and can use a fraction of the memory consumed by booting an entire OS. Moreover, containers allow developers to package applications along with their dependencies into a single concise manifest that can be version controlled, enabling easy replication of applications across developers on a given team and machines across a cluster.
[0003]
[0003] For these reasons, containerized applications and container orchestrators such as Kubernetes, Docker Swarm, and Apache Mesos are being deployed ubiquitously. For example, containerized applications and associated orchestrators can be found in finance, telecommunications, and e-commerce.
[0004]
[0004] Naturally, as more enterprises adopt and deploy containerized applications, a diverse range of problems with implementing containerized workloads emerge. For example, the inability to efficiently assign correct values to internal application parameters to achieve optimal performance with minimal resource utilization, otherwise known as application "tuning," plagues many container adopters. For these enterprises, application "tuning" remains a difficult task that is often done manually by trial and error, which is naturally a time-consuming process that applies engineering resources inefficiently while delivering suboptimal configurations. As a result, only a small percentage of cloud instances are right-sized for their respective workloads, thus leading to a significant waste of resources.
[0005]
[0005] Current solutions focus on addressing problems that arise after an application is deployed by monitoring application performance and resources and attempting to reallocate resources or resolve issues before the application crashes. Given the need to tune applications without disrupting internal or user-facing processes, this can be a risky and time-consuming process, where problems may only surface after costs rise to unmanageable levels or after customers experience service disruptions.
[0006]
[0006] Therefore, this disclosure describes an automated process for optimizing the deployment of containerized applications.
[0007] The foregoing "Technical Field" and "Background" discussions are intended to generally present the context of the present disclosure. To the extent described in this "Technical Field" and "Background" section, the inventors' work, and aspects of the discussion that may not otherwise qualify as prior art at the time of filing, are not admitted expressly or impliedly as prior art to the present invention. Summary of the Invention
[0008]
[0008] The present disclosure relates to a system, method, and server for optimizing the deployment of containerized applications.
[0009]
[0009] According to an embodiment, the present disclosure further relates to a system for optimizing deployment of a containerized application, the system comprising: a machine; and a server having a processing circuit, the server receiving optimization criteria related to the containerized application from the machine, where the optimization criteria include one or more impact parameters, one or more affected metrics, and one or more stopping criteria; transmitting at least one value of the one or more impact parameters to the machine based on the received optimization criteria; receiving results of a trial of the containerized application executed by the machine according to the at least one value of the one or more impact parameters, where the results of the trial include empirical values of the one or more affected metrics; updating an optimization model based on the at least one value of the one or more impact parameters and the empirical values of the one or more affected metrics; comparing the results of the trial and the updated optimization model to the one or more stopping criteria; and selecting an optimized value of the at least one value of the one or more impact parameters when the comparison indicates that the one or more stopping criteria are met. and transmitting optimized values of at least one value of the one or more impact parameters to a machine for deployment of the containerized application, wherein a processing circuit of the server is configured to: calculate at least one subsequent value of the one or more impact parameters based on the updated optimization model when a comparison of the results of the trial and the updated optimization model with the one or more stopping criteria indicates that the one or more stopping criteria are not met; transmit the at least one subsequent value of the one or more impact parameters to the machine; receive results of the subsequent trial including subsequent empirical values of the one or more affected metrics based on a subsequent trial of the containerized application executed by the machine according to the at least one subsequent value of the one or more impact parameters; iteratively update the updated optimization model based on the at least one subsequent value of the one or more impact parameters and the subsequent empirical values of the one or more affected metrics; compare the results of the subsequent trial and the iteratively updated optimization model with the one or more stopping criteria; and when the comparison indicates that the one or more stopping criteria are met,and selecting an optimized value of the at least one value of the one or more impact parameters and transmitting the optimized value of the at least one value of the one or more impact parameters to a machine for deployment of the containerized application.
[0010]
[0010] According to an embodiment, the present disclosure further relates to a method for optimizing deployment of a containerized application, the method including receiving, by a server, optimization criteria associated with the containerized application, where the optimization criteria include one or more impact parameters, one or more affected metrics, and one or more stopping criteria based on the one or more affected metrics; receiving, by the server, a result of a trial including empirical values of the one or more affected metrics based on a trial of the containerized application according to at least one value of the one or more impact parameters; updating, by the server, an optimization model based on the at least one value of the one or more impact parameters and the empirical values of the one or more affected metrics; comparing, by the server, the result of the trial and the updated optimization model with the one or more stopping criteria; selecting, by the server, an optimized value of the at least one value of the one or more impact parameters when the comparison indicates that the one or more stopping criteria are met; and deploying the containerized application. and transmitting an optimized value of at least one value of the one or more impact parameters to the machine for performing the at least one optimization step, the method comprising: calculating, by the server, a subsequent value of the one or more impact parameters based on the updated optimization model when the results of the trial and the updated optimization model do not satisfy the one or more stopping criteria; receiving, by the server, a result of the subsequent trial including a subsequent empirical value of the one or more affected metrics based on the subsequent trial of the containerized application according to the subsequent at least one value of the one or more impact parameters; iteratively updating, by the server, the updated optimization model based on the subsequent value of the one or more impact parameters and the subsequent empirical value of the one or more affected metrics; comparing, by the server, the results of the subsequent trial and the iteratively updated optimization model with the one or more stopping criteria; selecting, by the server, an optimized value of the at least one value of the one or more impact parameters when the comparison indicates that the one or more stopping criteria are satisfied;and transmitting the optimized value of at least one value of the one or more impact parameters to a machine for deployment of the containerized application.
[0011]
[0011] The preceding paragraphs have been provided by way of general introduction and are not intended to limit the scope of the claims which follow. The described embodiments, together with further advantages, will be best understood by reference to the following detailed description taken in conjunction with the accompanying drawings, in which:
[0012]
[0012] A more complete appreciation of the present disclosure and many of its attendant advantages will be readily obtained as the same becomes better understood by reference to the following detailed description of the preferred embodiments when considered in conjunction with the accompanying drawings. [Brief description of the drawings]
[0013] [Figure 1]
[0013] FIG. 1 is a flow diagram of a method for optimizing the deployment of containerized applications according to an illustrative embodiment of the present disclosure. [Diagram 2]
[0014] FIG. 2 is a schematic diagram of network communication between a remote processing circuit and a local processing circuit, according to an exemplary embodiment of the present disclosure. [Figure 3A]
[0015] FIG. 1 is a schematic diagram of components of method steps for optimizing deployment of containerized applications, according to an illustrative embodiment of the present disclosure. [Figure 3B]
[0016] FIG. 1 is a schematic diagram of components of method steps for optimizing deployment of containerized applications, according to an illustrative embodiment of the present disclosure. [Figure 3C]
[0017] FIG. 1 is a schematic diagram of components of method steps for optimizing deployment of containerized applications, according to an illustrative embodiment of the present disclosure. [Figure 4]
[0018] FIG. 1 is a flow diagram of a method for optimizing deployment of containerized applications, according to an illustrative embodiment of the present disclosure. [Diagram 5]
[0019] FIG. 1 is a flow diagram of a method for optimizing deployment of containerized applications, according to an illustrative embodiment of the present disclosure. [Figure 6]
[0020] FIG. 1 is a schematic diagram of components of sub-processes of a method for optimizing the deployment of containerized applications, according to an illustrative embodiment of the present disclosure. [Figure 7]
[0021] FIG. 1 is a schematic diagram of a hardware configuration of a server for performing a method for optimizing the deployment of containerized applications, according to an exemplary embodiment of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0014]
[0022] The terms "a" or "an," as used herein, are defined as one or more. The term "plurality," as used herein, is defined as two or more. The term "another," as used herein, is defined as at least a second or more. The terms "including" and / or "having," as used herein, are defined as comprising (i.e., open language). References throughout this document to "one embodiment," "certain embodiment," "an embodiment," "an implementation," "an example," or similar terms mean that a particular feature, structure, or characteristic described in connection with an embodiment is included in at least one embodiment of the present disclosure. Thus, the appearances of such phrases or in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments without limitation.
[0015]
[0023] As explained above, application "tuning" is an obviously difficult, yet necessary process. However, for most application developers, application "tuning" is a manual process, where engineers guess the correct parameter values, attempt to deploy the application based on the guessed parameter values, monitor the results of the deployment, and tweak the guessed parameter values to find a workable set. This iterative trial-and-error process is time-consuming for engineering teams and does not result in true optimization, but instead provides a "good enough" set of parameter values. Moreover, in this way, each "new" set of parameter value proposals is never noticed other than that it differs from the previous guess. In order to perform application "tuning" efficiently, an automated technique is needed that intelligently generates new parameter proposals, thus freeing engineers to focus on other tasks.
[0016]
[0024] Thus, according to embodiments, the present disclosure describes an automated approach to application "tuning." In embodiments, machine learning techniques may be implemented to perform the optimization step, the result of which is faster optimization with improved results.
[0017]
[0025] According to an embodiment, the present disclosure describes an automated method for optimizing containerized applications using a machine learning-based process. The automated method combines a machine learning-based process with a controller for container orchestration (i.e., Kubernetes) that can create experimental copies of the application in a development environment. The development environment may reside on a machine(s), such as a personal computer. The development environment and the deployment environment may be hosted on the same machine(s) or different machine(s). For example, a development team with a set of machines may be separate from a deployment team with another set of machines. However, as described below, for clarity, reference is made only to a single co-working machine.
[0018]
[0026] In an embodiment, a controller coupled to the machine learning module via a machine learning application program interface (API) can run trials in the development environment based on parameter value proposals received from the machine learning module via the machine learning API. The parameter value proposals can be made for one or more parameters. Results of each trial, including metric values, can be sent to the machine learning module via the machine learning API, an optimization model for application deployment can be updated based on the trialed parameter values and the resulting metric values, and new parameter value proposals based on the updated optimization model can be evaluated by the controller in a new trial. This experimental loop of iterative trials can be performed until a certain stopping criterion is achieved. In one case, the stopping criterion can be a user determining that the most recently evaluated set of parameter values produces an optimal set of metric values. In another case, the stopping criterion can be the number of trials completed, and an optimal set of parameter values can be selected from a set of trialed parameter values as one that maximizes the metric(s).
[0019]
[0027] It should be appreciated that the above-described method may, in an embodiment, be implemented within a system including a cloud-based network. In this manner, a machine having a processing circuit of a user (e.g., an application development team member) may access and collaborate with a remote processing circuit (e.g., a remote server) via a cloud-based network. For example, the controller may be based on the user's machine, and the machine learning module may be based on the remote processing circuit and accessible via a machine learning API. Moreover, the user may be a development team member of an enterprise running multiple nodes across a respective communication network, where the multiple nodes run a containerized application that is deployed based on optimal parameter values determined by the remote processing circuit in cooperation with the development team member.
[0020]
[0028]
[0004] Referring now to Figure 1, a high-level flow diagram of a method for optimizing the deployment of containerized applications is illustrated. For clarity, Figure 1 is described from the perspective of a user or developer implementing a container orchestrator such as Kubernetes.
[0021]
[0029] In step 105 of method 100, a user may download command line interface (CLI) software from the server to their respective machine and install the controller using the CLI software. The controller may be configured to run experiments including iterative trials of sets of parameter values suggested by the machine learning module of the server via the machine learning API as introduced above and discussed with respect to subprocess 125 of method 100, and provide results of each of the runs run to the machine learning module via the machine learning API.
[0022]
[0030] In step 115 of method 100, an experiment file can be created that defines a configuration of an experiment to be run by the controller. The experiment configuration can be determined by a user and can include, among other things, guidance for running load tests of the containerized application, parameters of interest, metrics of interest, and acceptable stopping criteria. A particular description of the experiment configuration is described with respect to Figures 3A-3C, but it should be appreciated that the experiment file can take the form of any of a number of known configuration file frameworks. In an example, the experiment file can be a YAML (YAML Aint Markup Language) based file, which is a human-friendly data serialization standard that follows Python indentation and is a JSON superset.
[0023]
[0031] In embodiments, guidance for performing load testing of a containerized application included in an experiment file may be directed to the process of issuing requests to the containerized application to measure its performance. For example, in providing instructions on how to install / connect / run a load test, the guidance may specify the number of current users of the containerized application, thereby defining the expected load on the containerized application.
[0024]
[0032] In an embodiment, the experiment file can be used to store configuration parameters, such as initial parameters and settings, of the containerized application on which the experiment is run. Additionally, the experiment file can include input or output file locations, input parameters for the machine learning model, output metrics for the machine learning model, in addition to other inputs for the machine learning model that direct its process. For example, the input parameters can include the parameter name, whether a minimum or maximum value of the input parameter is desired, and a numerical relationship describing two or more input parameters, e.g., the value of one input parameter should be greater than another. The output metrics can include the metric name, how to obtain the output metric, and whether each output metric should be minimized or maximized as part of the optimization process.
[0025]
[0033] In an illustrative embodiment, the input parameters for the machine learning model and the output metric for the machine learning model may be considered components of a user-defined optimization criterion. As explained above, the optimization criterion may include an indication of whether the output metric should be maximized or minimized, etc. The input parameters and output metric may be further defined by a value range within which an optimization may be identified.
[0026]
[0034] In an embodiment, the experiment file may further include instructions for running an experiment based on the given input parameters, input parameter values, and output metrics, where the instructions include a workflow for the experiment and how the iterative trials should be performed. For example, the experiment file may define each trial to include: (1) sending instructions to the controller to run a load test on the containerized application, and (2) measuring and recording performance metric outputs based on the executed load test. Additionally, the experiment file may provide instructions for installing and configuring the containerized application for each trial. In an embodiment, each iterative trial may include installing / uninstalling the containerized application on the machine before / after running the load test and measuring the output metrics. In another embodiment, the containerized application may be installed on the machine before the first trial including the load test and measuring the output metrics, and each iterative trial may include changing the desired state of the containerized application's configuration to a new set of input parameter values.
[0027]
[0035] In step 120 of method 100, the controller may be authenticated via the CLI software and establish an initial connection (not shown) with the server's machine learning module via the machine learning API.
[0028]
[0036] Once the controller is authenticated via the CLI software, the containerized application and the experiment file can be deployed to the machine's development environment 170. Thus, in sub-process 125 of method 100, the experiment defined by the experiment file can be executed.
[0029]
[0037] Briefly, this involves sending a set of parameter values from the server's machine learning module 135 to the controller via the machine learning API 134, trying out the set of parameter values by the controller at the machine, sending an output metric value based on the tried out set of parameter values from the machine to the server, updating the model of the machine learning module 135 based on the value of the output metric, and sending a new set of parameter values based on the updated model to the machine.
[0030]
[0038] As indicated above, the trials performed during the experiment of sub-process 125 of method 100 may be performed iteratively based on communication between the controller and the machine learning module 135 via the machine learning API 134. The execution of the experiment in sub-process 125 of method 100 may continue until a stopping criterion defined in the experiment file created in step 115 of method 100 is met. Sub-process 125 of method 100 will be described in further detail with respect to Figures 4-6.
[0031]
[0039] After running the experiments, the optimal configuration selected in subprocess 125 of method 100 can be deployed to the containerized application in one or more nodes.
[0032]
[0040] The flow diagram of FIG. 1 can be implemented within the network diagram of FIG. 2, which illustrates communication between a controller on a user machine, a machine learning module on a server, and a node or machine running a containerized application.
[0033]
[0041] According to an embodiment of the present disclosure, the controller 206 may reside on a user machine, referred to herein as a local development machine 294. The local development machine 294 may be in network communication 288 with a remote server 291 in a cloud computing environment 290, where the remote server 291 hosts the machine learning module 235. As described above, the controller 206 on the local development machine 294 may interact with the machine learning module 235 in the cloud computing environment 290 via a machine learning API over a remote network connection 297.
[0034]
[0042] In an embodiment, the local development machine 294 may be in network communication 288' with a local server 292 via a network connection 288', which hosts the machine learning module 235'. As described above, the controller 206 in the local development machine 294 may interact with the machine learning module 235' via a machine learning API over the local network connection 296.
[0035]
[0043] According to embodiments of the present disclosure, regardless of whether the machine learning module 235, 235′ is hosted by a remote server 291 or a local server 292, experiments may be performed on a local development machine 294, and optimal parameter values for the containerized application may then be deployed to one or more nodes 295 configured to run the containerized application. To this end, the local development machine 294 may have a local network connection 296′ or a remote network connection 297′ with the one or more nodes 295.
[0036]
[0044] Step 115 of method 100 will now be further described with reference to Figures 3A-3C. As described above, the experiment file may define the configuration of the experiment to be executed by the controller in the development environment. This may include optimization criteria 319, as in Figure 3A. The optimization criteria 319 may include optimal parameters and metrics 316 of interest to the user, and stopping criteria 317 that provide guidelines for determining the optimal parameter value set. The optimization parameters and metrics 316, i.e., tuning parameters and metrics, may include parameters 321, such as processor and memory usage, and metrics 322, such as speed and cost, as in Figure 3B. Of course, the parameters and metrics in Figure 3B should be considered non-limiting, as they merely represent some application and machine related parameters and metrics. For example, the input parameters may also include data batch size, batch delay, heap size, number of replicas, and latency, and the output metrics may also include resource utilization, latency, throughput, time to completion, and error rate.
[0037]
[0045] The stopping criteria 317 may include, among others, a number of trials to be performed, a range of metric values to be obtained, or an accuracy threshold to be obtained, as in FIG. 3C. The stopping criteria 317 described herein are described in further detail with reference to FIG. 6, but it should be appreciated that the stopping criteria 317 may be any criteria by which an optimal set of parameter values is selected. A developer may define the stopping criteria in an experiment file that defines an optimal set of parameter values. For example, the stopping criteria 317 may define a desired range of output metric values, and the experiment file may specify that upon achieving an output metric value within the desired range of output metric values, the corresponding set of parameter values will be used for deployment of the containerized application. Moreover, the stopping criteria 317 may be one or more criteria. For example, the stopping criteria 317 may define a number of trials to be performed in addition to a desired range of output metric values, where the corresponding experiment file specifies that if no desired range of output metric values is achieved before completing the number of trials, then the set of parameter values already evaluated should be selected as the optimal set of parameter values.
[0038]
[0046] 4, an experiment of sub-process 125 of method 100 will be described. For clarity, sub-process 125 of method 100 will be described in terms of a machine learning module on a server in communication with a controller on a local development machine. The server may be a remote server or a local server.
[0039]
[0047] In step 418 of sub-process 125, the optimization criteria defined in the experiment file can be obtained from the controller via the machine learning API. The optimization criteria may define, among other things, one or more parameters of interest and one or more metrics of interest.
[0040]
[0048] In step 426 of sub-process 125, an initial set of parameter values may be determined based on the received optimization criteria of step 418 of sub-process 125. In an example, the initial set of parameter values, which may be one or more of a set of randomly selected parameter values evaluated a priori, is intended to initially explore the input space of the optimization model so that the optimization model can be further evaluated and populated with the informed parameter values and corresponding metric values. In other words, the previous parameter values and the corresponding metric values inform future parameter value selections. Of course, it should be recognized that the number of parameter values evaluated and the number of metric values measured are not limiting or confining to the description herein and may each be any number greater than or equal to one, separately or together.
[0041]
[0049] In step 428 of sub-process 125, the initial set of parameter values may be evaluated by the controller during a run of the containerized application. A run of the containerized application may include load testing to evaluate the performance of the containerized application under the constraints of the initial set of parameter values and taking into account one or more metric values, as described above. Step 428 of sub-process 125 is shown with a dashed line to indicate that this step is performed by the controller and not the machine learning module.
[0042]
[0050] The trial results, including one or more metric values, can be received by the machine learning module in the server in step 429 of sub-process 125. Thus, in step 430 of sub-process 125, the optimization model can be updated based on the trial results. The process for updating the optimization model depends on the type of model implemented. For example, the optimization model can be one of a group including grid search, Monte Carlo simulation, genetic algorithm, Bayesian optimization, and random search. In general, however, the process can include inputting additional inputs and outputs into a data space of the optimization model, where the data space encompasses several data points (e.g., inputs and outputs), and updating the optimization model based on the inputs. In this way, the updated optimization model can be made increasingly accurate in modeling input parameter values and corresponding output metric values. Moreover, the updated optimization model can be the basis for intelligently determining subsequent parameter values to be evaluated in the controller, taking into account the accuracy of the model.
[0043]
[0051] In step 440 of sub-process 125, the trial results can be evaluated to determine whether optimal parameter values can be determined, taking into account the updated optimization model. As will be described in more detail with respect to Figure 6, it should be appreciated that step 440 of sub-process 125 serves as a decision point to determine whether additional trial iterations are required, taking into account stopping criteria defined in the experiment file. If it is determined in step 440 of sub-process 125 that the stopping criteria have been achieved, an optimal set of parameter values can be selected and deployed as the optimal configuration.
[0044]
[0052] However, if it is determined in step 440 of sub-process 125 that the stopping criteria is not met, sub-process 125 proceeds to step 451, where a new set of parameter values is obtained from the optimization model of the machine learning module. The new set of parameter values can be recommended to the controller, in an example, taking into account a balance between exploration and exploitation of the optimization model. For example, if a relatively small number of parameter values of the optimization model have been explored, as highlighted, it may be advantageous to evaluate a variety of representations of possible parameter values of the optimization model to increase the accuracy of the optimization model. However, in another case, the confidence of the optimization model may be relatively high in a region of the model that is believed to be a near-optimal configuration, and therefore it may be advantageous to continue to evaluate possible parameter values of the optimization model that are close to this region of parameter values. In any case, it should be appreciated that the new set of parameter values determined in step 451 of sub-process 125 is efficiently selected based on the updated optimization model.
[0045]
[0053] The recommended parameter values queried from the optimization model in step 451 of sub-process 125 may be sent from the machine learning module to the controller in step 452 of sub-process 125. Subsequent trials may then be initiated in step 428 of sub-process 125 and performed according to the workflow described above.
[0046]
[0054] Figure 5 provides a condensed explanation of Figure 4, focusing on the machine learning module at the server and the steps performed thereon. As noted above, the server can be a remote server or a local server.
[0047]
[0055] In step 518 of sub-process 125, optimization criteria defined in the experiment file can be received from the controller via the machine learning API. The optimization criteria defines, among other things, one or more parameters of interest and one or more metrics of interest.
[0048]
[0056] In step 529 of sub-process 125, trial results including one or more metric values, i.e., acted upon values, from trials performed by the controller based on one or more parameter values, i.e., one or more influence parameter values, are received by the machine learning module at the server.
[0049]
[0057] Therefore, in step 530 of sub-process 125, the optimization model can be updated by the machine learning module based on the trial results. The process for updating the optimization model depends on the type of model implemented. However, in general, the process can include inputting additional trial-based data points into the data space of the optimization model, where the data space contains some data points (e.g., influence parameter values and corresponding affected metric values), and updating the optimization model based on the inputs. In this way, the updated optimization model can be made increasingly accurate in modeling the input influence parameter values and the corresponding output affected values.
[0050]
[0058] In step 541 of sub-process 125, the trial results can be evaluated to determine whether optimal parameter values can be selected, taking into account the updated optimization model. As will be described in more detail with respect to Figure 6, it should be appreciated that step 541 of sub-process 125 serves as a decision point to determine whether additional trial iterations are required, taking into account stopping criteria defined in the experiment file. If it is determined in step 541 of sub-process 125 that the stopping criteria have been achieved, an optimal set of parameter values can be selected and deployed to the machine or one or more nodes as the optimal configuration.
[0051]
[0059] To this end, step 541 of sub-process 125 will now be further described with reference to Figure 6. In step 541 of sub-process 125, the trial results may be evaluated to determine whether optimal parameter values can be determined taking into account the updated optimization model. This involves the evaluation of a stopping criterion, as a stopping criterion may be applied to the trial results and the updated optimization model.
[0052]
[0060] According to an embodiment, the stopping criteria may include a cumulative stopping criterion 643 and an instantaneous stopping criterion 644. The cumulative stopping criterion 643 may be applied when the entirety of the trial results is considered when selecting the optimal configuration of the influence parameter values. The instantaneous stopping criterion 644 may be applied when it is determined that the last trialed influence parameter value results in the desired affected metric value. Moreover, the cumulative stopping criterion 643 and the instantaneous stopping criterion 644 may each be defined in the experiment file and applied simultaneously as appropriate. For example, the experiment file may specify that the instantaneous stopping criterion 644 should be followed until the cumulative stopping criterion 643 is satisfied.
[0053]
[0061] In an embodiment, the cumulative stopping criteria 643 may include a predetermined number of trials performed 645 and / or a predetermined accuracy threshold achieved 646. For example, the iterative trials may continue until a predetermined number of trials performed is reached, at which point the impact parameter value that results in a maximum, minimum, or other statistical measure of the affected metric result is selected as the optimal configuration for deployment. In another case, the iterative trials may continue until the updated optimization model is sufficiently defined such that a predetermined accuracy level of the model is achieved. The accuracy may be defined according to expected output metric values and corresponding realized output metric values measured during the trials, with the error value therebetween defining the accuracy level of the model. Upon achieving the maximum accuracy level, the impact parameter value that resulted in a maximum, minimum, or other statistical measure of the affected metric result can be selected as the optimal configuration for deployment of the containerized application.
[0054]
[0062] In an embodiment, the instantaneous stopping criteria 644 may include a predetermined value range of the affected metric value to be achieved. For example, the iterative trials of the affected parameter value may continue until the trial results indicate that the affected metric value is within a user-defined value range that is deemed desirable. In such a case, the last attempted affected parameter value may be selected as the optimal configuration for deployment of the containerized application.
[0055]
[0063] 5, however, if in step 541 of sub-process 125 it is determined that the stopping criteria are not met, then sub-process 125 proceeds to step 551 where a new set of parameter values, i.e., influence parameter values, are obtained from the optimization model of the machine learning module. The new set of influence values can be recommended to the controller taking into account a balance between exploration and exploitation of the optimization model, as described above.
[0056]
[0064] The recommended impact values queried from the optimization model in step 551 of sub-process 125 may be sent from the machine learning module to the controller in step 552 of sub-process 125. Thus, a subsequent trial may be performed and trial results therefrom may be received, initiated in step 529 of sub-process 125. The workflow may proceed iteratively as necessary.
[0057]
[0065] Next, a hardware description of a server including a machine learning module according to an exemplary embodiment of the present disclosure will be described with reference to FIG. 7. In FIG. 7, the server includes a CPU 780 that executes the processes described above / below. Process data and instructions may be stored in a memory 781. These processes and instructions may also be stored on a storage medium disk 782, such as a hard drive (HDD) or a portable storage medium, or may be stored remotely. Furthermore, the claimed advancement is not limited by the form of the computer-readable medium on which the instructions of the inventive process are stored. For example, the instructions may be stored on a CD, a DVD, in a FLASH memory, a RAM, a ROM, a PROM, an EPROM, an EEPROM, a hard disk, or any other information processing device, such as another server or machine with which the server communicates.
[0058]
[0066] Further, the claimed advancements may be provided as operating system utility applications, background daemons, or components, or combinations thereof, executing in conjunction with the CPU 780 and an operating system such as Microsoft Windows® 7, Microsoft Windows 10, UNIX®, Solaris, LINUX®, Apple MAC-OS, and other systems known to those skilled in the art.
[0059]
[0067] The hardware elements for achieving the server may be realized by various circuit elements known to those skilled in the art. For example, the CPU 780 may be a Xenon or Core processor from Intel, USA, or an Opteron processor from AMD, USA, or other processor types that would be recognized by those skilled in the art. Alternatively, the CPU 780 may be implemented on an FPGA, an ASIC, a PLD, or using discrete logic circuits, as would be recognized by those skilled in the art. Furthermore, the CPU 780 may be implemented as multiple processors working in parallel and cooperatively to execute instructions of the inventive process described above.
[0060]
[0068] The server of Figure 7 also includes a network controller 783, such as an Intel Ethernet PRO network interface card from Intel Corporation of America, for interfacing with a network 788. In view of Figure 2, it should be recognized that the network 788 may be a public network, such as the Internet, or a private network, such as a LAN or WAN network, or any combination thereof, and may also include a PSTN or ISDN sub-network. The network 788 may also be wired, such as an Ethernet network, or wireless, such as a cellular network, including EDGE, 3G and 4G wireless cellular systems. The wireless network may also be WiFi, Bluetooth, or any other wireless form of communication known in the art.
[0061]
[0069] In certain embodiments, the server is connected to or functions as a computer terminal. To this end, the server may further include a general purpose I / O interface 784 for interfacing with a keyboard and / or mouse 785, as well as a touch screen panel on or separate from the display. The general purpose I / O interface 784 may also connect to various peripheral devices as needed.
[0062]
[0070] A generic storage controller 786 connects the storage media disks 782 to a communications bus 787, which may be ISA, EISA, VESA, PCI, or the like, for interconnecting all of the server's components. A description of the display, keyboard and / or mouse 785, as well as the general features and functionality of the display controller, storage controller 786, network controller 783, and generic I / O interface 784 are omitted herein for the sake of brevity, as these features are known.
[0063]
[0071] Of course, many modifications and variations are possible in light of the above teachings, and it is therefore to be understood that, within the scope of the appended claims, the invention may be practiced otherwise than as specifically described herein.
[0064]
[0072] The embodiments of the present disclosure may also be as described in the brackets below.
[0065]
[0073] (1) A system for optimizing deployment of a containerized application, the system comprising: a machine; and a server having processing circuitry, the server receiving optimization criteria associated with the containerized application from the machine, the optimization criteria including one or more impact parameters, one or more affected metrics, and one or more stopping criteria, transmitting at least one value of the one or more impact parameters to the machine based on the received optimization criteria, and receiving results of a trial of the containerized application executed by the machine according to the at least one value of the one or more impact parameters, the system comprising: the results of the trial include empirical values of the one or more affected metrics, updating an optimization model based on the at least one value of the one or more impact parameters and the empirical values of the one or more affected metrics; comparing the results of the trial and the updated optimization model to the one or more stopping criteria; when the comparison indicates that the one or more stopping criteria are met, selecting an optimized value for the at least one value of the one or more impact parameters; and sending the optimized value of the at least one value of the one or more impact parameters to the machine for deployment of the containerized application.
[0066]
[0074] (2) when the comparison of the results of the trial and the updated optimization model with the one or more stopping criteria indicates that the one or more stopping criteria are not satisfied, the processing circuitry of the server calculates at least one subsequent value of the one or more impact parameters based on the updated optimization model; transmitting the at least one subsequent value of the one or more impact parameters to the machine; and receiving results of the subsequent trial including subsequent empirical values of the one or more affected metrics based on a subsequent trial of the containerized application executed by the machine according to the at least one subsequent value of the one or more impact parameters; 2. The system of claim 1, further configured to: iteratively update the updated optimization model based on the at least one subsequent value of one or more impact parameters and the subsequent empirical values of the one or more affected metrics; compare the results of the subsequent trials and the iteratively updated optimization model to the one or more stopping criteria; when the comparison indicates that the one or more stopping criteria are met, select an optimized value of the at least one value of the one or more impact parameters; and send the optimized value of the at least one value of the one or more impact parameters to the machine for deployment of the containerized application.
[0067]
[0075] (3) The system of (1) or (2), wherein the one or more stopping criteria include a maximum number of attempts to be performed.
[0068]
[0076] (4) The system described in any one of (1) to (3), wherein the one or more stopping criteria include a maximum accuracy level in the updated optimization model.
[0069]
[0077] (5) The system described in any one of (1) to (4), wherein the one or more stopping criteria include a range of empirical values of the one or more affected metrics.
[0070]
[0078] (6) A method for optimizing deployment of a containerized application comprising: receiving, by a server, optimization criteria associated with the containerized application, the optimization criteria including one or more impact parameters, one or more affected metrics, and one or more stopping criteria based on the one or more affected metrics; receiving, by the server, results of a trial based on a trial of the containerized application according to at least one value of the one or more impact parameters, the results of the trial including empirical values of the one or more affected metrics; updating, by the server, an optimization model based on the at least one value of the one or more impact parameters and the empirical values of the one or more affected metrics; comparing, by the server, the results of the trial and the updated optimization model to the one or more stopping criteria; selecting, by the server, an optimized value of the at least one value of the one or more impact parameters when the comparison indicates that the one or more stopping criteria are met; and transmitting the optimized value of the at least one value of the one or more impact parameters to a machine for deployment of the containerized application.
[0071]
[0079] (7) calculating, by the server, at least one subsequent value of the one or more impact parameters based on the updated optimization model when the results of the attempt and the updated optimization model do not satisfy the one or more stopping criteria; receiving, by the server, results of the subsequent attempt based on the containerized application according to the at least one subsequent value of the one or more impact parameters, the results of the subsequent attempt including subsequent empirical values of the one or more affected metrics; and calculating, by the server, the at least one subsequent value of the one or more impact parameters and the previous values of the one or more affected metrics. iteratively updating the updated optimization model based on the subsequent empirical values; comparing, by the server, the results of the subsequent trials and the iteratively updated optimization model with the one or more stopping criteria; selecting, by the server, an optimized value of the at least one value of the one or more impact parameters when the comparison indicates that the one or more stopping criteria are met; and transmitting, by the server, the optimized value of the at least one value of the one or more impact parameters to the machine for deployment of the containerized application.
[0072]
[0080] (8) The method according to (6) or (7), wherein the updating includes populating the optimization model by the server based on the at least one value of the one or more influence parameters and the empirical values of the one or more affected metrics.
[0073]
[0081] (9) The method according to any one of (6) to (8), wherein the at least one value of the one or more influence parameters is calculated by the server.
[0074]
[0082] (10) The method according to any one of (6) to (9), wherein the one or more stopping criteria include a maximum number of trials to be performed.
[0075]
[0083] (11) A method according to any one of (6) to (10), wherein the one or more stopping criteria include a maximum level of accuracy in the updated optimization model.
[0076]
[0084] (12) The method according to any one of (6) to (11), wherein the one or more stopping criteria include a range of empirical values of the one or more affected metrics.
[0077]
[0085] (13) A non-transitory computer-readable storage medium storing computer-readable instructions that, when executed by a computer, cause the computer to perform a method for optimizing deployment of a containerized application, the method comprising: receiving optimization criteria associated with the containerized application, the optimization criteria including one or more impact parameters, one or more affected metrics, and one or more stopping criteria based on the one or more affected metrics; receiving results of the trial including empirical values of the one or more affected metrics based on a trial of the containerized application according to at least one value of the one or more impact parameters; updating an optimization model based on the at least one value of the one or more impact parameters and the empirical values of the one or more affected metrics; comparing the results of the trial and the updated optimization model to the one or more stopping criteria; when the comparison indicates that the one or more stopping criteria are met, selecting an optimized value of the at least one value of the one or more impact parameters; and transmitting the optimized value of the at least one value of the one or more impact parameters to a machine for deployment of the containerized application.
[0078]
[0086] 14. The non-transitory computer-readable storage medium of claim 13, further comprising: calculating a subsequent value of the at least one value of the one or more impact parameters based on the updated optimization model when the results of the trial and the updated optimization model do not satisfy the one or more stopping criteria; receiving a result of the subsequent trial including a subsequent empirical value of the one or more affected metrics based on a subsequent trial of the containerized application according to the subsequent value of the at least one value of the one or more impact parameters; iteratively updating the updated optimization model based on the subsequent value of the at least one value of the one or more impact parameters and the subsequent empirical values of the one or more affected metrics; comparing the results of the subsequent trial and the iteratively updated optimization model to the one or more stopping criteria; selecting an optimized value of the at least one value of the one or more impact parameters when the comparison indicates that the one or more stopping criteria are met; and transmitting the optimized value of the at least one value of the one or more impact parameters to the machine for deployment of the containerized application.
[0079]
[0087] (15) The non-transitory computer-readable storage medium of (13) or (14), wherein the one or more stopping criteria include a maximum number of attempts performed.
[0080]
[0088] (16) The non-transitory computer-readable storage medium according to any one of (13) to (15), wherein the one or more stopping criteria include a maximum level of accuracy in the updated optimization model.
[0081]
[0089] (17) The non-transitory computer-readable storage medium according to any one of (13) to (16), wherein the one or more stopping criteria include a range of empirical values of the one or more affected metrics.
[0082]
[0090] (18) A server for optimizing deployment of a containerized application, the server comprising a processing circuit configured to: receive optimization criteria associated with the containerized application, the optimization criteria including one or more impact parameters, one or more affected metrics, and one or more stopping criteria based on the one or more affected metrics; receive results of the trial based on a trial of the containerized application according to at least one value of the one or more impact parameters, the results including empirical values of the one or more affected metrics; update an optimization model based on the at least one value of the one or more impact parameters and the empirical values of the one or more affected metrics; compare the results of the trial and the updated optimization model to the one or more stopping criteria; when the comparison indicates that the one or more stopping criteria are met, select an optimized value of the at least one value of the one or more impact parameters; and transmit the optimized value of the at least one value of the one or more impact parameters to a machine for deployment of the containerized application.
[0083]
[0091] (19) The server of (18), wherein the processing circuitry is further configured to: calculate a subsequent value of the at least one value of the one or more impact parameters based on the updated optimization model when the results of the trial and the updated optimization model do not satisfy the one or more stopping criteria; receive results of the subsequent trial including subsequent empirical values of the one or more affected metrics based on a subsequent trial of the containerized application according to the subsequent value of the at least one value of the one or more impact parameters; iteratively update the updated optimization model based on the subsequent value of the at least one value of the one or more impact parameters and the subsequent empirical values of the one or more affected metrics; compare the results of the subsequent trial and the iteratively updated optimization model to the one or more stopping criteria; select an optimized value of the at least one value of the one or more impact parameters when the comparison indicates that the one or more stopping criteria are met; and transmit the optimized value of the at least one value of the one or more impact parameters to the machine for deployment of the containerized application.
[0084]
[0092] (20) The server of (18) or (19), wherein the processing circuitry is configured to update the optimization model by populating the optimization model based on at least one value of the one or more influence parameters and the empirical value of the one or more affected metrics.
[0085]
[0093] For this reason, the foregoing discussion discloses and describes merely exemplary embodiments of the present disclosure. As will be understood by those skilled in the art, the present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. Thus, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the present disclosure and other claims. This disclosure defines in part the scope of the terminology of the preceding claims, such that the subject matter of the present invention, including any readily discernible variations of the teachings herein, is not to be dedicated to the public. The invention as described in the claims of the original application is set forth below. [C1] 1. A system for optimizing deployment of containerized applications, the system comprising: Machines and A server having a processing circuit; The server comprises: receiving optimization criteria associated with the containerized application from the machine, where the optimization criteria include one or more impact parameters, one or more affected metrics, and one or more stopping criteria; transmitting to the machine at least one value of the one or more influence parameters based on the received optimization criteria; receiving results of a trial of the containerized application executed by the machine according to the at least one value of the one or more impact parameters, where the results of the trial include empirical values of the one or more affected metrics; updating an optimization model based on the at least one value of the one or more influence parameters and the empirical values of the one or more affected metrics; comparing the results of the trials and the updated optimization model to the one or more stopping criteria; selecting an optimized value of the at least one value of the one or more influence parameters when the comparison indicates that the one or more stopping criteria are met; sending the optimized value of the at least one value of the one or more impact parameters to the machine for deployment of the containerized application; A system configured to: [C2] The processing circuitry of the server further comprises: calculating at least one subsequent value of the one or more influence parameters based on the updated optimization model when the comparison of the results of the trials and the updated optimization model with the one or more stopping criteria indicates that the one or more stopping criteria are not satisfied; transmitting said subsequent at least one value of said one or more impact parameters to said machine; receiving a result of the subsequent attempt based on the subsequent attempt of the containerized application executed by the machine according to the subsequent at least one value of the one or more impact parameters, the result including a subsequent empirical value of the one or more affected metrics; iteratively updating the updated optimization model based on the subsequent at least one value of the one or more influence parameters and the subsequent empirical values of the one or more affected metrics; comparing the results of the subsequent trials and the iteratively updated optimization model to the one or more stopping criteria; selecting an optimized value of the at least one value of the one or more influence parameters when the comparison indicates that the one or more stopping criteria are met; sending the optimized value of the at least one value of the one or more impact parameters to the machine for deployment of the containerized application; The system of claim 1, further configured to: [C3] The system of C1, wherein the one or more stopping criteria comprises a maximum number of attempts to be performed. [C4] The system of C1, wherein the one or more stopping criteria comprises a maximum level of accuracy in the updated optimization model. [C5] The system of C1, wherein the one or more stopping criteria include a range of empirical values of the one or more affected metrics. [C6] 1. A method for optimizing deployment of containerized applications, the method comprising: receiving, by a server, optimization criteria associated with the containerized application, the optimization criteria including one or more impact parameters, one or more affected metrics, and one or more stopping criteria based on the one or more affected metrics; receiving, by the server, results of the trials based on the trials of the containerized application according to at least one value of the one or more impact parameters, the results including empirical values of the one or more affected metrics; updating, by the server, an optimization model based on the at least one value of the one or more influence parameters and the empirical values of the one or more affected metrics; comparing, by the server, the results of the trials and the updated optimization model to the one or more stopping criteria; selecting, by the server, an optimized value of the at least one value of the one or more impact parameters when the comparing indicates that the one or more stopping criteria are met; sending the optimized value of the at least one value of the one or more impact parameters to a machine for deployment of the containerized application; A method comprising: [C7] calculating, by the server, and when the results of the trials and the updated optimization model do not satisfy the one or more stopping criteria, at least one subsequent value of the one or more influence parameters based on the updated optimization model; receiving, by the server and based on a subsequent attempt of the containerized application according to the at least one subsequent value of the one or more impact parameters, results of the subsequent attempt including subsequent empirical values of the one or more affected metrics; iteratively updating, by the server, the updated optimization model based on the at least one subsequent value of the one or more impact parameters and the subsequent empirical values of the one or more affected metrics; comparing, by the server, the results of the subsequent trials and the iteratively updated optimization model to the one or more stopping criteria; selecting, by the server, an optimized value of the at least one value of the one or more impact parameters when the comparing indicates that the one or more stopping criteria are met; transmitting, by the server, the optimized value of the at least one value of the one or more impact parameters to the machine for deployment of the containerized application; The method of C6, further comprising: [C8] The updating step comprises: The method of claim 6, comprising populating, by the server, the optimization model based on the at least one value of the one or more influence parameters and the empirical values of the one or more affected metrics. [C9] The method of claim 6, wherein the at least one value of the one or more impact parameters is calculated by the server. [C10] The method of C6, wherein the one or more stopping criteria includes a maximum number of trials performed. [C11] The method of C6, wherein the one or more stopping criteria comprises a maximum level of accuracy in the updated optimization model. [C12] The method of C6, wherein the one or more stopping criteria include a range of empirical values of the one or more affected metrics. [C13] 1. A non-transitory computer-readable storage medium storing computer-readable instructions that, when executed by a computer, cause the computer to perform a method for optimizing deployment of containerized applications, the method comprising: receiving optimization criteria associated with the containerized application, where the optimization criteria include one or more impact parameters, one or more affected metrics, and one or more stopping criteria based on the one or more affected metrics; receiving a result of the trial, the result including an empirical value of the one or more affected metrics based on a trial of the containerized application according to at least one value of the one or more impact parameters; updating an optimization model based on the at least one value of the one or more influence parameters and the empirical values of the one or more affected metrics; comparing the results of the trials and the updated optimization model to the one or more stopping criteria; selecting an optimized value of the at least one value of the one or more influence parameters when the comparing indicates that the one or more stopping criteria are met; sending the optimized value of the at least one value of the one or more impact parameters to a machine for deployment of the containerized application; A non-transitory computer-readable storage medium comprising: [C14] calculating a subsequent value of the at least one value of the one or more influence parameters based on the updated optimization model when the results of the trials and the updated optimization model do not satisfy the one or more stopping criteria; receiving a result of the subsequent attempt based on the subsequent attempt of the containerized application according to the subsequent value of the at least one value of the one or more impact parameters, the result including a subsequent empirical value of the one or more affected metrics; iteratively updating the updated optimization model based on the subsequent values of the at least one value of the one or more influence parameters and the subsequent empirical values of the one or more affected metrics; comparing the results of the subsequent trials and the iteratively updated optimization model to the one or more stopping criteria; selecting an optimized value of the at least one value of the one or more influence parameters when the comparing indicates that the one or more stopping criteria are met; sending the optimized value of the at least one value of the one or more impact parameters to the machine for deployment of the containerized application; 13. The non-transitory computer-readable storage medium of claim 12, further comprising: [C15] The one or more stopping criteria include a maximum number of attempts to be performed. [C16] The one or more stopping criteria include a maximum level of accuracy in the updated optimization model. [C17] The non-transitory computer-readable storage medium of C13, wherein the one or more stopping criteria include a range of empirical values of the one or more affected metrics. [C18] 1. A server for optimizing deployment of containerized applications, the server comprising: Processing Circuit The processing circuitry comprises: receiving optimization criteria associated with the containerized application, where the optimization criteria include one or more impact parameters, one or more affected metrics, and one or more stopping criteria based on the one or more affected metrics; receiving a result of the trial, the result including an empirical value of the one or more affected metrics based on a trial of the containerized application according to at least one value of the one or more impact parameters; updating an optimization model based on the at least one value of the one or more influence parameters and the empirical values of the one or more affected metrics; comparing the results of the trials and the updated optimization model to the one or more stopping criteria; selecting an optimized value for the at least one value of the one or more impact parameters when the comparing indicates that the one or more stopping criteria are satisfied; and transmitting the optimized value for the at least one value of the one or more impact parameters to a machine for deployment of the containerized application. A server configured to: [C19] The processing circuitry includes: calculating a subsequent value of the at least one value of the one or more influence parameters based on the updated optimization model when the results of the trials and the updated optimization model do not satisfy the one or more stopping criteria; receiving a result of the subsequent attempt based on the subsequent attempt of the containerized application according to the subsequent value of the at least one value of the one or more impact parameters, the result including a subsequent empirical value of the one or more affected metrics; iteratively updating the updated optimization model based on the subsequent values of the at least one value of the one or more influence parameters and the subsequent empirical values of the one or more affected metrics; comparing the results of the subsequent trials and the iteratively updated optimization model to the one or more stopping criteria; selecting an optimized value of the at least one value of the one or more influence parameters when the comparing indicates that the one or more stopping criteria are met; sending the optimized value of the at least one value of the one or more impact parameters to the machine for deployment of the containerized application; The server of C18, further configured to: [C20] The server of C18, wherein the processing circuitry is configured to update the optimization model by populating the optimization model based on the at least one value of the one or more influence parameters and the empirical values of the one or more affected metrics.
Claims
1. 1. A system for optimizing deployment of containerized applications, the system comprising: Machines and A server having a processing circuit; The server comprises: receiving optimization criteria associated with the containerized application from the machine, where the optimization criteria include one or more impact parameters, one or more affected metrics, and one or more stopping criteria; transmitting to the machine at least one value of the one or more influence parameters based on the received optimization criteria; receiving a result of a trial of the containerized application executed by the machine according to the at least one value of the one or more impact parameters, where the result of the trial includes a value of the one or more affected metrics obtained as a result of the trial; updating an optimization model based on the at least one value of the one or more influence parameters and the values of the one or more affected metrics obtained as a result of the trials; comparing the results of the trials and the updated optimization model to the one or more stopping criteria; selecting an optimized value of the at least one value of the one or more influence parameters when the comparison indicates that the one or more stopping criteria are met; sending the optimized value of the at least one value of the one or more impact parameters to the machine for deployment of the containerized application; A system configured to:
2. The processing circuitry of the server further comprises: calculating at least one subsequent value of the one or more influence parameters based on the updated optimization model when the comparison of the results of the trials and the updated optimization model with the one or more stopping criteria indicates that the one or more stopping criteria are not satisfied; transmitting said subsequent at least one value of said one or more impact parameters to said machine; receiving a result of a subsequent attempt based on the subsequent attempt of the containerized application executed by the machine according to the subsequent at least one value of the one or more impact parameters, the result including a subsequent value of the one or more affected metrics obtained as a result of the subsequent attempt; iteratively updating the updated optimization model based on the subsequent at least one value of the one or more influence parameters and the subsequent values of the one or more affected metrics obtained as a result of the trials; comparing the results of the subsequent trials and the iteratively updated optimization model to the one or more stopping criteria; selecting an optimized value of the at least one value of the one or more influence parameters when the comparison indicates that the one or more stopping criteria are met; sending the optimized value of the at least one value of the one or more impact parameters to the machine for deployment of the containerized application; The system of claim 1 , further configured to:
3. The system of claim 1 , wherein the one or more stopping criteria comprises a maximum number of attempts to be performed.
4. The system of claim 1 , wherein the one or more stopping criteria comprises a maximum level of accuracy in the updated optimization model.
5. The system of claim 1 , wherein the one or more stopping criteria include a range of values for the one or more affected metrics resulting from the trials.
6. 1. A method for optimizing deployment of containerized applications, the method comprising: receiving, by a server, optimization criteria associated with the containerized application, where the optimization criteria include one or more impact parameters, one or more affected metrics, and one or more stopping criteria based on the one or more affected metrics; receiving a result of the attempt based on an attempt of the containerized application by the server and according to at least one value of the one or more impact parameters, the result including values of the one or more affected metrics obtained as a result of the attempt; updating, by the server, an optimization model based on the at least one value of the one or more influence parameters and the values of the one or more affected metrics obtained as a result of the trials; comparing, by the server, the results of the trials and the updated optimization model to the one or more stopping criteria; selecting, by the server and when the comparing indicates that the one or more stopping criteria are met, an optimized value of the at least one value of the one or more influence parameters; sending the optimized value of the at least one value of the one or more impact parameters to a machine for deployment of the containerized application; A method comprising:
7. calculating, by the server, and when the results of the trials and the updated optimization model do not satisfy the one or more stopping criteria, at least one subsequent value of the one or more influence parameters based on the updated optimization model; receiving a result of the subsequent attempt, the result including a subsequent value of the one or more affected metrics obtained as a result of the attempt, based on a subsequent attempt of the containerized application by the server and according to the subsequent at least one value of the one or more impact parameters; iteratively updating, by the server, the updated optimization model based on the subsequent at least one value of the one or more influence parameters and the subsequent values of the one or more affected metrics obtained as a result of the trials; comparing, by the server, the results of the subsequent trials and the iteratively updated optimization model to the one or more stopping criteria; selecting, by the server and when the comparing indicates that the one or more stopping criteria are met, an optimized value of the at least one value of the one or more influence parameters; transmitting, by the server, the optimized value of the at least one value of the one or more impact parameters to the machine for deployment of the containerized application; The method of claim 6 further comprising:
8. The method of claim 6 , wherein the at least one value of the one or more impact parameters is calculated by the server.
9. The method of claim 6 , wherein the one or more stopping criteria comprises a maximum number of trials performed.
10. The method of claim 6 , wherein the one or more stopping criteria comprises a maximum level of accuracy in the updated optimization model.
11. The method of claim 6 , wherein the one or more stopping criteria include a range of values for the one or more affected metrics resulting from the trials.
12. 1. A non-transitory computer-readable storage medium storing computer-readable instructions that, when executed by a computer, cause the computer to perform a method for optimizing deployment of containerized applications, the method comprising: receiving optimization criteria associated with the containerized application, where the optimization criteria include one or more impact parameters, one or more affected metrics, and one or more stopping criteria based on the one or more affected metrics; receiving a result of the trial based on a trial of the containerized application according to at least one value of the one or more impact parameters, the result including a value of the one or more affected metrics resulting from the trial; updating an optimization model based on the at least one value of the one or more influence parameters and the values of the one or more affected metrics obtained as a result of the trials; comparing the results of the trials and the updated optimization model to the one or more stopping criteria; selecting an optimized value of the at least one value of the one or more influence parameters when the comparing indicates that the one or more stopping criteria are met; sending the optimized value of the at least one value of the one or more impact parameters to a machine for deployment of the containerized application; A non-transitory computer-readable storage medium comprising:
13. calculating a subsequent value of the at least one value of the one or more influence parameters based on the updated optimization model when the results of the trials and the updated optimization model do not satisfy the one or more stopping criteria; receiving a result of a subsequent attempt based on the subsequent attempt of the containerized application according to the subsequent value of the at least one value of the one or more impact parameters, the result including a subsequent value of the one or more affected metrics obtained as a result of the attempt; iteratively updating the updated optimization model based on the subsequent values of the at least one value of the one or more influence parameters and the subsequent values of the one or more affected metrics obtained as a result of the trials; comparing the results of the subsequent trials and the iteratively updated optimization model to the one or more stopping criteria; selecting an optimized value of the at least one value of the one or more influence parameters when the comparing indicates that the one or more stopping criteria are met; sending the optimized value of the at least one value of the one or more impact parameters to the machine for deployment of the containerized application; The non-transitory computer-readable storage medium of claim 12 , further comprising:
14. The non-transitory computer-readable storage medium of claim 12 , wherein the one or more stopping criteria comprises a maximum number of attempts performed.
15. The non-transitory computer-readable storage medium of claim 12 , wherein the one or more stopping criteria comprises a maximum level of accuracy in the updated optimization model.
16. The non-transitory computer-readable storage medium of claim 12 , wherein the one or more stopping criteria include a range of values of the one or more affected metrics resulting from the trials.
17. 1. A server for optimizing deployment of containerized applications, the server comprising: Processing Circuit The processing circuitry comprises: receiving optimization criteria associated with the containerized application, where the optimization criteria include one or more impact parameters, one or more affected metrics, and one or more stopping criteria based on the one or more affected metrics; receiving a result of the trial based on a trial of the containerized application according to at least one value of the one or more impact parameters, the result including a value of the one or more affected metrics resulting from the trial; updating an optimization model based on the at least one value of the one or more influence parameters and the values of the one or more affected metrics obtained as a result of the trials; comparing the results of the trials and the updated optimization model to the one or more stopping criteria; selecting an optimized value of the at least one value of the one or more influence parameters when the comparing indicates that the one or more stopping criteria are met; sending the optimized value of the at least one value of the one or more impact parameters to a machine for deployment of the containerized application; A server configured to:
18. The processing circuitry includes: calculating a subsequent value of the at least one value of the one or more influence parameters based on the updated optimization model when the results of the trials and the updated optimization model do not satisfy the one or more stopping criteria; receiving a result of a subsequent attempt based on the subsequent attempt of the containerized application according to the subsequent value of the at least one value of the one or more impact parameters, the result including a subsequent value of the one or more affected metrics obtained as a result of the attempt; iteratively updating the updated optimization model based on the subsequent values of the at least one value of the one or more influence parameters and the subsequent values of the one or more affected metrics obtained as a result of the trials; comparing the results of the subsequent trials and the iteratively updated optimization model to the one or more stopping criteria; selecting an optimized value of the at least one value of the one or more influence parameters when the comparing indicates that the one or more stopping criteria are met; sending the optimized value of the at least one value of the one or more impact parameters to the machine for deployment of the containerized application; The server of claim 17, further configured to:
Citation Information
Patent Citations
Model parameter calculation device, model parameter calculation method, and computer program
JP2015184823A
Information processing apparatus, information processing method, and program
JP2017059031A
Real-time adjustment of application-specific operating parameters for backward compatibility
JP2019511790A
Automation and self-optimization type determination of execution parameter of software application on information processing platform
JP2020004409A