IP Library Granted Patent US 10,713,073
Granted Patent B2
US 10,713,073 · App. 15/367,935 · Granted Jul 14, 2020

Systems and methods for identifying cloud configurations

Inventors: Hongqiang Liu (Woodinville, WA); Jianshu Chen (Woodinville, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F9/45558G06F9/5072H04L41/0806H04L41/145H04L41/147H04L43/16
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,713,073
App. No.
15/367,935
Granted
Jul 14, 2020
Kind
B2
Abstract

Provided are methods and systems for facilitating selection of a cloud configuration for deploying an application program with high accuracy, low overhead, and automatic adaptivity to a broad spectrum of applications and cloud configurations. The methods and systems are designed for building a performance model of cloud configurations, where the performance model is capable of distinguishing an optimal cloud configuration or a near-optimal cloud configuration from other possible configurations, but without requiring the model to be accurate for every cloud configuration. By tolerating the inaccuracy of the model for some configurations (but keeping the accuracy of the final result) it is possible to achieve both low overhead and automatic adaptivity: only a small number of samples may be needed and there is no need to embed application-specific insights into the modeling.

Claims (48)

1. A computer-implemented method for facilitating selection of a cloud configuration for deploying an application program, the method comprising:

receiving, at a processor, input for the application program;

generating, by the processor, candidate cloud configurations for the application program based on the received input;

determining, by the processor, performance data for a first candidate cloud configuration of the candidate cloud configurations, the performance data based on running the first candidate cloud configuration in at least one cloud platform;

updating, by the processor, a performance model for the application program based on the performance data for the first candidate cloud configuration;

determining, by the processor, whether a confidence measure for the updated performance model satisfies a threshold, wherein the confidence measure indicates a range of an objective function defined for the application program,

responsive to determining that the confidence measure for the updated performance model satisfies the threshold, selecting, by the processor, the first candidate cloud configuration as the cloud configuration for deploying the application program; and

responsive to determining that the confidence measure for the updated performance model does not satisfy the threshold selecting, by the processor, a second candidate cloud configuration of the candidate cloud configurations based on the updated performance model for the application program.

2. The method of claim 1 , wherein updating the performance model for the application program includes updating the confidence measure using Bayesian optimization.

3. The method of claim 1 , wherein the received input includes at least a representative workload for the application program, further comprising:

installing the representative workload to the at least one cloud platform.

4. The method of claim 3 , wherein installing the representative workload to the at least one cloud platform includes:

creating a virtual machine in the at least one cloud platform; and

installing the representative workload in the virtual machine.

5. The method of claim 4 , further comprising: capturing a virtual machine image containing the installed workload.

6. The method of claim 1 , wherein the received input includes at least one of: a representative workload for the application program, an objective, and a constraint.

7. The method of claim 1 , wherein the received input includes a representative workload for the application program, an objective, and a constraint.

8. A system for facilitating selection of a cloud configuration for deploying an application program, the system comprising:

one or more processors; and

a non-transitory computer-readable medium coupled to said one or more processors having instructions stored thereon that, when executed by said one or more processors, cause said one or more processors to perform operations comprising:

receiving input for an application program,

generating candidate cloud configurations for the application program based on the received input,

determining performance data for a first candidate cloud configuration of the candidate cloud configurations, the performance data based on running the first candidate cloud configuration in at least one cloud platform,

updating a performance model for the application program based on the performance data for the first candidate cloud configuration,

determining whether a confidence measure for the updated performance model satisfies a threshold, wherein the confidence measure indicates a range of an objective function defined for the application program,

responsive to determining that the confidence measure for the undated performance model satisfies the threshold, selecting the first candidate cloud configuration as the cloud configuration for deploying the application program, and

responsive to determining that the confidence measure for the updated performance model does not satisfy the threshold, selecting a second candidate cloud configuration of the candidate cloud configurations based on the updated performance model for the application program.

9. The system of claim 8 , wherein updating the performance model for the application program includes updating the confidence measure using Bayesian optimization.

10. The system of claim 8 , wherein the received input includes at least a representative workload for the application program, the one or more processors are caused to perform further operations comprising:

installing the representative workload to the at least one cloud platform.

11. The system of claim 10 , wherein the one or more processors are caused to perform further operations comprising:

creating a virtual machine in the at least one cloud platform; and

installing the representative workload in the virtual machine.

12. The system of claim 11 , wherein the one or more processors are caused to perform further operations comprising:

capturing a virtual machine image containing the installed workload.

13. The system of claim 8 , wherein the received input includes at least one of: a representative workload for the application program, an objective, and a constraint.

14. The system of claim 8 , wherein the received input includes a representative workload for the application program, an objective, and a constraint.

15. A tangible, non-transitory computer readable medium, or media, storing machine readable instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

receiving input for an application program,

generating candidate cloud configurations for the application program based on the received input,

determining performance data for a first candidate cloud configuration of the candidate cloud configurations, the performance data based on running the first candidate cloud configuration in at least one cloud platform,

updating a performance model for the application program based on the performance data for the first candidate cloud configuration,

determining whether a confidence measure for the updated performance model satisfies a threshold, wherein the confidence measure indicates a range of an objective function defined for the application program,

responsive to determining that the confidence measure for the updated performance model satisfies the threshold selecting the first candidate cloud configuration as the cloud configuration for deploying the application program, and

responsive to determining that the confidence measure for the updated performance model does not satisfy the threshold, selecting a second candidate cloud configuration of the candidate cloud configurations based on the updated performance model for the application program.

16. The non-transitory computer-readable medium or media of claim 15 , wherein updating the performance model for the application program includes updating the confidence measure using Bayesian optimization.

17. The non-transitory computer-readable medium or media of claim 15 , wherein the received input includes at least a representative workload for the application program, the machine readable instructions, when executed by the one or more processors, cause the one or more processors to perform further operations comprising:

installing the representative workload to the at least one cloud platform.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2016
From: LIU, HONGQIANG; CHEN, JIANSHU
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 040722/0138 →
Continuity (1)
Related Publication 20180159727A1 · Jun 7, 2018
Cited By (1)
US 12,701,745