IP Library Granted Patent US 12,373,260
Granted Patent B2
US 12,373,260 · App. 17/546,091 · Granted Jul 29, 2025

Cloud infrastructure recommendations to deploy pods

Inventors: Hemani Katyal (Bangalore, IN); Krishna Karthik Reddy Jonnala (Hyderabad, IN); Gurusreekanth Chagalakondu (Bangalore, IN); Swati Singhvi (Bangalore, IN); Keshav S (Bangalore, IN)
Assignee: VMware LLC
G06F9/505G06F9/5055
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 12,373,260
App. No.
17/546,091
Granted
Jul 29, 2025
Kind
B2
Abstract

In an example, a computer implemented method may include receiving a request including a set of workload descriptors. Further, the method may include parsing the set of workload descriptors to determine a set of pods and a set of constraints associated with the set of pods and determining a relationship between the set of pods based on the set of constraints. Furthermore, the method may include categorizing the set of pods into a set of resource clusters based on the determined relationship and determining a cloud infrastructure to deploy the set of resource clusters based on an optimization parameter. Upon determining the cloud infrastructure, the determined cloud infrastructure may be recommended to deploy the set of resource clusters.

Claims (89)

1. A computer implemented method comprising:

receiving a request including a set of workload descriptors;

parsing the set of workload descriptors to determine a set of pods and a set of constraints associated with the set of pods;

determining a relationship between the set of pods based on the set of constraints;

categorizing the set of pods into a set of resource clusters based on the determined relationship;

determining a cloud infrastructure to deploy the set of resource clusters based on an optimization parameter; and

recommending the determined cloud infrastructure to deploy the set of resource clusters;

wherein categorizing the set of pods into the set of resource clusters comprises:

categorizing the set of pods into a set of resource groups based on the determined relationship;

determining a relationship between the resource groups based on the set of constraints of pods in each resource group; and

categorizing the set of resource groups into the set of resource clusters based on the relationship between the resource groups and resource requirements of the resource group;

deploying pods in the set of resource clusters on the determined cloud infrastructure in accordance with the recommendation.

2. The computer implemented method of claim 1 , wherein determining the cloud infrastructure to deploy the set of resource clusters comprises:

generating a comparison between different cloud service providers to deploy the set of resource clusters based on the optimization parameter; and

determining the cloud infrastructure associated with one of the cloud service providers based on the comparison.

3. The computer implemented method of claim 1 , wherein determining the relationship between the set of pods comprises:

generating a pod relation matrix, the pod relation matrix representing the relationship between the set of pods based on the set of constraints.

4. The computer implemented method of claim 1 , wherein determining the relationship between the resource groups comprises:

generating a resource group relation matrix, the resource group relation matrix representing the relationship between the set of resource groups based on the set of constraints.

5. The computer implemented method of claim 1 , wherein determining the cloud infrastructure to deploy the set of resource clusters comprises:

for each resource cluster,

determining an inventory layout including a plurality of combinations of resource groups that are supported by nodes associated with the different cloud service providers; and

selecting the cloud infrastructure associated with one of the cloud service providers based on the inventory layout associated with the set of resource clusters and the optimization parameter, wherein the cloud infrastructure is to include the nodes for deploying pods in the set of resource clusters.

6. The computer implemented method of claim 5 , wherein determining the inventory layout comprises filtering the nodes having a resource capacity greater than a threshold percentage of resource requirements of each of the resource groups.

7. The computer implemented method of claim 5 , wherein selecting the cloud infrastructure associated with one of the cloud service providers comprises:

comparing a cost attribute associated with different cloud service providers to deploy the set of resource clusters based on the inventory layout; and

selecting the cloud infrastructure associated with one of the cloud service providers based on the comparison.

8. The computer implemented method of claim 1 , wherein the set of constraints is selected from a group consisting of a pod affinity specification, a pod anti-affinity specification, and a toleration specification.

9. The computer implemented method of claim 1 , wherein the relationship comprises an attract relationship, a repel relationship, or a neutral relationship, and wherein the attract relationship or the repel relationship between a pair of pods indicates that the pair of pods is to be placed on a same node or different nodes, respectively.

10. The computer implemented method of claim 1 , wherein the optimization parameter comprises a resource optimization parameter, a cost optimization parameter, or a combination thereof.

11. The computer implemented method of claim 1 , wherein the request including a set of workload descriptors is received in a YAML Ain′t Markup Language (YAML) file.

12. The computer implemented method of claim 1 , wherein each pod comprises at least one container.

13. A non-transitory machine-readable storage medium encoded with instructions that, when executed by a processor of a computing device, cause the processor to:

receive a request including a set of workload descriptors;

parse the set of workload descriptors to determine a set of pods, a set of constraints associated with the set of pods, and a resource requirement specification of the set of pods;

determine a relationship between the set of pods based on the set of constraints;

categorize the set of pods into a set of resource clusters based on the determined relationship and the resource requirement specification;

determine a cloud infrastructure to deploy the set of resource clusters based on an optimization parameter; and

recommend the determined cloud infrastructure to deploy the set of resource clusters;

wherein categorizing the set of pods into the set of resource clusters comprises:

categorizing the set of pods into a set of resource groups based on the determined relationship;

determining a relationship between the resource groups based on the set of constraints of pods in each resource group; and

categorizing the set of resource groups into the set of resource clusters based on the relationship between the resource groups and resource requirements of the resource group;

deploying pods in the set of resource clusters on the determined cloud infrastructure in accordance with the recommendation.

14. The non-transitory machine-readable storage medium of claim 13 , wherein the set of constraints are selected from a group consisting of a pod affinity specification, a pod anti-affinity specification, and a toleration specification.

15. The non-transitory machine-readable storage medium of claim 13 , wherein instructions to determine the relationship between the set of pods comprise instructions to:

generate a pod relation matrix, the pod relation matrix representing the relationship between the set of pods based on the set of constraints.

16. The non-transitory machine-readable storage medium of claim 13 , wherein instructions to determine the cloud infrastructure to deploy the set of resource clusters comprise instructions to:

compare the set of resource clusters to be deployed with cloud infrastructure associated with a set of cloud computing platforms; and

determine the cloud infrastructure to deploy the set of resource clusters according to the comparison.

17. The non-transitory machine-readable storage medium of claim 13 , wherein instructions to recommend the determined cloud infrastructure to deploy the set of resource clusters comprise instructions to:

determine one or more nodes associated with the cloud infrastructure to deploy the pods in each set of resource groups based on the optimization parameter; and

recommend the one or more nodes in the cloud infrastructure to deploy the pods in the each set of resource clusters.

18. The non-transitory machine-readable storage medium of claim 13 , wherein instructions to determine the cloud infrastructure to deploy the set of resource clusters comprise instructions to:

generate a comparison of the set of resource clusters to be deployed with various cloud providers based on the optimization parameter; and

determine the cloud infrastructure associated with one of the cloud service providers based on the comparison.

19. A computing system comprising:

a processor; and

a memory coupled to the processor, wherein the memory comprises:

a parser to:

receive a request including a set of workload descriptors; and

parse the set of workload descriptors to determine a set of pods and a set of constraints associated with the set of pods;

a relation determining unit:

determine a relationship between the set of pods based on the set of constraints; and

categorize the set of pods into a set of resource clusters based on the determined relationship;

a comparator to:

determine a cloud infrastructure to deploy the set of resource clusters based on an optimization parameter; and

a recommendation unit to

recommend the determined cloud infrastructure to deploy the set of resource clusters;

wherein the relation determining unit is to:

categorize the set of pods into a set of resource groups based on the determined relationship;

determine a relationship between the resource groups based on the set of constraints of pods in each resource group; and

categorize the set of resource groups into the set of resource clusters based on the relationship between the resource groups and resource requirements of the resource groups;

a deployment unit to:

deploy pods in the set of resource clusters on the determined cloud infrastructure in accordance with the recommendation.

20. The computing system of claim 19 , wherein the comparator is to:

generate a comparison between different cloud service providers to deploy the set of resource clusters based on the optimization parameter; and

determine the cloud infrastructure associated with one of the cloud service providers based on the comparison.

21. The computing system of claim 20 , further comprising:

an inventory to:

store information corresponding to the optimization parameter associated with the different cloud service providers.

22. The computing system of claim 19 , wherein the comparator is to:

for each resource cluster,

determine an inventory layout including a plurality of combinations of resource groups that are supported by nodes associated with the different cloud service providers; and

select the cloud infrastructure associated with one of the cloud service providers based on the inventory layout associated with the set of resource clusters and the optimization parameter, wherein the cloud infrastructure is to include the nodes for deploying the pods in the set of resource clusters.

23. The computing system of claim 19 , wherein the comparator is to filter the nodes having a resource capacity greater than a threshold percentage of resource requirements of each of the resource groups.

24. The computing system of claim 22 , wherein the comparator is to:

compare a cost attribute associated with different cloud service providers to deploy the set of resource clusters based on the inventory layout; and

select the cloud infrastructure associated with one of the cloud service providers based on the comparison.

Assignments (2)
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2021
From: KATYAL, HEMANI; JONNALA, KRISHNA KARTHIK REDDY; CHAGALAKONDU, GURUSREEKANTH; SINGHVI, SWATI; S, KESHAV
To: VMWARE, INC.
Reel/Frame 058342/0190 →