Multi-objective optimization for applications

By using machine learning techniques to optimize the parameter configuration of cloud applications in a microservice architecture, the management complexity caused by the increase in the number of microservices is solved, and the best trade-off between metrics such as waiting time and error rate is achieved, thereby improving the performance and reliability of applications.

CN115461724BActive Publication Date: 2026-03-24INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-04-29
Publication Date
2026-03-24

AI Technical Summary

Technical Problem

In microservice architectures, management, monitoring, and testing become more complex as the number of microservices increases. Existing technologies struggle to effectively optimize trade-offs between key performance indicators, especially in cloud applications, such as the balance between latency and error rate.

Method used

By employing machine learning (ML) technology, the system receives key performance indicators (KPIs) and parameters through the input manager, conducts adaptive trials using the trial manager, calculates the Pareto surface, and explores the optimal operating point using the optimization manager, thereby achieving multi-objective optimization of the application.

Benefits of technology

By optimizing the parameter configuration of cloud applications through machine learning models, the best trade-off between metrics such as latency and error rate can be found, meeting the actual assessment of Service Level Agreements (SLAs) and improving the performance and reliability of applications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115461724B_ABST
    Figure CN115461724B_ABST
Patent Text Reader

Abstract

Systems, computer program products, and methods for coordinating multi-objective optimization of an application are provided. One or more parameters associated with the application and a set of two or more key performance indicators (KPIs) are received. One or more adaptive trials are conducted with a machine learning (ML)-based surrogate function learning model that incorporates a function of acquisition. Each trial includes a particular configuration of the one or more parameters. A pareto surface of the KPIs of the application is computed based on observations of KPI values from each adaptive trial. The pareto surface is explored and an optimal operating point is selected for the application. The application is then executed at the selected operating point.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] This embodiment relates to executing applications at optimal operating points with respect to certain key performance indicators. More specifically, embodiments relate to utilizing machine learning (ML) to compute a pareto surface and explore the pareto surface to identify optimal operating points. BACKGROUND

[0002] Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable resources, e.g., networks, servers, storage, applications, and services, that can be rapidly provisioned and released with minimal management effort or service provider interaction. An application (or more specifically, a cloud application) is a software program that works together with local and cloud-based components. The model relies on remote servers for processing logic, which can be accessed through a web browser with a continuous Internet connection. Cloud application servers can be located in remote data centers. Cloud-based application tasks can include email, file storage and sharing, order entry, inventory management, word processing, customer relationship management, data collection, or financial accounting features.

[0003] Microservices (also known as microservice architecture) is an architectural style that structures an application as a collection of loosely coupled, independently deployable, and highly maintainable and testable modular components represented in one or more services. Each module supports a specific task or business goal and communicates with other microservices using simple, well-defined interfaces such as application programming interfaces (APIs). Microservices are small, scalable components. Each module supports a specific task and communicates with other services using a defined interface such as an application programming interface (API). Any individual microservice module can be changed without affecting other parts of the program that include multiple microservice modules. As such, microservice architecture supports and enables scalability.

[0004] Monolithic architecture refers to a unified model for designing software applications. Monolithic software is designed to be self-contained, with components of the program interconnected and interdependent. In a monolithic architecture, every component and its associated components must exist for the code to be compiled or executed. If any program component needs to be updated to address expected and unexpected changes within other elements, the entire application must be rewritten. As such, monolithic architecture is geared toward large, tightly coupled applications.

[0005] It is understood in the art that microservices architecture enhances business agility with faster software development and deployment as compared to monolithic software architecture. More specifically, microservices architecture enables rapid, frequent, and reliable delivery of large, complex applications. With microservices, individual services can be deployed individually or scaled individually. Because microservices enable precise scaling of only the components that are needed, rather than scaling the entire application as in the case of monolithic applications, microservices require less infrastructure to get right than monolithic applications. It is understood that there are challenges with respect to microservices and more specifically with respect to microservices architecture. Such challenges involve managing microservices, monitoring microservices, testing, dependencies, and the like as the number of microservices increases. SUMMARY

[0006] Embodiments include a system, computer program product, and method for multi-objective optimization of cloud applications with respect to key performance indicators.

[0007] In one aspect, a computer system is provided with a processing unit operably coupled to a memory and an artificial intelligence (AI) platform operably coupled to the processing unit and the memory. The AI platform is configured with tools in the form of an input manager, a trial manager, and an optimization manager, the AI platform configured with functionality to coordinate multi-objective optimization of an application. The input manager is configured to receive a set of two or more key performance indicators (KPIs) associated with the application. The trial manager is operably coupled to the input manager and is configured to utilize a machine learning (ML) based surrogate function learning model in conjunction with an acquisition function to perform adaptive trial execution of the application with one or more received parameters. The trial manager is further configured to compute a pareto surface of the KPIs of the application based on observed outputs from the trial execution. The optimization manager, operably coupled to the trial manager, is to explore the computed pareto surface and select an optimal operating point for the application. The optimal operating point corresponds to a configuration of one or more parameters. The optimization manager executes the application at the selected optimal operating point.

[0008] In another aspect, a computer program product for coordinating multi-objective optimization of an application is provided. The computer program product is provided with a computer readable storage device having embodied program code. The program code is executable by a processing unit having a function for receiving a set of two or more key performance indicators (KPIs) associated with an application. The program code utilizes a machine learning (ML) based surrogate function learning model in conjunction with the acquisition function to perform adaptive trial execution of the application with one or more received parameters. The program code computes a pareto surface of KPIs of the application based on observed outputs from the trial execution. The program code explores the computed pareto surface and selects an optimal operating point for the application that corresponds to a configuration of the one or more parameters. The program code is further for executing the application at the selected optimal operating point.

[0009] In yet another aspect, a method for coordinating multi-objective optimization of an application is provided. A set of two or more key performance indicators (KPIs) associated with an application are received. A machine learning (ML) based surrogate function learning model in conjunction with the acquisition function is utilized to perform adaptive trial execution of the application with one or more received parameters. A pareto surface of KPIs of the application is computed based on observed outputs from the trial execution. The computed pareto surface is explored and an optimal operating point for the application is selected based on the exploration, where the optimal operating point corresponds to a configuration of the one or more parameters. The application is then executed at the selected optimal operating point.

[0010] These and other features and advantages will become apparent from the following detailed description of preferred embodiments thereof, taken in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF DRAWINGS

[0011] The accompanying drawings, which are incorporated in and form a part of the specification, illustrate preferred embodiments of the present application and, together with the description, serve to explain the principles of the application. The features shown in the various drawings are meant to be illustrative only and are not meant to limit the present application unless otherwise specifically indicated.

[0012] Figure 1 A system diagram illustrating a computer system and embedded tool for supporting multi-objective optimization of an application is depicted.

[0013] Figure 2 A block diagram illustrating the tool and its associated application program interface shown in Figure 1

[0014] Figure 3 A flow diagram illustrating a process for multi-objective optimization of an application is depicted.

[0015] Figure 4 A flow diagram illustrating a process for utilizing machine learning to perform one or more adaptive trials is depicted.​

[0016] Figure 5 A block diagram depicting a graph and example pareto surface showing KPIs for latency and error rate targets.

[0017] Figure 6 A block diagram depicting an example hierarchy of interacting microservices.

[0018] Figure 7 A block diagram depicting an example hierarchy of application microservices with sequential query constraints.

[0019] Figure 8 A block diagram depicting an example hierarchy of application microservices with parallel query constraints.

[0020] Figure 9 A block diagram of an example of a computer system / server, for implementing the above described systems and processes in relation to the cloud-based support system, is depicted in FIG. 1. Figures 1-8

[0021] Figure 10 A block diagram depicting a cloud computer environment is depicted.

[0022] Figure 11 A block diagram depicting a set of functional abstraction model layers provided by a cloud computing environment is depicted. DETAILED DESCRIPTION

[0023] It will be readily understood that the components of the present embodiments, as generally described and illustrated in the Figures herein, can be arranged and designed in a wide variety of different configurations. Thus, the following detailed description of the embodiments of devices, systems, methods and computer program products of the present embodiments as presented in the Figures is not intended to limit the scope of the claimed embodiments, but is merely representative of selected embodiments.

[0024] Reference throughout this specification to "selected embodiment", "one embodiment", or "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of the phrase "selected embodiment", "in one embodiment", or "in an embodiment" in various places throughout this specification are not necessarily referring to the same embodiment.

[0025] The illustrated embodiments will be best understood by reference to the drawings, wherein like reference numerals refer to like parts throughout. The following description is intended only by way of example and simply demonstrates some selected embodiments of devices, systems and processes consistent with the embodiments claimed herein.

[0026] ​Artificial intelligence (AI) relates to the field of computer science directed to computers and computer behavior related to humans. AI refers to intelligence when a machine is able to make a decision based on information, for example, to improve or maximize the chances of success in a given subject. More specifically, AI is able to learn from a data set to solve a problem and provide relevant recommendations. For example, in the field of artificial intelligence computer systems, natural language systems, such as IBM Artificial intelligence computer systems or other natural language query answering systems process natural language based on knowledge obtained by the system. To process natural language, the system can be trained with data derived from a database or knowledge corpus, but the resulting outcome can be incorrect or inaccurate for a variety of reasons.

[0027] At the core of AI and related reasoning is the concept of similarity. The process of understanding natural language and objects requires reasoning from a relational perspective, which can be challenging. Structures, including static structures and dynamic structures, dictate a determined output or action for a given determined input. More specifically, the determined output or action is based on explicit or inherent relationships within the structure. This arrangement can be satisfactory for selected cases and conditions. However, it can be appreciated that dynamic structures inherently undergo changes and the output or action can accordingly undergo changes.

[0028] As mentioned above, machine learning (ML) is a subset of AI that utilizes algorithms to learn from data (rather than through explicit programming) and create foresights based on that data. ML is the application of AI through the creation of neural networks that can demonstrate learning behavior by performing tasks that are not explicitly programmed. ML requires data to be analyzed, formatted, and conditioned to build a machine learning model and train a machine learning algorithm. It is appreciated in the art that ML algorithms are computerized programs and generate ML models when trained on data. Selecting a ML algorithm is essential for successful application of ML. Examples of ML include, but are not limited to, regression algorithms, decision trees, instance-based algorithms, and clustering algorithms. After the data is prepared and the algorithm is trained, the ML model can make determinations or predictions about the data. The greater the amount of data provided, the more the model learns and improves the accuracy of the model’s predictions.

[0029] ML models fall into the following basic categories: supervised machine learning, unsupervised machine learning, reinforcement machine learning, and deep learning. Supervised learning algorithms learn a mapping function for a dataset with existing classifications, where unsupervised learning algorithms can classify unlabeled datasets based on some hidden features in the data. Reinforcement learning can learn a policy for making decisions in an uncertain environment through iterative exploration of the environment. Deep learning combines neural networks in successive layers to learn from data in an iterative manner. Neural networks are models of the way the nervous system operates. The basic units are called neurons, which are typically organized into layers. Neural networks work by simulating a large number of interconnected processing units similar to abstract versions of neurons. There are typically three parts in a neural network, including an input layer (with units representing input fields), one or more hidden layers, and an output layer (with one or more units representing target fields). The units are connected with varying connection strengths or weights. Input data is presented to the first layer, and values are propagated from each neuron to every neuron in the next layer. Ultimately, results are passed from the output layer. Deep learning complex neural networks are designed to mimic how the human brain works, so computers can be trained to support poorly defined abstractions and problems. Neural networks and deep learning are often used in image recognition, speech, and computer vision applications.

[0030] Provided herein are intelligent systems, computer program products, and methods having tools and algorithms that run intelligent real-time analytics using machine learning (ML). More specifically, and as shown and described herein, ML is applied to a microservices architecture to facilitate multi-objective optimization of applications, including, for example, cloud applications. Different pathways can be used to parameterize a cloud application, where configuration of such parameters yields different values of key performance indicators (KPIs) of the application.

[0031] Latency is a networking term that points to the time interval or delay when a system component is waiting for another system component to respond. The duration of the time interval is called the latency. A timeout is an interrupt signal generated against a program or device that has been waiting for some input for a length of time but has not received it. Many programs perform timeouts so that the program is not in an idle state waiting for input that can never arrive. Setting timeout and retry values for microservices can yield different values of end-to-end latency and error rates of the application(s), e.g., cloud applications. It is desirable to be able to determine the best tradeoff between KPIs, such as latency versus error rate for a given application, before executing the application. In an embodiment, determining these tradeoffs allows for an actual evaluation of service level agreements (SLAs) associated with a given application. The analysis of tradeoffs is complex and, in one embodiment, is proportional to the architectural structure of the microservices in a cloud application.

[0032] See Figure 1, the computer system (100) is provided with tools that support multi-objective optimization of applications. As shown, a server (110) is provided in communication with a plurality of computing devices (180), (182), (184), (186), (188), and (190) across a network connection (105). The server (110) is configured with a processing unit, for example, a processor (112) operatively coupled to a memory (114) by a bus (116). Tools in the form of an artificial intelligence (AI) platform (150) are shown local to the server (110) and operatively coupled to the processing unit (112) and the memory (114). As shown, the AI platform (150) includes one or more tools in the form of an input manager (152), a trial manager (154), and an optimization manager (156) for providing and supporting multi-objective optimization of applications from one or more computing devices (180), (182), (184), (186), (188), and (190) over the network (105). Specifically, the computing devices (180), (182), (184), (186), (188), and (190) communicate with each other and other devices or components via one or more wired and / or wireless data communication links, where each communication link can include one or more of a wire, a router, a switch, a transmitter, a receiver, etc. In this networked arrangement, the server (110) and the network connection (105) enable optimization of cloud applications across distributed resources. Other embodiments of the server (110) can be used with components, systems, subsystems, and / or devices other than those depicted herein.

[0033] The AI platform (150) is shown here configured with tools for supporting ML (and more specifically, ML-based surrogate function learning models in combination with acquisition functions) to facilitate and enable cloud application optimization. The tools embedded herein including the input manager (152), the trial manager (154), and the optimization manager (156) are configured to receive inputs from different sources including, but not limited to, inputs from the network (105) and an operatively coupled knowledge base (160). In embodiments, the knowledge base (160) is configured with a library (162) having a plurality of applications, shown here by way of example as application A (164 A ), application B (164 B ), and application N (164 N ). Although only three applications are shown, this number is for illustrative purposes and should not be considered limiting. In embodiments, the knowledge base (160) can be configured with one or more additional libraries, each having one or more applications. The number of applications in the structure or library (162) is for illustrative purposes and should not be considered limiting.

[0034] Each application is shown herein with a machine learning (ML) surrogate function, referred to herein as an ML model. The application A (164 A ) has an ML model A (166 A ), the application B (164 B ) has an ML model B (166 B ), the application N (164 N ) has an ML model N (166 N ) is shown. Each ML model is shown herein with a corresponding model graph, also referred to herein as a graph. For purposes of description, the ML model A (166 A ) has a corresponding model graph A (170 A ), the ML model B (166 B ) has a corresponding model graph B (170 B ), and the ML model N (166 N ) has a corresponding model graph N (170 N ). In addition, each existing application can also have a respective acquisition function for sampling (and more specifically for measuring values to be generated). The application A (164 A ) has an acquisition function A (168 A ), the application B (164 B ) has an acquisition function B (168 B ), and the application N (164 N ) has an acquisition function N (168 N ). Details of how the ML surrogate functions, corresponding model graphs, and acquisition functions are utilized are shown and described in detail below.

[0035] Different computing devices (180), (182), (184), (186), (188), and (190) in communication with the network (105) exhibit access points to the Al platform (150). Tools (152), (154), and (156) support and enable multi-objective optimization of applications. In different embodiments, the network (105) can include local network connections and remote connections, thereby enabling the Al platform (150) and embedded tools (152), (154), and (156) to operate in environments of any size, including, for example, local and global (e.g., the Internet). Accordingly, the server (110) and the Al platform (150) charge as a front-end system, with the knowledge base (160) and the application(s) (164 A )-(164 N ) acting as a back-end system.

[0036] As described in detail below, the Al platform (150) optimizes performance of an application with respect to identified key performance indicators (KPIs), where the application is a collection of microservices. The Al platform (150) utilizes an input manager (152) to receive a set of two or more KPIs associated with the application. A KPI indicates an aspect of performance of the application that is a subject of optimization. In embodiments, the category of KPIs is user-selected and relates to performance aspects in which the user is interested in optimizing. Each KPI in the received set of KPIs has an associated or corresponding indicator type. Examples of possible KPI types include quantitative and qualitative indicators. A quantitative indicator indicates a quantity, which in embodiments can be a number, an index, a ratio, a percentage, and the like. A qualitative indicator does not show a numerical measurement. Rather, a qualitative indicator depicts a state of quality. Examples of types of quantitative measurements that measure performance of an application include, but are not limited to, latency, error rate, and throughput. Each quantitative indicator has one or more corresponding values.

[0037] In the art, an application is understood to be a collection of services (e.g., microservices), which can not be linearly arranged. Rather, it can be understood that microservices can include dependencies, and thus, the microservices have a hierarchical arrangement that reflects that dependency. In addition to KPIs, the input manager (152) receives one or more parameters associated with the application, where each parameter is associated with a parameter value. Examples of possible parameter values include, but are not limited to, timeouts, retries, and replication counts associated with one or more topological constraints corresponding to the hierarchical arrangement (e.g., a hierarchy). In the art, a hierarchy is an organizational technique in which items are layered or grouped to reduce complexity. In Figures 6-8 Examples of hierarchical arrangements of microservices are shown and described in the detailed description. The tunable parameter(s) are set with respect to the hierarchy of microservices, ensuring that the parameter value(s) guarantee that any query from a parent microservice is valid as long as a query from a child microservice is valid.

[0038] The trial manager (154), shown here as operatively coupled to the input manager (152), serves to monitor the dynamic resource state within the AI platform (150). More specifically, the trial manager (154) utilizes the ML-based surrogate function learning model in conjunction with the acquisition function to perform one or more adaptive trials of the application. As shown in the knowledge base (160), each application has a corresponding surrogate function and acquisition function. Each trial is for a particular configuration of the application based on the parameter setting(s). The trial manager (154) utilizes the acquisition function A (168 A ) to select a configuration of one or more parameters for an adaptive trial run of the application A (164 A ). The results of the adaptive trial provide a performance indicator value (e.g., KPI) of the application associated with the particular configuration of the parameter(s). In addition, the trial manager (154) utilizes the ML surrogate function to collect the KPI values in the associated ML model. The ML-based surrogate function learning model can be implemented using a neural network, Gaussian Progress regression, or other linear, or non-linear or kernel regression techniques, or other value estimation techniques used in black-box optimization or reinforcement learning. As such, the ML model maps each configuration of one or more parameters to two or more corresponding KPI values.

[0039] Multiple trials of the application can be performed through parameter value settings. The acquisition function (acquisition function A (168 A )) selects a new configuration of one or more parameter values and measures another adaptive trial and corresponding KPI values. The acquisition function can be implemented as an expected improvement function, a maximum improvement probability function, or a confidence upper bound function, or other action estimation techniques used in black-box optimization or reinforcement learning. The trial manager (154) uses the KPI values from each trial and computes a pareto surface of the application. The pareto surface graphically reveals all possible KPI values that can be achieved based on the configuration of parameter values employed in the adaptive trials. Thus, the trial manager (154) utilizes the ML surrogate function learning model and acquisition function to run adaptive trials of the application based on selected configurations of tunable parameters and uses the KPI values from the trials to compute a corresponding pareto surface.

[0040] The optimization manager (156) shown here is operatively coupled to the input manager (152) and the trial manager (154) for exploring the pareto surface computed by the trial manager (154) to find an optimal operating point for the application and executing the application at the selected operating point. The optimization manager (156) explores the computed pareto surface and selects an optimal operating point for the application from the exploration, also referred to herein as an operating point. In embodiments, the selected operating point represents a tradeoff of KPI values, where the selected point can have a higher value for a first more desirable KPI and a lower value for a second less desirable KPI. In embodiments, the operating point can be selected by a user. The optimization manager (156) executes the application using the selected operating point. By using the selected operating point, the application is executed with the desired KPI values specified by the user. Thus, the optimization manager (156) explores the computed pareto surface and selects an optimal operating point for the application and then executes the application using the selected operating point.

[0041] Although the AI platform (150) is shown as being embodied in or integrated with the server (110), the AI platform (150) can be implemented in a separate computing system (e.g., 190) connected to the server (110) across the network (105). Although the tools (152), (154), and (156) are shown as being local to the server (110), the tools (152), (154), and (156) can be distributed collectively or individually across the network (105). Regardless of where embodied, the input manager (152), the trial manager (154), and the optimization manager (156) are used to manage and support multi-objective optimization of applications.

[0042] Applications can be communicated to the server (110) across the network (105). For example, in embodiments, one or more applications can be communicated to the server (110) from a non-volatile data store (190 A ). The tools (152), (154), and (156) process applications whether the applications are from the knowledge base (160) or across the network (105).

[0043] The range of types of information handling systems that can utilize the server (110) spans from small handheld devices such as handheld computers / mobile telephones (180) to mainframe systems such as mainframe computers (182). Examples of handheld computers (180) include personal digital assistants (PDAs), personal entertainment devices such as MP4 players, portable televisions, and compact disc players. Other examples of information handling systems include pen or tablet computers (184), laptop or notebook computers (186), personal computer systems (188), and servers (190). As shown, different information handling systems can be networked together (105) using computer networks. The types of computer networks (105) that can be used to interconnect different information handling systems include local area networks (LANs), wireless local area networks (WLANs), the Internet, the public switched telephone network (PSTN), other wireless networks, and any other network topology that can be used to interconnect information handling systems. Many information handling systems include non-volatile data storage such as hard disk drives and / or non-volatile memory. Some of the information handling systems can use separate non-volatile data storage (e.g., server (190) utilizes non-volatile data storage (190 A ), and mainframe computer (182) utilizes non-volatile data storage (182 A ). The non-volatile data storage (182 A ) can be external to the different information handling systems or can be internal components of one of the information handling systems.

[0044] Information handling systems can take many forms, some of which are shown in Figure 1 . For example, an information handling system can take the form of a desktop, server, portable, laptop, notebook, or other form factor computer or data processing system. In addition, information handling systems can take other forms of factors such as personal digital assistants (PDAs), game devices, ATM machines, portable telephone devices, communication devices, or other devices that include processors and memory.

[0045] An application program interface (API) is understood in the art to be software that is intermediate to two or more applications. With respect to the application optimization system shown and described in Figure 1 , one or more APIs can be used to support one or more of the AI platform tools, including the input manager (152), the trial manager (154), and the optimization manager (156) and their associated functionality. See Figure 2, a block diagram (200) is provided that illustrates an AI platform tool and its associated API. As shown, a plurality of tools are embedded within an AI platform (205), where the tools include an input manager (252) associated with API0 (212), a trial manager (254) associated with API1 (222), and an optimization manager (256) associated with API2 (232). Each API can be implemented in one or more languages and interface specifications. API0 (212) provides support for the reception and management of selected KPIs and tunable parameters; API1 (222) provides support for conducting one or more adaptive application trials and using the observed KPIs from the trials to compute a corresponding pareto surface; and API2 (232) provides support for exploring the pareto surface, including selecting an optimal application operating point and executing the application at the selected operating point. As shown, each of the APIs (212), (222), and (232) are operably coupled to an API orchestrator (260), otherwise referred to as an orchestration layer, which is understood in the art to function as an abstraction layer to thread the individual APIs together transparently. In embodiments, the functionality of the individual APIs can be joined or combined. Thus, the configuration of the APIs shown herein should not be considered limiting. As such, the functionality of the tools can be embodied or supported by their respective APIs, as shown herein.

[0046] Referring to Figure 3 , a flowchart (300) is provided that illustrates a process for multi-objective optimization of an application. As shown and described, a user inputs two or more key performance indicators (KPIs) of interest with respect to an application (302), which in one embodiment can be a cloud-based application. In embodiments, a KPI is a measure that assesses how well a process or project meets certain expectations and objectives. KPIs can be incorporated into a cloud application to monitor and confirm desired directions in the form and functionality of the cloud application. Following step (302), one or more parameters associated with the application are received (304). The parameters received at step (304) are tunable parameters, and in embodiments, the received parameters are controllable, which affect the KPIs input at step (302). Examples of the received parameters include, but are not limited to, timeouts, retries, and replication counts associated with one or more topology constraints of the application. As such, the parameters associated with the application and the KPIs of interest are received.

[0047] As Figure 1 described, and as Figures 6-8As shown and described, the application includes a topological arrangement of microservices, which in embodiments includes a hierarchical arrangement of microservices. The hierarchical arrangement has inherent constraints for the topologies represented in the hierarchy. The parameters received at step (304) are responsive to the topologies, and in embodiments are adjusted or set relative to the hierarchy of microservices, including application of ensuring that the parameter value(s) guarantee that a query from a parent microservice is valid as long as a query from a child (e.g., related) microservice is valid. After receiving the parameter(s) at step (306), one or more adaptive application performance trials are conducted with the ML-based surrogate function associated with the application in conjunction with the corresponding acquisition function to measure KPI values corresponding to the categories of indicators specified at step (302), where the measured KPI values correspond to possible KPI values that can be achieved based on the configuration of parameter values received at step (304).

[0048] Referring to Figure 4 , a flowchart (400) is provided that illustrates a process for conducting application adaptive trials with ML. As shown, an acquisition function is utilized and a configuration of one or more tunable parameters (e.g., tunable parameters received at step (304)) is selected (402). In embodiments, the selection at step (402) is for a parameter that has not been utilized previously. A trial of the application is conducted using the selected application parameters (404). The output of the trial is observed in the form of KPI values, and the ML model is updated with the observed output and the parameter modification (406). This process of parameter selection and KPI measurement will continue for a predetermined amount of time or a defined amount of trials. In embodiments, the time or quantity limit is configurable. For example, in embodiments, the parameter configuration trial can be configured to evaluate an amount of time, e.g., 30 minutes. Thus, the ML surrogate function and acquisition function are utilized to determine quantitative outputs associated with KPIs at different configurations of one or more parameters.

[0049] Each trial of the present application produces a quantitative performance value associated with a KPI of interest. As such Figure 4The process returns to step (308) after the conclusion of the illustrated adaptive trial, in which the pareto surface is computed using the quantitative outputs of the observed KPI values of the function. A pareto efficiency is a situation that cannot be modified to make any individual or preference criterion better without making at least one individual or preference criterion worse. A pareto front or parto surface is a collection of all pareto efficient allocations, conventionally shown in graphical form. The pareto surface created in step (308) shows all possible quantitative KPI values measured from the application trial, which can be achieved based on the provided and in one embodiment tunable parameters. The created pareto surface is subjected to exploration to identify the optimal operating point of the application (310). The application is then executed using the identified optimal application operating point (312). Thus, as illustrated herein, based on the topology arrangement of the application microservices, application parameters are selected or tuned, ML utilizes the application parameters to conduct adaptive application trials and compute corresponding pareto surfaces, the corresponding pareto surfaces are explored to identify optimal operating points and the application is executed at the optimal operating points.

[0050] Referring to Figure 5 , a graph (500) is provided showing a plot of KPIs with respect to latency and error rate targets and an example pareto surface. As shown, a plot (510) is shown depicting two KPIs of latency and error rate. The plot (510) is shown with a latency indicator measured on a first axis (520) and an error rate indicator measured on a second axis (530). Application trials are conducted using selected parameters, and quantitative values associated with the indicators are measured, which are depicted in the plot (510). Each measurement is reflected with an entry in the plot (510). Multiple KPI measurements are shown as entries in the plot (510) from the trials, and a pareto surface (540) is created to represent a selected subset of the entries. Each graphical entry depicts a selected KPI value based on the provided tunable parameters (not shown), which in this example are latency and error rate. Any point on the pareto surface is a possible operating point of the application with corresponding and known (or identifiable) KPI values. For example, two possible or optimal operating points are shown on the pareto surface as operating point A (550) and operating point B (560). Operating point A (550) represents the optimal operating point of the application on the surface (540) with respect to latency, and operating point B (560) represents the optimal operating point of the application on the surface (540) with respect to error rate. Selecting operating points along the pareto surface (540) indicates application performance indicators prior to executing the application.

[0051] Figure 5 The plot shown in FIG. 2 is a two-dimensional pareto surface corresponding to two KPIs. It can be appreciated that in embodiments, the pareto surface can represent a larger number of KPIs. For example, in the case of three KPIs, the pareto surface would be a three-dimensional surface. Thus, Figure 5 The pareto surface shown in FIG. 2 is merely an example pareto surface from an application trial.

[0052] As described above in Figure 1 , microservices can have a hierarchical arrangement. Tunable parameters are set with respect to the hierarchy of microservices, ensuring that as long as queries from child microservices are valid, the parameter values guarantee that any queries from parent microservices are valid. See Figure 6 , a block diagram (600) is provided that describes an example hierarchy of interacting microservices. A gateway (602) is shown in communication with a hierarchy of microservices. The topology shown in the hierarchy includes three levels, shown herein as level 0 (610), level 1 (620), and level 2 (630). In embodiments, level 0 (610) is a parent level, level 1 (620) is a child level, and level 2 (630) is a parent-child level. Level 0 (610) is shown with a single microservice, e.g., microservice 0,0 (612). In embodiments, microservice 0,0 (612) is referred to as a parent microservice, which will remain valid as long as queries from child microservices are valid. Microservices 1,0 (622) and microservice 1,1 (624) are shown in the child level, e.g., level 1 (620) in the hierarchy. Microservices 1,0 (622) and microservice 1,1 (624) are referred to as child microservices, each of which is related to and dependent on parent microservice 0,0 (612), respectively. A microservice can be both a parent microservice and a child microservice in the hierarchy. As shown, microservice 1,1 (624) is both dependent on microservice 0,0 (612) and a parent to microservice 2,0 (632) in level 2 (630). Based on the hierarchy and arrangement shown herein, microservice 1,1 (624) will remain valid only if queries from microservice 2,0 (632) are valid. Thus, the hierarchical arrangement of microservices shown herein illustrates an example of the relationship between microservices.

[0053] Figure 7is a block diagram (700) depicting an example hierarchy of application microservices with sequential query constraints. A gateway (702) is shown in communication with a hierarchy of microservices. The topology shown in the hierarchy includes two levels, shown herein as level 0 (710) and level 1 (720). In embodiments, level 0 (710) is a parent level, also referred to as an independent level, and level 1 (720) is a child level, also referred to as a dependent level. Level 0 (710) is shown with a single microservice, also referred to as a parent microservice, microservice 0,0 (712). Level 1 (720) is shown with two child microservices, including microservice 1,0 (722) and microservice 1,1 (732). Each child microservice (722) and (732) is separate and directly related to parent microservice (712). Parent microservice 0,0 (712) is configured with a timeout parameter y0 (714). Similarly, each of child microservices (722) and (732) is configured with a corresponding timeout parameter and retry parameter. As shown, microservice 1,0 (722) is shown with a timeout parameter y2 (724) and a retry parameter z2 (726), and microservice 1,1 (732) is shown with a timeout parameter y3 (734) and a retry parameter z3 (736). The topology constraint of the hierarchy shown here is a sequential query scenario, as shown by the equation y1≥ y2z2+ y3z3. Under this sequential query scenario, parent microservice 1,0 (712) will not timeout when either child microservice 1,1 (722) or child microservice 0,0 (732) is valid.

[0054] Figure 8 is a block diagram (800) depicting an example hierarchy of application microservices with parallel query constraints. A gateway (802) is shown in communication with a hierarchy of microservices, where the hierarchy includes two levels of microservices. A parent microservice (microservice 0,0 (812) is shown in a first level (810) (e.g., level 0), and an interface between the gateway (802) and microservices represented in a second level (820) (e.g., level 1) (also referred to as a child level). Level 1 (820) is shown with two child microservices, each directly and separately corresponding to parent microservice 0,0 (812). Child microservice 1,0 (822) is directly related to parent microservice 0,0 (812), and child microservice 1,1 (832) is directly related to parent microservice 0,0 (812). Parent microservice 0,0 (812) is configured with a timeout parameter yl (814). Similarly, the child microservice 1,0 (822) is configured with a timeout parameter y2(824) and a retry parameter z2(826), and the microservice 1,1 (832) is configured with a timeout parameter y3(834) and a retry parameter z3(836). The topology constraint for the hierarchy shown herein is a parallel query scenario, shown as the equation y1≥ max{y2z2, y3z3}. Under this parallel query scenario, the microservice 1,0 (812) will not timeout when either the child microservice 1,1 (822) or the child microservice 0,0 (832) is valid.

[0055] The hierarchical arrangement and corresponding sequential and parallel query scenarios shown and described in Figure 6 , 7 and 8 are examples for illustrative purposes and should not be considered limiting. More specifically, the hierarchical arrangements shown herein are examples for responding to the topology constraints of the arrangements. In embodiments, the number of microservices, the topology arrangement, and the complexity of the query scenario can grow.

[0056] The embodiments shown and described herein can be in the form of a computer system for use with an AI platform for providing and machine learning multi-objective optimization for orchestrating cloud applications. Aspects of the tools (152), (154), and (156) and their associated functionality can be embodied in a computer system / server in a single location, or in embodiments, can be configured in a cloud-based system that shares computing resources. See Figure 9 , a block diagram (900) showing an example of a computer system / server (902), hereinafter referred to as a host (902) in communication with a cloud-based support system to implement the systems and processes described above with reference to Figures 1-8 The host (902) is operable with numerous other general purpose or special purpose computing system environments or configurations. Examples of well- known computing systems, environments, and / or configurations that can be suitable for use with the host (902) include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and file systems (e.g., distributed storage environments and distributed cloud computing environments) including any of the systems, devices, and equivalents thereof.

[0057] The host (902) can be described in the general context of computer system executable instructions, such as program modules, being executed by a computer system. Generally, program modules can include routines, programs, objects, components, logic, data structures, and so on that perform particular tasks or implement particular abstract data types. The host (902) can be implemented in a distributed cloud computing environment (910) with remote processing devices linked through a communication network. In a distributed cloud computing environment, program modules can be located in both local and remote computer system storage media including memory storage devices.

[0058] As shown in Figure 9 The host (902) is shown in the form of a general-purpose computing device. The components of host (902) can include, but are not limited to, one or more processors or processing units (904), a system memory (906), and a bus (908) that couples various system components including system memory (906) to processor (904). Bus (908) represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus. Host (902) typically includes a variety of computer system readable media. Such media can be any available media that is accessible by host (902) and includes both volatile and non-volatile media, removable and non-removable media.

[0059] Memory (906) can include computer system readable media in the form of volatile memory, such as random access memory (RAM) (930) and / or cache memory (932). By way of example only, storage system (934) can be provided for reading from and writing to non-removable, non-volatile magnetic media (not shown and typically called a "hard drive"). Although not shown, a magnetic disk drive can be used for reading from, and writing to, a removable, non-volatile magnetic disk (e.g., a "floppy disk"), and an optical disk drive can be used for reading from or writing to a removable, non-volatile optical disk (such as a CD-ROM, DVD-ROM or other optical media). In such instances, each can be connected to bus (908) by one or more data media interfaces.

[0060] Program / utility (940), having a set of program modules (942) such as an operating system, one or more application programs, other program modules, and program data, can be stored in memory (906) by way of example, without limitation, as well as an implementation of the embodiments of adversarial training and dynamic classification model evolution. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, can include an implementation of a networking environment. Program modules (942) generally carry out the functions and / or methodologies of embodiments of adversarial training and dynamic classification model evolution. For example, the set of program modules (942) can include a module configured to Figure 1 modules of the tools (152), (154), and (156) described in the Background section.

[0061] The host (902) can also communicate with one or more external devices (914) such as a keyboard, a pointing device, a sensing input device, a sensing output device, etc.; a display (924); one or more devices that enable a user to interact with the host (902); and / or any devices (e.g., network card, modem, etc.) that enable the host (902) to communicate with one or more other computing devices. Such communication can occur via Input / Output (I / O) interfaces (922). Still yet, the host (902) can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and / or a public network (e.g., the Internet) via a network adapter (920). As depicted, the network adapter (920) communicates with the other components of the host (902) via the bus (908). In embodiments, multiple nodes of a distributed file system (not shown) communicate with the host (902) via the I / O interfaces (922) or via the network adapter (920). It will be appreciated that, while not shown, other hardware and / or software components could be used in conjunction with the host (902). Examples include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.

[0062] In this document, the terms “computer program medium,” “computer usable medium,” and “computer readable medium” are used to generally refer to media such as memory (906) (including RAM (930)), cache (932), and storage system (934) (such as a removable storage drive and a hard disk drive) that can be used to provide computer programs to the processing unit (904).

[0063] A computer program (also known as computer control logic) is stored in the memory (906). The computer program can also be received via a communication interface such as the network adapter (920). The computer program, when run, enables the computer system to perform features of the present embodiments as discussed herein. Specifically, the computer program, when run, enables the processing unit (904) to perform features of the computer system. Accordingly, the computer program represents a controller of the computer system.

[0064] In embodiments, the host (902) is a node of a cloud computing environment. As known in the art, cloud computing is a model of service delivery for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with a provider of the service. This cloud model can include at least five characteristics, at least three service models, and at least four deployment models. The characteristics are as follows:

[0065] On-demand self-service: cloud consumers can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically (without human interaction with the service's provider).

[0066] Broad network access: capabilities are available over a network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

[0067] Resource pooling: the provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the consumer generally has no control or knowledge over the exact location of the provided resources but can be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter).

[0068] Rapid elasticity: capabilities can be rapidly and elastically provisioned, in some cases automatically, to quickly scale out and in to match demand. The capabilities available for provisioning commonly appear to change seamlessly to the consumer demonstrating no loss of performance.

[0069] Measured service: cloud systems automatically control and optimize resource use by leveraging utilization of resources in an economical and efficient manner, including their ability to deliver a measured quantity of the shared resources to consumers.

[0070] The service models are as follows:

[0071] Software as a Service (SaaS): the capability provided to the consumer is to use the provider's applications running on a cloud infrastructure. The applications are accessible from various client devices through a thin client interface such as a web browser (e.g., web-based e-mail). The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

[0072] Platform as a Service (PaaS): the capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including networks, servers, operating systems, or storage, but has control over the deployed applications and possibly application hosting environment configurations.

[0073] Infrastructure as a Service (IaaS): the capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include an operating system and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and possibly limited control of select networking components (e.g., host firewalls).

[0074] Deployment models are as follows:

[0075] Private cloud: the cloud infrastructure is operated solely for an organization. It can be managed by the organization or a third party and can exist on-premises or off-premises.

[0076] Community cloud: the cloud infrastructure is shared by several organizations and supports mission-oriented business

[0077] Public cloud: the cloud infrastructure is made available to the general public or a large industry group and is owned by an organization selling cloud services.

[0078] Hybrid cloud: the cloud infrastructure is a composition of two or more types of cloud (private, community, or public) that remain unique clouds but are bound together by standardized or proprietary technology that enables data and application portability.

[0079] A cloud computing environment is service-oriented, centralized on stateless, loosely-coupled, modular, and semantically interoperable. The core of cloud computing is an infrastructure comprising a network of interconnected nodes.

[0080] Referring now to the drawings Figure 10, a cloud computing network (1000) is shown. As shown, cloud computing network (1000) includes a cloud computing environment (1050) that includes one or more cloud computing nodes (1010) with which a cloud consumer can engage in a relationship of service consumption. Examples of cloud consumer devices include, but are not limited to, personal digital assistants (PDAs) or other handheld computing devices (1054A), desktop computers (1054B), laptop computers (1054C), and / or automobile computer systems (1054N). Individual nodes within the node (1010) can further communicate with one another. These nodes can be grouped (not shown) physically or virtually, in one or more networks, such as Private, Community, Public, or Hybrid clouds as described hereinabove, or a combination thereof. This allows cloud computing environment (1000) to offer infrastructure, platforms and / or software as services with Figure 10 understanding that

[0081] Referring now to Figure 11 , a set of functional abstraction layers (1100) provided by a cloud computing network of Figure 10 may be appreciated that Figure 11 the components, layers, and functions shown in System; servers based on RISC (Reduced Instruction Set Computer) architecture, in one example IBM System; IBM System; IBM System; storage devices; networks and networking components. Examples of software components include network application server software, in one example IBM application server software; and database software, in one example IBM database software. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere, and DB2 are trademarks of International Business Machines Corporation registered in many jurisdictions worldwide).

[0082] Virtualization layer (1120) provides an abstraction layer from which the following examples of virtual entities can be provided: virtual servers; virtual storage; virtual networks, including virtual private networks; virtual applications and operating systems; and virtual clients.

[0083] In one example, management layer (1130) can provide the functions described below. Resource provisioning: This includes the provision of computing resources, such as virtual machines, and other resources. Metering and Pricing: This includes the tracking and billing of consumption of these resources. In one example, these resources can include application software licenses. Security provides identity verification for cloud consumers and tasks, as well as protection for data and other resources. User portal: This is where cloud consumers can gain access to cloud computing resources and services. Service level management: This provides levels of access to cloud computing resources for different consumers, as well as the ability to manage these levels of access.

[0084] Workloads layer (1140) provides examples of functionality for which the cloud computing environment can be utilized. Examples of workloads and functions which can be provided from this layer include: mapping and navigation; software development and lifecycle management; virtual classroom education delivery; data analysis processing; transaction processing; and application management multi-objective optimization.

[0085] The system and flow diagrams shown herein can also be in the form of a computer program device for dynamically orchestrating prerequisite driven coded infrastructure. The device has program code embodied therewith. The program code can be executed by a processing unit to support the functionality described.

[0086] While particular embodiments have been shown and described, it will be obvious to those skilled in the art that, based upon the teachings herein, changes and modifications can be made without departing from this application's broader aspects. Therefore, the appended claims are to encompass within their scope all such changes and modifications as are within the true scope of the application. Furthermore, it is to be understood that the application is solely defined by the appended claims. Those skilled in the art will appreciate that the claims are not limited to the embodiments described above but can be practiced with modification and alteration within the scope and spirit of the following claims. In addition, if desired, embodiments can be summarized in the following numbered clauses:

[0087] The present embodiments can be a system, a method, and / or a computer program product. Furthermore, the embodiments of the present embodiments can take the form of a completely hardware embodiment, a completely software embodiment (including firmware, resident software, micro-code, etc.), or an embodiment combining software and / or hardware aspects that can all generally be referred to herein as a "circuit," "module" or "system." Furthermore, aspects of the present embodiments can take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon that can be executed by a processor. Such software can be supplied to the user of the present embodiments in a computer program product disposed to the user, such as a diskette, CD-ROM, or the like. Alternatively, the software can be downloaded to the user's computer from a remote location, such as a server, over a network, such as the Internet. Thus, the disclosed system, method, and / or computer program product can operate to improve the functionality and operation of multi-objective optimization applications.

[0088] A computer readable storage medium can be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, semiconductor, or any other suitable combination of the foregoing. More specific examples (a non-exhaustive list) of computer readable storage media include the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch cards or raised structures in grooves of a groove medium, or any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

[0089] Computer readable program instructions described herein can be downloaded to respective computing / processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and / or a wireless network. The network can comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and / or edge servers. 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.

[0090] Computer readable program instructions for carrying out operations of the present embodiments can be assembly instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages such as the "C" programming language or similar programming languages. The computer readable program instructions can execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server or cluster of servers. In the latter scenario, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate array (FPGA), or programmable logic array (PLA) can execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present embodiments.

[0091] Aspects of the present embodiments are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer program products. 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.

[0092] These computer readable program instructions can be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks. These computer readable program instructions can also be stored in a computer readable storage medium that can comprise a non-transitory computer readable storage medium

[0093] These computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions / acts specified in the flowchart and / or block diagram block or blocks.

[0094] The flow diagrams and block diagrams in the drawings are illustrative of the architecture, functionality, and operations of possible implementations of systems, methods and computer program products according to various embodiments of the present embodiments. Of note, each block in the flow diagrams or block diagrams can represent a portion of the instructions, segments, or modules including one or more executable instructions for implementing the specified logic functions. In some alternative implementations, the functions noted in the blocks can occur out of the order noted in the figures. For example, two blocks shown in succession can in fact be executed substantially concurrently or the blocks can sometimes be executed in the reverse order, depending on the functionality involved. Also, it is noted that each of the blocks of the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, can be implemented by special purpose hardware-based systems that perform the specified functions or actions, or combinations of special purpose hardware and computer instructions.

[0095] It will be appreciated that, although particular embodiments have been described herein for illustrative purposes, various modifications can be made without departing from the scope of the embodiments. Specifically, the encoding infrastructure (including dynamic coordination of prerequisite-driven encoding infrastructure) can be executed by different computing platforms or across multiple devices. Moreover, data storage and / or corpora can be local, remote, or spread across multiple systems. Accordingly, the scope of the implementations is defined only by the appended claims and their equivalents.

Claims

1. A computer system, comprising: A processing unit operatively coupled to a memory; An artificial intelligence (AI) platform, operatively coupled to the processing unit, is configured to coordinate multi-objective optimization of cloud applications, the AI ​​platform comprising: An input manager is used to receive a set of two or more key performance indicators (KPIs) associated with the application, each KPI in the set being associated with a KPI value; A trial manager is used to combine an acquisition function with a machine learning (ML)-based alternative function to learn a model to perform adaptive trials of the application with one or more parameters. The test manager is used to observe the output from each test execution and calculate the Pareto surface of the observed output; An optimization manager, used to explore the calculated Pareto surface and select the optimal application operation point corresponding to the configuration of the one or more parameters; and The optimization manager is used to execute the application at the selected optimal operation point.

2. The computer system according to claim 1, wherein, The ML-based substitution function learning model maps each configuration of the one or more parameters to the two or more KPI values.

3. The computer system according to claim 2, wherein, The ML-based alternative function learning model is implemented using neural networks, Gaussian progression regression, kernel regression techniques, or combinations thereof.

4. The computer system according to claim 1, wherein, The acquisition function is executed for a second trial of the application to select a second configuration of one or more second parameters.

5. The computer system according to claim 4, wherein, The acquisition function is implemented as an expected improvement function, a maximum improvement probability function, a confidence upper bound function, or a combination thereof.

6. The computer system according to claim 1, wherein, The set of two or more KPI values ​​includes latency, error rate, throughput, or combinations thereof, and wherein the one or more parameters associated with one or more topology constraints include timeout, retries, replication count, or combinations thereof.

7. The computer system according to claim 6, wherein, The topology constraints include the hierarchy of microservices, and the one or more parameters are set relative to the hierarchy, including ensuring that the one or more parameters guarantee that queries from the parent microservice in the hierarchy are valid as long as one or more queries from the child microservice are valid.

8. A computer program product for coordinating multi-objective optimization of a cloud application, the computer program product comprising a computer-readable storage medium having program code embodied therein, the program code being executable by a processor for: Receive a set of two or more key performance indicators (KPIs) associated with the application, each KPI in the set being associated with a KPI value; The application is subjected to adaptive trials using one or more received parameters by combining the acquisition function with a machine learning (ML)-based alternative function learning model. Observe the output from each trial execution and calculate the Pareto surface of the observed output; Explore the calculated Pareto surface and select the optimal application operation point corresponding to the configuration of the one or more parameters; as well as The application is executed at the selected optimal point of operation.

9. The computer program product according to claim 8, wherein, The ML-based substitution function learning model maps each configuration of the one or more parameters to the two or more KPI values.

10. The computer program product according to claim 9, wherein, The ML-based alternative function learning model is implemented using neural networks, Gaussian progression regression, kernel regression techniques, or a combination thereof.

11. The computer program product according to claim 8, wherein, The acquisition function is executed for a second trial of the application to select a second configuration of one or more second parameters.

12. The computer program product according to claim 11, wherein, The acquisition function is implemented as an expected improvement function, a maximum improvement probability function, a confidence upper bound function, or a combination thereof.

13. The computer program product according to claim 8, wherein, The set of two or more KPI values ​​includes latency, error rate, throughput, or combinations thereof, and wherein the one or more tunable parameters associated with one or more topology constraints include timeout, retries, replication count, or combinations thereof.

14. The computer program product according to claim 13, wherein, The topology constraints include the hierarchy of microservices, and the one or more parameters are set relative to the hierarchy, including ensuring that the one or more parameters guarantee that queries from the parent microservice in the hierarchy are valid as long as one or more queries from the child microservice are valid.

15. A computer-implemented method, comprising: Receive a set of two or more key performance indicators (KPIs) associated with the application, each KPI in the set being associated with a KPI value; The application is subjected to adaptive trials using one or more received parameters by combining the acquisition function with a machine learning (ML)-based alternative function learning model. Observe the output from each trial execution and calculate the Pareto surface of the observed output; Explore the calculated Pareto surface and select the optimal application operation point corresponding to the configuration of the one or more parameters; as well as The application is executed at the selected optimal point of operation.

16. The method according to claim 15, wherein, The ML-based substitution function learning model maps each configuration of the one or more parameters to the two or more KPI values.

17. The method according to claim 16, wherein, The ML-based alternative function learning model is implemented using neural networks, Gaussian progression regression, kernel regression techniques, or combinations thereof.

18. The method according to claim 15, wherein, The acquisition function is executed for a second trial of the application to select a second configuration of one or more second parameters.

19. The method according to claim 18, wherein, The acquisition function is implemented as an expected improvement function, a maximum improvement probability function, a confidence upper bound function, or a combination thereof.

20. The method of claim 15, wherein, The set of two or more KPI values ​​includes latency, error rate, throughput, or combinations thereof, and wherein the one or more parameters associated with one or more topology constraints include timeout, retries, replication count, or combinations thereof.

Citation Information

Patent Citations

  • Methods and apparatus for machine learning predictions and multi-objective optimization of manufacturing processes

    US10061300B1

  • Profile based optimization of processor operating points

    US20110214022A1