IP Library Granted Patent US 10,353,716
Granted Patent B2
US 10,353,716 · App. 15/810,194 · Granted Jul 16, 2019

Automated deployment and performance evaluation of a virtualized-computing environment

Inventor: Tinniam Venkataraman Ganesh (Bangalore, IN)
Assignee: International Business Machines Corporation
G06F9/44505G06F9/45558G06F9/5027G06F9/5061H04L41/5045H04L47/822H04L47/823
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 10,353,716
App. No.
15/810,194
Granted
Jul 16, 2019
Kind
B2
Abstract

A virtual-computing environment definition language automates the deployment of a virtualized computing environment. A set of basic requirements of a planned virtual computing environment is described in the definition language to provide a concise, textual representation of the planned environment's architecture. This representation also predicts the planned environment's performance characteristics as a function of expected workloads, such as expected numbers of concurrent users or expected numbers of concurrent transactions. The definition-language representation is then translated into an orchestration template from which virtual resources are provisioned and the virtual-computing environment deployed.

Claims (64)

1. An automated virtual-resource deployment system comprising a processor, a memory coupled to the processor, and a computer-readable hardware storage device coupled to the processor, the storage device containing program code configured to be run by the processor via the memory to implement a method for automated deployment of a virtualized computing environment, the method comprising:

receiving, by the virtual-resource deployment system, a set of requirements that enumerate virtual components of the virtualized computing environment, specify a topology of the virtualized computing environment, and describe a workload that is expected to be handled in the future by the virtualized computing environment;

retrieving, by the virtual-resource deployment system, empirical data from which it is configured to infer performance characteristics of each of the virtual components;

representing, by the virtual-resource deployment system, the topology as one or more lines of code written in a virtual-computing environment definition language,

where the one or more lines of code written in the virtual-computing environment definition language consist of one or more lines of a cloud-definition language, and

where the one or more lines of the cloud-definition language describe a cloud computing environment by:

sorting the virtual components into a set of groups;

specifying whether each virtual component of a first group of the set of groups should be configured to operate sequentially with, in parallel with, or independently of other virtual components of the first group; and

specifying whether each group of the set of groups should be configured to operate sequentially with, in parallel with, or independently of another group of the set of groups;

estimating, by the virtual-resource deployment system, a response time and a throughput of the virtualized computing environment as functions of the inferred performance characteristics and of the expected workload;

translating, by the virtual-resource deployment system, the one or more lines of code into an orchestration template that comprises configuration details required to deploy the virtualized computing environment; and

automatically deploying, by the virtual-resource deployment system, the virtualized computing environment as a function of the orchestration template.

2. The virtual-resource deployment system of claim 1 ,

where the inferred performance characteristics comprise a record of response times and throughputs of a previously deployed virtual machine.

3. The virtual-resource deployment system of claim 2 ,

where the previously deployed virtual machine is of a same class as one of the enumerated virtual components.

4. The virtual-resource deployment system of claim 2 ,

where the response times and throughputs are each associated with a concurrent load that identifies a number of concurrent users.

5. The virtual-resource deployment system of claim 2 ,

where the response times and throughputs are each associated with a concurrent load that identifies a number of concurrent transactions.

6. The virtual-resource deployment system of claim 1 , further comprising:

monitoring, by the virtual-resource deployment system, performance characteristics of the deployed virtualized computing environment; and

updating, by the virtual-resource deployment system, the empirical data as a function of the monitored performance characteristics.

7. A method for automated deployment of a virtualized computing environment, the method comprising:

receiving, by the virtual-resource deployment system, a set of requirements that enumerate virtual components of the virtualized computing environment, specify a topology of the virtualized computing environment, and describe a workload that is expected to be handled in the future by the virtualized computing environment;

retrieving, by the virtual-resource deployment system, empirical data from which it is configured to infer performance characteristics of each of the virtual components;

representing, by the virtual-resource deployment system, the topology as one or more lines of code written in a virtual-computing environment definition language,

where the one or more lines of code written in the virtual-computing environment definition language consist of one or more lines of a cloud-definition language, and

where the one or more lines of the cloud-definition language describe a cloud computing environment by:

sorting the virtual components into a set of groups;

specifying whether each virtual component of a first group of the set of groups should be configured to operate sequentially with, in parallel with, or independently of other virtual components of the first group; and

specifying whether each group of the set of groups should be configured to operate sequentially with, in parallel with, or independently of another group of the set of groups;

estimating, by the virtual-resource deployment system, a response time and a throughput of the virtualized computing environment as functions of the inferred performance characteristics and of the expected workload;

translating, by the virtual-resource deployment system, the one or more lines of code into an orchestration template that comprises configuration details required to deploy the virtualized computing environment; and

automatically deploying, by the virtual-resource deployment system, the virtualized computing environment as a function of the orchestration template.

8. The method of claim 7 ,

where the inferred performance characteristics comprise a record of response times and throughputs of a previously deployed virtual machine.

9. The method of claim 8 ,

where the previously deployed virtual machine is of a same class as one of the enumerated virtual components.

10. The method of claim 8 ,

where the response times and throughputs are each associated with a concurrent load that identifies a number of concurrent users.

11. The method of claim 8 ,

where the response times and throughputs are each associated with a concurrent load that identities a number of concurrent transactions.

12. The method of claim 7 , further comprising providing at least one support service for at least one of creating, integrating, hosting, maintaining, and deploying computer-readable program code in the computer system, wherein the computer-readable program code in combination with the computer system is configured to implement the receiving, the retrieving, the representing, the estimating, the translating, and the automatically deploying.

13. A computer program product, comprising a computer-readable hardware storage device having a computer-readable program code stored therein, the program code configured to be executed by an automated virtual-resource deployment system comprising a processor, a memory coupled to the processor, and a computer-readable hardware storage device coupled to the processor, the storage device containing program code configured to be run by the processor via the memory to implement a method for automated deployment of a virtualized computing environment, the method comprising:

receiving, by the virtual-resource deployment system, a set of requirements that enumerate virtual components of the virtualized computing environment, specify a topology of the virtualized computing environment, and describe a workload that is expected to be handled in the future by the virtualized computing environment;

retrieving, by the virtual-resource deployment system, empirical data from which it is configured to infer performance characteristics of each of the virtual components;

representing, by the virtual-resource deployment system, the topology as one or more lines of code written in a virtual-computing environment definition language,

where the one or more lines of code written in the virtual-computing environment definition language consist of one or more lines of a cloud-definition language, and

where the one or more lines of the cloud-definition language describe a cloud computing environment by:

sorting the virtual components into a set of groups;

specifying whether each virtual component of a first group of the set of groups should be configured to operate sequentially with, in parallel with, or independently of other virtual components of the first group; and

specifying whether each group of the set of groups should be configured to operate sequentially with, in parallel with, or independently of another group of the set of groups;

estimating, by the virtual-resource deployment system, a response time and a throughput of the virtualized computing environment as functions of the inferred performance characteristics and of the expected workload;

translating, by the virtual-resource deployment system, the one or more lines of code into an orchestration template that comprises configuration details required to deploy the virtualized computing environment; and

automatically deploying, by the virtual-resource deployment system, the virtualized computing environment as a function of the orchestration template.

14. The computer program product of claim 13 ,

where the inferred performance characteristics comprise a record of response times and throughputs of a previously deployed virtual machine.

15. The computer program product of claim 14 ,

where the previously deployed virtual machine is of a same class as one of the enumerated virtual components.

16. The computer program product of claim 14 ,

where the response times and throughputs are each associated with a concurrent load that identifies a number of concurrent users.

17. The computer program product of claim 14 ,

where the response times and throughputs are each associated with a concurrent load that identifies a number of concurrent transactions.

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 Nov 13, 2017
From: GANESH, TINNIAM VENKATARAMAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044100/0893 →
Continuity (1)
Related Publication 20190146810A1 · May 16, 2019
Cited By (1)
US 12,248,772