Adjusting cloud resource allocation

A method, system, and computer program product for adjusting cloud resource allocation using n-tier simulation are provided in the illustrative embodiments. In a multi-tiered simulation configuration, a combination of predictive models is executed such that each tier executes at least one predictive model to produce a corresponding set of predicted events. Each tier simulates a process that is consuming a computing resource. Using a subset of a selected set of predicted events outputted from a corresponding selected tier, a set of features is extracted. each feature in the set of features has an effect on an outcome of the simulated process. The set of features is used in a demand level prediction model to predict a threshold demand. Reaching the threshold demand in an actual utilization of the computing resource is indicative of a likelihood of an unforeseen rise in a demand for the computing resource after a period.

TECHNICAL FIELD

The present invention relates generally to a method, system, and computer program product for allocating resources in a cloud computing environment. More particularly, the present invention relates to a method, system, and computer program product for adjusting cloud resource allocation using n-tier simulation to predictively manage increased demand patterns not previously seen.

BACKGROUND

A predictive model (forecasting model, autoregressive model) is a software-implemented model of a system, process, or phenomenon, usable to forecast a value, output, or outcome expected from the system, process, or phenomenon. The system, process, or phenomenon that is modeled is collectively and interchangeably referred to hereinafter as a “process” unless specifically distinguished where used.

A simulation is a method of computationally looking ahead in the future of the execution of the process to predict one or more events that can be expected to occur in the process at that future time. A predicted event is a value, output, or outcome of the process at the end of a look-ahead period configured in the simulation.

A variable that affects an outcome of a process is called a feature. A predicted event or an outcome of a process is dependent upon, affected by, or otherwise influenced by a set of one or more features. A feature can be independent, to wit, independent of and not affected by other features participating in a given model. A feature can be dependent upon a combination of one or more other independent or dependent features.

A predictive model has to be trained before the model can reliably predict an event in the future of the process with a specified degree of probability or confidence. Usually, but not necessarily, the training data includes past or historical outcomes of the process. The training process adjusts a set of one or more parameters of the model.

Time series forecasting uses one or more forecasting models to regress on independent features to produce a dependent feature. For example, if Tiger Woods has been playing golf very quickly, the speed of play is an example of an independent feature. A forecasting model regresses on historical data to predict the future play rates. The future play rate is a dependent feature.

Cloud computing is one of the emerging technologies that enables flexible and efficient computing. Cloud computing offers an on-demand model for computing that reduces, or in some cases, completely avoids the hardware and software maintenance costs for an end user of the computing services.

One model of cloud computing provides a user with a complete setup on which to execute the user's application or workload. Such a model provides a facility to execute a workload without providing the user with control over the configuration of the data processing environment.

Another model of cloud computing provides the user with a data processing environment per the user's request. Such a model provides to the user “machine time” on a data processing system of the user's desired configuration. Typically, the data processing environment in such a model takes the form of virtual machines (VMs) created according to a user-provided specification and allocated to the user for the duration of the user's workload.

Regardless of how offered, cloud computing service models are expected to remain responsive to changing load conditions. Furthermore, many cloud computing services are contractually required to provide at least threshold levels of performance and reliability.

SUMMARY

The illustrative embodiments provide a method, system, and computer program product for adjusting cloud resource allocation using n-tier simulation. An embodiment includes a method for adjusting resource allocation in a cloud computing environment. The embodiment executes, in a multi-tiered simulation configuration, a combination of predictive models such that each tier in the multi-tiered simulation configuration executes at least one predictive model to produce a corresponding set of predicted events, wherein each tier in the multi-tiered simulation configuration simulates a process that is consuming a computing resource in the cloud. The embodiment extracts, using a subset of a selected set of predicted events outputted from a corresponding selected tier in the multi-tiered simulation configuration, a set of features, each feature in the set of features having an effect on an outcome of the simulated process. The embodiment uses the set of features in a demand level prediction model to predict a threshold demand, wherein reaching the threshold demand in an actual utilization of the computing resource is indicative of a likelihood of an unforeseen rise in a demand for the computing resource after a period.

Another embodiment includes a computer program product for adjusting resource allocation in a cloud computing environment. The embodiment further includes one or more computer-readable tangible storage devices. The embodiment further includes program instructions, stored on at least one of the one or more storage devices, to execute, in a multi-tiered simulation configuration, a combination of predictive models such that each tier in the multi-tiered simulation configuration executes at least one predictive model to produce a corresponding set of predicted events, wherein each tier in the multi-tiered simulation configuration simulates a process that is consuming a computing resource in the cloud. The embodiment further includes program instructions, stored on at least one of the one or more storage devices, to extract, using a subset of a selected set of predicted events outputted from a corresponding selected tier in the multi-tiered simulation configuration, a set of features, each feature in the set of features having an effect on an outcome of the simulated process. The embodiment further includes program instructions, stored on at least one of the one or more storage devices, to use the set of features in a demand level prediction model to predict a threshold demand, wherein reaching the threshold demand in an actual utilization of the computing resource is indicative of a likelihood of an unforeseen rise in a demand for the computing resource after a period.

Another embodiment includes a computer system for adjusting resource allocation in a cloud computing environment. The embodiment further includes one or more processors, one or more computer-readable memories and one or more computer-readable tangible storage devices. The embodiment further includes program instructions, stored on at least one of the one or more storage devices for execution by at least one of the one or more processors via at least one of the one or more memories, to execute, in a multi-tiered simulation configuration, a combination of predictive models such that each tier in the multi-tiered simulation configuration executes at least one predictive model to produce a corresponding set of predicted events, wherein each tier in the multi-tiered simulation configuration simulates a process that is consuming a computing resource in the cloud. The embodiment further includes program instructions, stored on at least one of the one or more storage devices for execution by at least one of the one or more processors via at least one of the one or more memories, to extract, using a subset of a selected set of predicted events outputted from a corresponding selected tier in the multi-tiered simulation configuration, a set of features, each feature in the set of features having an effect on an outcome of the simulated process. The embodiment further includes program instructions, stored on at least one of the one or more storage devices for execution by at least one of the one or more processors via at least one of the one or more memories, to use the set of features in a demand level prediction model to predict a threshold demand, wherein reaching the threshold demand in an actual utilization of the computing resource is indicative of a likelihood of an unforeseen rise in a demand for the computing resource after a period.

DETAILED DESCRIPTION

The flexibility of using selected computing resources when they are needed, as a service, is a desirable feature of cloud computing that endears the cloud model to all types of users, including business enterprises, high power computing groups, and individual users.

The illustrative embodiments recognize that matching a cloud workload to a cloud resource pool is a difficult problem to solve. Existing techniques for cloud resource allocation focus on extrapolating the resource usage statistics of a workload to find resource usage patterns in the workload. These techniques record the resource needed or used in specific patterns and assign similar amounts or types of cloud resources to the workload when a previously seen pattern occurs in the workload.

The illustrative embodiments recognize that this technique of cloud resource allocation is unsuitable and insufficient to address anomalies in cloud resource usage patterns based on the area of application that the cloud is actually servicing. The existing techniques of cloud resource allocation fail to timely match cloud resources to the expected demand for which no usage patterns exist yet.

For example, an application may be related to serving a website and providing news and notifications about sporting events, such as a golf tournament or a tennis tournament. Generally, no two tournaments are alike, and a large number of reasons affect why one tournament will play out differently from another. Depending on who is playing, how they are playing, weather conditions, ground conditions, spectators, location, and many other reasons, the resource demands of an application serving a particular tournament can change in a manner not seen before in a previous tournament.

To address such fluctuations in resource demands, the existing cloud resource allocation methods are inadequate. A method employing advanced predictive analytics on the future events is therefore needed.

The illustrative embodiments used to describe the invention generally address and solve the above-described problems and other problems related to cloud resource allocation in demand fluctuations scenarios that have not previously been seen or are highly variable. The illustrative embodiments provide a method, system, and computer program product for adjusting cloud resource allocation using n-tier simulation.

The illustrative embodiments describe a preventative technology that includes a tiered simulation to produce a likelihood of spikes in resource demand and an expected measurement of the spikes that a given cloud environment will have to support while servicing certain applications.

A cloud according to the illustrative embodiments includes an autonomic component. The autonomic component of the cloud allows the cloud to recognize problem conditions, and autonomously self-heal from the problem, or to proactively address or avoid the problem condition. The autonomic component of the cloud allows the cloud to adjust and to self-correct anomalous behavior. An event prediction method according to an embodiment enables the cloud or a system therein to proactively configure resources in order to avoid problems, such as resource demand spikes, before they develop.

According to an embodiment, a tiered simulation comprises any number of tiers (n-tier). The n-tiered simulation starts from a base simulation, which takes as input the available facts under the present service conditions in servicing a resource consumer, e.g., an application, in the cloud. The base simulation can use any suitable predictive model to produce a set of first level predicted events.

Each subsequent tier in the n-tier simulation allows progressively farther look-ahead in the future of servicing the resource consumer from the first level predicted events. For example, if the resource consumer is the example application that services tennis tournaments as described earlier, a first tier simulation after the base simulation may be configured to produce a set of second level predicted events that are likely to unfold one hour into a tournament based on the set of first level predicted events as input. A second tier simulation after the first tier simulation may be configured to produce a set of third level predicted events that are likely to unfold forty-five minutes after the one hour into the tournament, based on the set of second level predicted events as input.

The base simulation and (n−1) tiers of simulations arranged in this manner comprise the n-tier simulation according to an embodiment. Continuing with the example, the (n−1)th tier simulation after the (n−2)th tier simulation may be configured to produce a set of n-th level predicted events that are likely to unfold much farther into the future of tournament, based on the set of (n−1)th level predicted events as input.

A tier of the n-tier simulation according to an embodiment can utilize a domain-dependent simulation, a domain-independent simulation, or a combination thereof. A domain-dependent simulation uses a predictive model that is trained with and uses process-specific data of the simulated process. A domain-independent simulation uses a predictive model that is trained with data from a variety of subject matter domains, and can use data from a variety of processes to produce predictions.

Consequently, a domain-dependent simulation often needs volumes of state data that is specific to the process being predicted, but also produces predictions that have a higher than a threshold level of confidence, to wit, higher than a threshold probability of occurring in the process. A domain-independent simulation in contrast needs significantly less amount of process-specific state data, but also produces predictions that have a lower than the threshold level of confidence or probability of occurring in the process.

An n-tier simulation according to an embodiment can combine domain-dependent and domain-independent simulations in same or different tiers. The n-tier simulation according to an embodiment increases the search space of the simulation. Thus, for each set of initial points (inputs), another set of points or predicted events (outputs) are created at each tier.

After the n-tier simulation, an embodiment extracts a set of features from the set of n-th level predicted events. An embodiment further summarizes the features, and their component variables.

Feature extraction operation of an embodiment summarizes future predicted states for input into a model. An embodiment increases the search space that will be summarized for a predictive model. The granularity of the simulated space is spliced into n-tiers, limited by the real time requirements of the system. The accuracy of the n-tier simulation is controlled by the degree of data dependency, by suitably mixing domain-independent and domain-dependent simulations in the various tiers.

An embodiment provides the feature summaries to a trained predictive model as input. The trained predictive model is a prediction model for predicting resource demand levels (resource demand amplitude) in the cloud. The trained predictive model produces as output a maximum amplitude of a spike condition, to wit, a spike threshold. The spike threshold is indicative of an impending condition that is likely to give rise to a spike in the resource demand. Further, the trained predictive model produces as another output, a confidence in the spike threshold, to wit, a probability that when the spike threshold is observed in resource demand, a spike or increase in the resource demand that exceeds the spike threshold will in fact occur in the cloud.

When a cloud computing environment is supported by a predictive cloud using an embodiment described herein, resources can be provisioned ahead of the time horizon to support loads that cannot be predicted looking at only the monitored resource statistics. An embodiment enables load predictions in such circumstances based on predicting events in the process that is being serviced by the cloud. In a manner of speaking, one or more embodiments when used in a cloud environment provide the cloud event-based prediction capabilities for reasoning under uncertainty and for provisioning resources in previously unseen demand situations.

The illustrative embodiments are described with respect to certain data, processes, predictions, events, features, variables, summaries, confidence levels, probabilities, thresholds, rates, structures, data processing systems, environments, components, and applications only as examples. Any specific manifestations of such artifacts are not intended to be limiting to the invention. Any suitable manifestation of data processing systems, environments, components, and applications can be selected within the scope of the illustrative embodiments.

FIG. 1depicts a block diagram of a network of data processing systems in which illustrative embodiments may be implemented. Data processing environment100is a network of computers in which the illustrative embodiments may be implemented. Data processing environment100includes network102. Network102is the medium used to provide communications links between various devices and computers connected together within data processing environment100. Network102may include connections, such as wire, wireless communication links, or fiber optic cables. Server104and server106couple to network102along with storage unit108. Software applications may execute on any computer in data processing environment100.

In addition, clients110,112, and114couple to network102. A data processing system, such as server104or106, or client110,112, or114may contain data and may have software applications or software tools executing thereon.

Only as an example, and without implying any limitation to such architecture,FIG. 1depicts certain components that are useable in an embodiment. For example, Application103in server104implements an embodiment described herein. Simulation tool105in server104is any software tool capable of executing a simulation exercise using a predictive model, such as any of models107. For example, an instance of simulation tool105can be configured to execute one predictive model107as the base simulation, another instance of simulation tool105can be configured to execute another predictive model107, e.g., a domain-dependent model, as a tier in the n-tier simulation, and another instance of simulation tool105can be configured to execute another predictive model107, e.g., a domain-independent model, as another tier in the n-tier simulation. Event data109comprises predicted events output from one or more tiers in the n-tier simulation according to an embodiment. Feature summary application111extracts the features from the predicted events and summarizes the extracted features in the manner of an embodiment. Spike prediction model113executes to produce a spike threshold and corresponding confidence as described elsewhere with respect to an embodiment. Application103is usable for configuring the various predictive models107for execution using simulation tool105in an n-tier simulation, invoking feature extraction and summary application111with the appropriate inputs, sending the output spike threshold to spike prediction model113, using the output of spike prediction model113to perform resource allocation adjustments in cloud environment100using provisioning application115according to an embodiment.

With reference toFIG. 2, this figure depicts a block diagram of a data processing system in which illustrative embodiments may be implemented. Data processing system200is an example of a computer, such as server104or client110inFIG. 1, or another type of device in which computer usable program code or instructions implementing the processes may be located for the illustrative embodiments.

Instructions for the operating system, the object-oriented programming system, and applications or programs, such as application103, simulation tool105, predictive models107, feature summary application111, spike prediction model113, and provisioning application115inFIG. 1, are located on storage devices, such as hard disk drive226, and may be loaded into at least one of one or more memories, such as main memory208, for execution by processing unit206. The processes of the illustrative embodiments may be performed by processing unit206using computer implemented instructions, which may be located in a memory, such as, for example, main memory208, read only memory224, or in one or more peripheral devices.

The depicted examples inFIGS. 1 and 2and above-described examples are not meant to imply architectural limitations. For example, data processing system200also may be a tablet computer, laptop computer, or telephone device in addition to taking the form of a PDA.

With reference toFIG. 3, this figure depicts a block diagram of an example n-tier simulation configuration in accordance with an illustrative embodiment. N-tier simulation300is configured in, by, or using application103inFIG. 1.

Known facts or conditions302are present conditions in a resource consumer process. Base simulation304comprises an instance of simulation tool105inFIG. 1executing a suitable prediction model107inFIG. 1. Tier-1 simulation306comprises another instance of simulation tool105inFIG. 1executing another suitable prediction model107inFIG. 1. Tier-2 simulation308comprises another instance of simulation tool105inFIG. 1executing another suitable prediction model107inFIG. 1. Likewise, at the n-th tier of an n-tier simulation according to an embodiment, application103inFIG. 1configures tier (n−1) simulation310, which comprises another instance of simulation tool105inFIG. 1executing another suitable prediction model107inFIG. 1.

Base simulation304accepts known facts302as input and outputs set314of 1-st level predicted events. Some or all of set314forms an input to tier-1 simulation306, which outputs set316of 2-nd level predicted events. The predicted events in set316are predicted to exist in the resource consumer process after look-ahead period 1. Some or all of set316forms an input to tier-2 simulation308, which outputs set318of 3-rd level predicted events. The predicted events in set318are predicted to exist in the resource consumer process after look-ahead periods 1 and 2. The n-tier simulation operation continues in a like manner up to tier (n−1) simulation310, where set320of (n−1)th level of predicted events are predicted to exist in the resource consumer process after a total of look-ahead periods 1-thru-(n−2). Some or all of set320forms an input to tier (n−1) simulation310, which outputs set322of n-th level predicted events. The predicted events in set320are predicted to exist in the resource consumer process after a total of look-ahead periods 1-thru-(n−1).

Note that while only one simulation is depicted at each tier, such depiction is not intended to be limiting on the illustrative embodiments. For example, more than one tier-1 simulations may be configured to execute using different subsets of set314, within the scope of the illustrative embodiments. Other tiers may be similarly configured with multiple instances of simulations executing at those tiers in a similar manner.

Furthermore, different instances of simulations at a particular tier may execute using different predictive models within the scope of the illustrative embodiments. For example, one instance at tier-2 simulation308may execute using a domain-dependent predictive model, another instance at tier-2 simulation308may execute using a domain-independent predictive model, and yet another instance at tier-2 simulation308may execute using a domain-dependent predictive model and a domain-independent predictive model.

An instance of simulation at any particular tier can execute predictive models differentiated not only by their domain-dependence or domain-independence, but also by other differentiators within the scope of the illustrative embodiments. For example, tier-1 simulation306or an instance thereof may be a recall-oriented tier, executing a recall-oriented predictive model, and tier-2 simulation308or an instance thereof may be a precision-oriented tier, executing a precision-oriented predictive model. Predictive models107inFIG. 1also include recall-oriented predictive models and precision-oriented precision models.

Recall is a fraction of relevant instances that are retrieved, and precision is the fraction of retrieved instances that are relevant. Precision can be seen as a measure of exactness or quality, whereas recall is a measure of completeness or quantity. Maximum precision indicates no false positives, and maximum recall indicates no false negatives.

Stated in terms of predicted events, a recall-oriented tier seeks to maximize in an output set of predicted events, predicting as many events that are relevant or related to the process being simulated. Stated in terms of predicted events, a precision-oriented tier seeks to maximize in an output set of predicted events, those predicted events that are relevant or related to the process being simulated.

With reference toFIG. 4, this figure depicts a block diagram of a portion of a process of adjusting cloud resource allocation using n-tier simulation in accordance with an illustrative embodiment. Feature summary application402is an example of feature summary application111inFIG. 1.

Feature summary application402receives as input predicted events404from an n-tier look-ahead simulation. Predicted events404can be all or a portion of set322inFIG. 3. Within the scope of the illustrative embodiments, under certain circumstances, predicted events404can be all or any portion of any of sets314,316,318,320,322, or some combination thereof, as well.

Feature extraction component406identifies one or more features, on which some or all of predicted events404are dependent, by which some or all of predicted events are affected, or are by which some or all of predicted events are otherwise influenced. As a part of feature extraction in component406, application402performs variable identification408. Variable identification408identifies those variables in one or more features that describe certain aspects of the features, including but not limited to an aspect describing a component of a predicted event, an aspect describing a structure of the prediction tree formed by the sequence of predicted events at farther and farther look-ahead times, an aspect describing whether the feature is domain-dependent or domain-independent, and many other aspects. Other feature aspects and corresponding types of variables associated with the extracted features not described here are going to be apparent from this disclosure, and the same are contemplated within the scope of the illustrative embodiments.

Summarization component410prepares one or more feature summaries412. A feature summary412summarizes the variables pertaining to a feature of predicted events404.

With reference toFIG. 5, this figure depicts a block diagram of another portion of a process of adjusting cloud resource allocation using n-tier simulation in accordance with an illustrative embodiment. Trained model for demand amplitude prediction502is an example of spike prediction model113inFIG. 1, and may be executed using an instance of simulation tool105inFIG. 1.

Trained model502receives feature summary504as input. Feature summary504comprises one or more feature summaries from feature summaries412inFIG. 4. In the manner described with respect to an embodiment elsewhere in this disclosure, trained model502produces output506. Output506is a maximum amplitude of a spike condition, in other words, a spike threshold.

In one embodiment, trained model502also produces output508. Output508is a confidence level in the spike threshold as described elsewhere in this disclosure.

With reference toFIG. 6, this figure depicts a block diagram of another portion of a process of adjusting cloud resource allocation using n-tier simulation in accordance with an illustrative embodiment. Cloud resource management application602is an example of provisioning application115inFIG. 1.

Application602continuously, periodically, or on demand, receives resource utilization608of the process for which demand fluctuations have to be proactively managed. Application602analyzes resource utilization608to detect utilization levels comparable to spike threshold604. When resource utilization608reaches spike threshold604, application602determines that a spike or unforeseen increase in resource demand from the process is impending. Accordingly, application602outputs or causes to be produced, adjusted or revised resource allocation610to the process prior to the occurrence of the spike.

Optionally, when confidence606is also available to application602, application602employs additional logic or selectivity. When resource utilization608reaches spike threshold604, application602determines that a spike or unforeseen increase in resource demand from the process is impending. Application602further determines whether confidence606meets or exceeds a predetermined confidence level. If confidence606meets or exceeds the predetermined confidence level, application602outputs or causes to be produced, adjusted or revised resource allocation610to the process prior to the occurrence of the spike. Additional confidence-level based selectivity in revising a resource allocation can be used to tune any resource allocation adjustments that occur too early or too late relative to the actual spike.

With reference toFIG. 7, this figure depicts a flowchart of an example process of adjusting cloud resource allocation using n-tier simulation in accordance with an illustrative embodiment. Process700can be implemented in application103inFIG. 1.

The application executes, or causes to be executed, a base simulation using the known facts of the application or process being serviced by the cloud (block702). The application performs, or causes to be performed, (n−1) additional tiers of progressively decaying look-ahead using a combination of domain-dependent and domain-independent predictive models in the additional tiers (block704).

The farther a tier's look-ahead into the process' future, the more the uncertainty in the start and end times of the predicted events. This increasing uncertainty from one tier to the next is called decay. An event predicted in m-th tier is more decayed compared to a comparable event predicted in (m−1)th tier, which in turn is more decayed compared to a comparable event predicted in (m−2)th tier, and so on. In other words, if a predicted event from a tier is regarded as a waypoint between tiers, the waypoint's value is fuzzy due to the uncertainty in the times associated with the waypoint. The waypoint becomes fuzzier after the next tier in a longer term look-ahead due to the increase in the uncertainty.

In performing, or causing to be performed, the tiers of block704, the application organizes, or causes to be organized, precision-oriented, recall-oriented predictive models, or some combination thereof, in series, parallel, or a combination of series and parallel configuration in the additional tiers (block706).

From a look-ahead tier, the application outputs, or causes to be output, a set of predicted events (block708). The application progressively moves through the look-ahead tiers producing such sets of increasingly decaying predicted events sets.

The application extracts, or causes to be extracted, from a set of predicted events, such as from the set of n-th level predicted events, a set of features (block710). Each feature includes a set of variables.

The application summarizes, or causes to be summarized, all or some of the features in the set of features extracted in block710(block712). Using the one or more summaries created in block712as an input, the application causes a model trained for predicting demand amplitudes to output a spike threshold (block714). The application optionally causes the trained model to also output a confidence level corresponding to the spike threshold in block714.

The application causes the spike threshold to be used as an input in a cloud resource management application to predict a spike condition in the future based on ongoing resource utilization amplitudes (block716). The application causes the cloud resource management application to revise the resource allocation to a resource consumer service or process prior to the predicted spike (block718). The application ends process700thereafter.

Thus, a computer implemented method, system, and computer program product are provided in the illustrative embodiments for adjusting cloud resource allocation using n-tier simulation.