Information processing device and information processing method

JP7661205B2Active Publication Date: 2025-04-14TOYOTA JIDOSHA KK +1
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2021191864
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-11-26
Publication Date
2025-04-14
Estimated Expiration
2041-11-26

AI Technical Summary

Technical Problem

Existing methods struggle to optimally set target values for resources in microservice architectures, leading to inefficient resource allocation and potential waste, as the impact of each component on overall service quality is unclear.

Method used

An information processing device that uses machine learning to estimate the quality of service of applications built with microservice architectures, based on workload and resource usage information, and optimizes resource allocation accordingly.

Benefits of technology

This approach allows for the optimal allocation of resources to meet service quality targets, reducing costs such as power consumption and improving resource efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007661205000006
    Figure 0007661205000006
  • Figure 0007661205000007
    Figure 0007661205000007
  • Figure 0007661205000008
    Figure 0007661205000008
Patent Text Reader

Abstract

To provide a technology that can optimize an amount of resources used according to a service quality goal of an application built with microservice architecture.SOLUTION: An information processor according to one aspect of the present disclosure acquires a plurality of data sets respectively configured by a combination of training data and a correct label, and uses the acquired plurality of data sets to perform machine learning of an estimation model. The training data includes workload information for an application built with microservice architecture and resource use information for resources used by each component. The correct label indicates a true value of service quality of the application. The machine learning is configured so that, for each dataset, a quality of service estimate calculated based on the training data fits the true value indicated by the correct label.SELECTED DRAWING: Figure 1A
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to a technique for optimizing the amount of resources used in applications built with a microservices architecture. [Background technology]

[0002] In recent years, there have been an increasing number of cases where microservices architecture is adopted in the development and operation of application systems. Microservices architecture is a method of implementing each element that constitutes a service as an independent component called a microservice. Non-Patent Document 1 proposes a method of setting a target value for resource usage by each component (for example, processor / memory usage rate), and adjusting the amount of resources (specifically, the number of pods in which containers are deployed) so that the usage approaches the target value. [Prior art documents] [Non-patent literature]

[0003] [Non-Patent Document 1] "Horizontal Pod Autoscaler|Kubernetes", [online], [searched on November 5, 2021], Internet<URL: https: / / kubernetes.io / docs / tasks / run-application / horizontal-pod-autoscale / > Summary of the Invention [Problem to be solved by the invention]

[0004] An objective of the present disclosure is to provide a technology that can optimize the amount of resources used according to the quality of service goals of an application built with a microservices architecture. [Means for solving the problem]

[0005] An information processing device according to a first aspect of the present disclosure includes a control unit configured to acquire a plurality of data sets each composed of a combination of training data and a correct answer label, and to perform machine learning of an estimation model using the acquired plurality of data sets. The training data includes workload information for an application built with a microservice architecture in a learning target environment, and resource usage information for resources used by each component included in the application. The correct answer label is configured to indicate a true value of the service quality of the application. The machine learning is configured by training the estimation model such that an estimated value of the service quality calculated by the estimation model based on the training data for each of the data sets matches the true value indicated by the correct answer label.

[0006] An information processing device according to a second aspect of the present disclosure includes a control unit configured to acquire target data including workload information for an application built with a microservice architecture in an environment to be estimated, and resource usage information for resources used by each component included in the application; calculate an estimate of service quality of the application based on the acquired target data by using a trained estimation model; when the calculated estimate of service quality does not properly satisfy a target, optimize an amount of the resources with respect to the target based on the estimate of service quality calculated by the trained estimation model by a predetermined optimization method; and adjust the amount of the resources used by each component according to a result of the optimization.

[0007] An information processing method according to a third aspect of the present disclosure is an information processing method executed by a computer, comprising: acquiring target data including workload information for an application built with a microservice architecture in an environment to be estimated, and resource usage information for resources used by each component included in the application; calculating an estimate of service quality of the application based on the acquired target data by using a trained estimation model; when the calculated estimate of service quality does not properly satisfy a target, optimizing an amount of the resources with respect to the target based on the estimate of service quality calculated by the trained estimation model by a predetermined optimization method; and adjusting the amount of the resources used for each component according to a result of the optimization. Effect of the Invention

[0008] According to the present disclosure, the amount of resources used can be optimized according to the quality of service goals of an application built with a microservices architecture. [Brief description of the drawings]

[0009] [Figure 1A] FIG. 1A illustrates a schematic diagram of an example of a situation to which the present disclosure is applied. [Figure 1B] FIG. 1B illustrates a schematic diagram of an example of an application built using a microservices architecture. [Diagram 2] FIG. 2 is a schematic diagram illustrating an example of a hardware configuration of a server device according to an embodiment. [Diagram 3] FIG. 3 is a diagram illustrating an example of a software configuration of the server device according to the embodiment. [Figure 4] FIG. 4 illustrates an example of a machine learning process performed by a server device according to an embodiment. [Diagram 5] FIG. 5 illustrates an example of a process of optimizing the resource amount by the server device according to the embodiment. [Figure 6] FIG. 6 is a flowchart illustrating an example of a machine learning processing procedure performed by the server device according to the embodiment. [Figure 7] FIG. 7 is a flowchart illustrating an example of a processing procedure for optimizing the resource amount by the server device according to the embodiment. [Figure 8] FIG. 8 illustrates a first sample of an application of a microservice architecture in which the amount of resources is optimized according to the embodiment and the comparative example. [Figure 9] FIG. 9 illustrates a second sample of an application of a microservice architecture in which the amount of resources is optimized according to the embodiment and the comparative example. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] According to the method proposed in Non-Patent Document 1, the quality of service of the entire application can be guaranteed by adjusting the amount of resources used for each component (microservice) so that it approaches a target value. For example, the quality of service of the entire application can be improved by increasing the number of pods used for each component.

[0011] However, as the number of components increases and the configuration of an application becomes more complex, the impact of each component on the service quality of the entire application becomes unclear. Also, each component may have a different characteristic curve for the service quality of the application. That is, there may be components that can improve the service quality by allocating a small amount of resources, while there may be components that cannot improve the service quality without allocating a large amount of resources.

[0012] Therefore, it is difficult to optimally set target values ​​for each component so that the service quality of the entire application properly meets the target. In addition, if the target values ​​are determined uniformly, some components may end up with wasteful resource allocation. In other words, with conventional methods, it is difficult to optimize the amount of resources used for each component according to the service quality target of the entire application built with a microservices architecture.

[0013] In response to this, an information processing device according to a first aspect of the present disclosure includes a control unit configured to acquire a plurality of data sets each composed of a combination of training data and a correct answer label, and to perform machine learning of an estimation model using the acquired plurality of data sets. The training data includes workload information for an application built with a microservice architecture in a learning target environment, and resource usage information for resources used by each component included in the application. The correct answer label is configured to indicate a true value of the service quality of the application. The machine learning is configured by training the estimation model such that an estimated value of the service quality calculated by the estimation model based on the training data for each data set matches the true value indicated by the correct answer label.

[0014] An information processing device according to a second aspect of the present disclosure includes a control unit. The control unit is configured to execute the following: acquire target data including workload information for an application built with a microservices architecture in an environment to be estimated, and resource usage information for resources used by each component included in the application; calculate an estimate of service quality of the application based on the acquired target data by using a trained estimation model; when the calculated estimate of service quality does not adequately satisfy a target, optimize the amount of the resource with respect to the target based on the estimate of service quality calculated by the trained estimation model by a predetermined optimization method; and adjust the amount of the resource used by each component according to a result of the optimization.

[0015] According to the information processing device of the first aspect of the present disclosure, a trained estimation model that has acquired the ability to estimate the service quality of an application from the workload information and the resource usage information of the resource can be generated. According to the trained estimation model, when the workload state and the resource allocation to each component are given, the service quality of the entire application under the condition can be estimated. In other words, by using the trained estimation model, it is possible to infer the correspondence between the resource allocation to each component and the service quality of the application according to the workload state. Therefore, by giving a service quality target, an optimal amount of resources for each component according to the target can be derived by any optimization method.

[0016] Therefore, according to the information processing device according to the second aspect of the present disclosure, by using this trained estimation model, it is possible to optimize the amount of resources used for each component according to the service quality target of the application built with the microservice architecture. As a result, it is possible to reduce the cost (e.g., power consumption, etc.) required to maintain the service quality of the application. According to the information processing device according to the first aspect of the present disclosure, it is possible to generate a trained estimation model that can be used to optimize such resource allocation.

[0017] Hereinafter, an embodiment according to one aspect of the present disclosure (hereinafter, also referred to as "the present embodiment") will be described with reference to the drawings. However, the present embodiment described below is the same as the embodiment of the present disclosure in all respects. The above is merely an illustrative example. Various improvements or modifications may be made without departing from the scope of the present disclosure. In implementing the present disclosure, specific configurations according to the embodiments may be appropriately adopted. Note that, although the data appearing in the present embodiment is described in natural language, more specifically, the data is specified in pseudo-language, commands, parameters, machine language, etc. that can be recognized by a computer.

[0018] [1 Application example] Fig. 1A is a schematic diagram illustrating an example of a situation in which the present disclosure is applied. Fig. 1B is a schematic diagram illustrating an example of an application AP built in a microservices architecture.

[0019] The server device 1 according to this embodiment is one or more computers configured to execute an application AP, perform machine learning of an estimation model 5, and perform optimization of resource allocation using the generated trained estimation model 5. The server device 1 is an example of the information processing device of the first and second aspects described above.

[0020] The application AP is constructed with a microservices architecture and includes multiple component ASs. Each component AS is configured to execute an application process individually. As a result, each component AS provides a microservice individually. Each component AS may have a connection relationship from the front end to the back end as appropriate, depending on the information processing, service design, specifications, etc. provided by the application AP. The path from the front end to the back end may be called a service chain. Data may be handed over between each component AS as appropriate.

[0021] Each component AS may be containerized. That is, each component AS may be executed on a container. The container may be configured to include one or more components. Any software may be used to operate the application AP built in the microservices architecture. As an example, known software such as Kubernetes may be used.

[0022] As an example of operation, one or more clusters K may be constructed in the server device 1. The cluster K includes a master KM and one or more nodes KN, and is configured to execute an application AP. The master KM is configured to manage the cluster K by issuing an instruction to the node KN to maintain the contents set by an operator or the like. The node KN provides an execution environment for the application process of each component AS. The node KN may be configured to execute one or more pods, and the pod may be configured to deploy one or more containers KC. The master KM and the node KN may be configured by a physical machine or a virtual machine.

[0023] 1B, each component AS constituting the application AP may be executed on any node KN and any container KC. The number of containers KC that execute each component AS may be determined for each component AS. In addition, the number of containers KC deployed on one node KN may be appropriately determined, and the number of component ASs executed on one container KC may also be appropriately determined.

[0024] The application AP may be constructed in a microservice architecture, and the contents thereof may not be particularly limited. The information processing executed by the application AP and the services provided may not be particularly limited, and may be appropriately selected according to the embodiment. The name of the server device 1 may be appropriately changed according to the contents of the information processing executed by the application AP.

[0025] In the example of FIG. 1A, the application AP provides information processing to one or more terminals T via a network. In one example, the terminal T may be an in-vehicle device mounted on a vehicle. The in-vehicle device may be a specially designed computer or a portable general-purpose computer such as a smartphone. The application AP may be configured to analyze data obtained from the in-vehicle device to analyze traffic conditions, determine instructions for automatic driving, and perform other information processing related to vehicle operation. In another example, the terminal T may be a smartphone, other mobile terminal, a tablet PC (personal computer), a general-purpose The application AP may be, for example, a social networking service, an EC (electronic commerce) site, content (for example, music, video, games, etc.), etc. The present invention may be a web application that provides a distribution service of a program or the like.

[0026] (Learning stage) In the learning stage, the server device 1 according to this embodiment acquires a plurality of data sets 3. Then, the server device 1 performs machine learning of an estimation model 5 using the acquired plurality of data sets 3.

[0027] Each dataset 3 is composed of a combination of training data 31 and a correct answer label 33. The training data 31 is configured to include workload information 311, resource usage information 313, and service chain information 315. The workload information 311 is configured to indicate a workload state for an application built with a microservice architecture in a learning environment. The resource usage information 313 is configured to indicate a resource usage status (amount of resources used by each component) for each component included in the application. The service chain information 315 is configured to indicate a connection relationship (e.g., FIG. 1B) of each component included in the application. The correct answer label 33 is configured to indicate a true value of the service quality of the application in a situation (at that time or at a future time) indicated by the corresponding training data 31.

[0028] An application from which the data set 3 used for machine learning is collected is also referred to as a "learning target application." The application AP according to the present embodiment is an example of a learning target application. Each data set 3 may be collected from the execution record of the application AP by the cluster K.

[0029] The machine learning is configured by training the estimation model 5 so that, for each data set 3, an estimated value of the service quality calculated by the estimation model 5 based on the training data 31 matches the true value indicated by the correct answer label 33. This machine learning process can generate a trained estimation model 5 that has acquired the ability to estimate the service quality of the application from workload information for the application, resource usage information about resources, and service chain information. The generated trained estimation model 5 is used in the inference stage. Note that the estimating may be configured by regressing or identifying. The estimated value may be configured by a continuous value or a discrete value. The estimating may include predicting. This machine learning process may be performed offline for the application AP operated on the cluster K.

[0030] (Inference stage) In the inference stage, the server device 1 according to this embodiment acquires target data 4 including workload information 41, resource usage information 43, and service chain information 45. The workload information 41 is configured to indicate the state of the workload for an application built with a microservice architecture in the environment to be estimated. The resource usage information 43 is configured to indicate the usage of resources for each component included in the application. The service chain information 45 is configured to indicate the connection relationship of each component included in the application.

[0031] The server device 1 uses the trained estimation model 5 to calculate an estimate of the service quality of the application based on the acquired target data 4. The server device 1 determines whether the calculated estimate of the service quality satisfies a target (Target QoS). The target may be set in advance by any method (for example, by an instruction from an operator). If the calculated estimate of the service quality does not properly satisfy the target, the server device 1 optimizes the amount of resources used for each component with respect to the target based on the estimate of the service quality calculated by the trained estimation model 5 using a predetermined optimization method. Then, the server device 1 adjusts the amount of resources used for each component according to the optimization result.

[0032] An application for which the service quality is estimated using the trained estimation model 5 and the amount of resources is optimized based on the estimation result is also referred to as an "estimation target application." The application AP according to this embodiment is also an example of an estimation target application. The server device 1 may execute a process of optimizing the amount of resources online while operating the application AP by the cluster K. This may adjust the amount of resources (nodes KN, containers KC) of the cluster K used for executing the application AP. The resources are resources used for information processing, such as processor resources and memory resources. The processor may be a real processor or a virtual processor. The memory may be a real memory or a virtual memory. The adjustment of the amount of resources may be performed in any unit, such as a node KN unit, a pod unit, or a container KC unit.

[0033] (effect) As described above, according to the processing of the server device 1 in the inference stage of the present embodiment, by using the trained estimation model 5, according to the target of the service quality of the application AP constructed in the microservices architecture, the amount of resources used for each component AS can be optimized. As a result, it is possible to reduce the cost required to maintain the service quality of the application AP. According to the processing of the server device 1 in the learning stage of the present embodiment, a trained estimation model 5 that can be used for such resource allocation optimization can be generated.

[0034] (Others) The service chain information (315, 45) may be configured to represent the connection relationship of each component AS in a graph format. A graph represents data by edges and nodes. Each component AS may be represented by an edge, and the connection relationship between each component AS may be represented by a node. As the data format of the graph, for example, a known data format such as a matrix may be used. Accordingly, the estimation model 5 may be configured to include a graph neural network. As the structure of the graph neural network, for example, a known structure proposed in a reference (Scarselli, Franco, et al., "The graph neural network model", IEEE transactions on neural networks 20.1 (2008): 61-80, [online], [searched on November 5, 2021], Internet <URL: https: / / ieeexplore.ieee.org / abstract / document / <4700287>) and the like may be used. Thereby, the connection relationship of each component AS indicated by the service chain information can be appropriately reflected in the service quality estimation process, and as a result, the estimation accuracy can be improved.

[0035] The service quality may be calculated based on at least any one of the delay time, execution time, and degree of being normally processed of the application AP. The delay time is a request such as data transfer The delay time may be the time (latency) taken from a request to a return of the request. As an example, the delay time may be the latency in real-time processing such as an instruction for automatic driving. The execution time may be the time taken to process the entire or part of the application AP. As an example, the execution time may be the time taken to process a batch process such as a map process or a reduce process. The degree of normal processing may be appropriately configured to indicate the degree to which the processing of the application AP was normally executed. The degree of normal processing may be expressed by the degree to which an error occurred (the processing was not normal). The degree may be expressed, for example, by the number of times, the ratio, etc. As an example, when the application AP is an HTTP application, the degree of normal processing may be expressed by the ratio of HTTP requests from the user (terminal T) that are normally processed and returned per unit time. According to these, the service quality can be appropriately evaluated, and as a result, the optimization of the resource amount can be appropriately performed.

[0036] The workload information (311, 41) may be configured to include at least one of the transaction volume for the application AP, the volume of messages from the user, and the volume of data transfer. The transaction volume may be calculated, for example, from the volume of data received from terminal T, the volume of processing requested from terminal T, etc. The message volume may be calculated, for example, from the number of requests from terminal T, etc. As an example, when the application AP is an HTTP application, the message volume may be the volume of HTTP requests. The message volume may be calculated by the total volume of messages, or may be calculated for each API (Application Programming Interface). The data transfer volume may be calculated, for example, from the volume of image files, According to these, the workload state can be appropriately expressed, and as a result, the resource amount can be appropriately optimized.

[0037] The resource usage information (313, 43) may be configured to include at least one of the processor usage, memory usage, and network bandwidth usage allocated to each component AS included in the application AP. The processor may be a real processor or a virtual processor. The real processor may include, for example, a Central Processing Unit (CPU), a microprocessor, a field-programmable gate array (FPGA), a Graphics Processing Unit (GPU), etc. The memory may be a real memory or a virtual memory. The real memory may include, for example, a storage (hard disk drive, solid state drive, etc.), a Random Access Memory (RAM), a cache memory (for example, Last For example, memory usage may be measured by the amount of input / output to storage / RAM, the bandwidth of the cache memory, the capacity of the cache memory, etc. Network bandwidth usage may be measured by the amount of input / output data via the network. Each usage amount may be expressed in any unit. These allow the resource usage to be properly expressed, and as a result, the optimization of the resource amount can be properly performed.

[0038] In this embodiment, the learning target application and the estimation target application are common to the application AP. In one example, the learning target application and the estimation target application may be the same as each other because the configuration of the application AP is consistent between the learning stage and the inference stage. However, the learning target application and the estimation target application do not necessarily have to be the same as each other. In another example, the learning target application and the estimation target application may be different from each other. For example, the learning target application and the estimation target application may be different from each other because the configuration of the component AS of the application AP is changed in the learning stage and the inference stage. Alternatively, the learning target application and the estimation target application may be separate applications (for example, different applications operated on different server devices). In this case, the components of the learning target application The component configuration of the target application and the component configuration of the estimation target application may be the same or different from each other.

[0039] In this embodiment, the server device 1 executes all of the processes of the application AP, the machine learning of the estimation model 5 (generation of the trained estimation model 5), and the optimization of resource allocation using the trained estimation model 5. However, each process does not necessarily have to be executed by the same device. At least one of the processes or at least a part of the processes may be executed by a computer other than the server device 1. As an example, each process of the application AP, the machine learning of the estimation model 5, and the optimization of resource allocation using the trained estimation model 5 may be executed by different devices. As another example, the machine learning of the estimation model 5 and the optimization of resource allocation using the trained estimation model 5 may be executed by the same server device, and the application AP may be executed by another server device. In this case, each server device may be composed of one or more computers.

[0040] In addition, in this embodiment, the server device 1 may be configured with multiple computers. In this case, the processes of the application AP, the machine learning of the estimation model 5, and the optimization of resource allocation using the trained estimation model 5 may be at least partially executed by the same computer, or may be executed by different computers. The computer that executes each process may be appropriately selected.

[0041] [2 Configuration example] [Hardware configuration example] Fig. 2 is a schematic diagram showing an example of a hardware configuration of the server device 1 according to the present embodiment. As shown in Fig. 2, the server device 1 according to the present embodiment is a computer to which a control unit 11, a storage unit 12, a communication interface 13, an input device 14, an output device 15, and a drive 16 are electrically connected.

[0042] The control unit 11 includes a CPU, which is a hardware processor, a RAM, a ROM (Read Only Memory), a cache memory, etc., and is configured to execute information processing based on programs and various data. The control unit 11 (CPU) is an example of a processor resource. The storage unit 12 is configured, for example, with a hard disk drive, a solid state drive, etc. The storage unit 12 is an example of a memory resource. In this embodiment, the storage unit 12 stores various information such as an operating system 80, a program 81, learning result data 125, etc.

[0043] The operating system 80 provides basic functions for controlling the hardware of the server device 1. The type of the operating system 80 is not particularly limited and may be appropriately selected according to the embodiment. The program 81 is a program for causing the server device 1 to execute information processing of the machine learning of the estimation model 5 (FIG. 6 described later) and information processing of the optimization of resource allocation using the trained estimation model 5 (FIG. 7 described later). The program 81 includes a series of instructions for the information processing. The instruction portion related to the information processing of the machine learning of the estimation model 5 and the instruction portion related to the information processing of the optimization of resource allocation may be held as separate programs. The learning result data 125 indicates information related to the trained estimation model 5 generated by machine learning.

[0044] The communication interface 13 is, for example, a wired LAN (Local Area Network) module, a wireless LAN module, etc., and is an interface for performing wired or wireless communication via a network. The server device 1 may perform data communication with other computers via the communication interface 13.

[0045] The input device 14 is a device for performing input, such as a mouse, a keyboard, etc. The output device 15 is a device for performing output, such as a display, a speaker, etc. An operator can operate the server device 1 by using the input device 14 and the output device 15. The input device 14 and the output device 15 may be integrally configured, for example, by a touch panel display, etc.

[0046] The drive 16 is a device for reading various information such as programs stored in a storage medium 91. The above-mentioned program 81 may be stored in the storage medium 91. The storage medium 91 is a medium for storing information such as programs by electrical, magnetic, optical, mechanical or chemical action so that a computer or other device, machine or the like can read the various information such as the stored program. The server device 1 may obtain the program 81 from the storage medium 91.

[0047] 2 illustrates a disk-type storage medium such as a CD or a DVD as an example of the storage medium 91. However, the type of the storage medium 91 is not limited to the disk type, and may be other than the disk type. An example of a storage medium other than the disk type is a semiconductor memory such as a flash memory. The type of the drive 16 may be appropriately selected depending on the type of the storage medium 91.

[0048] In addition, regarding the specific hardware configuration of the server device 1, components can be omitted, replaced, and added as appropriate depending on the embodiment. For example, the control unit 11 may include multiple hardware processors. The hardware processor may be configured with a microprocessor, FPGA, GPU, etc. The storage unit 12 may be configured with a RAM and a ROM included in the control unit 11. At least one of the input device 14, the output device 15, and the drive 16 may be omitted. The server device 1 may be configured with multiple computers. In this case, the hardware configurations of the computers may be the same or may not be the same. The server device 1 may be an information processing device designed exclusively for the service provided, as well as a general-purpose information processing device, etc.

[0049] [Software configuration example] FIG. 3 is a schematic diagram showing an example of a software configuration of the server device 1 according to the present embodiment. The control unit 11 of the server device 1 loads the program 81 stored in the storage unit 12 in the RAM. Then, the control unit 11 executes the instructions included in the program 81 loaded in the RAM by the CPU. As a result, as shown in FIG. 3, the server device 1 according to the present embodiment runs the application AP on the operating system 80 and operates as a computer including a machine learning unit 61 and an optimization execution unit 63 as software modules. That is, in the present embodiment, each software module of the server device 1 is realized by the control unit 11 (CPU). In the example of FIG. 3, the machine learning unit 61 and the optimization execution unit 63 are implemented as one component AS included in the application AP.

[0050] <Machine Learning Department> The machine learning unit 61 is configured to execute information processing related to the machine learning of the estimation model 5. In this embodiment, the machine learning unit 61 includes a setting reception unit 611, a data acquisition unit 612, a learning processing unit 613, a storage processing unit 614, and a communication unit 615. The setting reception unit 611 is configured to accept settings related to the machine learning conditions of the estimation model 5 (e.g., the configuration of the estimation model 5, the initial values ​​of parameters, the number of iterations, etc.). The data acquisition unit 612 is configured to acquire multiple data sets 3, each of which is composed of a combination of training data 31 and a correct answer label 33. The learning processing unit 613 is configured to implement machine learning of the estimation model 5 using the acquired multiple data sets 3. The storage processing unit 614 is It is configured to generate information about the trained estimation model 5 generated by machine learning as learning result data 125, and to store the generated learning result data 125 in an arbitrary storage area. The learning result data 125 is appropriately configured to include information for reproducing the trained estimation model 5. The communication unit 615 is configured to exchange data with the master KM, other components AS, etc.

[0051] (An example of a machine learning method) 4 is a schematic diagram showing an example of a process of machine learning of the estimation model 5 by the machine learning unit 61. The estimation model 5 is configured by a machine learning model having one or more calculation parameters for executing the estimation process, the values ​​of which are adjusted by machine learning. As long as the calculation process for calculating an estimated value of service quality can be executed, the type, configuration, and structure of the machine learning model adopted in the estimation model 5 are not particularly limited and may be appropriately determined depending on the embodiment.

[0052] As an example, the estimation model 5 may be configured with a neural network. In this case, the weight of the connection between each node (neuron), the threshold value of each node, etc. are examples of the calculation parameters. The type and structure of the neural network (e.g., the type of each layer, the number of layers, the number of nodes in each layer, the connection relationship of the nodes, etc.) may be appropriately determined according to the embodiment. The estimation model 5 may be configured with, for example, a fully connected neural network, a convolutional neural network, a recurrent neural network, etc. In this embodiment, the service chain information (315, 45) may be configured to express the connection relationship of each component AS in a graph format. In response to this, the estimation model 5 may be configured to include a graph neural network as a component that processes at least the service chain information (315, 45) of the input data.

[0053] Each dataset 3 used for machine learning may be collected from the execution record of the application AP by the cluster K. In one example, each dataset 3 may be collected by the data acquisition unit 612. In another example, each dataset 3 may be collected by another component or another computer other than the server device 1. In this case, the data acquisition unit 612 may acquire each dataset 3 collected by another component or another computer in any manner. Each dataset 3 may be automatically generated by the operation of a computer, or may be generated proactively by at least partially including the operation of an operator.

[0054] Each data set 3 is composed of a combination of training data 31 and a correct label 33. In this embodiment, the training data 31 is configured to include workload information 311, resource usage information 313, and service chain information 315. The correct label 33 is configured to indicate a true value of the service quality of the application AP in a situation indicated by each piece of information (311, 313, 315) of the associated training data 31. The true value indicated by the correct label 33 may relate to the service quality of the entire application AP. The service quality may be calculated based on at least one of the delay time, the execution time, and the degree of normal processing. The true value may be obtained by measuring the service quality of the application AP based on at least one of the above indicators corresponding to each piece of information (311, 313, 315).

[0055] As a machine learning process, the learning processing unit 613 trains the estimation model 5 so that the output (estimated value of service quality) obtained from the estimation model 5 by providing the training data 31 for each data set 3 matches the correct label 33. That is, the learning processing unit 613 uses the training data 31 of each data set 3 as input data and the correct label 33 as a teacher signal to perform machine learning of the estimation model 5. Training the estimation model 5 is It is configured by adjusting (optimizing) the values ​​of the calculation parameters of the estimation model 5 so that the output (estimated value of service quality) obtained for the training data 31 matches the correct label 33. The method of adjusting the calculation parameters (method of solving the optimization problem) may be appropriately determined depending on the type, configuration, structure, etc. of the machine learning adopted in the estimation model 5.

[0056] As an example of the adjustment method, when the estimation model 5 is configured by a neural network, the learning processing unit 613 inputs the training data 31 of each data set 3 to the estimation model 5 and executes a forward propagation arithmetic process of the estimation model 5. As a result of this arithmetic process, the learning processing unit 613 acquires a result of estimating the service quality of the application AP based on each piece of information (311, 313, 315) included in the training data 31 from the estimation model 5 (estimated value of service quality). The learning processing unit 613 calculates an error between the obtained estimated value and a true value indicated by the corresponding correct label 33, and further calculates a gradient of the calculated error. The learning processing unit 613 calculates an error of the value of the calculation parameter of the estimation model 5 by backpropagating the gradient of the calculated error by the error backpropagation method. The learning processing unit 613 updates the value of the calculation parameter based on the calculated error.

[0057] The learning processing unit 613 adjusts the values ​​of the calculation parameters of the estimation model 5 by this series of update processes so that the sum of errors between the estimated value obtained by providing the training data 31 and the true value indicated by the correct label 33 becomes smaller. This adjustment of the values ​​of the calculation parameters may be repeated until a predetermined condition is satisfied, such as performing the adjustment for a set number of iterations or until the calculated sum of errors becomes equal to or less than a threshold value. In addition, the machine learning conditions, such as the loss function and the learning rate, may be appropriately set according to the embodiment. A trained estimation model 5 can be generated by this machine learning process.

[0058] The storage processing unit 614 generates learning result data 125 for reproducing the trained estimation model 5 generated by the machine learning. As long as the trained estimation model 5 can be reproduced, the configuration of the learning result data 125 is not particularly limited and may be appropriately determined according to the embodiment. As an example, the learning result data 125 may include information indicating the values ​​of each calculation parameter of the estimation model 5 obtained by adjusting the machine learning. In some cases, the learning result data 125 may further include information indicating the structure of the estimation model 5. The structure may be specified by, for example, the number of layers from the input layer to the output layer, the type of each layer, the number of neurons included in each layer, the connection relationship between neurons in adjacent layers, etc. The storage processing unit 614 stores the generated learning result data 125 in a predetermined storage area.

[0059] <Optimization execution unit> 3 , the optimization execution unit 63 holds the learning result data 125, thereby providing a trained estimation model 5. The optimization execution unit 63 is configured to execute information processing related to optimization of resource deployment using the trained estimation model 5. In this embodiment, the optimization execution unit 63 includes a setting reception unit 631, a data acquisition unit 632, an estimation unit 633, an optimal amount calculation unit 634, a resource adjustment unit 635, and a communication unit 636.

[0060] FIG. 5 shows an example of a process of optimizing the resource amount used by each component AS of the application AP by the optimization execution unit 63. The setting reception unit 631 is configured to receive settings related to the optimization conditions (e.g., the service quality target, the optimization method to be used, etc.). The data acquisition unit 632 is configured to acquire the target data 4. In this embodiment, the target data 4 is configured to include the workload information 41, the resource usage information 43, and the service chain information 45. In one example, the data acquisition unit 632 may acquire the target data 4 directly from the cluster K that operates the application AP. In another example, the target data 4 may be generated by another component or another computer, and the data acquisition unit 632 may acquire the target data 4 directly from the other component or another computer. Or the target data 4 may be obtained indirectly.

[0061] The estimation unit 633 is configured to calculate an estimate of the service quality of the application AP based on the acquired target data 4 by using the trained estimation model 5. The calculated estimate may be related to the service quality of the entire application AP. The optimal amount calculation unit 634 is configured to determine whether the calculated estimated value of the service quality properly meets the target. In addition, the optimal amount calculation unit 634 is configured to optimize the amount of resources with respect to the target based on the estimated value of the service quality calculated by the trained estimation model 5 by a predetermined optimization method when the calculated estimated value of the service quality does not properly meet the target. The resource adjustment unit 635 is configured to adjust the amount of resources (e.g., the number of nodes KN, the number of containers KC) used for each component AS according to the optimization result. The communication unit 636 is configured to exchange data with the master KM, other components AS, etc.

[0062] <Other> In this embodiment, an example is described in which each software module of the server device 1 is realized by a general-purpose CPU. However, some or all of the above software modules may be realized by one or more dedicated processors. Each of the above modules may be realized as a hardware module. With regard to the software configuration of the server device 1, modules may be omitted, replaced, or added as appropriate depending on the embodiment.

[0063] In this embodiment, the machine learning unit 61 and the optimization execution unit 63 are each implemented as one component AS. However, the implementation format of each software module may not be limited to such an example. At least one of the machine learning unit 61 and the optimization execution unit 63 may be implemented by multiple component AS. The machine learning unit 61 and the optimization execution unit 63 may each be executed on one or more containers KC. At least some of the components AS constituting the machine learning unit 61 and the optimization execution unit 63 may be executed on the same container KC, or each component AS may be executed on a separate container KC. At least one of the machine learning unit 61 and the optimization execution unit 63 may be executed as an application process separate from the application AP.

[0064] [3 Example of operation] [Machine learning for estimation models] FIG. 6 is a flowchart showing an example of a processing procedure for machine learning of an estimation model 5 by the server device 1 (machine learning unit 61) according to this embodiment. The following processing procedure is an example of an information processing method for model generation. However, the following processing procedure for model generation is merely an example, and each step may be modified as much as possible. Furthermore, steps may be omitted, replaced, or added to the following processing procedure for model generation as appropriate depending on the embodiment.

[0065] (Step S101) In step S101, the control unit 11 operates as the setting reception unit 611 and receives settings related to machine learning conditions for the estimation model 5.

[0066] The conditions for accepting the settings may be appropriately determined depending on the embodiment. As an example, the control unit 11 may accept a setting for the number of iterations in machine learning. In this case, the number of iterations may be specified by an operator's input via the input device 14. In addition, the control unit 11 may accept an initial setting of the machine learning model that constitutes the estimation model 5. The structure of the machine learning model and the initial values ​​of the calculation parameters may be provided by a template or may be determined by an operator's input. The control unit 11 may accept the input to be provided to the estimation model 5. The control unit 11 may acquire input data (workload information, resource usage information, and service chain information) and determine the number of parameters of the machine learning model based on the acquired input data. When additional learning or re-learning is performed, the control unit 11 may perform initial setting of the estimation model 5 based on learning result data obtained by past machine learning.

[0067] When the acceptance of the settings is completed, the control unit 11 advances the process to the next step S102. The timing of executing the process of step S101 is not limited to this example. The process of step S101 may be executed at any timing before executing the process of step S103 described later. The process of step S101 may be executed independently of the process procedure of this flowchart. Moreover, the process of step S101 may be omitted. In this case, each condition may be determined in advance by any method.

[0068] (Step S102) In step S102, the control unit 11 operates as a data acquisition unit 612 and acquires a plurality of data sets 3. Each data set 3 may be acquired by any route. In one example, the control unit 11 may acquire each data set 3 directly from the cluster K. In another example, the control unit 11 may acquire each data set 3 via, for example, a network, a storage medium 91, another computer, an external storage device, or the like. The control unit 11 may acquire each data set 3 from a plurality of acquisition sources. The number of data sets 3 to be acquired is not particularly limited, and may be appropriately determined so that machine learning can be performed. When the plurality of data sets 3 are acquired, the control unit 11 proceeds to the next step S103.

[0069] (Step S103) In step S103, the control unit 11 operates as the learning processing unit 613 and performs machine learning of the estimation model 5 using the acquired multiple data sets 3. As the machine learning process, the control unit 11 adjusts the values ​​of the calculation parameters of the estimation model 5 for each data set 3 so that the output obtained for the training data 31 matches the correct label 33.

[0070] As an example of the adjustment method, the control unit 11 inputs the training data 31 of each data set 3 to the estimation model 5, and executes a forward propagation arithmetic process of the estimation model 5. As a result of this arithmetic process, the control unit 11 acquires an estimated value of the service quality of the application AP calculated based on each piece of information (311, 313, 315) included in the training data 31 from the estimation model 5. The control unit 11 calculates an error between the obtained estimated value and the true value indicated by the corresponding correct answer label 33. The control unit 11 adjusts the values ​​of the calculation parameters of the estimation model 5 by the error backpropagation method so that the sum of the calculated errors becomes small. This adjustment of the values ​​of the calculation parameters may be repeated until a predetermined condition is satisfied. As an example, when the number of iterations is set by the process of step S101, the control unit 11 may repeat the adjustment of the values ​​of the calculation parameters of the estimation model 5 until the number of iterations reaches the set number. As a result of executing this machine learning process, a trained estimation model 5 can be generated. When the machine learning process is completed, the control unit 11 proceeds to the next step S104.

[0071] (Step S104) In step S104, the control unit 11 operates as the storage processing unit 614 and generates information about the trained estimation model 5 generated by machine learning as the learning result data 125. Then, the control unit 11 stores the generated learning result data 125 in a storage area.

[0072] The storage area may be, for example, a RAM in the control unit 11, the storage unit 12, an external storage device, a storage medium, or a combination of these. The storage medium may be, for example, a storage medium 91 such as a CD or a DVD, and the control unit 11 may store the learning result data 125 in the storage medium via the drive 16. The external storage device may be, for example, a NAS (Network Attached Storage). The external storage device may be a data server such as a storage device. In this case, the control unit 11 may store the learning result data 125 in the data server via a network using the communication interface 13. The external storage device may be, for example, an external storage device connected to the server device 1.

[0073] When the storage of the learning result data 125 is completed, the control unit 11 ends the processing procedure related to the machine learning of the estimation model 5.

[0074] The generated learning result data 125 may be provided directly or indirectly from the machine learning unit 61 to the optimization execution unit 63 via the communication units (615, 636) at any timing. The control unit 11 may update or newly generate the learning result data 125 by repeatedly executing at least steps S102 to S104 of the above processing procedure. During this repetition, at least a part of the multiple data sets 3 used for machine learning may be appropriately changed, modified, added, deleted, etc. Then, the control unit 11 may update the learning result data 125 held by the optimization execution unit 63 by providing the updated or newly generated learning result data 125 from the machine learning unit 61 to the optimization execution unit 63.

[0075] [Optimizing resource allocation] FIG. 7 is a flowchart showing an example of a processing procedure for optimizing the amount of resources used by the application AP by the server device 1 (optimization execution unit 63) according to this embodiment. The following processing procedure is an example of an optimization information processing method. However, the following optimization processing procedure is merely an example, and each step may be modified as much as possible. Furthermore, steps in the following optimization processing procedure may be omitted, replaced, or added as appropriate depending on the embodiment.

[0076] (Step S301) In step S301, the control unit 11 operates as the setting reception unit 631 and receives settings related to the optimization conditions.

[0077] The conditions for accepting the settings may be appropriately determined depending on the embodiment. As an example, the control unit 11 may accept the setting of a target for service quality. The target may be set by a numerical value (also referred to as a target value). As an example, the target value may be set corresponding to a value of service quality measured in an arbitrary period. When the service quality is calculated by at least one of the delay time and the execution time, the target value may be specified by a statistical quantity such as an average value, a percentile value (e.g., a 90th percentile value, a 95th percentile value, a 99th percentile value, a 99.9th percentile value, etc.), a median value, a minimum value, a maximum value, etc. The target value may be specified by an input by an operator.

[0078] Moreover, the control unit 11 may receive a setting of a predetermined optimization method in the process of step S305 described later. The predetermined optimization method may be determined by any method. As an example, the predetermined optimization method may be selected from the steepest descent method and Bayesian optimization. The selection may be performed by an operator's operation via the input device 14. According to the steepest descent method, the resource amount can be optimized for the target of the service quality in a short time. Therefore, it is preferable to select the steepest descent method to optimize the resource amount in a time period in which the workload fluctuates greatly. On the other hand, according to the Bayesian optimization, although it takes more time to optimize than the steepest descent method, it is possible to calculate a more optimal resource amount for the target of the service quality. Therefore, it is preferable to select the Bayesian optimization to optimize the resource amount in a time period in which the workload fluctuates little or fluctuates periodically. In this way, by selecting from among a plurality of optimization methods with different characteristics, it is possible to perform optimization suitable for the state of the workload in step S305 described later.

[0079] When the acceptance of the settings is completed, the control unit 11 proceeds to the next step S302. The timing of executing the processing of step S301 is not limited to this example. For example, the setting of the service quality target may be executed at any timing before the processing of step S304 described later is executed. The setting of the optimization method may be executed at any timing before the processing of step S305 described later is executed. The processing of step S301 may be executed independently of the processing procedure of this flowchart. Also, the processing of step S301 may be omitted. In this case, each condition may be determined in advance by any method.

[0080] (Step S302) In step S302, the control unit 11 operates as the data acquisition unit 632 and acquires the target data 4. The target data 4 may be acquired via any route. As an example, when optimizing the resource amount online, the control unit 11 may acquire each piece of information (41, 43, 45) constituting the target data 4 from the cluster K. After acquiring the target data 4, the control unit 11 proceeds to the next step S303.

[0081] (Step S303) In step S303, the control unit 11 operates as the estimation unit 633 and sets the trained estimation model 5 by referring to the learning result data 125. The learning result data 125 may be acquired at any timing before the process of step S303 is executed. Then, the control unit 11 uses the trained estimation model 5 to calculate an estimate of the service quality of the application AP based on the acquired target data 4. The calculation process of the trained estimation model 5 may be appropriately executed according to the machine learning model adopted for the estimation model 5. As an example, when the estimation model 5 is configured by a neural network, the control unit 11 inputs the acquired target data 4 to the trained estimation model 5 and executes the calculation process of forward propagation of the trained estimation model 5. As a result of this calculation process, the control unit 11 can acquire the result of estimating the service quality (estimated value) from the trained estimation model 5. When the estimated value of the service quality is acquired, the control unit 11 advances the process to the next step S304.

[0082] (Step S304) In step S304, the control unit 11 operates as the optimum amount calculation unit 634 and determines whether the calculated estimated value of the service quality adequately meets the set target.

[0083] In one example, the adequate fulfillment of the target may consist of fulfilling the target with an adequate value. As a specific example, when a target value of delay time is set as a target of the service quality and an estimated value of delay time is calculated as an estimated value of the service quality by the process of step S303, the control unit 11 may compare the calculated estimated value of delay time with the target value. Then, when the estimated value of delay time is less than the target value, the control unit 11 may determine that the estimated value of the service quality fulfills the target, and when the estimated value of delay time exceeds the target value, the control unit 11 may determine that the estimated value of the service quality does not fulfill the target. When the estimated value of delay time is equal to the target value, the control unit 11 may make either determination.

[0084] When a target value of the execution time is set as a target of the service quality and an estimated value of the execution time is calculated by the process of step S303, the control unit 11 may compare the calculated estimated value of the execution time with the target value. Then, when the estimated value of the execution time is less than the target value, the control unit 11 may determine that the estimated value of the service quality satisfies the target, and when the estimated value of the execution time exceeds the target value, the control unit 11 may determine that the estimated value of the service quality does not satisfy the target. When the estimated value of the execution time is equal to the target value, the control unit 11 may make either judgment.

[0085] The target value of the degree of normal processing is set as the service quality target, and the step When the estimated value of the degree of normal processing of the application AP is calculated by the process of S303, the control unit 11 may compare the calculated estimated value of the degree of normal processing with a target value. Then, when the estimated value of the degree of normal processing exceeds the target value (the degree of error is less than the target value), the control unit 11 may determine that the estimated value of the service quality meets the target, and when the estimated value of the degree of normal processing is less than the target value (the degree of error exceeds the target value), the control unit 11 may determine that the estimated value of the service quality does not meet the target. When the estimated value of the degree of normal processing is equal to the target value, the control unit 11 may make either judgment.

[0086] In another example, satisfying the target may be constituted by satisfying the target within an appropriate range. In this case, the control unit 11 may determine whether the target is properly satisfied or not depending on whether the calculated estimated value of the service quality falls within the range of the set target. That is, in addition to the case where the estimated value of the service quality does not satisfy the target value, the control unit 11 may also determine that the target is not properly satisfied when resources are used excessively with respect to the target of the service quality. The range of the target may be set by any method. For example, the upper limit and lower limit of the target value may be set as the range of the target by designation by the operator or the like. In addition, a threshold value that specifies the range of the target value and at least one of the upper limit and lower limit of the target value may be set by designation by the operator or the like. In addition, when the upper limit or lower limit of the range of the target is equal to the estimated value, the control unit 11 may determine either one.

[0087] If the control unit 11 determines that the calculated estimated value of service quality meets the target, the control unit 11 ends the processing procedure related to the optimization of the resource amount. On the other hand, if the control unit 11 determines that the calculated estimated value of service quality does not meet the target, the control unit 11 proceeds to the next step S305. Note that, if the target value is specified by a statistic such as an average value, the control unit 11 may repeatedly execute the processes of steps S302 and S303 to calculate an estimated value according to the statistic of the target value.

[0088] (Steps S305 to S307) In step S305, the control unit 11 operates as the optimal amount calculation unit 634 and optimizes the amount of resources with respect to the goal based on the estimated value of service quality calculated by the trained estimation model 5 using a predetermined optimization method. The control unit 11 calculates the optimal amount of resources with respect to the goal using a predetermined optimization method so that the estimated value of service quality calculated by the trained estimation model 5 properly satisfies the goal. In one example, the optimal amount of resources that properly satisfies the goal may be the minimum amount of resources that satisfies the goal.

[0089] As an example, when the steepest descent method is selected as the predetermined optimization method, the control unit 11 may calculate (estimate) the optimal amount of resources for the goal according to the following Equations 1 and 2.

number

number

[0090] As another example, when Bayesian optimization is selected as the predetermined optimization method, the control unit 11 may calculate the optimal amount of resources for the goal according to the following Equations 3 and 4.

number

number

[0091] In step S306, the control unit 11 operates as the optimum amount calculation unit 634 and judges whether the resource amount calculated by the predetermined optimization method is optimum (i.e., whether the resource amount provisionally obtained by the optimization method has reached the minimum resource amount). If the calculated resource amount is optimum, the control unit 11 advances the process to the next step S307. On the other hand, if the calculated resource amount is not optimum, the control unit 11 returns the process to step S305 and performs the calculation of the resource amount by the predetermined optimization method again. Note that, when repeatedly performing the process of this step S305, the control unit 11 may repeatedly use the estimated value obtained by the calculation of the first trained estimation model 5 to specify the optimum resource amount. Alternatively, the control unit 11 may update the estimated value of the service quality used to specify the optimum resource amount by using the information of the provisional resource amount calculated by the process of step S305 as new resource usage information and performing the calculation process of the trained estimation model 5 again. This update of the estimated value may be performed every time the process of step S305 is repeated an arbitrary number of times (for example, every time).

[0092] In step S307, the control unit 11 operates as the resource adjustment unit 635 and outputs the optimization result to the computer that runs the application AP. As a result, the control unit 11 adjusts (sets) the amount of resources used for each component AS according to the optimization result. As an example, when the application AP runs on the server device 1, the control unit 11 may adjust the amount of resources so that each component AS is executed with the calculated optimal amount of resources. As another example, when the application AP runs on another device, the control unit 11 may instruct the other device to adjust the amount of resources by transmitting the optimization result to the other device.

[0093] The adjustment of the resource amount may be appropriately performed according to the embodiment. For example, the adjustment of the resource amount may be configured by at least one of scale-out, scale-in, scale-up, and scale-down for each component AS (node ​​KN, container KC). As an example, when each component AS included in the application AP is executed on a container KC, optimizing the resource amount in the processing of steps S305 to S306 may be configured by calculating an optimal amount of resources and calculating an optimal number of containers KC that execute each component AS from the calculated optimal amount of resources. In response to this, adjusting the resource amount in the processing of step S307 may be configured by adjusting the number of containers KC that execute each component AS so that the number of containers KC that execute each component AS becomes the calculated optimal number. According to this method, it is possible to easily adjust the resource amount used for the application AP that is configured by a plurality of components AS that are each containerized.

[0094] In steps S305 and S306, the control unit 11 may calculate a plurality of candidates for the optimal amount of resources. In response to this, in step S307, the control unit 11 may select one candidate from the calculated plurality of candidates, and adjust the amount of resources used for each component AS according to the selected optimization candidate. The selection may be made by an operator's input, or may be made based on a predetermined criterion (for example, selecting the one using the least amount of resources).

[0095] When the adjustment of the resource amount is completed, the control unit 11 ends the process procedure related to the optimization of the resource amount. The control unit 11 may repeatedly execute at least the processes of steps S302 to S307 of the above process procedure at any timing. In this way, the control unit 11 may continuously optimize the amount of resources used for the application AP using the trained estimation model 5.

[0096] [Features] In this embodiment, the processing of steps S102 and S103 above can generate a trained estimation model 5 that has acquired the ability to estimate the service quality of an application from the workload information and resource usage information about resources. This trained estimation model 5 can estimate the service quality of an application AP from the workload state and the resource deployment status of each component AS. In other words, it is possible to infer the correspondence between the deployment of resources to each component AS and the service quality of the application AP according to the workload state. By utilizing this, according to the processing of steps S302 to S307 above, the amount of resources used for each component AS can be optimized according to the goal of the service quality of the application AP built in the microservice architecture using the trained estimation model 5. As a result, it is possible to reduce the cost of maintaining the service quality of the application AP.

[0097] Furthermore, in this embodiment, service chain information is further included in the input data for the estimation model 5. As a result, even if the component configuration of the application AP is changed, the estimation model 5 can identify the component configuration of the application AP based on the input service chain information, and as a result, the estimation accuracy of the service quality can be maintained. Therefore, according to this embodiment, even if the component configuration of the application AP is changed, the resource amount can be optimized with high accuracy.

[0098] [4 Variations] Although the embodiment of the present disclosure has been described in detail above, the above description is merely an example of the present disclosure in every respect. It goes without saying that various improvements or modifications can be made without departing from the scope of the present disclosure. For example, the following modifications are possible. The following modifications can be combined as appropriate.

[0099] In the above embodiment, the service chain information 315 may be omitted from the training data 31 of each data set 3 acquired by the process of step S102. Accordingly, the service chain information 45 may be omitted from the target data 4 acquired by the process of step S302.

[0100] In the above embodiment, the estimation model 5 may be configured to further receive input of information other than the workload information, the resource usage information, and the service chain information. The estimation model 5 may be configured to further output information other than the estimated value of the service quality. A machine learning model other than a neural network may be adopted for the estimation model 5. .

[0101] [5. Working Examples] In order to verify the effectiveness of the present disclosure, information processing devices according to the following examples and comparative examples were constructed, although the present disclosure is not limited to the following examples.

[0102] Figure 8 shows a first example of an application built with a microservices architecture. Figure 9 shows a second example of an application built with a microservices architecture. The workload for the first example was 500 TPS (Transactions Per Second). Per Second, and the quality of service (latency) target was set to 30 milliseconds. On the other hand, the workload for the second sample was set to 500 TPS, and the quality of service (latency) target was set to 150 ms.

[0103] In the information processing device according to the example, a trained estimation model was generated for each application sample by the same method as in the above embodiment. A neural network was used for the estimation model. Workload information was configured based on transaction volume, and resource usage information was configured based on processor (CPU) usage for each component. Service chain information was configured to show the connection relationship between each component in a graph format. The number of datasets used for machine learning was approximately 50,000 for each. The number of epochs was 70,000, the batch size was 256, and the learning rate was 2.0×10 -4 The amount of resources (CPU allocation) used for each sample was optimized using the trained estimation model generated by the information processing device according to the embodiment in the same manner as in the above embodiment. The steepest descent method was used as the predetermined optimization method.

[0104] On the other hand, in the information processing device according to the comparative example, the Horizontal Pod Autoscaler (Non- According to Patent Document 1, the amount of resources (CPU allocation) used for each sample was adjusted.

[0105] [Table 1] The above Table 1 shows the results of adjusting the amount of resources used for each sample application in the embodiment and the comparative example (unit: millicores). As shown in the above results, the embodiment was able to achieve the service quality target with a smaller amount of resources (CPU allocation amount) than the comparative example. From this result, it was found that according to the present disclosure, it is possible to optimize the amount of resources used according to the set service quality target.

[0106] [6 Supplementary Note] The processes and means described in the present disclosure can be freely combined and implemented as long as no technical contradiction occurs.

[0107] Furthermore, a process described as being performed by one device may be shared and executed by multiple devices. Alternatively, a process described as being performed by different devices may be executed by a single device. In a computer system, each function may be performed by any hardware. How this is achieved can be flexibly changed depending on the software configuration (server configuration).

[0108] The present disclosure can also be realized by supplying a computer program implementing the functions described in the above embodiments to a computer, and having one or more processors of the computer read and execute the program. Such a computer program may be provided to the computer by a non-transitory computer-readable storage medium connectable to the system bus of the computer, or may be provided to the computer via a network. Non-transitory computer-readable storage media include, for example, any type of disk, such as a magnetic disk (floppy disk, hard disk drive (HDD), etc.), an optical disk (CD-ROM, DVD disk, Blu-ray disk, etc.), a read-only memory (ROM), a random access memory (RAM), an EPROM, an EEPROM, a magnetic card, a flash memory, an optical card, and any type of medium suitable for storing electronic instructions. [Explanation of symbols]

[0109] 1...Server device, 11: control unit, 12: storage unit, 13: communication interface, 14...input device, 15...output device, 16...drive, 80…Operating system, 81... program, 91... storage medium, 125...Learning outcome data, 3…Dataset, 31…training data, 311: Workload information, 313: Resource usage information, 315...Service chain information, 33...Correct label, 4. Target data, 41...Workload information, 43...Resource usage information, 45...Service chain information, 5…Estimation model, 61…Machine Learning Department, 611: setting reception unit; 612: data acquisition unit; 613: learning processing unit; 614: storage processing unit; 615…Communications Department, 63...Optimization execution unit, 631: setting reception unit; 632: data acquisition unit; 633...estimation unit, 634...optimum amount calculation unit, 635...resource adjustment unit, 636...communication unit, AP: Application, AS: Component, K…cluster, KM…master, KN…node, KC: container, T: terminal

Claims

1. Obtaining a plurality of data sets each composed of a combination of training data and a ground truth label; An information processing device including a control unit configured to execute machine learning of an estimation model using the acquired multiple data sets, The training data includes workload information for an application built with a microservices architecture in a learning environment, and resource usage information for resources used by each component included in the application; The ground truth label is configured to indicate a true value of the service quality of the application; The machine learning is configured by training the estimation model so that, for each of the data sets, an estimated value of the service quality calculated by the estimation model based on the training data matches a true value indicated by the correct answer label. Information processing device.

2. The training data further includes service chain information indicating a connection relationship between the components included in the application. The information processing device according to claim 1 .

3. The service chain information is configured to express a connection relationship of each of the components in a graph format; The estimation model is configured to include a graph neural network. The information processing device according to claim 2 .

4. The service quality is calculated based on at least one of a delay time, an execution time, and a degree of normal processing of the application. The information processing device according to claim 1 .

5. The workload information is configured to include at least one of a transaction volume for the application, a message volume from a user, and a data transfer volume. The information processing device according to claim 1 .

6. The resource usage information is configured to include at least one of a processor usage, a memory usage, and a network bandwidth usage allocated to each component included in the application. The information processing device according to claim 1 .

7. Acquiring target data including workload information for an application built with a microservices architecture in an environment to be estimated and resource usage information for resources used by each component included in the application; calculating an estimate of a quality of service of the application based on the obtained target data by using a trained estimation model; optimizing the amount of resources with respect to the target based on the estimated value of the quality of service calculated by the trained estimation model by a predetermined optimization method when the calculated estimated value of the quality of service does not adequately meet the target; adjusting the amount of the resources used for each of the components according to results of the optimization; A control unit configured to execute Information processing device.

8. The target data further includes service chain information indicating a connection relationship of each of the components included in the application. The information processing device according to claim 7.

9. The service chain information is configured to express a connection relationship of each of the components in a graph format; The trained estimation model is configured to include a graph neural network. The information processing device according to claim 8.

10. The service quality is calculated based on at least one of a delay time, an execution time, and a degree of normal processing of the application. The information processing device according to claim 7 .

11. The workload information is configured to include at least one of a transaction volume for the application, a message volume from a user, and a data transfer volume. The information processing device according to claim 7 .

12. The resource usage information is configured to include at least one of a processor usage, a memory usage, and a network bandwidth usage allocated to each component included in the application. The information processing device according to claim 7 .

13. The predetermined optimization technique is selected from steepest descent and Bayesian optimization. The information processing device according to claim 7 .

14. Each of the components included in the application is executed in a container; Optimizing the amount of resources includes: Calculating an optimal amount of said resource; and calculating an optimal number of containers for executing each of the components from the calculated optimal amounts of resources; It is composed of adjusting the amount of resources comprises adjusting the number of containers that execute each of the components such that the number of containers that execute each of the components is the calculated optimal number. The information processing device according to claim 7 .

15. 1. A computer-implemented information processing method, comprising: Acquiring target data including workload information for an application built with a microservices architecture in an environment to be estimated and resource usage information for resources used by each component included in the application; calculating an estimate of a quality of service of the application based on the obtained target data by using a trained estimation model; optimizing the amount of resources with respect to the target based on the estimated value of the quality of service calculated by the trained estimation model by a predetermined optimization method when the calculated estimated value of the quality of service does not adequately meet the target; According to the results of the optimization, the amount of the resource used for each component is adjusted. To adjust and Including, Information processing methods.

16. The target data further includes service chain information indicating a connection relationship of each of the components included in the application. The information processing method according to claim 15.

17. The service chain information is configured to express a connection relationship of each of the components in a graph format; The trained estimation model is configured to include a graph neural network. The information processing method according to claim 16.

18. The service quality is calculated based on at least one of a delay time, an execution time, and a degree of normal processing of the application.

18. The information processing method according to any one of claims 15 to 17.

19. The predetermined optimization technique is selected from steepest descent and Bayesian optimization.

19. The information processing method according to any one of claims 15 to 18.

20. Each of the components included in the application is executed in a container; Optimizing the amount of resources includes: Calculating an optimal amount of said resource; and calculating an optimal number of containers for executing each of the components from the calculated optimal amounts of resources; It is composed of adjusting the amount of resources comprises adjusting the number of containers that execute each of the components such that the number of containers that execute each of the components is the calculated optimal number.

20. The information processing method according to any one of claims 15 to 19.

Citation Information

Patent Citations

  • Resource allocation optimization system and method

    JP2019082801A

  • Computer system and resource managing method

    JP2021086279A

  • Ai-driven capacity forecasting and planning for microservices apps

    US20210028991A1

  • Auto tuner for cloud micro services embeddings

    WO2020075017A1