IP Library Granted Patent US 9,122,536
Granted Patent B2
US 9,122,536 · App. 12/872,921 · Granted Sep 1, 2015

Automating application provisioning for heterogeneous datacenter environments

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 9,122,536
App. No.
12/872,921
Granted
Sep 1, 2015
Kind
B2
Abstract

Disclosed are methods and systems to automate the provisioning and deployment of application instances within a heterogeneous data center. In one embodiment, the application provisioning is performed based upon a blueprint and deployment model defining requirements of the provisioned application. In another embodiment, the totality of available resources for provisioning is divided into different segments. When resources are requested and assigned to an incoming provisioning request, the resource pool may be refreshed or augmented as defined by thresholds or forecasting of user needs. The resource pool may be refreshed by recapturing allocated resources that are no longer in use or by configuring resources taken from the reserve. Further, when reserve resources are not available or are below a minimum reserve threshold, capacity planning actions may be initiated or advised.

Claims (61)

1. A method of managing computer resources in a dynamic computing environment, the method comprising:

receiving an augmented model defining,

resources to support application provisioning requirements,

at least one tier, a relationship between the at least one tier and at least one deployment option associated with each tier, and

installation programs, artifacts and configuration scripts that are used to configure application provisioning;

identifying available resources from an available pool consistent with the augmented model, wherein the available pool comprises resources at least partially configured in accordance with the augmented model but not allocated;

allocating the identified available resources from the available pool to an application in accordance with the augmented model;

identifying reserve resources substantially similar to the identified and allocated resources in a reserve pool, wherein the reserve pool comprises resources not allocated to the application and not configured in accordance with the augmented model; and

replenishing the available pool by allocating from the reserve pool to the available pool at least a portion of the identified reserve resources.

2. The method of claim 1 further comprising maintaining metrics for at least one of available resources, reserve resources, and allocated resources.

3. The method of claim 2 further comprising performing capacity planning utilizing the maintained metrics.

4. The method of claim 2 wherein replenishing only occurs when metrics regarding available resources indicate an amount of available resources are below a threshold level.

5. The method of claim 1 wherein determining comprises selecting resources from a group of resources to satisfy a requested application provisioning requirement.

6. The method of claim 5 wherein the group of resources comprises resources selected from the group consisting of compute resources, software application resources, network resources and storage resources.

7. The method of claim 1 wherein the desired application resources are used to add capacity to a web server farm.

8. The method of claim 1 wherein replenishing comprises configuring the identified reserve resources.

9. The method of claim 8 wherein configuring the identified reserve resources comprises configuring the identified reserve resources in accordance with a blueprint used to derive the augmented model.

10. The method of claim 8 wherein configuring the identified reserve resources comprises configuring the identified reserve resources in accordance with the augmented model.

11. A method of maintaining a pool of allocated computer resources to satisfy requests for application provisioning, the method comprising:

receiving an augmented model defining,

resources to support application provisioning requirements,

at least one tier, a relationship between the at least one tier and at least one deployment option associated with each tier, and

installation programs, artifacts and configuration scripts that are used to configure application provisioning;

maintaining an allocated resources pool identifying resources configured in accordance with the augmented model and allocated to support an application provisioning request;

maintaining an available resources pool identifying resources at least partially configured in accordance with the augmented model to support a future application provisioning request;

maintaining a reserve resources pool identifying resources unallocated by the application provisioning request and unconfigured in accordance with the augmented model;

receiving a request for a provisioned application based on the augmented model;

selecting resources from the available resources pool in accordance with the augmented model;

allocating the selected resources to the provisioned application; and

updating the available resources pool by allocating, from the reserve pool to the available pool, at least a portion of substantially matching resources from the reserve resources pool in order to replenish the available resources pool for utilization by the provisioned application.

12. The method of claim 11 wherein the available resources pool is further divided into a plurality of pools based on a degree of specificity to which each of the resources in the available pool have been pre-configured.

13. The method of claim 11 wherein updating comprises configuring the substantially matching resources from the reserve resources pool.

14. The method of claim 11 wherein the allocated resources pool, the available resources pool, and the reserve resources pool comprise resources selected from the group consisting of compute resources, software application resources, storage resources, and network resources.

15. The method of claim 11 wherein the selected resources comprise a virtual machine.

16. A non-transitory computer readable medium comprising computer readable instructions stored thereon to cause a processing device to perform the method of claim 1 .

17. A non-transitory computer readable medium comprising computer readable instructions stored thereon to cause a processing device to perform the method of claim 11 .

18. A computer network comprising:

a plurality of processing units communicatively coupled to a computer network;

a first processing unit configured to perform at least a portion of the method of claim 1 wherein the entire method of claim 1 is performed collectively by the plurality of processing units.

19. A computer network comprising:

a plurality of processing units communicatively coupled to a computer network;

a first processing unit configured to perform at least a portion of the method of claim 11 wherein the entire method of claim 11 is performed collectively by the plurality of processing units.

20. A computer system comprising one or more programmable control devices communicatively coupled to each other and to a computer network, wherein the one or more programmable control devices are programmed to perform the method of claim 1 .

21. A computer system comprising one or more programmable control devices communicatively coupled to each other and to a computer network, wherein the one or more programmable control devices are programmed to perform the method of claim 11 .

22. The method of claim 1 further comprising releasing the resources allocated to the application after replenishing the available pool.

23. The method of claim 11 further comprising releasing the resources allocated to the application after updating the available resources pool.

24. A method of managing computer resources in a dynamic computing environment, the method comprising:

receiving an augmented model defining,

resources to support application provisioning requirements,

at least one tier, a relationship between the at least one tier and at least one deployment option associated with each tier, and

installation programs, artifacts and configuration scripts that are used to configure application provisioning;

generating a first pool, the first pool including resources that are not allocated and not configured to support the application provisioning requirements based on the augmented model;

generating a second pool, the second pool including resources that are at least partially configured to support the application provisioning requirements based on the augmented model but are not allocated;

generating a third pool by allocating resources from the second pool to the third pool, the third pool including resources configured to support an application in accordance with the augmented model;

identifying resources in the first pool that are substantially similar to the resources in the third pool; and

allocating resources from the first pool to the second pool at least a portion of the identified resources.

25. The method of claim 24 further comprising releasing the resources allocated to the third pool after allocating resources from the first pool to the second pool.

26. The method of claim 24 wherein allocating resources from the first pool to the second pool only occurs when metrics regarding resources in the third pool indicate an amount of available resources are below a threshold level.

27. The method of claim 24 , wherein

allocating resources from the first pool to the second pool comprises configuring the identified resources, and

configuring the identified resources comprises configuring the identified resources in accordance with a blueprint used to derive the augmented model.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2025
From: BMC SOFTWARE, INC.
To: BMC HELIX, INC.
Reel/Frame 070442/0197 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY INTEREST Recorded Jul 27, 2017
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043351/0189 →
SECURITY AGREEMENT Recorded Sep 11, 2013
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 031204/0225 →