IP Library Granted Patent US 10,740,128
Granted Patent B2
US 10,740,128 · App. 14/706,060 · Granted Aug 11, 2020

Selecting a cloud from a plurality of clouds for a workload

Inventor: James Thomason (Las Vegas, NV)
Assignee: QUEST SOFTWARE INC.
G06F9/45558H04L67/10G06F2009/4557G06F2009/45595
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,740,128
App. No.
14/706,060
Granted
Aug 11, 2020
Kind
B2
Abstract

A cloud broker receives a container from a client device. The container includes a software application and metadata. The cloud broker instructs a first cloud hosting facility to execute the container at a performance level specified by the metadata. The cloud broker determines first metrics when the first cloud hosting facility is executing the container. The cloud broker instructs a second cloud hosting facility to execute the container at the performance level specified by the metadata. The cloud broker determines second metrics when the second cloud hosting facility is executing the container. The cloud broker automatically selects a particular cloud hosting facility to host the container based at least partly on the first metrics and the second metrics.

Claims (61)

1. A computer-implemented method, comprising:

receiving, at a cloud broker from a client device, a container that includes a software application and metadata, the software application including a first service and a second service, wherein the container further includes a process space, a file system structure, and a network interface that are specific to the container;

instructing, by the cloud broker, a first cloud hosting facility to execute the container including the first service and the second service of the software application at a performance level specified by the metadata included in the container;

determining, by the cloud broker, first execution metrics associated with the first cloud hosting facility during execution of the container including the first service and the second service of the software application by the first cloud hosting facility;

instructing, by the cloud broker, a second cloud hosting facility to execute the container including the first service and the second service of the software application at the performance level, wherein the first cloud facility is operated by a different entity than the second cloud hosting facility;

determining, by the cloud broker, second execution metrics associated with the second cloud hosting facility during the execution of the container including the first service and the second service of the software application by the second cloud hosting facility;

selecting, by the cloud broker, the first cloud hosting facility to host the first service of the software application of the container based at least partly on the first execution metrics and the second execution metrics; and

selecting, by the cloud broker, the second cloud hosting facility to host the second service of the software application based at least partly on the first execution metrics and the second execution metrics.

2. The computer-implemented method of claim 1 , wherein the container includes an application programming interface that is adaptable by the cloud broker to enable the first cloud hosting facility to execute the first service of the software application and adaptable to enable the second cloud hosting facility to execute the second service of the software application.

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

receiving, from the client device, a second container that includes a second software application and second metadata;

determining third execution metrics during the execution of the second container by the first cloud hosting facility;

determining fourth execution metrics during the execution of the second container by the second cloud hosting facility; and

selecting a second particular cloud hosting facility to host the second container based at least partly on the third execution metrics and the fourth execution metrics.

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

instructing a third cloud hosting facility to execute the software application at the performance level;

determining third execution metrics associated with the third cloud hosting facility during the execution of the software application by the third cloud hosting facility; and

selecting the first cloud hosting facility to host the first service of the software application based at least partly on the first execution metrics, the second execution metrics, and the third execution metrics.

5. The computer-implemented method of claim 4 , wherein the particular cloud hosting facility is one of the first cloud hosting facility, the second cloud hosting facility, or the third cloud hosting facility.

6. The computer-implemented method of claim 1 , wherein the first service of the application comprises at least one of a human resources service, a customer relationship management service, website service, or a financial service.

7. The computer-implemented method of claim 1 , wherein the container is based on at least one of Docker, Rocket, Warden, or Garden.

8. The computer-implemented method of claim 1 , wherein an operating system of the container comprises a Linux-based operating system.

9. One or more non-transitory computer-readable media comprising instructions that are executable by one or more processors to perform operations comprising:

receiving, from a client device, a first container that includes a software application and metadata, the software application including a first service and a second service, wherein the first container further includes a first process space, a first file system structure, and a first network interface that are specific to the first container;

instructing a first cloud hosting facility to execute the first container including the first service and the second service of the software application at a minimum performance level specified by the metadata included in the first container;

determining first execution metrics during execution of the first container including the first service and the second service of the software application by the first cloud hosting facility;

instructing a second cloud hosting facility to execute the container including the first service and the second service of the software application at the minimum performance level specified by the metadata included in the first container;

determining second execution metrics during the execution of the first container including the first service and the second service of the software application by the second cloud hosting facility;

selecting the first cloud hosting facility to host the first service of the software application based at least partly on the first execution metrics and the second execution metrics; and

selecting the second cloud hosting facility to host the second service of the software application based at least partly on the first execution metrics and the second execution metrics.

10. The one or more non-transitory computer-readable media of claim 9 , further comprising:

receiving, from the client device, a second container that includes a second software application and second metadata;

determining third execution metrics during the execution of the second container by the first cloud hosting facility;

determining fourth execution metrics during the execution of the second container by the second cloud hosting facility; and

selecting a second particular cloud hosting facility to host the second container based at least partly on the third execution metrics and the fourth execution metrics.

11. The one or more non-transitory computer-readable media of claim 10 , wherein:

the first cloud hosting facility is selected to host the first container; and

the second cloud hosting facility is selected to host the second software application.

12. The one or more non-transitory computer-readable media of claim 9 , wherein the first service of the software application comprises at least one of a human resources service, a customer relationship management service, website service, or a financial service.

13. The one or more non-transitory computer-readable media of claim 9 , wherein the first container includes an application programming interface that is adaptable to enable at least the first cloud hosting facility and the second cloud hosting facility to execute the software application.

14. A computing device, comprising:

one or more processors; and

one or more non-transitory computer-readable media storing instructions that are executable by the one or more processors to perform operations comprising:

receiving, from a client device, a first container that includes a software application and metadata, the software application including a first service and a second service, wherein the first container further includes a first process space, a first file system structure, and a first network interface that are specific to the first container;

instructing a first cloud hosting facility to execute the first container including the first service and the second service of the application at a minimum performance level specified by the metadata included in the first container;

determining first execution metrics during execution of the first container including the first service and the second service of the application by the first cloud hosting facility;

instructing a second cloud hosting facility to execute the container including the first service and the second service of the application at the minimum performance level specified by the metadata included in the first container;

determining second execution metrics during the execution of the first service and the second service of the container including the first application by the second cloud hosting facility;

selecting a particular cloud hosting facility to host the first service of the software application based at least partly on the first execution metrics and the second execution metrics; and

selecting the second cloud hosting facility to host the second service of the software application based at least partly on the first execution metrics and the second execution metrics.

15. The computing device of claim 14 , further comprising:

receiving, from the client device, a second container that includes a second software application and second metadata;

determining third execution metrics during the execution of the second container by the first cloud hosting facility; and

determining fourth execution metrics during the execution of the second container by the second cloud hosting facility.

16. The computing device of claim 15 , wherein selecting the particular cloud hosting facility to host the first software application comprises:

selecting one of the first cloud hosting facility or the second cloud hosting facility to host the first service or the second service of the first software application based at least partly on the first execution metrics, the second execution metrics, the third execution metrics, and the fourth execution metrics.

17. The computing device of claim 15 , further comprising:

selecting one of the first cloud hosting facility or the second cloud hosting facility to host the second container based at least partly on the first execution metrics, the second execution metrics, the third execution metrics, and the fourth execution metrics.

18. The computing device of claim 15 , wherein the second container includes an application programming interface that enables at least the first cloud hosting facility and the second cloud hosting facility to execute the second software application.

19. The computing device of claim 14 , wherein the first container includes an application programming interface that is adaptable to enable at least the first cloud hosting facility and the second cloud hosting facility to execute the first service and the second service of the first software application.

20. The computing device of claim 14 , wherein the first service of the software application comprises at least one of a human resources service, a customer relationship management service, website service, or a financial service.

Assignments (27)
RELEASE OF SECURITY INTEREST Recorded Nov 19, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073606/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073613/0326 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: GOLDMAN SACHS BANK USA
Reel/Frame 058945/0778 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058952/0279 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CHANGE OF NAME Recorded Mar 21, 2018
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 045660/0755 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2018
From: DELL PRODUCTS L.P.
To: DELL SOFTWARE INC.
Reel/Frame 045355/0817 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
RELEASE OF REEL 036502 FRAME 0237 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0088 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
RELEASE OF REEL 036502 FRAME 0291 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0637 →
RELEASE OF REEL 036502 FRAME 0206 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040017/0204 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Aug 27, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 036502/0206 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Aug 27, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 036502/0237 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Aug 27, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 036502/0291 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2015
From: THOMASON, JAMES
To: DELL PRODUCTS L.P.
Reel/Frame 035583/0671 →
Continuity (1)
Related Publication 20160330138A1 · Nov 10, 2016
Cited By (1)
US 12,265,650