Computing system and determination method for parameter

The system generates load patterns from execution logs to simulate and set threshold values for autoscaling, addressing the challenge of varying event flows in event-driven distributed applications, enhancing resource management and compliance with operational policies.

JP2025008611APending Publication Date: 2025-01-20HITACHI LTD

Patent Information

Application Number
JP2023110923
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-07-05
Publication Date
2025-01-20

AI Technical Summary

Technical Problem

Existing technologies struggle to set appropriate thresholds for autoscaling event-driven distributed applications due to varying event flows and frequencies across different regions and users, complicating the management of infrastructure and understanding application behavior in cloud systems.

Method used

A computer system that includes an execution environment with an autoscaling system, where execution logs are used to generate load patterns and simulate processing flows to set threshold values for autoscaling, allowing for tailored autoscaling based on specific event-driven distributed applications.

Benefits of technology

Enables setting of threshold values for autoscaling that meet service-level agreements by understanding the behavior of each event-driven distributed application, improving resource management and compliance with operational policies.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025008611000001_ABST
    Figure 2025008611000001_ABST
Patent Text Reader

Abstract

To determine a threshold of determination metrics to control scaling of a resource for executing an event-drive-type distributed application.SOLUTION: A computing system connects to an execution environmental system that supplies an instance and to an automated scaling system that controls scaling of the instance. The execution environmental system uses the instance to execute a plurality of applications that supplies the same service. The computing system acquires an execution log of a target application, uses the execution log to generate a load pattern, sets a threshold of determination metrics for controlling execution of the scaling based on the load pattern, executes a simulation processing multiple times, which simulates processing and the scaling of the target application, and based on results from the simulation processing, determines the threshold of the determination metrics.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a technique for auto-scaling resources for executing event-driven distributed applications. [Background technology]

[0002] When deploying various application services in cloud environments, the use of orchestration tools and services such as Kubernetes (k8s) and Amazon ECS (Elastic Container Service) to reduce the operational burden of containers deployed on multiple servers is becoming more common.

[0003] One of the main functions of an orchestration tool is the auto-scaling function for resources. The auto-scaling function monitors the metrics that indicate the load status of the resources used by an application, dynamically adds resources when the metrics exceed a scaling reference value (threshold), increases the processing throughput of the application, and stops resources when the metrics fall below the threshold. Adding resources can increase the processing throughput of an application, and stopping resources can reduce resource usage. For example, the use of the auto-scaling function is recommended when using services such as cloud-based managed container services where the pay-per-use charges are high if resources are kept running all the time.

[0004] When business logic is implemented into an application, there are cases where an event occurs that invokes different processes for a single request, and parallel distributed processing is executed on an event-driven basis. In such cases, the application includes complex parallel distributed processing, where a process corresponding to one event waits for a process corresponding to another event, or generates another event. Hereafter, applications with the above characteristics are referred to as event-driven distributed applications.

[0005] The techniques described in Patent Documents 1 and 2 are known as techniques for capturing and evaluating fluctuations in judgment metrics used for auto-scaling and auto-scaling resources.

[0006] Patent Document 1 aims to provide a technology that enables efficient operation of a system with efficient billing. The method disclosed is characterized in that, in a system in which requested processing is distributed to a plurality of computer nodes, a computer node that manages tasks to be executed in the system, when receiving a processing request with a specified deadline, references management information that manages tasks to be executed by computer nodes included in the system, stored in a storage unit, and executes a simulation to assign the tasks of the processing request to computer nodes, and when it is determined by the assignment simulation that there is no computer node that can complete the tasks of the processing request within the deadline and that a computer node that can complete the tasks of the processing request within the deadline cannot be prepared even if tasks that can be completed within the deadline are moved to other computer nodes, a process of adding a computer node to the system is executed.

[0007] Patent document 2 discloses a method for a proactive autoscaling system to proactively, dynamically, and automatically scale computing resources allocated to an application prior to a scaling event that causes a change in load level, using heuristics and machine learning. [Prior art documents] [Patent documents]

[0008] [Patent Document 1] JP 2013-210683 A [Patent Document 2] U.S. Pat. No. 1,122,6844 Summary of the Invention [Problem to be solved by the invention]

[0009] In order to control scaling so as to satisfy the SLA and operation policy, it is necessary to set the thresholds of the judgment metrics appropriately. For this purpose, a method is considered in which an event-driven distributed application and an auto-scaling service are simulated using the techniques described in Patent Documents 1 and 2, and the thresholds of the judgment metrics are calculated.

[0010] Even for event-driven distributed applications that provide the same service, the implementation of the event-driven distributed application varies depending on the region and the user. Therefore, the event flow of the event-driven distributed application varies, and the event branching tendency also differs. Therefore, it is necessary to identify the event flow and the occurrence frequency of the event flow before performing a simulation. In addition, the operation of application services on cloud systems has complicated the management of the infrastructure that provides application services. Therefore, it is difficult to grasp the behavior of each event-driven distributed application. Therefore, it is difficult to apply conventional technology as it is.

[0011] The present invention aims to set thresholds for metrics used to determine auto-scaling for each event-driven distributed application in a system in which multiple event-driven distributed applications run. [Means for solving the problem]

[0012] A representative example of the invention disclosed in the present application is as follows: That is, a computer system includes a processor, a memory connected to the processor, and a network interface connected to the processor, and is connected to an execution environment system that provides instances and an auto-scaling system that controls the scaling of the instances, in which the execution environment system executes a plurality of applications that provide the same service using the instances, and the applications include a plurality of event-driven event processes, the processor acquires an execution log of the processing of a target application, and uses the execution log to generate a load pattern that includes one or more pairs of a processing flow of the event processing in the target application and a time transition of the number of requests processed by the processing flow, based on the load pattern, sets a threshold value of a judgment metric for controlling the execution of the scaling, executes a simulation process multiple times to simulate the processing and the scaling of the target application, and determines a threshold value of the judgment metric based on a result of the simulation process. Effect of the Invention

[0013] According to one aspect of the present invention, in a system in which multiple event-driven distributed applications are running, it is possible to set thresholds for metrics used to determine auto-scaling for each event-driven distributed application. Problems, configurations, and effects other than those described above will become clear from the following description of the embodiment. [Brief description of the drawings]

[0014] [Figure 1] FIG. 1 illustrates an example of the configuration of an IT system according to a first embodiment. [Diagram 2] FIG. 2 illustrates an example of a configuration of a computer that realizes a server according to a first embodiment. [Diagram 3] FIG. 2 is a diagram illustrating an example of cooperation between servers in the IT system according to the first embodiment. [Figure 4]FIG. 2 is a diagram illustrating an example of a functional configuration of an evaluation server according to the first embodiment. [Figure 5A] FIG. 2 is a diagram illustrating an example of a data structure of information stored in a simulation DB according to the first embodiment. [Figure 5B] FIG. 2 is a diagram illustrating an example of a data structure of information stored in a simulation DB according to the first embodiment. [Figure 5C] FIG. 2 is a diagram illustrating an example of a data structure of information stored in a simulation DB according to the first embodiment. [Figure 5D] FIG. 2 is a diagram illustrating an example of a data structure of information stored in a simulation DB according to the first embodiment. [Figure 5E] FIG. 2 is a diagram illustrating an example of a data structure of information stored in a simulation DB according to the first embodiment. [Figure 6] FIG. 13 is a sequence diagram showing a flow of deployment / control of a collection unit in the IT system of the first embodiment. [Figure 7] 11 is a flowchart illustrating an overview of a process executed by the evaluation server according to the first embodiment. [Figure 8] 11 is a flowchart illustrating an example of a load pattern generation process executed by the evaluation server according to the first embodiment. [Figure 9] 11 is a flowchart illustrating an example of a threshold determination process executed by the evaluation server according to the first embodiment. [Figure 10] 13 is a flowchart illustrating an example of a minimum / maximum number of servers determination process executed by the evaluation server according to the first embodiment. [Figure 11] FIG. 13 is a diagram showing an example of a GUI presented by an evaluation server according to the first embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0015] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. However, the present invention is not to be interpreted as being limited to the description of the embodiment shown below. It will be easily understood by those skilled in the art that the specific configuration can be changed without departing from the concept or purpose of the present invention.

[0016] In the configurations of the invention described below, the same or similar configurations or functions are given the same reference numerals, and duplicated explanations are omitted.

[0017] In this specification, the terms "first," "second," "third," and the like are used to distinguish components and do not necessarily limit the number or order. EXAMPLES

[0018] Fig. 1 is a diagram illustrating an example of the configuration of an IT system according to the first embodiment. Fig. 2 is a diagram illustrating an example of the configuration of a computer that realizes a server according to the first embodiment.

[0019] The IT system includes an auto-scaling server 101, a load balancer 102, multiple application execution servers 104, a database server 105, a monitoring server 106, a collection server 107, and an evaluation server 108. The servers are connected to each other via a network 120. The network 120 may be a local area network (LAN), a wide area network (WAN), the Internet, or the like. The network may be connected either wired or wirelessly. The network 120 may be a private network or a public network.

[0020] The server of the IT system is realized, for example, by using a computer 200 as shown in FIG. 2. The computer 200 has a processor 201, a main memory device 202, a secondary memory device 203, and a network interface 204. The hardware elements are connected to each other via a bus. The computer 200 may have an input device that accepts input from a user and an output device that outputs data that is visible to the user. The input device is, for example, a keyboard, a mouse, a touch panel, etc., and the output device is, for example, a display, a printer, etc.

[0021] The processor 201 executes a program stored in the main memory device 202. The processor 201 executes processing according to the program, thereby operating as a functional unit (module) that realizes a specific function. In the following explanation, when a process is explained with a functional unit as the subject, it indicates that the processor 201 is executing a program that realizes the functional unit.

[0022] Note that a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC) may be used instead of the processor 201. Also, the processor 201 may be used in combination with an FPGA or an ASIC.

[0023] The main memory 202 is a high-speed memory device such as a dynamic random access memory (DRAM), and stores programs executed by the processor 201 and data used when the programs are executed. The main memory 202 is also used as a work area. The computer 200 may also have a read only memory (ROM) that stores a BIOS and the like.

[0024] The secondary storage device 203 is a large-capacity storage device such as a hard disk drive (HDD) or a solid state drive (SSD), and stores data permanently. The programs and data stored in the main storage device 202 may be stored in the secondary storage device 203. In this case, the processor 201 reads out the programs and data from the secondary storage device 203 and loads them into the main storage device 202.

[0025] The network interface 204 communicates with other devices via a network in accordance with a predetermined protocol.

[0026] The server may be realized by using a virtual machine or a container.

[0027] The application execution server 104 is a server that realizes an instance for executing an event-driven distributed application 301 (see FIG. 3). The application execution server 104 is configured on the execution environment system 110.

[0028] In the following description, an event-driven distributed application will simply be referred to as an application.

[0029] The load balancer 102 distributes requests to the application 301 .

[0030] The application 301 executes event processing according to an event processing flow, which is a flow of event processing corresponding to the received request.

[0031] The application execution server 104 executes multiple event processes in parallel by assigning event processes to threads. The application execution server 104 uses a database server 105 to record and refer to the number of pending event processes, and the progress status of event processes such as start, completion, retry, and error end.

[0032] Furthermore, the application execution server 104 can transfer event processing to another application execution server 104 and request it to take over the event processing, depending on the load status of the server (such as the number of pending event processing).

[0033] In this embodiment, it is assumed that an application 301 that realizes the same service exists for each combination of region and user. It is assumed that the application 301 is customized for each combination of region and user.

[0034] The database server 105 manages event control information 310 that stores the number of pending events in the application execution server 104, the progress of event processing, and the event processing time. The database server 105 also manages data recorded and referenced by the application 301. The database server 105 may be divided into two servers for managing the former and latter data.

[0035] The auto-scaling server 101 is a server that realizes an auto-scaling service that increases or decreases the number of application execution servers 104. For example, the auto-scaling server 101 acquires judgment metrics such as the CPU usage rate of the application execution servers 104, and adds application execution servers 104 when the judgment metrics are greater than a threshold value, and reduces the number of application execution servers 104 when the judgment metrics are less than the threshold value. For example, the scaling function of an orchestration service such as Amazon EKS (Elastic Kubernetes Service) is assumed.

[0036] To calculate the metrics for judgment, the monitoring server 106 acquires various information from the application execution server 104, the database server 105, and the load balancer 102. For example, the number of accepted requests, the event processing log, operation information of the application execution server 104, and the log of the data write processing and read processing for the database server 105 are acquired. The event processing log includes the type of event processing, the processing time, the invocation of other event processing, and the like. In the following explanation, information related to the execution of the application 301 is also referred to as the application log.

[0037] The monitoring server 106 uses the acquired application log to calculate the metrics for judgment and transmits them to the auto scaling server 101. Note that the values ​​contained in the acquired information may be directly calculated as the metrics for judgment, or the metrics for judgment may be calculated by information processing using the acquired information. The monitoring server 106 may also convert the metrics for judgment into judgment values ​​and transmit the judgment values.

[0038] The collection server 107 acquires the application log from the monitoring server 106 and transmits it to the evaluation server 108 .

[0039] The evaluation server 108 executes a simulation of each of the application 301 and the auto-scaling server 101. In the following description, the simulations of each of the application 301 and the auto-scaling server 101 are collectively referred to as an operation simulation. The evaluation server 108 determines a control value for controlling auto-scaling based on the result of the operation simulation, and reflects the control value in various setting information of the auto-scaling server 101 and the monitoring server 106.

[0040] FIG. 3 is a diagram illustrating an example of cooperation between servers in the IT system according to the first embodiment.

[0041] In the runtime environment system 110, it is assumed that a plurality of application execution servers 104 are executing event processing.

[0042] The application execution server 104 includes an application 301 , a distributed processing platform 300 , and an application log collection agent 302 .

[0043] An application 301 runs on a distributed processing infrastructure 300. The distributed processing infrastructure 300 functions as a framework for the application 301. Specifically, the distributed processing infrastructure 300 performs event progress management by accessing event control information 310 in the database server 105, event calling, thread allocation to event processing, and event transfer between application execution servers 104 for the event processing flow and each event processing.

[0044] The application log collection agent 302 periodically acquires logs (application logs) related to the execution of the application 301, such as event execution history, CPU usage, heap memory usage, number of pending event processes, and event processing time, from the distributed processing platform 300. The application log collection agent 302 may acquire necessary information from the database server 105 or the auto-scaling server 101.

[0045] First, the process flow of auto-scaling will be described.

[0046] The monitoring unit 320 of the monitoring server 106 acquires application logs from the application log collection agent 302. The monitoring unit 320 may acquire information for calculating the determination metrics from a configuration other than the application log collection agent 302. For example, the number of currently operating application execution servers 104 may be acquired from the auto-scaling server 101.

[0047] The monitoring unit 320 of the monitoring server 106 calculates the metrics for judgment using the acquired information based on the monitoring setting information 321, and transmits the metrics for judgment to the auto scaling server 101. The monitoring setting information 321 stores algorithms for calculating the metrics for judgment, etc.

[0048] The monitor 320 stores the acquired application log and the calculated metrics for determination in the history DB 322 .

[0049] The auto-scaling server 101 determines whether scaling is necessary based on the auto-scaling setting information 350 and the determination metrics, and adds or removes application execution servers 104. The auto-scaling setting information 350 includes a threshold value, as well as the maximum and minimum numbers of application execution servers 104, and the like.

[0050] Next, a process flow for calculating the control value will be described.

[0051] The evaluation server instructs the collection unit 330 of the collection server 107 to acquire the application log. The collection unit 330 acquires the application log from the history DB 322 of the monitoring server and processes it as necessary. The collection unit 330 transmits the application log to the evaluation server .

[0052] In this embodiment, the deploy unit 342 of the evaluation server 108 deploys a program for implementing the collection unit 330 to the collection server 107. The deploy unit 342 of the evaluation server 108 also transmits a collection instruction and a stop instruction to the collection unit 330.

[0053] The evaluation server 108 stores the application log received from the collection server 107 in the simulation DB 343 .

[0054] The setting information generation unit 341 generates a load pattern using an application log, and also executes an operation simulation for determining control values ​​such as thresholds of judgment metrics using the load pattern. The setting information generation unit 341 generates control value information 435 (see FIG. 4) based on the result of the operation simulation. The setting information generation unit 341 also transmits information on the determined control values ​​to the auto-scaling server 101 and the monitoring server 106.

[0055] The evaluation server 108 may obtain the application log directly from the monitoring server 106. In this case, the collection server 107 is not necessary.

[0056] FIG. 4 is a diagram illustrating an example of a functional configuration of the evaluation server 108 according to the first embodiment.

[0057] The evaluation server 108 includes an interface unit 340, a setting information generating unit 341, and a deploying unit 342. The evaluation server 108 also holds a simulation DB 343 and a collection program 440.

[0058] The interface unit 340 provides an API 411 for accessing the functional units or DB of the evaluation server 108, and a GUI 410 for presenting various information.

[0059] The deployment unit 342 deploys a collection program 440 that realizes the collection unit 330, and also transmits collection instructions and stop instructions to the collection unit 330.

[0060] The setting information generating unit 341 includes a load pattern generating unit 420 , a simulation control unit 421 , a simulation executing unit 422 , and an information updating unit 423 .

[0061] The load pattern generation unit 420 generates a load pattern based on the application log. The simulation control unit 421 controls the execution of a simulation (discrete event simulation) of the application 301 and a simulation of the auto-scaling server 101. The simulation execution unit 422 executes a simulation of the application 301 and a simulation of the auto-scaling server 101. The information update unit 423 determines a control value based on the result of the operation simulation, and reflects the control value in the monitoring setting information 321 and the auto-scaling setting information 350.

[0062] The simulation DB 343 stores application log information 430 , basic setting information 431 , target plan information 432 , application analysis information 433 , load pattern information 434 , and control value information 435 .

[0063] The application log information 430 stores application logs acquired from the collection server 107. The basic setting information 431 is information for managing basic settings of the discrete event simulation of the application 301. The goal plan information 432 stores a goal plan in which evaluation indexes and the like of the operation simulation are set. The application analysis information 433 stores the analysis results of the behavior of the application 301. The load pattern information 434 stores a load pattern. The control value information 435 stores a control value for controlling scaling.

[0064] 5A, 5B, 5C, 5D, and 5E are diagrams showing an example of a data structure of information stored in the simulation DB 343 in the first embodiment.

[0065] 5A shows the data structure of the basic setting information 431. The basic setting information 431 includes the configuration of the execution environment system 110, an event distribution rule, an auto-scaling service activation setting, a minimum number of servers, a maximum number of servers, and a threshold value. The minimum number of servers and the maximum number of servers may be left blank. The minimum number of servers and the maximum number of servers are determined by a process described later. The threshold value included in the basic setting information 431 is the initial value of the threshold value in the operation simulation.

[0066] 5B shows the data structure of the target plan information 432. The target plan information 432 stores entries including a plan ID 501 and plan details 502. One entry corresponds to one target plan (management policy).

[0067] Plan ID 501 is a field that stores the ID of a target plan. Plan details 502 is a field that stores details of a target plan. Plan details 502 stores values ​​related to SLA, items that are important in determining thresholds, and the like. For plan ID "PLAN_A", the upper limit of response time is 3,000 ms, and a threshold that ensures that the response time is within 2,100 ms and provides the lowest cost is determined.

[0068] 5C shows the data structure of the application analysis information 433. The application analysis information 433 stores the start time of the application execution server 104, the type of event in the application 301, the processing time of the application 301, and the read / write time for the database server 105, which are obtained by analyzing the application log.

[0069] 5D shows the data structure of a load pattern 510 stored in the load pattern information 434. The load pattern 510 includes one or more pieces of data 511 consisting of an event processing flow and a request flow rate transition graph. The event processing flow consists of nodes indicating the type of event and edges indicating transitions between events. A transition probability can be set for the edges.

[0070] 5E shows the data structure of the control value information 435. One piece of control value information 435 is output for one goal plan. The control value information 435 includes, for example, a minimum number of servers, a maximum number of servers, a threshold value, and a reference value.

[0071] The reference value is a value for estimating resource usage from the judgment metrics. For example, if the reference value is 100 and the judgment metric is 50, 50% (=50 / 100) is calculated as the judgment value.

[0072] If the threshold is greater than the judgment value, there is a surplus of resources, and if the threshold is less than the judgment value, the resources are tight. For example, if the judgment value is 50% and the threshold is 100%, there is a possibility that the resources can be reduced by half, and if the judgment value is 200% and the threshold is 100%, the resources need to be doubled.

[0073] When determining the threshold and the reference value, one of them can be fixed and an operation simulation can be performed. In this embodiment, the reference value is fixed and the threshold is determined. Note that if the judgment metrics are used as is to control scaling, the reference value is not necessary.

[0074] The reference value included in the control value information 435 is reflected in the monitoring setting information 321 of the monitoring server 106. The maximum number of servers, the minimum number of servers, and the thresholds included in the control value information 435 are reflected in the auto-scaling setting information 350 of the auto-scaling server 101.

[0075] FIG. 6 is a sequence diagram showing the flow of deployment / control of the collection unit 330 in the IT system of the first embodiment.

[0076] When the deploy unit 342 of the evaluation server 108 receives a deploy request from a user via the interface unit 340, it outputs a response to the user via the interface unit 340, and then deploys the collection program 440 to the collection server 107 (step S601).

[0077] When the deploy unit 342 receives a start request from the user via the interface unit 340, the deploy unit 342 transmits a start instruction to the collection server 107 (step S602).

[0078] When the collection server 107 receives the start instruction, it executes the collection program 440 and starts the collection unit 330 (step S603). The collection server 107 notifies the evaluation server 108 of the completion of the start (step S604). The evaluation server 108 outputs a response to the start request via the interface unit 340.

[0079] The collection server 107 periodically executes application log collection processing (step S610). Specifically, the collection server 107 acquires application logs from the monitoring server 106 (step S611) and transmits them to the evaluation server 108 (step S612). The evaluation server 108 updates the application log information 430 (step S613). Specifically, the received application logs are registered in the application log information 430.

[0080] When the deployment unit 342 receives a stop request from a user via the interface unit 340, it transmits a stop instruction to the collection server 107 (step S621). The collection server 107 stops the application log collection process (step S622). The collection server 107 notifies the evaluation server 108 of the stop of the process (step S623). The evaluation server 108 outputs a response to the stop request via the interface unit 340.

[0081] FIG. 7 is a flowchart for explaining an outline of the process executed by the evaluation server 108 according to the first embodiment.

[0082] When the evaluation server 108 receives a load pattern generation request via the interface unit 340, it outputs a response via the interface unit 340 and then executes a load pattern generation process (step S701). The generation request includes information for identifying the target application 301. For example, the request includes a region and a user ID.

[0083] When the evaluation server 108 receives the operation simulation execution request via the interface unit 340, it outputs a response via the interface unit 340 and then executes a threshold determination process (step S702). The operation simulation execution request includes information for identifying the target application 301.

[0084] FIG. 8 is a flowchart illustrating an example of a load pattern generation process executed by the evaluation server 108 according to the first embodiment.

[0085] The load pattern generating unit 420 reads the application log of the specified application 301 from the application log information 430 (step S801).

[0086] The load pattern generating unit 420 generates the application analysis information 433 by analyzing the application log (step S802).

[0087] For example, the load pattern generation unit 420 performs analysis by compiling an application log from the start of processing of the application 301 to the completion of processing. By analyzing the application log, the load pattern generation unit 420 calculates the startup time of the application execution server 104, the type of event processing to be executed, the execution time of the event processing, and the read / write time to the database server 105 associated with the event processing.

[0088] The load pattern generating unit 420 generates an event processing flow based on the analysis result of the application log (step S803). For example, the following processing is executed.

[0089] (S803-1) The load pattern generation unit 420 generates pairs of transitioning event processes. Here, the pairs are generated so that the combinations of event processes do not overlap.

[0090] (S803-2) The load pattern generation unit 420 identifies pairs with the same event processing at the transition destination, and sets different identification information to the event processing at the transition destination of the pair. For example, if there is a pair of event processing "D" called from event processing "B" and a pair of event processing "D" called from event processing "C", the identifier of the event processing "D" of the former pair is set to "D1", and the identifier of the event processing "D" of the latter pair is set to "D2". Even if the event processing is the same, if the event processing of the caller is different, there will be differences in the processing time of the event processing of the caller, etc. Therefore, different identifiers are set.

[0091] (S803-3) The load pattern generation unit 420 generates an event processing flow by linking the event processes based on the pairs and the event processing information.

[0092] The load pattern generating unit 420 calculates the transition probability between the event processes of each event processing flow based on the application log (step S804). The transition probability between the event processes is calculated as a conditional probability.

[0093] The load pattern generation unit 420 calculates the time transition of the number of requests for each event processing flow (step S805).

[0094] (S805-1) The load pattern generation unit 420 calculates a time transition of the number of requests processed by the application 301 based on the application log.

[0095] (S805-2) The load pattern generation unit 420 calculates the occurrence frequency of the event processing flow using the transition probability between the event processing of the event processing flow. For example, a method of calculating the occurrence frequency from the multiplied value of the transition probabilities between the event processing is conceivable. If the multiplied value of the transition probabilities of the event processing flow (1) is 0.07 and the multiplied value of the transition probabilities of the event processing flow (2) is 0.03, the occurrence frequency of the event processing flow (1) can be calculated as 7 / 10, and the occurrence frequency of the event processing flow (2) can be calculated as 3 / 10.

[0096] (S805-3) The load pattern generation unit 420 distributes the time transition of the number of requests processed by the application 301 based on the occurrence frequency.

[0097] The load pattern generation unit 420 generates a load pattern by associating the event processing flow with the time transition of the number of requests (step S806). The load pattern generation unit 420 registers the generated load pattern in the load pattern information 434 together with information for identifying the application 301.

[0098] The load pattern may be set manually. For example, this is effective in understanding the behavior of scaling when performing a discrete event simulation with various load patterns to consider a target plan before running the application 301 in a real environment.

[0099] FIG. 9 is a flowchart illustrating an example of a threshold determination process executed by the evaluation server 108 according to the first embodiment.

[0100] The simulation control unit 421 sets a goal plan (step S901). The goal plan is input by the user.

[0101] The simulation control unit 421 reads out the basic setting information 431, the application analysis information 433, and the load pattern (step S902).

[0102] The simulation control unit 421 executes a process for determining the minimum / maximum number of servers (step S903). The details of this process will be described later. In this process, the minimum number of servers and the maximum number of servers are determined. Note that, if the minimum number of servers and the maximum number of servers are given, the process of step S903 can be omitted. Note that the process for determining the minimum / maximum number of servers may be executed only when the auto-scaling service enable flag in the basic setting information 431 is "OFF."

[0103] The simulation control unit 421 sets thresholds for the metrics for judgment (step S904), and instructs the simulation execution unit 422 to execute an operation simulation (step S905). The instruction includes the basic setting information 431, the application analysis information 433, the load pattern, and the thresholds for the metrics for judgment.

[0104] In the first case, the value stored in the basic setting information 431 is set as the threshold value of the judgment metric. When a new threshold value is set after an operation simulation is performed, the threshold value of the judgment metric is set based on the result of the operation simulation. The algorithm for updating the threshold value can be set arbitrarily.

[0105] The simulation of the application 301 and the simulation of the scaling can be performed using known techniques, and therefore detailed explanations are omitted.

[0106] After acquiring the result of the operation simulation from the simulation execution unit 422, the simulation control unit 421 determines whether or not to end the operation simulation (step S906). For example, the simulation control unit 421 determines to end the operation simulation when the target plan is satisfied. Also, the simulation control unit 421 determines to end the operation simulation when the number of times the operation simulation has been executed is greater than a threshold value.

[0107] If the operation simulation is not to be ended, the simulation control unit 421 returns to step S904. If the operation simulation is to be ended, the simulation control unit 421 generates control value information 435 based on the result of the operation simulation that is most suitable for the operation plan (step S907). The simulation control unit 421 stores the control value information 435 in association with the load pattern and the result of the operation simulation.

[0108] The simulation control unit 421 may determine a control value other than the threshold value of the judgment metrics based on the result of the operation simulation. For example, the minimum number of servers may be determined based on the minimum number of the application execution servers 104 in the operation simulation.

[0109] The assessment server 108 may execute a loop process for the goal plans to generate the control value information 435 for a plurality of goal plans.

[0110] FIG. 10 is a flowchart illustrating an example of a minimum / maximum number of servers determination process executed by the evaluation server 108 according to the first embodiment.

[0111] The simulation control unit 421 sets an initial value for the number of application execution servers 104 (step S1001). For example, "1" is set as the initial value.

[0112] The simulation control unit 421 instructs the simulation execution unit 422 to execute a discrete event simulation (step S1002). The instruction includes the basic setting information 431, the application analysis information 433, a load pattern, and the like.

[0113] The simulation control unit 421 acquires the execution result of the discrete event simulation from the simulation execution unit 422, and determines whether or not the execution result of the discrete event simulation satisfies the SLA set in the operation plan based on the execution result of the discrete event simulation (step S1003).

[0114] If the SLA set in the operation plan is not satisfied, the simulation control unit 421 adds 1 to the number of application execution servers 104 (step S1004), and then returns to step S1002.

[0115] If the SLA set in the operation plan is satisfied, the simulation control unit 421 sets the current number of application execution servers 104 as the maximum number of servers (step S1005).

[0116] The simulation control unit 421 instructs the simulation execution unit 422 to execute a discrete event simulation (step S1006). The process of step S1006 is the same as the process of step S1002.

[0117] The simulation control unit 421 determines whether the SLA set in the operation plan is satisfied based on the execution result of the discrete event simulation (step S1007). The process of step S1007 is the same as the process of step S1003.

[0118] If the SLA set in the operation plan is satisfied, the simulation control unit 421 subtracts 1 from the number of application execution servers 104 (step S1008), and then returns to step S1006.

[0119] If the SLA set in the operation plan is not satisfied, the simulation control unit 421 sets the minimum number of servers to a value obtained by adding 1 to the number of application execution servers 104 (step S1009).

[0120] FIG. 11 is a diagram showing an example of a GUI 410 presented by the evaluation server 108 according to the first embodiment.

[0121] Button 1101 is an operation button for making various settings for the operation simulation. The user presses button 1101 to set and edit basic setting information 431 and an operation plan, and also specifies application 301 to be simulated.

[0122] Display field 1102 is a field that displays a summary of the operation simulation. By referring to display field 1102, the user can check the total number of registered operation simulations, whether an operation simulation is currently being executed, the execution schedule of the operation simulation, and the like. Furthermore, by operating the icons in display field 1102, the user can check the results and alert information of the operation simulation that has already been executed. Furthermore, by operating the icons in display field 1102, the user can instruct the execution and stop of the operation simulation.

[0123] The display field 1103 is a field for displaying the results of the operation simulation. By referring to the display field 1103, the user can check the settings of the operation simulation, the load pattern, the results of the operation simulation, and the control value information 435. In the figure, the results of the operation simulation are displayed as graphs showing the time transition of the number of application execution servers 104 and the time transition of the response time of the application 301.

[0124] As described above, according to the present invention, in a system in which a plurality of applications 301 are running, thresholds for metrics used to determine auto-scaling of the applications 301 can be set. [Explanation of symbols]

[0125] 101 Auto Scaling Server 102 Load Balancer 104 Application execution server 105 Database Server 106 Monitoring Server 107 Collection Server 108 Rating Server 110 Execution Environment System 120 Network 200 calculator 201 Processor 202 Main storage 203 Secondary storage device 204 Network Interface 300 Distributed Processing Platform 301 Event-Driven Distributed Applications 302 Application Log Collection Agent 310 Event Control Information 320 Monitoring Department 321 Monitoring setting information 322 History DB 330 Collection Department 340 Interface section 341 Configuration information generation unit 342 Deploy Department 343 Simulation DB 350 Autoscaling setting information 410 GUI 411 API 420 Load pattern generator 421 Simulation Control Section 422 Simulation Execution Department 423 Information Update Department 430 Application log information 431 Basic setting information 432 Goal Plan Information 433 Application Analysis Information 434 Load Pattern Information 435 Control Value Information 440 Collection Program

Claims

1. 1. A computer system comprising: a processor, a memory connected to the processor, and a network interface connected to the processor; Connecting to an execution environment system that provides instances and an auto-scaling system that controls the scaling of the instances; In the execution environment system, a plurality of applications that provide the same service are executed using the instances, The application includes a plurality of event-driven event processes; The processor, Acquire the execution log of the target application's processing, generating a load pattern including one or more pairs of a processing flow of the event processing in the target application and a time transition of the number of requests processed by the processing flow, using the execution log; setting a threshold value of a determination metric for controlling the execution of the scaling based on the load pattern, and executing a simulation process for simulating the processing of the target application and the scaling a plurality of times; A computer system comprising: a computer that determines a threshold value of the judgment metrics based on a result of the simulation processing.

2. 2. The computer system of claim 1, The processor, generating a plurality of the process flows based on the execution log; Calculating a time transition of the number of requests processed by the target application based on the execution log; calculating, for each of the plurality of process flows based on the execution log, a transition probability between the event processes in the process flow; calculating an occurrence frequency for each of the plurality of process flows based on a transition probability between the event processes in the process flow; A computer system characterized by calculating the change over time in the number of requests processed by each of the multiple processing flows by distributing the number of requests processed by the target application over time based on the occurrence frequency of each of the multiple processing flows.

3. 3. The computer system of claim 2, The computer system is characterized in that the processor determines threshold values ​​of the judgment metrics so as to satisfy an operation plan that defines a service level and an operation policy.

4. 3. The computer system of claim 2, The computer system is characterized in that the processor determines the maximum and minimum numbers of instances by setting the number of instances based on the load pattern and threshold values ​​of the judgment metrics and executing a simulation process multiple times to simulate the processing of the target application.

5. 3. The computer system of claim 2, The computer system according to claim 1, wherein the processor generates display information for displaying the load pattern, the results of the simulation, and the thresholds of the judgment metrics.

6. A method for determining a parameter for controlling autoscaling executed by a computer system, comprising the steps of: The computer system comprises: a processor, a memory connected to the processor, and a network interface connected to the processor; Connecting to an execution environment system that provides instances and an auto-scaling system that controls the scaling of the instances; In the execution environment system, a plurality of applications that provide the same service are executed using the instances, The application includes a plurality of event-driven event processes; The method for determining the parameters includes the steps of: A first step in which the processor acquires an execution log of a process of a target application and stores the execution log in the memory; a second step of the processor generating a load pattern including one or more pairs of a processing flow of the event processing in the target application and a time transition of the number of requests processed by the processing flow, using the execution log, and storing the load pattern in the memory; a third step in which the processor sets a threshold value of a determination metric for controlling the execution of the scaling based on the load pattern, and executes a simulation process for simulating the processing of the target application and the scaling a plurality of times; a fourth step in which the processor determines a threshold value of the judgment metrics based on a result of the simulation process and stores the threshold value in the memory; A method for determining a parameter, comprising:

7. 7. A method for determining a parameter according to claim 6, comprising the steps of: The second step includes: generating a plurality of the process flows based on the execution log by the processor; calculating, by the processor, a time transition of the number of requests processed by the target application based on the execution log; a step of the processor calculating, for each of the plurality of process flows based on the execution log, a transition probability between the event processes in the process flow; a step of the processor calculating an occurrence frequency for each of the plurality of process flows based on a transition probability between the event processes in the process flow; a step of the processor calculating a change over time in the number of requests processed by each of the plurality of processing flows by distributing the number of requests processed by the target application at each time point based on the occurrence frequency of each of the plurality of processing flows, thereby calculating a change over time in the number of requests processed by each of the plurality of processing flows.

8. 8. The method for determining a parameter according to claim 7, comprising: The method for determining parameters, wherein the fourth step includes a step in which the processor determines thresholds for the judgment metrics so as to satisfy an operation plan that defines a service level and an operation policy.

9. 8. The method for determining a parameter according to claim 7, comprising: A method for determining parameters, comprising a step of the processor determining the maximum and minimum numbers of instances by setting the number of instances based on the load pattern and a threshold value of the judgment metric, and executing a simulation process multiple times to simulate the processing of the target application.

10. 8. The method for determining a parameter according to claim 7, comprising: The method of determining a parameter, comprising the step of: generating display information by the processor to display the load pattern, the results of the simulation, and thresholds of the judgment metrics.

11. A computer system comprising: an execution environment system that provides instances; an auto-scaling system that controls scaling of the instances; and an evaluation system that determines a threshold value of a judgment metric for controlling the scaling, In the execution environment system, a plurality of applications that provide the same service are executed using the instances, The application includes a plurality of event-driven event processes; The evaluation system includes: Acquire an execution log of the processing of the target application from the execution environment system; generating a load pattern including one or more pairs of a processing flow of the event processing in the target application and a time transition of the number of requests processed by the processing flow, using the execution log; setting a threshold value for the judgment metrics based on the load pattern, and executing a simulation process for simulating the processing and scaling of the target application a plurality of times; A computer system characterized in that a threshold value for the judgment metrics is determined based on a result of the simulation process, and transmitted to the auto-scaling system.

Citation Information

Patent Citations

  • Autoscaling method, autoscaling program and computer node

    JP2013210683A

  • Universal, proactive, and dynamic scaling of computing resources

    US11226844B1

Cited By

  • Load management device and load management method

    JP7842947B1