Predictive application-aware load-balancing based on failure uncertainty
In one embodiment, a device obtains metrics for a plurality of network paths via which traffic for an online application may be conveyed. The device models, for each of the plurality of network paths, uncertainty of an application experience metric predicted for the online application across different values of one or more metrics for that path, based on its obtained metrics. The device generates, based on the uncertainty of the application experience metric modeled for each of the plurality of network paths, a load balancing schedule for the plurality of network paths, to maximize the application experience metric for the online application across the plurality of network paths and with a minimal amount of uncertainty. The device causes traffic for the online application to be load balanced across the plurality of network paths in accordance with the load balancing schedule.
1 . A method comprising:
accessing a datalake for a plurality of network paths via which traffic for an online application may be conveyed;
predicting, for each path of the plurality of network paths, based at least in part on the datalake, a probability of a service level agreement (SLA) violation of an application experience metric;
modeling, for the application experience metric at each of the plurality of network paths, uncertainty of the predicted probability of the SLA violation at multiple throughput values, where a lower number of samples in the datalake related to the application experience metric corresponds to a higher uncertainty value at a particular throughput value;
predicting an amount of the traffic for the online application;
generating, based at least in part on the uncertainty of the predicted probability of the SLA violation at the multiple throughput values for each of the plurality of network paths, and based at least in part on the predicting the amount of the traffic for the online application, a load balancing schedule for the online application on the plurality of network paths; and
causing traffic for the online application to be load balanced across the plurality of network paths in accordance with the load balancing schedule.
2 . The method as in claim 1 , wherein the application experience metric comprises voice degradation.
3 . The method as in claim 1 , wherein the application experience metric is based on feedback provided by users of the online application.
4 . The method as in claim 1 , wherein the application experience metric is based on an SLA template.
5 . The method as in claim 1 , wherein modeling the uncertainty further comprises:
determining, for a particular network path in the plurality of network paths, that the datalake contains an insufficient number of the samples for a certain throughput value or for a range of throughput values; and
causing an experiment to be conducted along the particular network path, in order to obtain sample data for the certain throughput value or the range of throughput values.
6 . The method as in claim 5 , wherein the experiment entails rerouting at least a portion of the traffic for the online application along the particular network path.
7 . The method as in claim 5 , wherein the experiment entails sending synthetic traffic along the particular network path.
8 . The method as in claim 1 , wherein the generating the load balancing schedule is based further in part on one or more rules specified via a user interface.
9 . The method as in claim 1 , wherein the load balancing schedule is generated based at least in part on balancing a lower probability of an SLA violation and a higher throughput while maintaining a low uncertainty.
10 . The method as in claim 1 , wherein the load balancing schedule causes a session for the online application to be split among two or more of the plurality of network paths.
11 . An apparatus, comprising:
one or more network interfaces;
a processor coupled to the one or more network interfaces and configured to execute one or more processes; and
a memory configured to store a process that is executable by the processor, the process when executed configured to:
access a datalake for a plurality of network paths via which traffic for an online application may be conveyed;
predict, for each path of the plurality of network paths, based at least in part on the datalake, a probability of a service level agreement (SLA) violation of an application experience metric;
model, for the application experience metric at each of the plurality of network paths, uncertainty of the predicted probability of the SLA violation at multiple throughput values, where a lower number of samples in the datalake related to the application experience metric corresponds to a higher uncertainty value at a particular throughput value;
predict an amount of the traffic for the online application;
generate, based at least in part on the uncertainty of the predicted probability of the SLA violation at the multiple throughput values for each of the plurality of network paths, and based at least in part on the predicting the amount of the traffic for the online application, a load balancing schedule for the online application on the plurality of network paths; and
cause traffic for the online application to be load balanced across the plurality of network paths in accordance with the load balancing schedule.
12 . The apparatus as in claim 11 , wherein the application experience metric comprises voice degradation.
13 . The apparatus as in claim 11 , wherein the application experience metric is based on feedback provided by users of the online application.
14 . The apparatus as in claim 11 , wherein the application experience metric is based on an SLA template.
15 . The apparatus as in claim 11 , wherein the uncertainty is further modeled by the apparatus by:
determining, for a particular network path in the plurality of network paths, that the datalake contains an insufficient number of samples for a certain throughput value or for a range of throughput values; and
causing an experiment to be conducted along the particular network path, in order to obtain sample data for the certain throughput value or the range of throughput values.
16 . The apparatus as in claim 15 , wherein the experiment entails rerouting at least a portion of the traffic for the online application along the particular network path.
17 . The apparatus as in claim 15 , wherein the experiment entails sending synthetic traffic along the particular network path.
18 . The apparatus as in claim 11 , wherein the apparatus generates the load balancing schedule based further in part on one or more rules specified via a user interface.
19 . The apparatus as in claim 11 , wherein the load balancing schedule is generated based at least in part on balancing a lower probability of the SLA violation and a higher throughput while maintaining a low uncertainty.
20 . A tangible, non-transitory, computer-readable medium storing program instructions that cause a device to execute a process comprising:
accessing a datalake for a plurality of network paths via which traffic for an online application may be conveyed;
predicting, for each path of the plurality of network paths, based at least in part on the datalake, a probability of a service level agreement (SLA) violation of an application experience metric;
modeling, for the application experience metric at each of the plurality of network paths, uncertainty of the predicted probability of the SLA violation at multiple throughput values, where a lower number of samples in the datalake related to the application experience metric corresponds to a higher uncertainty value at a particular throughput value;
predicting an amount of the traffic for the online application;
generating, based at least in part on the uncertainty of the predicted probability of the SLA violation at the multiple throughput values for each of the plurality of network paths, and based at least in part on the predicting the amount of the traffic for the online application, a load balancing schedule for the online application on the plurality of network paths; and
causing traffic for the online application to be load balanced across the plurality of network paths in accordance with the load balancing schedule.