IP Library Granted Patent US 11,388,046
Granted Patent B2
US 11,388,046 · App. 17/183,336 · Granted Jul 12, 2022

Port configuration for cloud migration readiness

Inventors: Rick Haggart (Mountain View, CA); Rangaswamy Jagannathan (Sunnyvale, CA); Michael Bello (Mountain View, CA); Ricardo A. Negrete (Scotts Valley, CA); Elizaveta Tavastcherna (San Jose, CA); Vitoo Suwannakinthorn (San Jose, CA)
Assignee: Virtual Instruments Worldwide, Inc.
H04L41/0803H04L41/14H04L63/029H04L67/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,388,046
App. No.
17/183,336
Granted
Jul 12, 2022
Kind
B2
Abstract

A method comprising discovering workload attributes and identify dependencies, receiving utilization performance measurements including memory utilization measurements of at least a subset of workloads, grouping workloads based on the workload attributes, the dependencies, and the utilization performance measurements into affinity groups, determining at least one representative synthetic workload for each affinity group, each representative synthetic workload including a time slice of a predetermined period of time when there are maximum performance values for any number of utilization performance measurements among virtual machines of that particular affinity group, determining at least one cloud service provider (CSP)'s cloud services based on performance of the representative synthetic workloads, and generating a report for at least one of the representative synthetic workloads, the report identifying the at least one of the representative synthetic workloads and the at least one CSP's cloud services including cloud workload cost.

Claims (69)

1. A system comprising:

at least one processor; and

memory including executable instructions that are executable by the at least one processor to:

receive a flow information regarding a plurality of flow packets from network traffic analyzing platforms, the network traffic analyzing platforms being in communication with an enterprise network, the plurality of flow packets indicating network traffic into and out of flow sources of the enterprise network;

generate a transport frequency table for each identified entity of the plurality of entities of the enterprise network, the transport frequency table keeping count of a number of times a port of the identified entity is identified in one of a plurality of received flow packets associated with the flow information;

for each particular flow packet of the plurality of flow packets:

determine a communication tuple, the communication tuple including a source port and a destination port, the source port being associated with one entity of a plurality of entities of the enterprise network, the destination port being associated with another entity of the plurality of entities of the enterprise network;

identify one or more entities of the enterprise network based on the communication tuple; and

increment the transport frequency table for the identified one or more entities of the enterprise network;

for each communication tuple of a plurality of communication tuples, designate one of the source port and the destination port as one of a plurality of server ports, and designate an other of the source port and the destination port as one of a plurality of client ports based at least on based on the transport frequency table;

receive utilization performance measurements including memory utilization measurements of at least one of the plurality of designated server ports and identified dependencies;

identify dependencies among compute, network, and storage elements of an enterprise system, the enterprise system including any number of networks, applications on servers, and storage devices which are on-premise;

identify a plurality of workloads of the enterprise network, the identify the plurality of workloads being based on received utilization performance measurements and the identified dependencies;

generate a discovery report based on the identified plurality of workloads, the discovery report including at least one of the plurality of designated server ports and at least one of the plurality of designed client ports associated with the identified plurality of workloads;

group workloads based on the identified dependencies, and the utilization performance measurements into affinity groups;

determine, for each of the affinity groups, a setting for a virtual firewal, the setting for the virtual firewall including a subset of designated server ports and a subset of designated client ports;

determine at least one representative synthetic workload for each affinity group, the at least one representative synthetic workload including at least one of the subset of designated server ports and at least one of the subset of designated client ports opened;

determine at least one cloud service provider (CSP)'s cloud services based on performance of the representative synthetic workloads; and

generate a report for at least one of the representative synthetic workloads, the report identifying the at least one of the representative synthetic workloads, the determination that at least one of the subset and the at least one CSP's cloud services including cloud workload cost, the cloud workload cost being based on a periodic cost associated with executing the at least one of the representative synthetic workload on the at least one CSP's cloud services.

2. The system of claim 1 , wherein the communication tuple further includes an internet protocol (IP) address associated with each of the source port and the destination port.

3. The system of claim 1 , wherein for each communication tuple of the plurality of communication tuples, the one of the source port and the destination port is designed with a higher transport frequency is designated as the server port.

4. The system of claim 3 , wherein for each communication tuple of the plurality of communication tuples, if the source port and the destination port has a same transport frequency, the one of the source port and the destination port that is registered is designated as the server port.

5. The system of claim 4 , wherein if neither of the source port or the destination port is registered, then the one of the source port and the destination port with a lowest port number is designated as the server port.

6. The system of claim 1 , wherein utilization performance measurements include CPU utilization measurements.

7. The system of claim 1 , wherein group workloads based on workload attributes, the dependencies, and the utilization performance measurements into the affinity groups comprising utilizing k-means clustering to partition at least the utilization performance measurements into a number of sets so as to minimize a within-cluster sum of squares.

8. The system of claim 1 , wherein group workloads based on workload attributes, the dependencies, and the utilization performance measurements into the affinity groups comprising utilizing k-means clustering to partition at least the utilization performance measurements and CPU utilization measurements into a number of sets so as to minimize a within-cluster sum of squares.

9. The system of claim 1 , wherein workload characteristics includes attributes of the entity associated with the workload.

10. A computer readable medium including instructions, the instructions being executable by a processor to perform a method, the method comprising:

receiving flow information regarding a plurality of flow packets from network traffic analyzing platforms, the network traffic analyzing platforms being in communication with an enterprise network, the plurality of flow packets indicating network traffic into and out of flow sources of the enterprise network;

for each particular flow packet of the plurality of flow packets:

determining a communication tuple, the communication tuple including a source port and a destination port, the source port being associated with one entity of a plurality of entities of the enterprise network, the destination port being associated with another entity of the plurality of entities of the enterprise network;

identifying one or more entities of the enterprise network based on the communication tuple; and

incrementing a transport frequency table for the identified one or more entities of the enterprise network;

generating the transport frequency table for each identified entity of the plurality of entities of the enterprise network, the transport frequency table keeping count of a number of times a port of the identified entity is identified in one of the plurality of received flow packets;

for each communication tuple of a plurality of communication tuples, designating one of the source port and the destination port as one of a plurality of server ports, and designating an other of the source port and the destination port as one of a plurality of client ports based at least on based on the transport frequency table;

receiving utilization performance measurements including memory utilization measurements of at least one of the plurality of designated server ports and identified dependencies;

identifying dependencies among compute, network, and storage elements of an enterprise system, the enterprise system including any number of networks, applications on servers, and storage devices which are on-premise;

identifying a plurality of workloads of the enterprise network, the identifying the plurality of workloads being based on received utilization performance measurements and the identified dependencies;

generating a discovery report based on the identified plurality of workloads, the discovery report including at least one of the plurality of designated server ports and at least one of the plurality of designed client ports associated with the identified plurality of workloads;

grouping workloads based on the identified dependencies, and the utilization performance measurements into affinity groups;

determining, for each of the affinity groups, a setting for a virtual firewall, the setting for the virtual firewall including a subset of designated server ports and a subset of designated client ports;

determining at least one representative synthetic workload for each affinity group, the at least one representative synthetic workload including at least one of the subset of designated server ports and at least one of the subset of designated client ports opened;

determining at least one cloud service provider (CSP)'s cloud services based on performance of the representative synthetic workloads; and

generating a report for at least one of the representative synthetic workloads, the report identifying the at least one of the representative synthetic workloads, the determination that at least one of the subset and the at least one CSP's cloud services including cloud workload cost, the cloud workload cost being based on a periodic cost associated with executing the at least one of the representative synthetic workload on the at least one CSP's cloud services.

11. The method of claim 10 , wherein the communication tuple further includes an internet protocol (IP) address associated with each of the source port and the destination port.

12. The method of claim 10 , wherein for each communication tuple of the plurality of communication tuples, the one of the source port and the destination port is designed with a higher transport frequency is designated as the server port.

13. The method of claim 12 , wherein for each communication tuple of the plurality of communication tuples, if the source port and the destination port has a same transport frequency, the one of the source port and the destination port that is registered is designated as the server port.

14. The method of claim 13 , wherein if neither of the source port or the destination port is registered, then the one of the source port and the destination port with a lowest port number is designated as the server port.

15. The method of claim 10 , wherein utilization performance measurements include CPU utilization measurements.

16. The method of claim 10 , wherein group workloads based on workload attributes, the dependencies, and the utilization performance measurements into the affinity groups comprising utilizing k-means clustering to partition at least the utilization performance measurements into a number of sets so as to minimize a within-cluster sum of squares.

17. The method of claim 10 , wherein group workloads based on workload attributes, the dependencies, and the utilization performance measurements into the affinity groups comprising utilizing k-means clustering to partition at least the utilization performance measurements and CPU utilization measurements into a number of sets so as to minimize a within-cluster sum of squares.

18. The method of claim 10 , wherein workload characteristics includes attributes of the entity associated with the workload.

19. A method comprising:

receiving flow information regarding a plurality of flow packets from network traffic analyzing platforms, the network traffic analyzing platforms being in communication with an enterprise network, the plurality of flow packets indicating network traffic into and out of flow sources of the enterprise network;

for each particular flow packet of the plurality of flow packets:

determining a communication tuple, the communication tuple including a source port and a destination port, the source port being associated with one entity of a plurality of entities of the enterprise network, the destination port being associated with another entity of the plurality of entities of the enterprise network;

identifying one or more entities of the enterprise network based on the communication tuple; and

incrementing a transport frequency table for the identified one or more entities of the enterprise network;

generating the transport frequency table for each identified entity of the plurality of entities of the enterprise network, the transport frequency table keeping count of a number of times a port of the identified entity is identified in one of the plurality of received flow packets;

for each communication tuple of a plurality of communication tuples, designating one of the source port and the destination port as one of a plurality of server ports, and designating an other of the source port and the destination port as one of a plurality of client ports based at least on based on the transport frequency table;

receiving utilization performance measurements including memory utilization measurements of at least one of the plurality of designated server ports and identified dependencies;

identifying dependencies among compute, network, and storage elements of an enterprise system, the enterprise system including any number of networks, applications on servers, and storage devices which are on-premise;

identifying a plurality of workloads of the enterprise network, the identifying the plurality of workloads being based on received utilization performance measurements and the identified dependencies;

generating a discovery report based on the identified plurality of workloads, the discovery report including at least one of the plurality of designated server ports and at least one of the plurality of designed client ports associated with the identified plurality of workloads;

grouping workloads based on the identified dependencies, and the utilization performance measurements into affinity groups;

determining, for each of the affinity groups, a setting for a virtual firewall, the setting for the virtual firewall including a subset of designated server ports and a subset of designated client ports;

determining at least one representative synthetic workload for each affinity group, the at least one representative synthetic workload including a determination that at least one of the subset of designated server ports and at least one of the subset of designated client ports opened;

determining at least one cloud service provider (CSP)'s cloud services based on performance of the representative synthetic workloads; and

generating a report for at least one of the representative synthetic workloads, the report identifying the at least one of the representative synthetic workloads, the determination that at least one of the subset and the at least one CSP's cloud services including cloud workload cost, the cloud workload cost being based on a periodic cost associated with executing the at least one of the representative synthetic workload on the at least one CSP's cloud services.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2022
From: HAGGART, RICK; JAGANNATHAN, RANGASWAMY; BELLO, MICHAEL; NEGRETE, RICARDO A.; TAVASTCHERNA, ELIZAVETA; SUWANNAKINTHORN, VITOO
To: VIRTUAL INSTRUMENTS WORLDWIDE, INC.
Reel/Frame 059876/0309 →
SECURITY INTEREST Recorded Jan 10, 2022
From: VIRTUAL INSTRUMENTS CORPORATION; VIRTUAL INSTRUMENTS WORLDWIDE, INC.; XANGATI, INC.
To: MIDTOWN MADISON MANAGEMENT LLC
Reel/Frame 058668/0268 →
Continuity (3)
Continuation In Part 16794174 · Feb 18, 2020
Provisional Application 62806696 · Feb 15, 2019
Related Publication 20210203547A1 · Jul 1, 2021