IP Library Granted Patent US 11,386,371
Granted Patent B2
US 11,386,371 · App. 17/118,072 · Granted Jul 12, 2022

Systems, apparatus and methods for cost and performance-based movement of applications and workloads in a multiple-provider system

Inventors: Enlin Xu (New York, NY); Endre Sara (Briarcliff Manor, NY); David Olshefski (New York, NY); Ariel Tal (New York, NY); Mor Cohen (New York, NY)
Assignee: TURBONOMIC, INC.
G06Q10/06315G06F9/45558G06Q20/065G06Q20/145H04L41/00H04L67/10G06F2009/45591
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 11,386,371
App. No.
17/118,072
Granted
Jul 12, 2022
Kind
B2
Abstract

Systems, methods and apparatus, including computer program products, are disclosed for regulating access of consumers (e.g., applications, containers, or VMs) to resources and services (e.g., storage). In one embodiment, this regulation occurs through the movement of consumers between different providers of a resource or service, such as a cloud service provider. Moving consumers includes, for example, determining the cost of moving the consumer from a first provider to a second provider. According to various embodiments, the cost of moving the consumer is compared to performance criteria associated with moving the consumer from the first provider to the second provider.

Claims (93)

1. A computer-implemented method, comprising:

determining, by a consumer manager running on a data processor in a computer system, a cost of running a workload on a first provider in the computer system, wherein the first provider is a private datacenter service provider;

causing the workload to be run on the first provider based at least in part on a comparison of the determined cost of running the workload on the first provider with a value of the workload to a requesting computational entity;

determining, after a predetermined period of time has passed since the workload has been run on the first provider or after the determined cost of running the workload has increased by at least a predetermined amount, a cost of running the workload on a second provider in the computer system, wherein the second provider is a cloud-based service provider;

determining a cost of moving the workload to the second provider in the computer system;

determining a cumulative cost actually expended in running the workload on the first provider;

computing a utilization value for running the workload on the second provider based at least in part on the determined cost of running the workload on the second provider, the determined cost of moving the workload to the second provider, the value of the workload to the requesting computational entity, and the determined cumulative cost actually expended in running the workload on the first provider;

causing the workload to be moved to the second provider based at least in part on the utilization value after the utilization value has surpassed a predetermined value; and

establishing terms of continued running of the workload on the second provider for a predetermined length of time after the workload has moved to the second provider.

2. The computer-implemented method of claim 1 , wherein the determined cost is expressed in virtual currency units.

3. The computer-implemented method of claim 1 , wherein the determined cost is expressed in real currency units.

4. The computer-implemented method of claim 1 , wherein the cost of running the workload on the second provider is a dynamic, on-demand price based on one or more characteristics of the computer system.

5. The computer-implemented method of claim 1 , wherein the determined cost of running the workload on the second provider is based on one or more of an actual or anticipated environmental impact, a contractual clause, a quality of service (QoS) requirement, or a compliance or regulatory requirement.

6. The computer-implemented method of claim 1 , wherein the determined cost of running the workload on the second provider is based on one or more of a cost of facilities, a capital amortization, or an operations cost.

7. The computer-implemented method of claim 1 , further comprising:

determining at least one of a resource usage or a performance metric of the workload running on the first provider; and

causing the workload to be moved to the second provider based at least in part on the determined resource usage and/or performance metric.

8. The computer-implemented method of claim 1 , further comprising:

anticipating a performance metric of the workload running on at least one of the first provider or the second provider; and

causing the workload to be moved to the second provider based at least in part on the anticipated performance metric.

9. The computer-implemented method of claim 1 , further comprising determining an effective cost associated with the second provider based at least in part on reliability thereof, wherein the utilization value is further computed based at least in part on the effective cost.

10. A computer-implemented method, comprising:

determining, by a consumer manager running on a data processor in a computer system, a cost of running a workload on a first provider in the computer system, wherein the first provider is a private datacenter service provider, the workload having an associated budget capacity;

causing the workload to be run on the first provider based at least in part on a comparison of the determined cost of running the workload on the first provider with a value of the workload to a requesting computational entity;

determining, after a predetermined period of time has passed since the workload has been run on the first provider or after the determined cost of running the workload has increased by at least a predetermined amount, a cost of running the workload on a second provider in the computer system, wherein the second provider is a cloud-based service provider;

determining a cost of moving the workload to the second provider in the computer system;

determining a cumulative cost actually expended in running the workload on the first provider;

computing a utilization value for running the workload on the second provider based at least in part on the determined cost of running the workload on the second provider, the determined cost of moving the workload to the second provider, the value of the workload to the requesting computational entity, and the determined cumulative cost actually expended in running the workload on the first provider;

causing the workload to be moved to the second provider based at least in part on the utilization value after the utilization value has surpassed a predetermined value; and

determining a remaining budget capacity of the workload for running on the second provider, the remaining budget capacity corresponding to a difference between the value of the workload to the requesting computational entity and the cumulative cost actually expended in running the workload on the first provider, wherein the utilization value is also based on the determined remaining budget capacity, and wherein the comparison of the determined cost of running the workload on the first provider with the value of the workload to the requesting computational entity depends at least in part on a value in virtual currency units ascribed to the workload by the requesting computational entity.

11. The computer-implemented method of claim 10 , wherein the computing step includes determining a ratio of the sum of (i) the determined cost of running the workload on the second provider and (ii) the determined cost of moving the workload to the second provider, to the determined remaining budget capacity.

12. The computer-implemented method of claim 10 , wherein the cost of running the workload on the second provider increases as the remaining budget for the workload decreases.

13. The computer-implemented method of claim 10 , wherein the remaining budget for the workload is adjusted based at least in part on a determined service level agreement (SLA) performance metric.

14. A computer-implemented method, comprising:

determining, by a consumer manager running on a data processor in a computer system, a cost of running a workload on a first provider in the computer system, wherein the first provider is a private datacenter service provider;

causing the workload to be run on the first provider based at least in part on a comparison of the determined cost of running the workload on the first provider with a value of the workload to a requesting computational entity;

determining, after a predetermined period of time has passed since the workload has been run on the first provider or after the determined cost of running the workload has increased by at least a predetermined amount, a cost of running the workload on a second provider in the computer system, wherein the second provider is a cloud-based service provider;

determining a cost of moving the workload to the second provider in the computer system;

determining a cumulative cost actually expended in running the workload on the first provider;

computing a utilization value for running the workload on the second provider based at least in part on the determined cost of running the workload on the second provider, the determined cost of moving the workload to the second provider, the value of the workload to the requesting computational entity, and the determined cumulative cost actually expended in running the workload on the first provider; and

causing the workload to be moved to the second provider based at least in part on the utilization value after the utilization value has surpassed a predetermined value,

wherein the cost of running the workload on the second provider satisfies an equation:

1

(

1

-

U

)

2

×

Q

where U denotes a utilization rate of a resource for running the workload on the second provider, and Q denotes a ratio of a quantity of the resource for running the workload on the second provider to the largest capacity of the resource among the first and second providers.

15. A computer system for managing allocation of workloads, comprising:

a data processor; and

a consumer manager executable by the data processor, the consumer manager being configured to:

determine a cost for running a workload on a first provider in the computer system, wherein the first provider is a private datacenter service provider;

cause the workload to be run on the first provider based at least in part on a comparison of the determined cost of running the workload on the first provider with a value of the workload to a requesting computational entity;

determine, after a predetermined period of time has passed since the workload has been run on the first provider or after the determined cost of running the workload has increased by at least a predetermined amount, a cost of running the workload on a second provider in the computer system, wherein the second provider is a cloud-based service provider;

determine a cost of moving the workload to the second provider in the computer system;

determine a cumulative cost actually expended in running the workload on the first provider;

compute a utilization value for running the workload on the second provider based at least in part on the determined cost of running the workload on the second provider, the determined cost of moving the workload to the second provider, the value of the workload to the requesting computational entity, and the determined cumulative cost actually expended in running the workload on the first provider;

cause the workload to be moved to the second provider based at least in part on the utilization value after the utilization value has surpassed a predetermined value; and

establish terms of continued running of the workload on the second provider for a predetermined length of time after the workload has moved to the second provider.

16. The computer system of claim 15 , wherein the determined cost is expressed in virtual currency units or real currency units.

17. The computer system of claim 15 , wherein the cost of running the workload on the second provider is a dynamic, on-demand price based on one or more characteristics of the computer system.

18. The computer system of claim 15 , wherein the consumer manager is further configured to determining the cost of running the workload on the second provider based on one or more of an actual or anticipated environmental impact, a contractual clause, a quality of service (QoS) requirement, or a compliance or regulatory requirement.

19. The computer system of claim 15 , wherein the consumer manager is further configured to:

determine at least one of a resource usage or a performance metric of the workload running on the first provider; and

cause the workload to be moved to the second provider based at least in part on the determined resource usage and/or performance metric.

20. The computer system of claim 15 , wherein the consumer manager is further configured to:

anticipate a performance metric of the workload running on at least one of the first provider or the second provider; and

cause the workload to be moved to the second provider based at least in part on the anticipated performance metric.

21. A computer system for managing allocation of workloads, comprising:

a data processor; and

a consumer manager executable by the data processor, the consumer manager being configured to:

determine a cost for running a workload on a first provider in the computer system, wherein the first provider is a private datacenter service provider;

cause the workload to be run on the first provider based at least in part on a comparison of the determined cost of running the workload on the first provider with a value of the workload to a requesting computational entity;

determine, after a predetermined period of time has passed since the workload has been run on the first provider or after the determined cost of running the workload has increased by at least a predetermined amount, a cost of running the workload on a second provider in the computer system, wherein the second provider is a cloud-based service provider;

determine a cost of moving the workload to the second provider in the computer system;

determine a cumulative cost actually expended in running the workload on the first provider;

compute a utilization value for running the workload on the second provider based at least in part on the determined cost of running the workload on the second provider, the determined cost of moving the workload to the second provider, the value of the workload to the requesting computational entity, and the determined cumulative cost actually expended in running the workload on the first provider; and

cause the workload to be moved to the second provider based at least in part on the utilization value after the utilization value has surpassed a predetermined value,

wherein the consumer manager is further configured to determine the cost of running the workload on the second provider based on an equation:

1

(

1

-

U

)

2

×

Q

where U denotes a utilization rate of a resource for running the workload on the second provider, and U denotes a ratio of a quantity of the resource for running the workload on the second provider to the largest capacity of the resource among the first and second providers.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2022
From: TURBONOMIC, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 062202/0030 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2021
From: XU, ENLIN; SARA, ENDRE; OLSHEFSKI, DAVID; TAL, ARIEL; COHEN, MOR
To: TURBONOMIC, INC.
Reel/Frame 056368/0690 →
Continuity (22)
Continuation In Part 16888278 · May 29, 2020
Continuation 16394107 · Apr 25, 2019
Continuation 15351356 · Nov 14, 2016
Continuation In Part 15152459 · May 11, 2016
Continuation In Part 14810302 · Jul 27, 2015
Continuation In Part 14810357 · Jul 27, 2015
Continuation In Part 14810327 · Jul 27, 2015
Continuation In Part 14810284 · Jul 27, 2015
Continuation In Part 14539973 · Nov 12, 2014
Continuation In Part 14539973 · Nov 12, 2014
Continuation In Part 14539973 · Nov 12, 2014
Continuation In Part 14539973 · Nov 12, 2014
Continuation In Part 12492890 · Jun 26, 2009
Provisional Application 62316340 · Mar 31, 2016
Provisional Application 62256559 · Nov 17, 2015
Provisional Application 62256645 · Nov 17, 2015
Provisional Application 62255859 · Nov 16, 2015
Provisional Application 62159883 · May 11, 2015
Provisional Application 62077860 · Nov 10, 2014
Provisional Application 62077898 · Nov 10, 2014
Provisional Application 62077852 · Nov 10, 2014
Related Publication 20220156661A1 · May 19, 2022