IP Library Granted Patent US 9,317,337
Granted Patent B2
US 9,317,337 · App. 13/446,058 · Granted Apr 19, 2016

Utilizing software component metadata to provision virtual machines in a networked computing environment

Inventors: Jason L. Anderson (San Jose, CA); Gregory J. Boss (Saginaw, MI); Jeffrey L. Coveyduc (San Jose, CA); Christopher W. Roach (San Jose, CA)
Assignee: International Business Machines Corporation
G06F9/5072
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,317,337
App. No.
13/446,058
Granted
Apr 19, 2016
Kind
B2
Abstract

Embodiments of the present invention provide a set of algorithmic methods that can be used to generate a pre-provisioned pool of virtual machines (VMs) in a networked computing environment. Specifically, an install time for possible combinations of software components of a VM in a plurality of software component combinations is calculated. Each respective install time is weighted by a value associated with a provisioning history of software components. At least part of the software component combinations is allocated to the pre-provisioned pool of virtual machines (VMs).

Claims (40)

1. A computer-implemented method to generate a pre-provisioned pool of virtual machines (VMs) in a networked computing environment, comprising:

calculating an install time for each software component combination in a plurality of software component combinations, the install time including an amount of time necessary to uninstall the software components from a partially provisioned VM of which the software components form a subset of VM software components and to transition the software components to a VM having the software component combination having a first plurality of software components from the partially provisioned VM having a different software component combination having a second plurality of software components that is different from the first plurality of software components;

weighting each respective install time by a numerical value that indicates a probability, with respect to other software component combinations, that the software component combination will be requested based on a provisioning history;

allocating, prior to a request for software components, at least part of the first plurality of software components in the software component combinations to the pre-provisioned pool of virtual machines (VMs) based on the install time and the weighting; and

maintaining diversity in the pre-provisioned pool of VMs by removing, in response to the allocating of the at least part of the first plurality of software components to the pre-provisioned pool of VMs, a VM instance having a different combination of software components from the allocated at least part of the first plurality of software components that has the first plurality of software components forming a subset of the different combination of software components from the pre-provisioned pool of VMs.

2. The computer-implemented method of claim 1 , the value associated with the provisioning history comprising a percentage of prior provisioning requests for the respective software component combination out of all prior provisioning requests.

3. The computer-implemented method of claim 1 , the plurality of software component combinations comprising all possible software component combinations.

4. The computer-implemented method of claim 1 , the plurality of software component combinations comprising a subset of all possible software component combinations, wherein the subset is randomly selected.

5. The computer-implemented method of claim 4 , further comprising performing a genetic algorithm on the subset of software component combinations that starts with a population of attempted solutions to a problem, evaluates the attempted solutions, and uses better solutions as the basis of a next generation of attempted solutions.

6. The computer-implemented method of claim 1 , the networked computing environment comprising a cloud computing environment.

7. A system for generating a pre-provisioned pool of virtual machines (VMs) in a networked computing environment, comprising:

a memory medium comprising instructions;

a bus coupled to the memory medium; and

a processor coupled to the bus that when executing the instructions causes the system to:

calculate an install time for each software component combination in a plurality of software component combinations, the install time including an amount of time necessary to uninstall the software components from a partially provisioned VM of which the software components form a subset of VM software components and to transition the software components to a VM having the software component combination having a first plurality of software components from the partially provisioned VM having a different software component combination having a second plurality of software components that is different from the first plurality of software components;

weight each respective install time by a numerical value that indicates a probability, with respect to other software component combinations, that the software component combination will be requested based on a provisioning history;

allocate, prior to a request for software components, at least part of the first plurality of software components in the software component combinations to the pre-provisioned pool of virtual machines (VMs) based on the install time and the weight; and

maintain diversity in the pre-provisioned pool of VMs by removing, in response to the allocating of the at least part of the first plurality of software components to the pre-provisioned pool of VMs, a VM instance having a different combination of software components from the allocated at least part of the first plurality of software components that has the first plurality of software components forming a subset of the different combination of software components from the pre-provisioned pool of VMs.

8. The system of claim 7 , the value associated with the provisioning history comprising a percentage of prior provisioning requests for the respective software component combination out of all prior provisioning requests.

9. The system of claim 7 , the plurality of software component combinations comprising all possible software component combinations.

10. The system of claim 7 , the plurality of software component combinations comprising a subset of all possible software component combinations, wherein the subset is randomly selected.

11. The system of claim 10 , the memory medium further comprising instructions for causing the system to perform a genetic algorithm on the subset of software component combinations that starts with a population of attempted solutions to a problem, evaluates the attempted solutions, and uses better solutions as the basis of a next generation of attempted solutions.

12. The system of claim 7 , the networked computing environment comprising a cloud computing environment.

13. A computer program product for generating a pre-provisioned pool of virtual machines (VMs) in a networked computing environment, the computer program product comprising a computer readable storage device that is not a signal, and program instructions stored on the computer readable storage device, to:

calculate an install time for each software component combination in a plurality of software component combinations, the install time including an amount of time necessary to uninstall the software components from a partially provisioned VM of which the software components form a subset of VM software components and to transition the software components to a VM having the software component combination having a first plurality of software components from the partially provisioned VM having a different software component combination having a second plurality of software components that is different from the first plurality of software components;

weight each respective install time by a numerical value that indicates a probability, with respect to other software component combinations, that the software component combination will be requested based on a provisioning history;

allocate, prior to a request for software components, at least part of the first plurality of software components in the software component combinations to the pre-provisioned pool of virtual machines (VMs) based on the install time and the weigh; and

maintain diversity in the pre-provisioned pool of VMs by removing, in response to the allocating of the at least part of the first plurality of software components to the pre-provisioned pool of VMs, a VM instance having a different combination of software components from the allocated at least part of the first plurality of software components that has the first plurality of software components forming a subset of the different combination of software components from the pre-provisioned pool of VMs.

14. The computer program product of claim 13 , the value associated with the provisioning history comprising a percentage of prior provisioning requests for the respective software component combination out of all prior provisioning requests.

15. The computer program product of claim 13 , the plurality of software component combinations comprising all possible software component combinations.

16. The computer program product of claim 13 , the plurality of software component combinations comprising a subset of all possible software component combinations, wherein the subset is randomly selected.

17. The computer program product of claim 16 , the computer readable storage device further comprising instructions to perform a genetic algorithm on the subset of software component combinations that starts with a population of attempted solutions to a problem, evaluates the attempted solutions, and uses better solutions as the basis of a next generation of attempted solutions.

18. The computer program product of claim 13 , the networked computing environment comprising a cloud computing environment.

19. A method for deploying a system for generating a pre-provisioned pool of virtual machines (VMs) in a networked computing environment, comprising:

deploying a computer infrastructure that executes computer instructions, the computer infrastructure performing a method of:

calculating an install time for each software component combination in a plurality of software component combinations, the install time including an amount of time necessary to uninstall the software components from a partially provisioned VM of which the software components form a subset of VM software components and to transition the software components to a VM having the software component combination having a first plurality of software components from the partially provisioned VM having a different software component combination having a second plurality of software components that is different from the first plurality of software components;

weighting each respective install time by a numerical value that indicates a probability, with respect to other software component combinations, that the software component combination will be requested based on a provisioning history associated with a provisioning history; and

allocating, prior to a request for software components, at least part of the first plurality of software components in the software component combinations to the pre-provisioned pool of virtual machines (VMs) based on the install time and the weight; and

maintaining diversity in the pre-provisioned pool of VMs by removing, in response to the allocating of the at least part of the first plurality of software components to the pre-provisioned pool of VMs, a VM instance having a different combination of software components from the allocated at least part of the first plurality of software components that has the first plurality of software components forming a subset of the different combination of software components from the pre-provisioned pool of VMs.

20. The method of claim 19 , the networked computing environment comprising a cloud computing environment.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KYNDRYL, INC.
Reel/Frame 057885/0644 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2012
From: ANDERSON, JASON L.; BOSS, GREGORY J.; COVEYDUC, JEFFREY L.; ROACH, CHRISTOPHER W.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 028058/0093 →
Continuity (1)
Related Publication 20130275961A1 · Oct 17, 2013