IP Library Granted Patent US 11,762,706
Granted Patent B1
US 11,762,706 · App. 15/886,687 · Granted Sep 19, 2023

Computing environment pooling

Inventors: Michael Jarvis (San Francisco, CA); Mark Stokan (San Francisco, CA); Kenneth Lakin (San Francisco, CA); Der Wei Chan (Markham, CA); Navdeep Pama (Brampton, CA)
Assignee: VMware, Inc.
G06F9/505G06F9/45558G06F9/5077G06F2009/4557G06F2009/45575G06F2009/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,762,706
App. No.
15/886,687
Granted
Sep 19, 2023
Kind
B1
Abstract

Methods, systems, and computer-readable media that manage cloud computing environments. A pool manager creates a pool of cloud computing environments according to a pool specification specifying a headroom threshold of the pool. The pool manager receives, from a requester computer, a request to claim a cloud computing environment. The pool manager determines that one or more cloud computing environments are available. In response, the pool manager provides to the requesting computer credentials for accessing the cloud computing environment. The pool manager designates the cloud computing environment as claimed and unavailable to other requester computers until receiving a notification indicating that the cloud computing environment is unclaimed. The pool manager ensures that the correct number of environments are available on a pre-determined schedule.

Claims (44)

1. A method comprising

creating, by a pool manager comprising one or more computer processors, a plurality of distinct pools of cloud computing environments each according to a respective pool specification, wherein each pool of cloud computing environments comprises computing resources, including one or more machines and corresponding computing resources configured to execute one or more cloud-based application programs, allocated to implement one or more instances of a respective cloud computing platform having a respective version, wherein each version of the cloud computing platform is defined by respective versions of a plurality of platform programs that implement the cloud computing platform, and wherein each respective pool specification specifies a corresponding headroom threshold of the pool that indicates a minimum number of ready to use but unclaimed cloud computing environments in the pool;

receiving, by the pool manager from a user computer, a first request and a second request to deploy an application program on different versions of the cloud computing platform, wherein the first request specifies a first version and the second request specifies a second version of respective one or more platform programs;

in response to the first request and the second request, determining that a first pool of cloud computing environments and a second pool of cloud computing environments satisfy their respective headroom thresholds, and providing, by the pool manager to the user computer, information for accessing (i) a first cloud computing environment of the first version of the cloud computing platform, and (ii) a second cloud computing environment of the second version of the cloud computing platform, wherein the first cloud computing environment is identified from the first pool and the second cloud computing environment is identified from the second pool;

designating, by the pool manager, the first and second cloud computing environments as claimed and unavailable to other users; and

deploying the application program on respective cloud computing platforms implementing the first and second cloud computing environments.

2. The method of claim 1 , wherein:

the respective pool specification further specifies a maximum number of cloud computing environments in the pool.

3. The method of claim 2 , wherein determining that the number of cloud computing environments available in the pool satisfies the respective headroom threshold comprises determining that a sum of a number of unclaimed environments and a number of cloud computing environments being initialized is greater than the minimum number of unclaimed environments in the pool.

4. The method of claim 2 , further comprising:

determining that a sum of a number of unclaimed cloud computing environments and a number of cloud computing environments being initialized is not greater than the minimum number of unclaimed environments in the pool; and

determining that the sum of the number of unclaimed cloud computing environments, the number of cloud computing environments being initialized, the number of cloud computing environments being deleted, and the number of cloud computing environments in error is smaller than the maximum number of cloud computing environments in the pool, and

in response, spinning up one or more cloud computing environments in the pool.

5. The method of claim 1 , wherein creating a pool of the plurality of pools comprises designating a geographic region from where the pool manager accepts requests to claim cloud computing environments and a version number of cloud computing environments in the pool.

6. The method of claim 5 , wherein the version number includes a version number of an operations manager and a version number of an application service.

7. The method of claim 1 , wherein the information for accessing the first and the second cloud computing environments comprises user credentials, respective names of the first and the second cloud computing environments, and respective links to the first and to the second cloud computing environment.

8. A system comprising:

one or more computers; and

one or more storage devices which store instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

creating, by a pool manager comprising one or more computer processors, a plurality of distinct pools of cloud computing environments each according to a respective pool specification, wherein each pool of cloud computing environments comprises computing resources, including one or more machines and corresponding computing resources configured to execute one or more cloud-based application programs, allocated to implement one or more instances of a respective cloud computing platform having a respective version, wherein each version of the cloud computing platform is defined by respective versions of a plurality of platform programs that implement the cloud computing platform, and wherein each respective pool specification specifies a corresponding headroom threshold of the pool that indicates a minimum number of ready to use but unclaimed cloud computing environments in the pool;

receiving, by the pool manager from a user computer, a first request and a second request to deploy an application program on different versions of the cloud computing platform, wherein the first request specifies a first version and the second request specifies a second version of respective one or more platform programs;

in response to the first request and the second request, determining that a first pool of cloud computing environments and a second pool of cloud computing environments satisfy their respective headroom thresholds, and providing, by the pool manager to the user computer, information for accessing (i) a first cloud computing environment of the first version of the cloud computing platform, and (ii) a second cloud computing environment of the second version of the cloud computing platform, wherein the first cloud computing environment is identified from the first pool and the second cloud computing environment is identified from the second pool;

designating, by the pool manager, the first and second cloud computing environments as claimed and unavailable to other users; and

deploying the application program on respective cloud computing platforms implementing the first and second cloud computing environments.

9. The system of claim 8 , wherein:

the respective pool specification further specifies a maximum number of cloud computing environments in the pool.

10. The system of claim 9 , wherein determining that the number of cloud computing environments available in the pool satisfies the respective headroom threshold comprises determining that a sum of a number of unclaimed environments and a number of cloud computing environments being initialized is greater than the minimum number of unclaimed environments in the pool.

11. The system of claim 9 , the operations further comprising:

determining that a sum of a number of unclaimed cloud computing environments and a number of cloud computing environments being initialized is not greater than the minimum number of unclaimed environments in the pool; and

determining that the sum of the number of unclaimed cloud computing environments, the number of cloud computing environments being initialized, the number of cloud computing environments being deleted, and the number of cloud computing environments in error is smaller than the maximum number of cloud computing environments in the pool, in response, spinning up one or more cloud computing environments in the pool.

12. The system of claim 10 , wherein creating a pool of the plurality of pools comprises designating a geographic region from where the pool manager accepts requests to claim cloud computing environments and a version number of cloud computing environments in the pool.

13. The system of claim 12 , wherein the version number includes a version number of an operations manager and a version number of an application service.

14. One or more non-transitory storage devices storing instructions that are operable, when executed by one or more computers, to cause the one or more computers to perform operations comprising:

creating, by a pool manager comprising one or more computer processors, a plurality of distinct pools of cloud computing environments each according to a respective pool specification, wherein each pool of cloud computing environments comprises computing resources, including one or more machines and corresponding computing resources configured to execute one or more cloud-based application programs, allocated to implement one or more instances of a respective cloud computing platform having a respective version, wherein each version of the cloud computing platform is defined by respective versions of a plurality of platform programs that implement the cloud computing platform, and wherein each respective pool specification specifies a corresponding headroom threshold of the pool that indicates a minimum number of ready to use but unclaimed cloud computing environments in the pool;

receiving, by the pool manager from a user computer, a first request and a second request to deploy an application program on different versions of the cloud computing platform, wherein the first request specifies a first version and the second request specifies a second version of respective one or more platform programs;

in response to the first request and the second request, determining that a first pool of cloud computing environments and a second pool of cloud computing environments satisfy their respective headroom thresholds, and providing, by the pool manager to the user computer, information for accessing (i) a first cloud computing environment of the first version of the cloud computing platform, and (ii) a second cloud computing environment of the second version of the cloud computing platform, wherein the first cloud computing environment is identified from the first pool and the second cloud computing environment is identified from the second pool;

designating, by the pool manager, the first and second cloud computing environments as claimed and unavailable to other users; and

deploying the application program on respective cloud computing platforms implementing the first and second cloud computing environments.

15. The one or more non-transitory storage devices of claim 14 , wherein:

the respective pool specification further specifies a maximum number of cloud computing environments in the pool.

16. The one or more non-transitory storage devices of claim 15 , wherein determining that the number of cloud computing environments available in the pool satisfies the respective headroom threshold comprises determining that a sum of a number of unclaimed environments and a number of cloud computing environments being initialized is greater than the minimum number of unclaimed environments in the pool.

17. The one or more non-transitory storage devices of claim 15 , the operations comprising:

determining that a sum of a number of unclaimed cloud computing environments and a number of cloud computing environments being initialized is not greater than the minimum number of unclaimed environments in the pool; and

determining that the sum of the number of unclaimed cloud computing environments, the number of cloud computing environments being initialized, the number of cloud computing environments being deleted, and the number of cloud computing environments in error is smaller than the maximum number of cloud computing environments in the pool, in response, spinning up one or more cloud computing environments in the pool.

Assignments (2)
MERGER Recorded May 20, 2026
From: PIVOTAL SOFTWARE, INC.
To: VMWARE LLC
Reel/Frame 075613/0593 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2018
From: JARVIS, MICHAEL; STOKAN, MARK; LAKIN, KENNETH; CHAN, DER WEI; PAMA, NAVDEEP
To: PIVOTAL SOFTWARE, INC.
Reel/Frame 045328/0729 →
Cited By (2)
US 12,190,144 US 12,670,035