System and method to distribute traffic flows among a plurality of applications in a data center system
A system and method to distribute traffic flows among a plurality of applications in a data center system. An apparatus is operable with a plurality of applications connected through a programmable switch and is configured to select traffic flows to ones of the plurality of applications. The apparatus is also configured to monitor and collect statistics for the traffic flows to determine rule level statistics, and move at least one traffic flow of the traffic flows from a network interface to a different network interface based on the rule level statistics.
1. An apparatus operable with a plurality of applications connected through a programmable switch comprising:
processing circuitry; and
a memory comprising instructions which, when executed by the processing circuitry, cause the apparatus to:
select traffic flows to ones of said plurality of applications;
monitor and collect statistics for said traffic flows to determine rule level statistics;
move, based on said rule level statistics, at least one traffic flow of said traffic flows from a network interface to a different network interface, the different network interface comprising a new NIC or a new virtual function; and
move, to the new NIC or the new virtual function, rules for the traffic flows, such that rules for one type of traffic flow are not co-located with rules for another type of traffic flow.
2. The apparatus as recited in claim 1 , wherein said programmable switch is an open virtual switch (OVS).
3. The apparatus as recited in claim 1 , wherein said plurality of applications comprises at least one of a virtual machine, a container and a microservice.
4. The apparatus as recited in claim 1 , wherein said different network interface comprises a rule processing thread to control said at least one traffic flow.
5. The apparatus as recited in claim 4 , wherein said rule processing thread is a different rule processing thread.
6. The apparatus as recited in claim 1 , wherein is the apparatus further to group said traffic flows according to a priority.
7. The apparatus as recited in claim 1 , wherein the apparatus further to associate a timestamp with said at least one traffic flow.
8. The apparatus as recited in claim 1 , wherein the apparatus further to register said traffic flows with said programmable switch.
9. The apparatus as recited in claim 1 , wherein the apparatus further to return said at least one traffic flow to said network interface.
10. The apparatus as recited in claim 1 , wherein the apparatus further to inform a network manager of said at least one traffic flow being moved to a different network interface to enable the network manager to configure rules for said programmable switch or another programmable switch to control said at least one traffic flow.
11. The apparatus as recited in claim 10 , wherein said network manager comprises a software-defined network controller.
12. The apparatus as recited in claim 1 , wherein the apparatus further to inform a network manager of a reprioritization of said at least one traffic flow to enable the network manager to reconfigure rules for said programmable switch or another programmable switch to control said at least one traffic flow that is part of a traffic service chain.
13. The apparatus as recited in claim 1 , wherein the apparatus further to move said at least one traffic flow in response to a change in traffic rule matching statistics.
14. The apparatus as recited in claim 1 , wherein the apparatus further to apply a low priority rule to move said at least one traffic flow when said at least one traffic flow is high.
15. The apparatus as recited in claim 1 , wherein the apparatus further to apply a high priority rule to move said at least one traffic flow when said at least one traffic flow is low.
16. A method operable with a plurality of applications connected through a programmable switch comprising:
selecting traffic flows to ones of said plurality of applications;
monitoring and collecting statistics for said traffic flows to determine rule level statistics;
moving, based on said rule level statistics, at least one traffic flow of said traffic flows from a network interface to a different network interface, the different network interface comprising a new NIC or a new virtual function; and
moving, to the new NIC or the new virtual function, rules for the traffic flows, such that rules for one type of traffic flow are not co-located with rules for another type of traffic flow.
17. The method as recited in claim 16 , wherein said different network interface comprises a rule processing thread to control said at least one traffic flow.
18. The method as recited in claim 17 , wherein said rule processing thread is a different rule processing thread.
19. The method as recited in claim 16 further comprising informing a network manager of said at least one traffic flow being moved to a different network interface to enable the network manager to configure rules for said programmable switch or another programmable switch to control said at least one traffic flow.