IP Library Granted Patent US 8,843,633
Granted Patent B2
US 8,843,633 · App. 13/070,412 · Granted Sep 23, 2014

Cloud-based resource identification and allocation

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 8,843,633
App. No.
13/070,412
Granted
Sep 23, 2014
Kind
B2
Abstract

Systems, methods, and computer readable media for identifying resources to implement a service in a cloud computing environment are disclosed. In general, the disclosed methodologies analyze a cloud's ability to support a desired service while maintaining separation between the cloud's logical layers. For example, given a list of resources needed to implement a target service, a hierarchical plan may be generated. The plan may then be used by each layer to track and record the availability of various possible layer-specific resource selections. Since each layer may be permitted access only to that portion of the plan that is associated with, or applicable to, the specific layer, the logical separation between different layers may be enforced. As a consequence, each layer may implement its resource selection mechanisms in any desired manner.

Claims (46)

1. A method, comprising:

receiving a plan to support a cloud-based service in a cloud-based computing system, the system having resources organized in a plurality of architectural layers, each layer including a different resource type or types than the other layers, the plan generated as resources eligible to support the service are identified, a respective portion of the plan corresponding to each of the plurality of architectural layers identifying layer-specific resource needed to support the cloud-based service, the plan recording details of which resources are needed or have been allocated to support the service;

for a current layer, carrying out a resource identification operation to determine an availability of one or more layer-specific resources that are needed to support the cloud-based service according to the respective portion of the plan for the current layer; and

based on a determination that a needed resource is not available, returning a failure message for the current layer;

based on a determination that the one or more needed resources are available, selecting one resource instance and accordingly updating the plan to reflect the selection for the current layer;

determining whether the selected resource instance in the current layer needs to be supported by one or more resource from a lower layer in the plurality of architectural layers than the current layer according to updated plan;

based on a determination that the selected resource instance does not need to be supported by the one or more resources from the lower layer, reporting success for the current layer; based on a determination that the selected resource instance does need to be supported by the one or more resources from the lower layer, issuing a resource request to the lower layer for the one or more resources from the lower layer to support he selected resource instance,

wherein the resources organized in the plurality of architectural layers include a first layer of one or more pods, a second layer of one or more network containers and a third layer of one or more virtual clusters.

2. The method of claim 1 , wherein receiving a plan further comprises receiving a plan indicating a plurality of software resources.

3. The method of claim 2 , wherein receiving a plan further comprises receiving a plan indicating at least one resource that is a combination of a hardware resource and a software resource.

4. The method of claim 1 , wherein carrying out a resource identification operation to determine an availability of one or more layer-specific resources that are needed to support the cloud-based service according to the respective portion of the plan for the current layer includes:

checking the plan to determine if it has a record for a resource of a particular type for the current layer;

taking a lock on the plan if there is no record for the resource of the particular type for the current layer;

identifying one or more eligible resources of the particular type of resource; and

indicating the identified one or more eligible resources in the plan.

5. The method of claim 4 , wherein carrying out a resource identification operation to determine an availability of one or more layer-specific resources that are needed to support the cloud-based service according to the respective portion of the plan for the current layer includes:

identifying one or more eligible resources of a particular type of resource in accordance with one or more policies.

6. The method of claim 4 , wherein updating the plan comprises:

indicating, in the plan, the selected resource instance; and removing the lock from the plan.

7. The method of claim 1 , wherein selecting a resource instance comprises selecting a resource instance in accordance with one or more policies.

8. A program storage device, readable by a programmable control device, comprising instructions tangibly stored thereon for causing the programmable control device to perform the method of claim 1 .

9. A cloud-based resource allocation system, comprising:

a memory having stored therein at least part of a plan, the plan indicating a plurality of resources of a cloud based computing system required to provision a cloud-based service, the resources organized in a plurality of architectural layers, each layer having different resource types than the other layers, the plan generated as resources eligible to support the service are identified, with a respective portion of the plan corresponding to each of the plurality of architectural layers identifying layer-specific resources needed to support the cloud-based service;

a programmable control device having access to program instructions, the program instructions when executed causing the programmable control device to:

for a current layer, determine an availability of one or more resources that are needed to support the cloud-based service according to the respective portion of the plan for the current layer;

based on a determination that a needed resource is not available, return a resource identification failure message for the current layer;

based on a determination that the one or more needed resources are available: select one resource instance and accordingly update the plan to

reflect the selection for the current layer;

determine whether the selected resource instance in the current layer needs to be supported by one or more resources from a lower layer in the plurality of architectural layers than the current layer according to updated plan;

based on a determination that the selected resource instance does not need to be supported by the one or more resources from the lower layer, report success for the current layer;

based on a determination that the selected resource instance does need to be supported by the one or more resources from the lower layer, issue a resource request to the lower layer for the one or more resources from the lower layer to support the selected resource instance,

wherein the resources in the plurality of architectural layers, include a first layer of one or more pods, a second layer of one or more network containers and a third layer of one or more virtual clusters. of a particular type.

10. The cloud-based resource allocation system of claim 9 , wherein the program instructions when executed further cause the programmable control device to:

take a lock, for the lower layer, on a portion of the plan for the lower layer; and

read, for the lower layer, at least a part of the portion of the plan for the lower layer.

11. The cloud-based resource allocation system of claim 10 , wherein the program instructions when executed further cause the programmable control device to:

select, for the lower layer, an instance of a resource of a particular type from the one or more eligible resources identified in a portion of the plan for the next lower layer;

update a portion of the plan for the lower layer to indicate selection of the resource instance of the particular type; and

release the lock, for the lower layer, on the portion of the plan for the lower layer.

12. The cloud-based resource allocation system of claim 9 , further comprising program instructions which when executed further cause the programmable control device to:

when the plan indicates, in a portion of the plan for the lower layer, two or more eligible resources of a particular type,

receive for the lower layer, a failure message from the lower layer, the failure message indicating that a selected resource instance could not be supplied by the lower layer;

update the portion of the plan for the lower layer to indicate that the selected resource instance is not available;

select the lower layer, a second resource instance from the two or more eligible resources identified in the portion of the plan for the lower layer.

13. The cloud-based resource allocation system of claim 9 , further comprising

a layer control module in each of the architectural layers coupled to an advisor module, the advisor module configured to guide selection of one resource instance from one or more available resource instances in the respective architectural layer.

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 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2011
From: ERIKSSON, JOHAN; WHITNEY, JONATHAN
To: BMC SOFTWARE, INC.
Reel/Frame 026012/0979 →