Cloud application deployment device and cloud application deployment method
Patent Information
- Application Number
- JP2022001731
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-01-07
- Publication Date
- 2025-03-14
- Estimated Expiration
- 2042-01-07
AI Technical Summary
【0018】 本発明によれば、クラウドのコンテナ上に新規にアプリケーションをデプロイするときに、クラウドの資源の使用効率を向上させて、最適なアプリケーションのデプロイを行うことのできるクラウドアプリケーションデプロイ装置およびクラウドアプリケーションデプロイ方法を提供することができる。
Smart Images

Figure 0007645825000004 
Figure 0007645825000005 
Figure 0007645825000006
Abstract
Description
[Technical field]
[0001] The present invention relates to a cloud application deployment device and a cloud application deployment method, and more particularly to a cloud application deployment device and a cloud application deployment method that are suitable for improving the efficiency of use of cloud resources in cloud computing and deploying optimal applications to the cloud. [Background technology]
[0002] In a cloud computing environment, when application software (hereinafter simply referred to as "applications") for data analysis, machine learning, etc. is containerized and executed on a large scale, in order to use the cloud's computer resources (hardware resources and software resources) efficiently and to prevent abnormal process termination due to memory shortages, etc., it is necessary to set resource usage limits for the container, such as CPU and memory, according to the amount of resources actually used by the application.
[0003] Here, a container is a concept that brings together the environment required to run an application, such as commands and libraries, on a host OS. This container makes it possible to build multiple lightweight execution environments on a single server, compared to conventional VMs (Virtual Machines).
[0004] Users who use the cloud to run containerized applications on a large scale need to estimate the amount of computational resources, such as CPU and memory, that the application actually uses higher than the actual amount, in order to shorten the execution time as much as possible and to avoid abnormal termination due to memory shortage, etc., and set the resource usage limit value of the container. If the resource usage is overestimated under such a premise and the application is deployed, the resource usage efficiency of the cloud decreases and the user ends up paying excessive costs. Here, deploying an application means placing and configuring the application on the cloud so that it can be operated, and making it operational. In general, in order to perform accurate sizing of an application on the cloud (estimate the size of resources), it is necessary to set the resource usage limit of the container based on the resource usage measured in advance by executing a test according to the user requirements, and then deploy it to the cloud.
[0005] As a method for automatically adjusting the size of a container (Auto Scaling) without performing sizing work before deployment, there is a method for calculating the resource usage limit of a container by accumulating and analyzing resource usage data of applications that have been executed in the past.
[0006] For example, Non-Patent Document 1 uses a method of classifying application operations into a small number of execution phases by clustering low-dimensional feature vectors extracted from resource usage data as multidimensional time-series data. It is generally known that calculating resource usage limits for each phase with similar resource usage patterns in this way reduces the frequency of resource waste and limit exceeding.
[0007] In Non-Patent Document 1, a Conditional Restricted Boltzmann Machine (CRBM) method, which is one of deep learning methods, is used for phase classification.
[0008] In relation to this, regarding transfer learning, which performs machine learning on a different problem based on a trained neural network, Patent Document 1 discloses a technology that determines whether or not to train a new model based on the similarity of existing neural network training data to new data, and creates training data for the new model based on the similarity between existing neural networks. [Prior art documents] [Patent documents]
[0009] [Patent Document 1] US Patent Application Publication No. 2020 / 0320379 [Non-patent literature]
[0010] [Non-Patent Document 1] JL Berral, et. al., “AI4DL: Mining Behaviors of Deep Learning Workloads for Resource Management”, [online], USENIX THE ADVANCED COMPUTING ASSOCIATION, in 12th USENIX Workshop HotCloud, [Retrieved November 4, 2021], Internet <URL: https: / / www.usenix.org / system / files / hotcloud20_paper_berral.pdf” Summary of the Invention [Problem to be solved by the invention]
[0011] In Non-Patent Document 1, regarding phase classification, a method of CRBM, which is a method of deep learning, is used to cluster low-dimensional feature vectors extracted from resource usage data as multidimensional time series data, and resource usage in the cluster is evaluated by graphs and trees. According to Non-Patent Document 1, phase classification can be performed taking into account many metrics other than CPU load and memory usage, but since CRBM, a type of neural network, is used to extract low-dimensional feature vectors, a large amount of resource usage data is required for learning CRBM. In addition, in order to perform machine learning and clustering with high accuracy, it is desirable to have a small number of phases classified as a result, and therefore the basic usage is to learn data accumulated for each application and create a classification model. However, although it is effective when applied to a dedicated cloud where the same type of application is executed on a large scale, such as when the calculation purpose is limited to machine learning, it is difficult to apply it to a general-purpose cloud used for various purposes and improve the accuracy of resource evaluation.
[0012] In addition, the example in Non-Patent Document 1 assumes that resource usage data when container resource limits are large is analyzed, the actual usage by an application is inferred, and the container resource usage limits are automatically adjusted; however, when container resource limits are small, it is not possible to infer whether the service level requested by the user, i.e., whether the application execution performance requirements, can be met.
[0013] On the other hand, inference of application execution performance is also necessary when cloud computing resources are insufficient or when users want to allocate resources with a cost-conscious approach. In general, in order to infer application execution performance when container resource limits are small, a test run is performed before deploying the application by comprehensively changing parameters such as the container resource limits and the amount of input data for the application, and a regression equation is created to infer resource limit values that meet the user's requirements based on the measured performance.
[0014] However, because applications running on the cloud are composed of a variety of microservice-based software, including open source software, it is practically difficult to require system implementers to perform comprehensive testing on all containers before deploying an application.
[0015] Furthermore, in order to apply the transfer learning method described in Patent Document 1 to resource usage data of a new application executed in the cloud and perform transfer learning of a new phase classification model, it is necessary to create learning data for transfer learning based on the similarity between the learning data of the existing phase classification model and the resource usage data of the new application. However, since the resource usage pattern of the new application may include any combination of execution phases of multiple existing applications, it is difficult to create learning data for a new model based on the similarity with the existing learning data.
[0016] An object of the present invention is to provide a cloud application deployment device and a cloud application deployment method that can improve the efficiency of cloud resource usage and perform optimal application deployment when deploying a new application on a cloud container. [Means for solving the problem]
[0017] The cloud application deployment device of the present invention is preferably a cloud application deployment device that deploys application software to a cloud environment based on resource usage during execution of the application software, and holds resource usage data for each time period during execution of the application software on a computer node, calculates a feature vector for each time period from the resource usage data for each time period during execution of the application software, clusters the feature vectors for each time period to create clusters, determines a time series of time periods corresponding to the feature vectors of a cluster including the feature vector as a phase of the application software, calculates the feature vector for each time period from the resource usage data for each time period during execution of the application software, clusters the feature vectors for each time period to create clusters, and verifies the results of the clustering to determine whether the application software belongs to a certain phase. The system has a phase classification model that determines the amount of resource usage in a cloud environment for the computer node based on the resource usage in the computer node for each phase of the application software, and collects, for the new application software, resource usage data for each time period when the new application software is being executed, and validates the feature vector for each time period when the new application software is being executed with a feature vector that belongs to a cluster created by a phase classification model of a known phase for which a phase classification model has already been obtained, and determines whether each time period belongs to a known phase, does not belong to a known phase, or belongs to an unknown phase based on the degree of validation, infers resource usage in a computer node for each phase of the application software, calculates container resource usage limits for a cloud environment for the computer node based on the resource usage in the computer node for each phase of the application software, and deploys the application software based on the container resource usage limits. Effect of the Invention
[0018] According to the present invention, it is possible to provide a cloud application deployment device and a cloud application deployment method that can improve the efficiency of cloud resource usage and perform optimal application deployment when deploying a new application on a cloud container. [Brief description of the drawings]
[0019] [Figure 1] 1 is a functional configuration diagram of a cloud system in which a cloud application deployment device is used. [Diagram 2] FIG. 2 is a functional configuration diagram of a cloud application deployment device. [Diagram 3] FIG. 2 is a hardware and software configuration diagram of a cloud application deployment device. [Figure 4] FIG. 13 illustrates an example of a resource usage table. [Diagram 5] FIG. 13 is a diagram illustrating an example of a feature vector information table. [Figure 6] FIG. 13 is a diagram illustrating an example of a resource usage inference table. [Figure 7] FIG. 1 is a diagram illustrating concepts of application phases, feature vectors, and clusters, and the relationships between them. [Figure 8A] 13 is a flowchart showing a process of calculating container usage limits and learning for an unknown phase (part 1). [Figure 8B] 13 is a flowchart showing the process of calculating container usage limits and learning for an unknown phase (part 2). [Figure 9] 13 is a flowchart showing a process performed by a cloud designer to deploy an application. [Figure 10] FIG. 13 is a diagram illustrating an example of a slowdown performance inference function. [Figure 11] FIG. 13 is a diagram showing an example of a container resource usage limit value analysis screen. [Figure 12] FIG. 1 is a configuration diagram of a cloud system having a cloud application deployment device. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0020] Hereinafter, each embodiment of the present invention will be described with reference to FIGS.
[0021] [Embodiment 1] Hereinafter, a first embodiment of the present invention will be described with reference to FIGS.
[0022] First, an overview of the calculation of resource usage related to the cloud application deployment device of the present invention will be described. The application deployment in the cloud of the present invention is targeted at a system that automatically calculates the resource usage limit of a container based on multidimensional time series data analysis of accumulated resource usage data in a cloud computing environment where containerized applications are executed. For major applications executed on the cloud, resource usage data from past executions is accumulated, a model such as that in Non-Patent Document 1 has already been learned, classification into execution phases is performed, and based on the resource usage profile in each phase, it is possible to set container resource usage limits so as to reduce the frequency of resource waste and abnormal termination due to exceeding the limit.
[0023] In such cloud operations, we attempt to apply the existing phase classification model to new applications in order to enable setting optimal container usage limits for applications that have not been run much in the past.
[0024] For example, in CRBM, which is a method described in Non-Patent Document 1 for extracting feature vectors from resource usage data, validation can be performed to check whether the feature vector characterizes the original resource usage data, and depending on the degree of validation, it is possible to detect which part of the resource usage data of a new application is a time interval that can be classified into phases using an existing model. In this way, the resource usage data is divided into known phases that can be classified using an existing model and the remaining unknown phases, and the data of the unknown phases is used for machine learning of a new classification model. As a result, if the number of known phases in the execution of a new application increases, more accurate resource usage can be inferred for the new application.
[0025] There is a method (autoencoder) in which a neural network that encodes resource usage data, which is high-dimensional time series data, into a low-dimensional feature vector is trained simultaneously with a neural network that decodes the original resource usage data, and the decoding accuracy evaluated by a loss function is used. In this case, a method for evaluating the accuracy of decoding the feature vector into the original resource usage data can be used as a validation method. In other words, the phase classification model corresponding to the main application is a model that is trained specifically for a specific application execution pattern, and it is considered that the result of validation of the model for the new application execution pattern indicates the difference in the execution patterns of the main application and the new application. Therefore, the feature vector is weighted according to the difference in execution pattern, and a feature vector that indicates the execution pattern across multiple applications is synthesized. The feature vectors that indicate the execution patterns across different applications are clustered, and the resource usage limit is calculated by statistically processing the CPU and memory usage for each cluster.
[0026] Also, if a model has already been created for inferring the rate at which execution time slows down when container resource limits are small by performing sizing test runs on existing applications, it is conceivable that the same inference model can be applied to new applications that are classified into known phases. In this way, the portion of execution time that can be inferred can be increased without performing sizing test runs on all applications.
[0027] Next, the configuration of a cloud system in which a cloud application deployment device is used will be described with reference to FIGS.
[0028] 1, the cloud system is configured such that a client 1, a cloud environment 10, and a cloud application deployment device 100 are connected via a network 5. The network 5 is usually a global network such as the Internet, but may also be a LAN (Local Area Network) connection.
[0029] The client 1 is an information processing device that requests cloud services from the cloud environment 10 and receives the requested services, such as the results of a calculation or a search, from the cloud environment 10.
[0030] The cloud environment 10 functionally comprises a management node 20 and computer nodes 30 (in the figure, indicated as 30a, 30b, . . . ).
[0031] The management node 20 is a node that monitors the execution of applications 32 and resource usage in each computer node 30, and is composed of an application execution management unit 21 and a resource usage monitoring unit 22. Here, the resources in the cloud environment refer to hardware resources such as a CPU, memory, input / output devices, and a network.
[0032] The computer node 30 is a node that realizes the functions of a computer, and consists of a container 31 that packages an application 32 and other commands and libraries (not shown) for executing the application, and a container monitoring unit 33 that monitors the behavior of the container 31.
[0033] Resource usage data such as CPU, memory, input / output, and communication during execution of application 32 monitored by the container monitoring unit 33 is collected by a resource usage monitoring unit 22 running on the management node 20 and stored in a resource usage DB (described later) 200 of the cloud application deployment device 100 via the network 5.
[0034] The cloud application deployment device 100 is a device that estimates the resource usage of an application executed in the cloud environment 10, and performs optimal deployment of the application so that the application can exhibit its inherent performance without abnormal termination.
[0035] Next, the functional configuration of the cloud application deployment device will be described with reference to FIG. As shown in FIG. 2, the cloud application deployment device 100 has a functional configuration including a data preprocessing unit 101, a phase classification model unit 110 (shown as 110a, 110b, ... in the figure), an unknown phase classification unit 120, a resource usage inference unit 130, a performance inference unit 131, a deployment destination search unit 140, an application deployment unit 141, and a memory unit 150.
[0036] The data preprocessing unit 101 is a functional unit that processes the accumulated resource usage data so that the data can be used as learning data for the phase classification model unit.
[0037] The phase classification model unit 110 is a functional unit that realizes a phase classification model in the machine learning of this embodiment. The phase classification model is created for each application that is executed for a long time in the cloud environment 10 and for which a sufficient amount of data for model learning is accumulated in the resource usage DB 200.
[0038] The phase classification model unit 110 includes a feature extraction unit 111 , a feature verification unit 112 , a feature vector clustering unit 113 , and a clustering verification unit 114 .
[0039] The feature extraction unit 111 is a functional unit that extracts low-dimensional feature vectors from multidimensional time-series data obtained by preprocessing the data in the resource usage DB 200 .
[0040] The feature verification unit 112 is a functional unit that verifies whether the feature vector expresses the original resource usage pattern. The feature vector clustering unit 113 is a functional unit that clusters the feature vector based on the extracted features. The clustering verification unit 114 is a functional unit that verifies the result of clustering by the feature vector clustering unit 113.
[0041] The unknown phase classification unit 120 is a functional unit that classifies the execution phase of an application into whether it is known or unknown.
[0042] The unknown phase classification unit 120 includes a new application known phase classification unit 121, an unknown phase classification model unit 122, an unknown phase feature quantity vector calculation unit 123, and an unknown phase feature quantity vector clustering unit .
[0043] The new application known phase classification unit 121 is a functional unit that classifies a new application into a known phase or an unknown phase. Here, the "known phase" is a phase that can be classified by an existing phase classification model according to the characteristics of the resource usage of the execution phase of the application, and the unknown phase is an execution phase that is not a "known phase", that is, a phase that cannot be classified by an existing phase classification model. The unknown phase classification model unit 122 is a functional unit that performs machine learning of a phase classification model on resource usage data of a phase classified as an unknown phase. The unknown phase classification model unit 122 is structurally and functionally similar to the phase classification model unit 110 already described. The unknown phase feature vector calculation unit 123 is a functional unit that weights feature vectors of multiple applications by weighting coefficients according to differences in execution patterns, combines feature vectors across each application, and calculates an unknown phase feature vector (details will be described later). The weighting coefficient can be calculated using the decode accuracy, as already described.
[0044] The unknown phase feature amount vector clustering unit 124 is a functional unit that performs clustering on the feature amount vectors of the time intervals of the unknown phase calculated by the unknown phase feature amount vector calculation unit 123.
[0045] The resource usage inference unit 130 is a functional unit that infers resource usage for an execution phase of an application. For a known phase of an application, the resource usage inference unit 130 can infer resource usage by using, for example, a resource usage inference function created based on existing learning data from past long-term execution.
[0046] The performance inference unit 131 is a functional unit that infers the performance of an application executed on a container from the results of test-executing the application on the container. If a slowdown inference function is defined that indicates a decrease in performance on a computer for each resource usage, the performance inference can be performed by the slowdown inference function.
[0047] The deployee search unit 140 is a functional unit that searches for a deployee of an application based on container resources and resource usage during execution of the application.
[0048] The application deploy unit 141 is a functional unit that outputs the deploy destination of the application searched for by the deploy destination search unit 140 and issues an instruction to the application execution management unit 21 of the management node 20 .
[0049] The storage unit 150 is a functional unit that holds data used by the cloud application deployment apparatus 100. The storage unit 150 holds, for example, a resource usage DB (Data Base) 200 and a deployment decision DB 201. The resource usage DB 200 stores, for example, a table showing resource usage for each resource type and for each certain time period in a time series for each computer node 30 that executes an application. The deployment decision DB 201 stores a table used by the cloud application deployment apparatus 100 to deploy an application, for example, a table that holds information on feature vectors for each time period for each computer node 30 in a cloud environment that executes an application.
[0050] Next, the hardware and software configuration of the cloud application deployment device 100 will be described with reference to FIG. The hardware configuration of the cloud application deployment device 100 is realized by, for example, a general information processing device such as a personal computer shown in FIG.
[0051] The cloud application deployment device 100 includes a CPU (Central Processing Unit) 302, a main memory device 304, a network I / F (Interface) 306, a display I / F 308, an input / output I / F 310, and an auxiliary memory I / F 312, all of which are connected via a bus.
[0052] The CPU 302 controls each unit of the cloud application deployment apparatus 100, and loads necessary programs into the main memory device 304 and executes them.
[0053] The main storage device 304 is typically configured as a volatile memory such as a RAM, and stores the programs executed by the CPU 302 and data referenced by the CPU 302.
[0054] The network I / F 306 is an interface for connecting to the network 5 .
[0055] The display I / F 308 is an interface for connecting a display device 320 such as an LCD (Liquid Crystal Display).
[0056] The input / output I / F 310 is an interface for connecting input / output devices. In the example of Fig. 3, a keyboard 330 and a mouse 332 which is a pointing device are connected.
[0057] The auxiliary storage I / F 312 is an interface for connecting an auxiliary storage device such as a hard disk drive (HDD) 350 or a solid state drive (SSD).
[0058] The HDD 350 has a large storage capacity and stores programs for executing the present embodiment. A data preprocessing program 401, a phase classification model program 410, an unknown phase classification program 420, a resource usage inference program 430, a performance inference program 431, a deployment destination search program 440, and an application deployment program 441 are installed in the cloud application deployment device 100.
[0059] The data preprocessing program 401, the phase classification model program 410, the unknown phase classification program 420, the resource usage inference program 430, the performance inference program 431, the deployment destination search program 440, and the application deployment program 441 are programs that respectively realize the functions of the data preprocessing unit 101, the phase classification model unit 110, the unknown phase classification unit 120, the resource usage inference unit 130, the performance inference unit 131, the deployment destination search unit 140, and the application deployment unit 141.
[0060] The HDD 350 also stores a resource usage DB 200 and a deployment decision DB 201 .
[0061] Next, the data structure used in the cloud application deployment device will be described with reference to FIGS. 4 to 6. The resource usage table 201 is a table that holds the resource usage for each time period for each computer node 30 that executes an application, and is stored in the resource usage DB 200.
[0062] As shown in FIG. 4, the resource usage table 201 includes fields for computer node ID 201a, application ID 201b, time period ID 201c, measurement time 201d, CPU 201e, virtual memory capacity 201f, storage capacity 201g, and network bandwidth 201h.
[0063] The computer node ID 201a stores an identifier that uniquely identifies the computer node that executes the application. Although not shown in detail, the cloud application deployment device holds specifications (CPU model number, number of cores, CPU operating frequency, CPU benchmark, main memory capacity, storage capacity, network bandwidth, IO connection type, etc.) that indicate the hardware of the computer node 30. The application ID 201b stores an identifier that uniquely identifies the application software to be executed. The time period ID 201c stores an identifier that uniquely identifies a period of time cut out for analyzing resource usage. The time period ID 201c is a unique primary key in the system, and is set to have a unique value even if the computer node ID and application change. The measurement time 201d stores the first time of the time period, for example, in the format of yyyymmddhhmmss. The time period is stored in 10-second units, for example, as shown in FIG. 4. The CPU 201e stores the CPU usage rate in the time period, for example, in percentage. In the virtual memory capacity 201f, the capacity of the virtual memory used by the application is stored, for example, in MB. In the storage capacity 201g, the capacity of the storage (auxiliary storage device such as SSD or HDD) used by the application is stored, for example, in MB. In the network bandwidth 201h, the bandwidth used by the application is stored. Note that in this example, only the CPU, virtual memory, storage capacity, and network bandwidth are shown as the resource usage, but other resource usage such as IO usage bandwidth and GPU usage rate may also be stored.
[0064] Next, an example of the feature vector information table will be described with reference to FIG. The feature vector information table 211 is a table that holds information on feature vectors created for each time period when an application is executed, and is stored in the deployment decision DB 211. As shown in FIG. 5, the feature vector information table 211 includes fields of a time period ID 211a, a feature vector 211b, and a cluster ID 211c.
[0065] The time period ID 211a stores an identifier that uniquely identifies a period into which time is extracted for analyzing resource usage, similar to the time period ID 201c of the resource usage table 201. The feature vector 211b stores the value of the feature vector calculated by the feature vector extraction unit 111 for the time period ID indicated by the time period ID 211a, for example in a list format for the number of elements. The cluster ID 211c stores a cluster ID indicating to which cluster the feature vector indicated by the feature vector 211b determined by the feature vector clustering unit 111 belongs. The cluster ID is assumed to be unique in the system.
[0066] The resource usage inference table 212 is a table that holds resource usage inferred for a cluster of feature vectors by resource type, and as shown in Figure 6, it consists of fields for cluster ID 212a, CPU 212b, virtual memory capacity 212c, storage capacity 212e, and network bandwidth 212f.
[0067] The cluster ID 212a stores a cluster ID indicating to which cluster the feature vector belongs, similar to the cluster ID 211c of the feature vector information table 211. The CPU 212b, the virtual memory capacity 212c, the storage capacity 212e, and the network bandwidth 212f store inferred values inferred by the resource usage inference unit 130 and corresponding to the resource types of the CPU 201e, the virtual memory capacity 201f, the storage capacity 201g, and the network bandwidth 201h of the resource usage table 201, respectively.
[0068] Next, using Figure 7, we will explain the overview of application phases, feature vectors, clusters, and resource calculations, and the relationships between them. FIG. 7 shows the CPU, virtual memory capacity, storage capacity, and network bandwidth as resource usage patterns when a certain application is executed on a certain computer node 30.
[0069] The feature extraction unit 111 of the cloud application deployment device 100 regards such resource usage patterns as multidimensional time series data and extracts a feature vector v 11 , v 12 , v 21 , v 22 , .... Feature vectors can be calculated from this multidimensional time series data using existing machine learning methods such as the already mentioned CRBM, LSTM (Long Short Term Memory) AutoEncoder, and Time Delay Embedding.
[0070] Next, the feature vector clustering unit 113 of the cloud application deployment device 100 performs classification by clustering, for example, using the k-means method, which is a type of learning without teacher data. The k-means method is a method of clustering feature vectors extracted from resource usage data based on the distance from a certain number of cluster centroids calculated from feature vectors extracted from training data. In addition, the clustering verification unit 114 of the cloud application deployment device 100 can verify the clustering result based on the degree to which the distance of the feature vector from the cluster centroid deviates from the distribution of the feature vectors extracted from the training data. In FIG. 7, v 11 , v 12 , … are clusters C1, v 21 , v 22 , ... belong to cluster C2.
[0071] In this embodiment, it is considered that one cluster of the feature vector represents one phase.
[0072] Next, a method for classifying an execution phase of a new application as either a known phase or an unknown phase will be described.
[0073] The classification of whether a time period when an application is executed belongs to a known phase or an unknown phase is calculated based on the feature vector for each time period, regarding the resource usage patterns as multidimensional time series data.
[0074] As already explained, for example, in a CRBM that extracts a feature vector from resource usage data, validation can be performed to check whether the feature vector characterizes the original resource usage data, and it is possible to detect which part of the resource usage data of a new application is a time interval that can be classified into phases using an existing model depending on the degree of validation. In other words, when a feature vector of a known phase is obtained, it is possible to classify whether the time period when the application is executed belongs to a known phase or an unknown phase by comparing the degree of validation of the feature vector for the execution phase of the new application.
[0075] For example, the degree of validation of a feature vector belonging to a cluster of a known phase and the feature vector for the execution phase of a new application is taken, and the average of the degrees of validation calculated for the feature vectors of the cluster is taken. It is defined that the higher the degree of validation, the more similar the feature vectors are. If the degree of validation is below a specified value, it is determined that the feature vector for the execution phase of the new application belongs to the known phase.
[0076] As already explained, one validation method is to simultaneously train a neural network that encodes the resource usage data, which is high-dimensional time series data, into a low-dimensional feature vector and a neural network that decodes the data into the original resource usage data, and use the decoding accuracy evaluated by a loss function (autoencoder). In this case, the validation method can be a method of evaluating the accuracy of decoding the feature vector into the original resource usage data.
[0077] Next, a method for calculating a feature vector belonging to an unknown phase from a known phase will be described.
[0078] A known phase was an execution phase of an application for which a cluster of feature vectors could be obtained using an existing phase classification model.
[0079] Here, we define the feature vectors belonging to the clusters of known phases as v1, v2, …, v i , ...Let us suppose that
[0080] Here, it is assumed that the execution phases of a new application include unknown phases. Here, the feature vector of an unknown phase is denoted by v1, v2, ..., v i Consider redefining a phase by composing it from , ... A known phase may span multiple applications.
[0081] A feature vector u for a time period of an unknown phase is synthesized using the feature vectors for the time periods of the following known phases according to (Equation 1).
[0082]
number
[0083] Here, w i is a weighting coefficient. For example, the time interval of the unknown phase is expressed as the feature vector v i It is a scalar value between 0 and 1 calculated based on the degree of validation when verifying by. The closer each feature vector is to 0, the further apart the features are, and the closer it is to 1, the more similar the features are.
[0084] As already explained, w ican be defined from the decoding accuracy evaluated from the loss function when a neural network that encodes resource usage data, which is high-dimensional time series data, into a low-dimensional feature vector and a neural network that decodes the original resource usage data are trained simultaneously.
[0085] Π means taking the direct product of the index feature vectors. For example, an n-dimensional feature vector v1=(a 11 ,a 12 ,…,a 1n ), v2=(a 21 ,a 22 ,…,a 2n ) is a 2n-dimensional vector as shown in the following (Equation 2).
[0086]
number
[0087] Next, using the resource usage data for the time period of the feature vectors belonging to cluster C as parameters, the resource usage of each resource (CPU, virtual memory capacity, storage capacity, network bandwidth) is inferred from the resource usage inference function ResUse shown in the following (Equation 3).
[0088]
number
[0089] Then, a certain amount of marginal resources can be added to this resource usage to calculate the container resource usage limit value. It can be obtained by statistically processing the resource usage data for the time period of the feature vectors belonging to the cluster. For example, extreme outliers can be excluded, and the arithmetic mean can be taken for each of the resource usage data (CPU, virtual memory capacity, storage capacity, network bandwidth) for each feature vector v.
[0090] Next, the process executed by the cloud application deployment device will be described with reference to FIGS. 8A to 10. FIG.
[0091] First, the process of calculating container usage limits and learning for an unknown phase will be described with reference to Figs. 8A and 8B.
[0092] The cloud application deployment apparatus 100 acquires data from the resource usage table 201 of the resource usage DB 200 (S101).
[0093] Next, the data pre-processing unit 101 of the cloud application deployment apparatus 100 performs pre-processing on the resource usage data of the past execution by the hardware computer node 30, which is acquired from the resource usage table 201 of the resource usage DB 200 (S102).
[0094] Data preprocessing is a process in which, for example, when the time intervals for collecting resource usage data vary, the data is interpolated to convert it into time-series data with a fixed interval. In the case of an application executed in parallel on multiple computing nodes, statistical processing is performed on the resource usage data, such as taking the average value per computing node.
[0095] Next, the cloud application deployment device 100 determines whether a phase classification model has been created for the application to be modeled (S103), and if a phase classification model has not been created for the application (S103: NO), the process proceeds to S104, and if a phase classification model has been created (S103: YES), the process proceeds to S120. When a phase classification model has not been created, it means that the application is executed with a low frequency, and when a phase classification model has been created, it means that a learned phase classification model has been created by learning from past resource usage data for the execution of the application.
[0096] When a phase classification model for the application has been created, the feature extraction unit 111 of the cloud application deployment apparatus 100 extracts a feature vector (S120), and the feature vector clustering unit 113 clusters the feature vector (121), and the process goes to S110.
[0097] When a phase classification model has not been created, an existing phase classification model for which the processes of S105 and S106 below have not been attempted is taken (S104), and the feature extraction unit 111 of the cloud application deployment device 100 extracts a feature vector using the existing phase classification model, and the feature verification unit 112 verifies the feature vector (S105).
[0098] Next, the feature vector clustering unit 113 of the cloud application deployment apparatus 100 performs clustering of the feature vectors using the existing phase classification model, and the clustering verification unit 114 verifies the clustering result (S106).
[0099] Next, the cloud application deployment device 100 determines whether there is an existing phase classification model for which the processing of S105 and S106 has not been attempted (S107), and if there is an existing phase classification model for which the processing has not been attempted (S107: YES), returns to S104, and if there is no existing phase classification model (S107: NO), goes to S108.
[0100] Next, the new application known phase classification unit 121 of the cloud application deployment device 100 classifies the time intervals that are found to be classifiable into known phases by the phase classification model for any of the existing applications as a result of verifying the clustering using each existing phase classification model, and the remaining time intervals of unknown phases (S108).
[0101] For a time interval belonging to an unknown phase, the feature vectors extracted by the existing phase classification model of the cloud application deployment device 100 are weighted by the verification results, and the feature vectors spanning different applications are synthesized (Equation 1) to calculate the feature vector for the time interval belonging to the unknown phase (S109). The unknown phase feature vector clustering unit 124 then performs clustering on the feature vectors for the time interval of the unknown phase calculated by the unknown phase feature vector calculation unit 123 (S110).
[0102] Next, the resource usage inference unit 130 of the cloud application deployment device 100 infers resource usage using the resource usage data as a parameter (S111, (Equation 3), (Equation 4)), and sets a resource usage limit value for the container to which the application is deployed, based on the resource usage obtained by the inference (S112).
[0103] Furthermore, the cloud application deployment device 100 accumulates resource usage data belonging to the time interval of the unknown phase (Figure 8B: S113), and the unknown phase classification model learning unit 122 performs machine learning at the stage when the resource usage data of the unknown phase has been accumulated, and creates a phase classification model targeting the unknown phase (S114).
[0104] Next, the process up to application deployment by the cloud designer for a new application will be described with reference to FIG. This method is effective for deploying applications when container resource limitations are small, because test runs are performed by comprehensively changing parameters such as container resource limitations and the amount of input data for the application.
[0105] First, the cloud designer determines whether or not to perform performance inference through application testing (S201). If performance inference through testing is to be performed (S201: YES), the process proceeds to S202. If performance inference through testing is not to be performed (S201: NO), the process proceeds to S220.
[0106] When carrying out performance inference through testing, preparations for test execution are made, such as creating test input data of different sizes (S202).
[0107] Next, the cloud application deployment apparatus 100 acquires the input data size and parameters of the new application (S203), performs a test run (S204), measures the execution time, resource usage, etc. of the application, and accumulates resource usage data (S205).
[0108] Then, by processing S203 to S205, it is determined whether a comprehensive test has been performed by the cloud designer, or whether a comprehensive test has been performed by the cloud application deployment device based on preset conditions (S206).If it is determined that a comprehensive test has been performed (S206: YES), the process goes to S207; if it is determined that a comprehensive test has not been performed (S206: NO), the process returns to S203 and continues the test.
[0109] When the comprehensive test is performed, the cloud designer classifies the application type (S207) and selects a performance inference formula according to the type based on the measurement results (S208). The application types are, for example, communication applications, AI applications, data analysis applications, etc. The reason for classifying the application types in this way is that the explanatory variables on which the performance depends vary depending on the application type, so that the type of regression formula for performance inference created in advance is first selected. The performance inference formula can be created by creating a regression formula that infers the execution performance of the application when the container resource usage limit value, the input data size, and the parameters are applied as explanatory variables based on the measurement results. In addition, at this time, the unknown parameters in the regression formula can be determined using the least squares method for the measurement results, etc.
[0110] Next, the performance inference unit 131 of the cloud application deployment apparatus 100 performs parameter fitting for application to the performance inference formula (S209), and performs performance inference for container usage restrictions using the selected performance inference formula (S210).
[0111] Next, the deploy destination search unit 140 of the cloud application deployment apparatus 100 searches for a deploy destination of the application (S211), and the application deploy unit 141 deploys the application to the cloud (S212).
[0112] On the other hand, there are also cases where cloud designers do not perform performance inference through testing. Applications that run on the cloud are often developed by combining existing microservices, including open source. In such cases, it is desirable to be able to infer the application execution performance without performing test runs with comprehensive changes to the container resource usage limits of each component. In such cases where an inference formula is not created before the start of operation, the amount of resources that the application can operate with a margin is allocated as the initial setting, and the application is deployed.
[0113] When performance inference by testing is not performed, the cloud designer sets a limit for the container (S220), and the application deploy unit 141 of the cloud application deployment apparatus 100 deploys the application to the cloud (S221).
[0114] Next, resource usage data when the application is operated in a container is collected (S222).
[0115] Next, the feature extraction unit 111 and feature verification unit 112 of the existing phase classification model of the cloud application deployment device 100 apply the phase classification model of the known phase to the collected resource usage data to extract and verify a feature vector (S223).
[0116] Next, the feature vector clustering unit 113 and the clustering verification unit 114 of the existing phase classification model of the cloud application deployment apparatus 100 perform clustering of the feature vectors and verification of the clustering result (S224).
[0117] Then, the processes of S223 and S224 are repeated for the collected resource usage data, and when there are no more existing phase classification models that have not been applied (S225: NO), the process proceeds to S227.
[0118] Next, the new application known phase classification unit 121 of the cloud application deployment apparatus 100 classifies the time interval in which the new application is executed into a known phase or an unknown phase according to the result of each clustering verification (S227).
[0119] Here, it is assumed that a performance inference formula has already been obtained for a known phase of an application.
[0120] Next, the cloud application deployment device 100 determines whether a performance inference formula can be created for the unknown phase (S228), and if a performance inference formula can be created for the unknown phase (S228: YES), it creates a performance inference formula for the unknown phase (S229), goes to S207, and goes through steps S208 and S209 to perform performance inference for container usage restrictions using the performance inference formula for the known phase and the unknown phase performance inference formula (S210).
[0121] A performance inference formula for an unknown phase can be created when there is a sufficient amount of past execution conditions and result data available for creating an inference formula for the application.
[0122] If a performance inference formula cannot be created for an unknown phase (S228: NO), the process returns to S222.
[0123] The performance inference formula in S208 and S229 may be expressed by a slowdown function shown in Fig. 10. The slowdown function is a function that indicates the execution performance degradation (slowdown) of the computer node 30 for each resource usage, with parameters being, for example, the CPU, virtual memory capacity, storage capacity, and network bandwidth usage, and the value range being the rate of application performance degradation that takes values of 0 to 100%, with 0% being when there is no performance and 100% being when the performance degradation exceeds an allowable value.
[0124] In this way, if a slowdown function has already been created for the rate at which application execution time slows down when container resource usage limits are small by test execution for sizing an application with a proven track record of long execution, the same inference function can be applied to new applications that include time intervals classified into known phases. In this way, it is not necessary to perform test execution for sizing for all applications, and the portion for which execution time can be inferred can be increased.
[0125] Next, the user interface of the cloud application deployment device will be described with reference to FIG. If the cloud designer makes a mistake in setting the container resource usage limit value, the application may abnormally terminate due to memory shortage or the like, so it is desirable for the user to check the recommended value calculated by the performance inference unit before deploying the container. Therefore, in the container resource usage limit value analysis screen 400 shown in Fig. 11, as the basis for calculating the recommended value, the fluctuation pattern of the resource usage of the application is classified into known phases that appear when different applications are executed, and the recommended container resource usage limit value is displayed based on the resource usage data of the phase. In the container resource usage limit value output screen 400, the behavior of the resource usage data of a new application is classified into known phases and unknown phases of existing applications, and the degree of validation for the classification into each phase is displayed, allowing the cloud designer to select the setting value of the resource usage limit of the new application.
[0126] In this example, it is assumed that there are a_0 to a_2 as existing applications, a_3 as an unknown application, and p_c, p_p, and p_g as known phases.
[0127] The container resource usage limit value analysis screen 400 includes a recommended container size column 401 , a new application resource usage data pattern display column 410 , an execution phase display bar 421 , and a container resource usage limit analysis table 431 .
[0128] The recommended container size column 401 displays the container resource usage limit value for each resource that the cloud designer for a new application selected from the container resource usage limit analysis table 431. In Fig. 11, "88" selected from p_g is displayed as the CPU usage limit value, and "85" selected from p_p is displayed as the virtual memory usage limit value.
[0129] The new application resource usage data pattern display column 410 is a column showing the transition of the new application resource usage data pattern for each time. In the example of FIG. 11, a CPU load pattern 411 and a virtual memory usage pattern 412 are displayed.
[0130] The execution phase display bar 421 displays the phase division results of the new application over time, for example, in different colors.
[0131] The container resource usage limit analysis table 431 comprises an application display row 431a, a phase display row 431b, a CPU usage limit value row 431c, a virtual memory usage limit value row 431d, and a validation row, and each item is displayed correspondingly.
[0132] The application display line 431a displays the ID or name of the application. The phase display line 431b displays the ID or name of the phase. The CPU usage limit value line 431c displays the CPU usage limit value calculated by the cloud application deployment apparatus 100. The virtual memory usage limit value line 431d displays the virtual memory usage limit value calculated by the cloud application deployment apparatus 100. The validation line displays the degree of validation for the classification into each phase.
[0133] According to this embodiment, even for new applications, by verifying feature vectors obtained from resource usage data, it is possible to classify phases into known phases and unknown phases, and by combining feature vectors of known phases that have undergone machine learning, it is possible to generate a feature vector of an unknown phase with high accuracy.
[0134] This makes it possible to efficiently obtain the feature vector of the unknown phase, thereby improving the accuracy of estimating the resource usage.
[0135] [Embodiment 2] A second embodiment of the present invention will be described below with reference to FIG. The cloud system of this embodiment is configured such that multiple user organizations 1000 (represented as 1000α, 1000β, 1000γ, ... in FIG. 12) each have multiple cloud environments 1100 (represented as 1100αA, 1100αB, ... in FIG. 12), and each user organization 1000 has the cloud application deployment device 100 of embodiment 1.
[0136] Each cloud environment 1100 has a container 1131 for executing an application 1132, and a storage unit 1140. The storage unit 1140 stores a resource usage DB 1141 for that cloud.
[0137] According to this system, a cloud application deployment device 100 that performs optimal placement of containers is provided for each organization to which a user belongs, and collects resource usage data stored in a resource usage DB for each application executed in multiple clouds by the user of the organization, and creates a phase classification model and an inference formula for resource usage and application performance as shown in embodiment 1. With such a configuration, it is possible to realize optimal placement of containers in each cloud in an organization that performs large-scale data analysis for each user organization. [Explanation of symbols]
[0138] 1 ... client, 5 ... network, 10 ... cloud environment, 100 ... cloud application deployment device, 20 ... management node, 21 ... application execution management unit, 22 ... resource usage monitoring unit, 30 ... computer node, 31 ... container, 32 ... application, 33 ... container monitoring unit, 101...data preprocessing unit, 110...phase classification model unit, 120...unknown phase classification unit, 121...new application known phase classification unit, 122...unknown phase classification model unit, 123...unknown phase feature vector calculation unit, 124...unknown phase feature vector clustering unit, 130...resource usage inference unit, 131...performance inference unit, 140...deployment destination search unit, 141...application deployment unit, 150...storage unit
Claims
1. A cloud application deployment device that deploys application software to a cloud environment based on resource usage during execution of the application software, retaining resource usage data for each time period during execution of the application software on a computer node in the cloud environment; calculating a feature vector for each time period from resource usage data for each time period during execution of the application software; clustering the feature vectors for each time period to create clusters; A time series of time periods corresponding to the feature vectors of a cluster including the feature vector is defined as a phase of the application software; a phase classification model that calculates a feature vector for each time period from resource usage data for each time period during execution of the application software, clusters the feature vector for each time period to create clusters, and verifies a result of the clustering to determine whether the result belongs to a certain phase; collecting, for a new application software, resource usage data for each time period during execution of the new application software; Validating the feature vector for each time period of the execution of the new application software with a feature vector belonging to a cluster created by a phase classification model of a known phase for which a phase classification model has already been obtained, and determining whether each of the time periods belongs to a known phase, does not belong to a known phase, or belongs to an unknown phase based on a validation result that indicates a difference in the execution pattern of the application software; inferring resource usage at a computer node for each phase of the application software; A cloud application deployment device that calculates container resource usage limits for a cloud environment on the computer node based on resource usage on the computer node for each phase of the application software, and performs deployment of the application software based on the container resource usage limits.
2. The cloud application deployment device according to claim 1, characterized in that the feature vector for each time period that is determined to belong to the unknown phase of the new application software is synthesized as a Cartesian product of feature vectors of one or more of the known phases multiplied by respective weighting coefficients.
3. 3. The cloud application deployment device according to claim 2, wherein the weighting coefficient is determined from a decoding accuracy evaluated from a loss function when a neural network that decodes the resource usage data is trained simultaneously using a neural network that encodes high-dimensional time series data into a low-dimensional feature vector when creating a feature vector for each time period from the resource usage data.
4. 2. The cloud application deployment device according to claim 1, wherein the unknown phase is learned by the phase classification model using resource usage data accumulated by execution of new application software.
5. A cloud application deployment device as described in claim 1, which creates a performance inference formula that infers performance at a computer node for each phase of the application software, calculates container resource usage limits for a cloud environment at the computer node based on the performance inference formula, and executes deployment of the application software based on the container resource usage limits.
6. 6. The cloud application deployment device according to claim 5, wherein the performance inference formula is calculated using a slowdown function that reduces the performance of the computer node as the resource usage increases for each type of resource usage.
7. 2. The cloud application deployment device according to claim 1, wherein the validation result is displayed for each time period.
8. 1. A cloud application deployment method by a cloud application deployment device that deploys application software to a cloud environment based on resource usage during execution of the application software, comprising: The cloud application deployment device holds resource usage data for each time period during execution of the application software on a computer node in the cloud environment, A time series of time periods corresponding to the feature vectors of a cluster including the feature vector is defined as a phase of the application software; the cloud application deployment device has a phase classification model that calculates a feature vector for each time period from resource usage data for each time period during execution of the application software, clusters the feature vector for each time period to create clusters, and verifies a result of the clustering to determine whether the result belongs to a certain phase; The cloud application deployment device calculates a feature vector for each time period from resource usage data for each time period during execution of the application software; The cloud application deployment device clusters the feature vectors for each time period to create clusters; The cloud application deployment device collects resource usage data for each time period during execution of the new application software; a step of validating the feature vector for each time period of the execution of the new application software against feature vectors belonging to clusters created by a phase classification model of a known phase for which a phase classification model has already been obtained, and determining whether each of the time periods belongs to a known phase, not to a known phase, or to an unknown phase based on a validation result that indicates a difference in an execution pattern of the application software; inferring resource usage at a computer node for each phase of the application software; calculating a container resource usage limit of a cloud environment in the computer node based on the resource usage in the computer node for each phase of the application software; and executing deployment of the application software according to the container resource usage restriction.
9. 9. The cloud application deployment method according to claim 8, wherein the feature vector for each time period determined to belong to the unknown phase of the new application software is synthesized as a Cartesian product of feature vectors of one or more of the known phases multiplied by respective weighting coefficients.
10. The weighting coefficient is used to generate a feature vector for each time period from the resource usage data.
10. The cloud application deployment method according to claim 9, wherein, when generating the resource usage data, a neural network that encodes high-dimensional time series data into a low-dimensional feature vector is used, and a neural network that decodes the resource usage data is simultaneously trained, and the accuracy is determined from a decoding accuracy evaluated from a loss function.
Citation Information
Patent Citations
Classification model training method and apparatus, and classification method and apparatus
JP2020004406A
Network performance guarantee system and network performance guarantee method
JP2020123848A
Machine learning driven resource allocation
JP2022509882A
Training transfer-focused models for deep learning
US20200320379A1