IP Library Granted Patent US 9,946,527
Granted Patent B2
US 9,946,527 · App. 13/874,202 · Granted Apr 17, 2018

Service placement techniques for a cloud datacenter

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,946,527
App. No.
13/874,202
Granted
Apr 17, 2018
Kind
B2
Abstract

A container set manager may determine a plurality of container sets, each container set specifying a non-functional architectural concern associated with deployment of a service within at least one data center. A decision table manager may determine a decision table specifying relative priority levels of the container sets relative to one another with respect to the deployment. A placement engine may determine an instance of an application placement model (APM), based on the plurality of container sets and the decision table, determine an instance of a data center placement model (DPM) representing the at least one data center, and generate a placement plan for the deployment, based on the APM instance and the DPM instance.

Claims (41)

1. A system comprising:

at least one processor; and

a non-transitory computer readable storage medium storing instructions executable by the at least one processor, the system including

a container set manager configured to cause the at least one processor to determine a plurality of container sets of an application placement model (APM), each container set specifying a non-functional architectural concern associated with deployment of a service within at least one data center, wherein the deployment includes deployment of a plurality of service elements of the service using corresponding hosts of the at least one datacenter, and wherein each container set includes at least one container that specifies a manner and/or extent to which individual ones of the service elements should or should not be deployed in proximity to one another within the at least one datacenter;

a decision table manager configured to cause the at least one processor to determine a decision table specifying relative priority levels of the container sets relative to one another with respect to the deployment;

a group manager configured to cause the at least one processor to group the service elements of each container set into either an affinity group having a corresponding priority level of the relative priority levels for specified service elements to be deployed in proximity to one another, or an anti-affinity group having a corresponding priority level of the relative priority levels for specified service elements to be prevented from being deployed together at a specified level of deployment levels of the data center placement model; and

a placement engine configured to cause the at least one processor to determine an instance of the APM, based on the plurality of container sets, the grouped service elements, and the decision table, determine an instance of a data center placement model (DPM) representing the at least one data center, and generate a placement plan for the deployment, based on the APM instance and the DPM instance,

wherein the APM instance is determined including overriding the corresponding priority level of the anti-affinity group when the corresponding priority level of the affinity group is relatively higher for the specified service elements.

2. The system of claim 1 wherein the APM instance includes the plurality of container sets, each container set including at least one container, each container specifying at least one service element.

3. The system of claim 1 , wherein the group manager is further configured to merge anti-affinity groups from at least two of the container sets, and construct an anti-affinity graph therefrom, in which the service elements are included as nodes and each edge of the anti-affinity graph linking two nodes corresponds to an anti-affinity group in which the two linked nodes are included.

4. The system of claim 3 , wherein each edge has a priority value determined by a priority value of one or more corresponding container sets as determined from the decision table.

5. The system of claim 4 , wherein the group manager is further configured to add at least one affinity edge to the anti-affinity graph, wherein each edge corresponding to an anti-affinity group has a negative value and the at least one affinity edge has a positive value, and priority values of any overlapping affinity and anti-affinity edges are added together.

6. The system of claim 5 , wherein the group manager is further configured to remove any positive edges to obtain a final anti-affinity graph and analyze the final anti-affinity graph to identify any maximal independent set therein, at each level of the deployment level, beginning with the highest level.

7. The system of claim 6 , wherein the placement engine is further configured to associate any maximal independent set and associated level to the corresponding level of the DPM instance, to thereby obtain the placement plan.

8. A computer-implemented method for executing, using at least one processor, instructions stored on a non-transitory computer readable storage medium, the computer-implemented method comprising:

determining a plurality of container sets of an application placement model (APM), each container set specifying a non-functional architectural concern associated with deployment of a service within at least one data center, wherein the deployment includes deployment of a plurality of service elements of the service using corresponding hosts of the at least one datacenter, and wherein each container set includes at least one container that specifies a manner and/or extent to which individual ones of the service elements should or should not be deployed in proximity to one another within the at least one datacenter;

determining a decision table specifying relative priority levels of the container sets relative to one another with respect to the deployment;

grouping the service elements of each container set into either an affinity group having a corresponding priority level of the relative priority levels for specified service elements to be deployed in proximity to one another, or an anti-affinity group having a corresponding priority level of the relative priority levels for specified service elements to be prevented from being deployed together at a specified level of deployment levels of the data center placement model;

determining an instance of the APM, based on the plurality of container sets, the grouped service elements, and the decision table;

determining an instance of a data center placement model (DPM) representing the at least one data center; and

generating a placement plan for the deployment, based on the APM instance and the DPM instance,

wherein the APM instance is determined including overriding the corresponding priority level of the anti-affinity group when the corresponding priority level of the affinity group is relatively higher for the specified service elements.

9. The method of claim 8 , wherein the grouping further comprises:

merging anti-affinity groups from at least two of the container sets; and

constructing an anti-affinity graph therefrom, in which the service elements are included as nodes and each edge of the anti-affinity graph linking two nodes corresponds to an anti-affinity group in which the two linked nodes are included.

10. The method of claim 9 , wherein each edge has a priority value determined by a priority value of one or more corresponding container sets as determined from the decision table.

11. The method of claim 9 , further comprising identifying any maximal independent set within the anti-affinity graph, at each level of the deployment level, beginning with the highest level.

12. The method of claim 11 , wherein the generating the placement plan comprises associating any maximal independent set and associated level to the corresponding level of the DPM instance, to thereby obtain the placement plan.

13. A computer program product including instructions recorded on a non-transitory computer readable storage medium and configured to cause at least one processor to:

determine a plurality of container sets of an application placement model (APM), each container set specifying a non-functional architectural concern associated with deployment of a service within at least one data center, wherein the deployment includes deployment of a plurality of service elements of the service using corresponding hosts of the at least one datacenter, and wherein each container set includes at least one container that specifies a manner and/or extent to which individual ones of the service elements should or should not be deployed in proximity to one another within the at least one datacenter;

determine a decision table specifying relative priority levels of the container sets relative to one another with respect to the deployment;

group the service elements of each container set into either an affinity group having a corresponding priority level of the relative priority levels for specified service elements to be deployed in proximity to one another, or an anti-affinity group having a corresponding priority level of the relative priority levels for specified service elements to be prevented from being deployed together at a specified level of deployment levels of the data center placement model;

determine an instance of the APM, based on the plurality of container sets, the grouped service elements, and the decision table;

determine an instance of a data center placement model (DPM) representing the at least one data center; and

generate a placement plan for the deployment, based on the APM instance and the DPM instance,

wherein the APM instance is determined including overriding the corresponding priority level of the anti-affinity group when the corresponding priority level of the affinity group is relatively higher for the specified service elements.

14. The computer program product of claim 13 , wherein the instructions, when executed, are further configured to:

merge the anti-affinity groups from at least two of the container sets; and

construct an anti-affinity graph therefrom, in which the service elements are included as nodes and each edge of the anti-affinity graph linking two nodes corresponds to an anti-affinity group in which the two linked nodes are included.

15. The computer program product of claim 14 , wherein the instructions, when executed, are further configured to identify any maximal independent set within the anti-affinity graph, at each level of the deployment level, beginning with the highest level.

16. The computer program product of claim 15 , wherein the instructions, when executed, are further configured to associate any maximal independent set and associated level to the corresponding level of the DPM instance, to thereby obtain the placement plan.

Assignments (15)
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 052844/0646 →
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 →
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SECOND INVENTORS NAME PREVIOUSLY RECORDED AT REEL: 041287 FRAME: 0779. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Apr 16, 2018
From: SHARMA, ABHIJIT; PHADKE, NILESH; VUL, ALEXANDER; KARNATI, VARUN; KAMINENI, RAJESH
To: BMC SOFTWARE, INC.
Reel/Frame 045951/0253 →
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/0231 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2017
From: SHARMA, ABHIJIT; PHADKE, NILEASH; VUL, ALEXANDER; KARNATI, VARUN; KAMINENI, RAJESH
To: BMC SOFTWARE, INC.
Reel/Frame 041287/0779 →