# US 2019/0317797 A1 · Predictively provisioning cloud computing resources for virtual machines

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0317797 A1
- Document ID: US20190317797A1
- Status: Published application
- Kind: A1
- Application number: 16/456,063
- Filed: 2019-06-28
- Published: 2019-10-17
- Earliest claimed: 2015-09-11
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Zhong Qi FENG; Jiang Tao LI; Yi Bin WANG; Chao YU; Qing Feng ZHANG
- Web page: https://patentgrep.com/patent/US20190317797A1

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/455: Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 9/48: Program initiating; Program switching, e.g. by interrupt
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/4887: {involving deadlines, e.g. rate based, periodic}
- G06F 9/50: Allocation of resources, e.g. of the central processing unit [CPU]
- G06F 9/5005: {to service a request}
- G06F 9/5011: {the resources being hardware resources other than CPUs, Servers and Terminals}
- G06F 9/5016: {the resource being the memory}
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 9/5038: {considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups)}
- G06F 9/5044: {considering hardware capabilities}
- G06F 9/505: {considering the load}
- G06F 9/5055: {considering software capabilities, i.e. software resources associated or available to the machine}
- G06F 9/5061: {Partitioning or combining of resources}
- G06F 9/5072: {Grid computing}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 9/5083: {Techniques for rebalancing the load in a distributed system}
- G06F 9/5088: {involving task migration}
- G06F 11/008: {Reliability or availability analysis}
- G06F 11/30: Monitoring
- G06F 11/3006: {where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50)}
- G06F 11/3433: {for load management (allocation of a server based on load conditions G06F9/505; load rebalancing G06F9/5083; redistributing the load in a network by a load balancer H04L67/1029)}
- G06F 11/3452: {Performance evaluation by statistical analysis}
- G06N 5/00: Computing arrangements using knowledge-based models
- G06N 20/00: Machine learning
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 67/131: Protocols for games, networked simulations or virtual reality
- H04L 67/535: {Tracking the activity of the user (network monitoring arrangements H04L43/00; recording of computer activity G06F11/34)}
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2009/45575: {Starting, stopping, suspending or resuming virtual machine instances}
- G06F 2009/45591: {Monitoring or debugging support}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- G06F 2201/815: Virtual
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Methods, computer program products, and systems are presented. The methods include, for instance: predictively provisioning, by one or more processor, cloud computing resources of a cloud computing environment for at least one virtual machine; and initializing, by the one or more processor, the at least one virtual machine with the provisioned cloud computing resources of the cloud computing environment. In one embodiment, the predictively provisioning may include: receiving historical utilization information of multiple virtual machines of the cloud computing environment, the multiple virtual machines having similar characteristics to the at least one virtual machine; and determining the cloud computing resources for the at least one virtual machine using the historical utilization information of the multiple virtual machines. In another embodiment, the predictively may include updating a provisioning database with the historical utilization information of the multiple virtual machines of the cloud computing environment.

## Claims

### Claim 1

A computer implemented method comprising:
predictively provisioning cloud computing resources of a cloud computing environment for at least one virtual machine; and
triggering initializing the at least one virtual machine with the provisioned cloud computing resources of the cloud computing environment.

### Claim 2 (depends on 1)

The computer implemented method of claim 1, wherein the predictively provisioning includes receiving historical utilization information of multiple virtual machines of the cloud computing environment, and determining the cloud computing resources for the at least one virtual machine using the historical utilization information of the multiple virtual machines, wherein the predictively provisioning cloud computing resources of a cloud computing environment for at least one virtual machine includes predictively provisioning a certain virtual machine running a certain program, wherein the determining provisioning resources for the certain virtual machine includes, prior to receiving a provisioning request to provision the certain virtual machine, determining and storing trend information based on first information for use in provisioning the certain virtual machine.

### Claim 3 (depends on 1)

The computer implemented method of claim 1, wherein the predictively provisioning includes receiving historical utilization information of multiple virtual machines of the cloud computing environment, and determining the cloud computing resources for the at least one virtual machine using the historical utilization information of the multiple virtual machines, wherein the determining the cloud computing resources for the at least one virtual machine includes determining provisioning resources for a certain virtual machine, wherein the determining provisioning resources for the certain virtual machine includes, prior to receiving a provisioning request to provision the certain virtual machine, determining and storing trend information based on first information for use in provisioning the certain virtual machine, wherein determining the trend information based on the first information includes using the historical utilization information of an historical virtual machine of a type running a certain program, wherein the historical virtual machine is no longer operating in the environment,

### Claim 4 (depends on 1)

The computer implemented method of claim 1, wherein the predictively provisioning comprises calculating available cloud computing resources of the cloud computing environment, filtering the available cloud computing resources to determine the cloud computing resources for the at least one virtual machine, the filtering comprising using at least one of real-time data, empirical data, or prediction data of the cloud computing environment, and wherein the triggering initializing comprises hosting the at least one virtual machine using the provisioned cloud computing resources of the cloud computing environment.

### Claim 5 (depends on 1)

The computer implemented method of claim 1, wherein the predictively provisioning includes receiving historical utilization information of multiple virtual machines of the cloud computing environment, and determining the cloud computing resources for the at least one virtual machine using the historical utilization information of the multiple virtual machines, wherein the determining the cloud computing resources for the at least one virtual machine includes determining provisioning resources for a certain virtual machine, wherein the determining provisioning resources for the certain virtual machine includes, prior to receiving a provisioning request to provision the certain virtual machine, determining and storing trend information based on first information for use in provisioning the certain virtual machine, wherein determining the trend information based on the first information includes using the historical utilization information of an historical virtual machine of a type running a certain program.

### Claim 6 (depends on 1)

The computer implemented method of claim 1, wherein the predictively provisioning includes receiving historical utilization information of multiple virtual machines of the cloud computing environment, and determining the cloud computing resources for the at least one virtual machine using the historical utilization information of the multiple virtual machines, wherein the determining the cloud computing resources for the at least one virtual machine includes determining provisioning resources for a certain virtual machine, wherein the determining provisioning resources for the certain virtual machine includes determining and storing trend information based on first information for use in provisioning the certain virtual machine, wherein determining the trend information based on the first information includes using the historical utilization information of an historical virtual machine, wherein the historical virtual machine is no longer operating in the environment, wherein the method includes receiving the provisioning request to provision the certain virtual machine, and wherein the method includes responding to the provisioning request to provision the certain virtual machine using the trend information.

### Claim 7 (depends on 1)

The computer implemented method of claim 1, wherein the method includes, prior to receiving a provisioning request to provision a certain virtual machine of the at least one virtual machine, determining and storing trend information based on first information for use in provisioning the certain virtual machine, wherein determining the trend information based on the first information includes using historical utilization information of an historical virtual machine, wherein the historical virtual machine is no longer operating in the environment, wherein the method includes receiving the provisioning request to provision the certain virtual machine, and wherein the method includes responding to the provisioning request to provision the certain virtual machine using the trend information.

### Claim 8 (depends on 1)

The computer implemented method of claim 1, wherein the predictively provisioning includes receiving historical utilization information of multiple virtual machines of the cloud computing environment, and determining the cloud computing resources for the at least one virtual machine using the historical utilization information of the multiple virtual machines, wherein the predictively provisioning cloud computing resources of a cloud computing environment for at least one virtual machine includes predictively provisioning a certain virtual machine running a certain program, wherein the determining provisioning resources for the certain virtual machine includes determining predicted resource needs of the certain virtual machine based on a growth rate of the certain virtual machine determined using a historical growth rate of machines of the multiple virtual machines running the certain program.

### Claim 9 (depends on 1)

The computer implemented method of claim 1, wherein the predictively provisioning includes receiving historical utilization information of multiple virtual machines of the cloud computing environment, and determining the cloud computing resources for the at least one virtual machine using the historical utilization information of the multiple virtual machines, wherein the predictively provisioning cloud computing resources of a cloud computing environment for at least one virtual machine includes predictively provisioning a certain virtual machine for running a certain program, wherein the determining the cloud computing resources for the at least one virtual machine includes determining provisioning resources for the certain virtual machine, wherein the triggering initializing the at least one virtual machine includes triggering initializing the certain virtual machine with the provisioning resources for the certain virtual machine, wherein the determining provisioning resources for the certain virtual machine includes determining predicted disk utilization resource needs of the certain virtual machine.

### Claim 10 (depends on 1)

The computer implemented method of claim 1, wherein the predictively provisioning comprises calculating available cloud computing resources of the cloud computing environment, filtering the available cloud computing resources to determine the cloud computing resources for the at least one virtual machine, the filtering comprising using at least one of real-time data, empirical data, or prediction data of the cloud computing environment, and wherein the triggering initializing comprises hosting the at least one virtual machine using the provisioned cloud computing resources of the cloud computing environment.

### Claim 11 (depends on 1)

The computer implemented method of claim 1, wherein the predictively provisioning cloud computing resources of a cloud computing environment for at least one virtual machine includes predictively provisioning a certain virtual machine for running a certain program, wherein the triggering initializing the at least one virtual machine includes triggering initializing the certain virtual machine with provisioning resources for the certain virtual machine, the provisioning resources for the certain virtual machine based on a growth rate of the certain virtual machine, wherein the growth rate of the certain virtual machine is determined using a historical growth rate of multiple virtual machines running the certain program.

### Claim 12 (depends on 1)

The computer implemented method of claim 1, wherein the method includes storing into a provisioning database historical utilization information of multiple virtual machines of a certain type for running a certain program, wherein the provisioning database includes historical utilization information of a prior virtual machine of the certain type for running the certain program, the prior virtual machine no longer operating in the environment, wherein the method includes determining provisioning resources for a certain virtual machine, wherein the determining provisioning resources for the certain virtual machine includes, prior to receiving a provisioning request to provision the certain virtual machine, determining and storing trend information, wherein determining the trend information includes using the historical utilization information of the prior virtual machine of the certain type for running the certain program, the prior virtual machine no longer operating in the environment, wherein the method includes receiving the provisioning request to provision the certain virtual machine, and wherein the method includes responding to the provisioning request to provision the certain virtual machine using the trend information.

### Claim 13 (depends on 1)

The computer implemented method of claim 1, wherein the cloud computing environment comprises multiple hypervisors, the predictively provisioning comprises selecting the cloud computing resources associated with a hypervisor of the multiple hypervisors, and the triggering initializing comprises sending an initialization request to the hypervisor associated to the selected cloud computing resources.

### Claim 14 (depends on 1)

The computer implemented method of claim 1, wherein the predictively provisioning includes receiving historical utilization information of multiple virtual machines running a certain program, and determining the cloud computing resources for the at least one virtual machine using the historical utilization information of the multiple virtual machines, wherein the determining the cloud computing resources for the at least one virtual machine includes determining provisioning resources for a certain virtual machine, wherein the triggering initializing the at least one virtual machine includes triggering initializing the certain virtual machine with the provisioning resources for the certain virtual machine, wherein the determining provisioning resources for the certain virtual machine includes determining predicted resource needs of the certain virtual machine based on a growth rate of the certain virtual machine determined using a historical growth rate of the multiple virtual machines running the certain program.

### Claim 15 (depends on 1)

The computer implemented method of claim 1, wherein the predictively provisioning includes receiving historical utilization information of multiple virtual machines of the cloud computing environment, and determining the cloud computing resources for the at least one virtual machine using the historical utilization information of the multiple virtual machines, wherein the predictively provisioning cloud computing resources of a cloud computing environment for at least one virtual machine includes predictively provisioning a certain virtual machine for running a certain program, wherein the receiving historical utilization information of multiple virtual machines of the cloud computing environment includes receiving historical utilization information of multiple virtual machines running the certain program, wherein the determining the cloud computing resources for the at least one virtual machine includes determining provisioning resources for the certain virtual machine, wherein the triggering initializing the at least one virtual machine includes triggering initializing the certain virtual machine with the provisioning resources for the certain virtual machine, wherein the determining provisioning resources for the certain virtual machine includes determining predicted disk utilization resource needs of the certain virtual machine based on a growth rate of the certain virtual machine determined using a historical disk utilization growth rate of the multiple virtual machines running the certain program.

### Claim 16 (depends on 1)

The computer implemented method of claim 1, wherein the predictively provisioning comprises receiving historical utilization information of multiple virtual machines of the cloud computing environment, the multiple virtual machines having similar characteristics to the at least one virtual machine; and determining the cloud computing resources for the at least one virtual machine using the historical utilization information of the multiple virtual machines, wherein the predictively provisioning further comprises updating a provisioning database with the historical utilization information of the multiple virtual machines of the cloud computing environment, wherein the determining further comprises data mining the provisioning database to determine the cloud computing resources, the data mining comprising using at least one of regression or constraint analysis of the provisioning database.

### Claim 17 (depends on 1)

The computer implemented method of claim 1, wherein the predictively provisioning includes receiving historical utilization information of multiple virtual machines of the cloud computing environment, and determining the cloud computing resources for the at least one virtual machine using the historical utilization information of the multiple virtual machines, wherein the predictively provisioning cloud computing resources of a cloud computing environment for at least one virtual machine includes predictively provisioning a certain virtual machine for running a certain program, wherein the receiving historical utilization information of multiple virtual machines of the cloud computing environment includes receiving historical utilization information of multiple virtual machines running the certain program, wherein the determining the cloud computing resources for the at least one virtual machine includes determining provisioning resources for the certain virtual machine, wherein the triggering initializing the at least one virtual machine includes triggering initializing the certain virtual machine with the provisioning resources for the certain virtual machine, wherein the determining provisioning resources for the certain virtual machine includes determining predicted disk utilization resource needs of the certain virtual machine based on a growth rate of the certain virtual machine determined using a historical disk utilization growth rate of the multiple virtual machines running the certain program.

### Claim 18 (depends on 1)

The computer implemented method of claim 1, wherein the method includes storing into a provisioning database first information including historical utilization information of multiple virtual machines of a type of a certain virtual machine running a certain program and storing into a provisioning database second information including historical utilization information of multiple virtual machines that are of types other than a type of the certain virtual machine, wherein the provisioning database includes historical utilization information of a virtual machine of the certain type and running the certain program that is no longer operating in the environment, wherein the method includes determining provisioning resources for the certain virtual machine, wherein the determining provisioning resources for the certain virtual machine includes determining and storing trend information based on the first information for use in provisioning the certain virtual machine, wherein determining the trend information based on the first information includes using the historical utilization information of the virtual machine of the certain type running the certain program that is no longer operating in the environment, wherein the method includes receiving the provisioning request to provision the certain virtual machine, and wherein the method includes responding to the provisioning request to provision the certain virtual machine using the trend information.

### Claim 19

A computer program product comprising:
a computer readable storage medium readable by one or more processor and storing instructions for execution by the one or more processor for performing a method comprising:
predictively provisioning cloud computing resources of a cloud computing environment for at least one virtual machine; and
triggering initializing the at least one virtual machine with the provisioned cloud computing resources of the cloud computing environment.

### Claim 20

A system comprising:
a memory;
one or more processor in communication with the memory; and
program instructions executable by the one or more processor via the memory to perform a method, the method comprising:
predictively provisioning cloud computing resources of a cloud computing environment for at least one virtual machine; and
triggering initializing the at least one virtual machine with the provisioned cloud computing resources of the cloud computing environment.
