IP Library Granted Patent US 11,797,282
Granted Patent B2
US 11,797,282 · App. 17/313,477 · Granted Oct 24, 2023

Optimizing services deployment in a cloud computing environment

Inventors: Martin Vecera (Brno, CZ); Marek Baluch (Nové Mesto nad Váhom, SK)
Assignee: Red Hat, Inc.
G06F8/60G06F9/455G06F9/5027H04L67/10
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,797,282
App. No.
17/313,477
Granted
Oct 24, 2023
Kind
B2
Abstract

Systems and methods of the disclosure include: identifying, by a processing device, a plurality of services of a cloud computing environment, wherein each service of the plurality of services employs one or more virtual execution environments; generating a plurality of graphs, wherein each graph of the plurality of graphs represents a service of the plurality of services, wherein each graph comprises a plurality of nodes, such that each node represents a corresponding virtual execution environment of the one or more virtual execution environments employed by the service, and wherein each node is associated with a computing resource usage indicator reflecting a usage of a computing resource by the corresponding virtual execution environment; and determining, using the plurality of graphs, a set of servers for running the plurality of services.

Claims (39)

1. A method comprising:

identifying, by a processing device, a plurality of services of a cloud computing environment, wherein each service of the plurality of services employs one or more virtual execution environments;

generating a plurality of graphs, wherein each graph of the plurality of graphs represents a service of the plurality of services, wherein each graph comprises a plurality of nodes, such that each node represents a corresponding virtual execution environment of the one or more virtual execution environments employed by the service, and wherein each node is associated with a computing resource usage indicator reflecting a usage of a computing resource by the corresponding virtual execution environment;

combining two or more graphs of the plurality of graphs into a single graph, wherein each node of the single graph represents a service that does not exceed a maximum computing resource usage; and

determining, using the plurality of graphs, a set of servers for running the plurality of services.

2. The method of claim 1 , wherein the set of servers is a minimal set suitable for running the plurality of services.

3. The method of claim 1 , wherein at least one server of the set of servers is allocated to run two or more virtual execution environments.

4. The method of claim 1 , wherein the graph further comprises a plurality of edges interconnecting the nodes of the plurality of nodes, such that each edge is associated with a network usage indicator reflecting a communication channel bandwidth utilized by respective virtual execution environments.

5. The method of claim 4 ,

wherein each edge of the single graph does not exceed a maximum network usage.

6. The method of claim 1 , further comprising:

receiving, by the processing device, a request to deploy the plurality of services of the cloud computing environment.

7. The method of claim 1 , wherein the usage of the computing resource comprises at least one of: a central processing unit (CPU) usage or a memory usage.

8. A system comprising:

a memory; and

a processing device communicably coupled to the memory to:

identify a plurality of services of a cloud computing environment, wherein each service of the plurality of services employs one or more virtual execution environments;

generate a plurality of graphs, wherein each graph of the plurality of graphs represents a service of the plurality of services, wherein each graph comprises a plurality of nodes, such that each node represents a corresponding virtual execution environment of the one or more virtual execution environments employed by the service, and wherein each node is associated with a computing resource usage indicator reflecting a usage of a computing resource by the corresponding virtual execution environment;

combine two or more graphs of the plurality of graphs into a single graph, wherein each node of the single graph represents a service that does not exceed a maximum computing resource usage; and

determine, using the plurality of graphs, a set of servers for running the plurality of services.

9. The system of claim 8 , wherein the set of servers is a minimal set suitable for running the plurality of services.

10. The system of claim 8 , wherein at least one server of the set of servers is allocated to run two or more virtual execution environments.

11. The system of claim 8 , wherein the graph further comprises a plurality of edges interconnecting the nodes of the plurality of nodes, such that each edge is associated with a network usage indicator reflecting a communication channel bandwidth utilized by respective virtual execution environments.

12. The system of claim 11 ,

wherein each edge of the single graph does not exceed a maximum network usage.

13. The system of claim 8 , wherein the processing device is further to:

receive a request to deploy the plurality of services of the cloud computing environment.

14. The system of claim 8 , wherein the usage of the computing resource comprises at least one of: a central processing unit (CPU) usage or a memory usage.

15. A non-transitory machine-readable storage medium storing instructions that cause a processing device to:

identify, by the processing device, a plurality of services of a cloud computing environment, wherein each service of the plurality of services employs one or more virtual execution environments;

generate a plurality of graphs, wherein each graph of the plurality of graphs represents a service of the plurality of services, wherein each graph comprises a plurality of nodes, such that each node represents a corresponding virtual execution environment of the one or more virtual execution environments employed by the service, and wherein each node is associated with a computing resource usage indicator reflecting a usage of a computing resource by the corresponding virtual execution environment;

combine two or more graphs of the plurality of graphs into a single graph, wherein each node of the single graph represents a service that does not exceed a maximum computing resource usage; and

determine, using the plurality of graphs, a set of servers for running the plurality of services.

16. The non-transitory machine-readable storage medium of claim 15 , wherein the set of servers is a minimal set suitable for running the plurality of services.

17. The non-transitory machine-readable storage medium of claim 15 , wherein at least one server of the set of servers is allocated to run two or more virtual execution environments.

18. The non-transitory machine-readable storage medium of claim 15 , wherein the graph further comprises a plurality of edges interconnecting the nodes of the plurality of nodes, such that each edge is associated with a network usage indicator reflecting a communication channel bandwidth utilized by respective virtual execution environments.

19. The non-transitory machine-readable storage medium of claim 18 ,

wherein each edge of the single graph does not exceed a maximum network usage.

20. The non-transitory machine-readable storage medium of claim 15 , wherein the usage of the computing resource comprises at least one of: a central processing unit (CPU) usage or a memory usage.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2022
From: VECERA, MARTIN; BALUCH, MAREK
To: RED HAT, INC.
Reel/Frame 059122/0789 →