IP Library Granted Patent US 11,106,480
Granted Patent B2
US 11,106,480 · App. 16/258,016 · Granted Aug 31, 2021

Systems, methods, and apparatus to improve containerized application visibility

Inventors: Bin Wang (Palo Alto, CA); Aditi Vutukuri (Santa Clara, CA); Lan Luo (Santa Clara, CA); Margaret Petrus (San Jose, CA)
Assignee: VMWARE, INC.
G06F9/45558G06F9/451G06F9/547H04L41/12H04L43/08H04L61/2007G06F2009/45595
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,106,480
App. No.
16/258,016
Granted
Aug 31, 2021
Kind
B2
Abstract

Methods, apparatus, systems, and articles of manufacture are disclosed to improve containerized application visibility. An example apparatus includes a container application manager to build an inventory of the containerized application, the containerized application including a virtual machine, the virtual machine hosting one or more containers, and a network topology builder to invoke a virtual machine agent of the virtual machine to obtain network traffic events from the one or more containers to generate network topology information associated with the containerized application based on the inventory, generate a network topology for the containerized application based on the network topology information, build the visualization based on the network topology, the visualization including the inventory and the network topology information, and launch a user interface to display the visualization to execute one or more computing tasks.

Claims (82)

1. An apparatus to generate a visualization of a containerized application in a virtual environment, the apparatus comprising:

circuitry to build an inventory of the containerized application, the containerized application including a first virtual machine and a second virtual machine, the first virtual machine to host a first virtual machine agent and a first container, the second virtual machine to host a second virtual machine agent and a second container;

a data collection server to:

obtain, with the first virtual machine agent, a first network traffic event in response to the first container sending a message to the second container;

obtain, with the second virtual machine agent, a second network traffic event in response to the second container obtaining the message, network topology information associated with the containerized application to be generated based on at least one of the inventory or a comparison of the first network traffic event and the second network traffic event; and

the circuitry to:

generate a network topology for the containerized application based on the network topology information;

build the visualization based on the network topology, the visualization including the inventory and the network topology information; and

launch a user interface to display the visualization to execute one or more computing tasks.

2. The apparatus of claim 1 , wherein the circuitry is to build the inventory by:

filtering an application programming interface (API) call to determine whether the API call includes a request corresponding to at least one of the first container or the second container;

in response to determining that the request corresponds to the at least one of the first container or the second container, extracting metadata from the request;

determining a type of virtual network resource associated with the request based on the metadata;

in response to determining that the type of virtual network resource corresponds to a logical port, identifying the first container or the second container in communication with the logical port; and

identifying the first virtual machine or the second virtual machine hosting the identified container.

3. The apparatus of claim 1 , wherein the inventory includes at least one of the first container, the second container, the first virtual machine, the second virtual machine, one or more logical switches, or one or more logical routers.

4. The apparatus of claim 1 , wherein the first network traffic event and the second network traffic event include one or more tuples, the one or more tuples including at least one of a source Internet Protocol (IP) address, a destination IP address, a source port number, a destination port number, or a type of communication protocol.

5. The apparatus of claim 1 , wherein the data collection server is to:

compare first tuples included in the first network traffic event to second tuples included in the second network traffic event; and

determine that the first container is in communication with the second container based on a match of the first tuples and the second tuples.

6. The apparatus of claim 1 , wherein the data collection server is to generate the network topology information based on a container traffic message, the container traffic message to be generated by a network agent included in a hypervisor on a host in communication with the first virtual machine, the network agent to generate the container traffic message by:

determining whether the first network traffic event invokes a distributed firewall rule;

in response to determining that the first network traffic event invokes the distributed firewall rule, obtaining network resource information associated with one or more virtual network resources in communication with at least one of the first container or the second container; and

generating the container traffic message including the network resource information.

7. The apparatus of claim 1 , further including a container intent handler to:

extract a discovery scope from a request;

determine an intent of the discovery scope; and

in response to determining that the intent corresponds to identifying a container cluster, a container namespace, or a set of user-defined groups, determine whether the discovery scope is valid based on a quantity of containers associated with at least one of the first virtual machine or the second virtual machine.

8. A non-transitory computer readable storage medium comprising instructions which, when executed, cause one or more processors to at least:

build an inventory of a containerized application, the containerized application including a first virtual machine and a second virtual machine, the first virtual machine to host a first virtual machine agent and a first container, the second virtual machine to host a second virtual machine agent and a second container;

obtain a first network traffic event in response to the first container sending a message to the second container;

obtain a second network traffic event in response to the second container obtaining the message;

generate network topology information associated with the containerized application based on at least one of the inventory or a comparison of the first network traffic event and the second network traffic event;

generate a network topology for the containerized application based on the network topology information;

build a visualization based on the network topology, the visualization including the inventory and the network topology information; and

launch a user interface to display the visualization to execute one or more computing tasks.

9. The non-transitory computer readable storage medium of claim 8 , wherein the instructions, when executed, cause the one or more processors to build the inventory by:

filtering an application programming interface (API) call to determine whether the API call includes a request corresponding to at least one of the first container or the second container;

in response to determining that the request corresponds to the at least one of the first container or the second container, extracting metadata from the request;

determining a type of virtual network resource associated with the request based on the metadata;

in response to determining that the type of virtual network resource corresponds to a logical port, identifying the first container or the second container in communication with the logical port; and

identifying the first virtual machine or the second virtual machine hosting the identified container.

10. The non-transitory computer readable storage medium of claim 8 , wherein the inventory includes at least one of the first container, the second container, the first virtual machine, the second virtual machine, one or more logical switches, or one or more logical routers.

11. The non-transitory computer readable storage medium of claim 8 , wherein the first network traffic event and the second network traffic event include one or more tuples, the one or more tuples including at least one of a source Internet Protocol (IP) address, a destination IP address, a source port number, a destination port number, or a type of communication protocol.

12. The non-transitory computer readable storage medium of claim 8 , wherein the instructions, when executed, cause the one or more processors to:

compare first tuples included in the first network traffic event to second tuples included in the second network traffic event; and

determine that the first container is in communication with the second container based on a match of the first tuples and the second tuples.

13. The non-transitory computer readable storage medium of claim 8 , wherein the instructions, when executed, cause the one or more processors to:

determine whether the first network traffic event invokes a distributed firewall rule;

in response to determining that the first network traffic event invokes the distributed firewall rule, obtain network resource information associated with one or more virtual network resources in communication with at least one of the first container or the second container;

generate a container traffic message including the network resource information; and

generate the network topology information based on the network resource information.

14. The non-transitory computer readable storage medium of claim 8 , wherein the instructions, when executed, cause the one or more processors to:

extract a discovery scope from a request;

determine an intent of the discovery scope; and

in response to determining that the intent corresponds to identifying a container cluster, a container namespace, or a set of user-defined groups, determine whether the discovery scope is valid based on a quantity of containers associated with at least one of the first virtual machine or the second virtual machine.

15. A method to generate a visualization of a containerized application in a virtual environment, the method comprising:

building an inventory of the containerized application, the containerized application including a first virtual machine and a second virtual machine, the first virtual machine hosting a first virtual machine agent and a first container, the second virtual machine to host a second virtual machine agent and a second container;

obtaining a first network traffic event in response to the first container sending a message to the second container;

obtaining a second network traffic event in response to the second container obtaining the message;

generating network topology information associated with the containerized application based on at least one of the inventory or a comparison of the first network traffic event and the second network traffic event;

generating a network topology for the containerized application based on the network topology information;

building the visualization based on the network topology, the visualization including the inventory and the network topology information; and

launching a user interface to display the visualization to execute one or more computing tasks.

16. The method of claim 15 , wherein building the inventory includes:

filtering an application programming interface (API) call to determine whether the API call includes a request corresponding to at least one of the first container or the second container;

in response to determining that the request corresponds to the at least one of the first container or the second container, extracting metadata from the request;

determining a type of virtual network resource associated with the request based on the metadata;

in response to determining that the type of virtual network resource corresponds to a logical port, identifying the first container or the second container in communication with the logical port; and

identifying the first virtual machine or the second virtual machine hosting the identified container.

17. The method of claim 15 , wherein the inventory includes at least one of the first container, the second container, the first virtual machine, the second virtual machine, one or more logical switches, or one or more logical routers.

18. The method of claim 15 , wherein the first network traffic event and the second network traffic event include one or more tuples, the one or more tuples including at least one of a source Internet Protocol (IP) address, a destination IP address, a source port number, a destination port number, or a type of communication protocol.

19. The method of claim 15 , wherein the comparing of the first network traffic event and the second network traffic event includes comparing first tuples included in the first network traffic event to second tuples included in the second network traffic event, and determining that the first container is in communication with the second container based on the first tuples matching the second tuples.

20. The method of claim 15 , further including:

determining whether the first network traffic event invokes a distributed firewall rule;

in response to determining that the first network traffic event invokes the distributed firewall rule, obtaining network resource information associated with one or more virtual network resources in communication with at least one of the first container or the second container;

generating a container traffic message including the network resource information; and

generating the network topology information based on the network resource information.

21. The method of claim 15 , further including:

extracting a discovery scope from a request;

determining an intent of the discovery scope; and

in response to determining that the intent corresponds to identifying a container cluster, a container namespace, or a set of user-defined groups, determining whether the discovery scope is valid based on a quantity of containers associated with at least one of the first virtual machine or the second virtual machine.

Assignments (3)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2019
From: VUTUKURI, ADITI; LUO, LAN; PETRUS, MARGARET
To: VMWARE, INC.
Reel/Frame 051180/0578 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2019
From: WANG, BIN
To: VMWARE, INC.
Reel/Frame 051180/0633 →