Improving software defined networking controller availability using machine learning techniques
A method of managing a controller of a software defined networking (SDN) network is implemented by a computing device in the SDN network. The method includes receiving status information for the controller, receiving usage information for the operating environment, generating at least one failure prediction for the controller based on the received status information, and outputting prediction information for the at least one failure prediction.
1. A method of managing a software defined networking (SDN) controller of an SDN network implemented by a computing device in the SDN network, the method comprising:
receiving status information for the SDN controller, wherein the status information for the SDN controller comprises network configuration and network events;
receiving usage information for an operating environment, wherein the operating environment includes processors, memories, and network resources, and wherein the usage information comprises usage of the processors, memories, and network resources;
generating, by use of a machine learning model, at least one failure prediction for the SDN controller based on the status information for the SDN controller, the usage information of the operating environment, historic status information of the SDN controller, and historic usage information of the operating environment, wherein the at least one failure prediction for the SDN controller is generated by the machine learning model utilizing the status information and the usage information as inputs to the machine learning model, and trained on historic status information of the SDN controller and historic usage information of the operating environment;
determining whether the at least one failure prediction for the SDN controller exceeds a configured threshold;
in response to the at least one failure prediction exceeding the configured threshold, outputting prediction information as an output from the machine learning model for the at least one failure prediction for the SDN controller, wherein the prediction information includes a probability of failure over a given time period and a root cause for failure of the SDN controller, wherein the root cause for failure is based on at least one input to the machine learning model; and
sending the prediction information to a correction unit for the SDN controller or to the SDN controller to implement a corrective action by the SDN controller for the root cause for failure.
2. The method of claim 1 , wherein the status information for the SDN controller and the usage information for the operating environment is received from a monitor.
3. The method of claim 1 , wherein the status information for the SDN controller includes internal packet processing queue sizes.
4. A non-transitory machine-readable storage medium comprising computer program code which, when executed by a computer managing a software defined networking (SDN) controller of an SDN network implemented by a computing device in the SDN network, causes performing of operations comprising:
receiving status information for the SDN controller, wherein the status information for the SDN controller comprises network configuration and network events;
receiving usage information for an operating environment, wherein the operating environment includes processors, memories, and network resources, and wherein the usage information comprises usage of the processors, memories, and network resources;
generating, by use of a machine learning model, at least one failure prediction for the SDN controller based on the status information for the SDN controller, the usage information of the operating environment, historic status information of the SDN controller, and historic usage information of the operating environment, wherein the at least one failure prediction for the SDN controller is generated by the machine learning model utilizing the status information and the usage information as inputs to the machine learning model, and trained on historic status information of the SDN controller and historic usage information of the operating environment;
determining whether the at least one failure prediction for the SDN controller exceeds a configured threshold;
in response to the at least one failure prediction exceeding the configured threshold, outputting prediction information as an output from the machine learning model for the at least one failure prediction for the SDN controller, wherein the prediction information includes a probability of failure over a given time period and a root cause for failure of the SDN controller, wherein the root cause for failure is based on at least one input to the machine learning model; and
sending the prediction information to a correction unit for the SDN controller or to the SDN controller to implement a corrective action by the SDN controller for the root cause for failure.
5. The non-transitory machine-readable storage medium of claim 4 , wherein the status information for the SDN controller and the usage information for the operating environment is received from a monitor.
6. The non-transitory machine-readable storage medium of claim 4 , wherein the status information for the SDN controller includes internal packet processing queue sizes.
7. A computing device for managing a software defined networking (SDN) controller of an SDN network implemented by the computing device in the SDN network, the computing device comprising:
a set of processors; and
a non-transitory machine-readable medium having stored therein a prediction unit, the set of processors to execute the prediction unit to:
receive status information for the SDN controller, wherein the status information for the SDN controller comprises network configuration and network events;
receive usage information for an operating environment;
generate, by use of a machine learning model, at least one failure prediction for the SDN controller based on the status information for the SDN controller, the usage information of the operating environment, historic status information of the SDN controller, and historic usage information of the operating environment, wherein the at least one failure prediction for the SDN controller is generated by the machine learning model utilizing the status information and the usage information as inputs to the machine learning model, and trained on historic status information of the SDN controller and historic usage information of the operating environment;
determine whether the at least one failure prediction for the SDN controller exceeds a configured threshold;
in response to the at least one failure prediction exceeding the configured threshold, output prediction information as an output from the machine learning model for the at least one failure prediction for the SDN controller, wherein the prediction information includes a probability of failure over a given time period and a root cause for failure of the SDN controller, wherein the root cause for failure is based on at least one input to the machine learning model; and
send the prediction information to a correction unit for the SDN controller or to the SDN controller to implement a corrective action by the SDN controller for the root cause for failure.
8. The computing device of claim 7 , wherein the status information for the SDN controller and the usage information for the operating environment is received from a monitor.
9. The computing device of claim 7 , wherein the status information for the SDN controller includes internal packet processing queue sizes.