Application aware adaptive routing
In general, this disclosure describes techniques for a computing system configured to obtain a plurality of records indicating historical traffic flows for an application having application instances executing at a plurality of data centers. The computing system may be configured to determine, based on the plurality of records, whether a current network configuration will satisfy service level expectations (SLEs) for the application, the current network configuration including first configuration information for a first set of links. The computing system may be configured to, based on determining the current network configurations will not satisfy the SLEs for the application: generate, based on the plurality of records and the SLEs, a new network configuration including second configuration information for a second set of links; provision, based on the new network configuration, the second set of links at the plurality of data centers to facilitate the traffic flows among the application instances.
1 . A computing system comprising processing circuitry having access to a memory, the processing circuitry configured to:
obtain a plurality of records indicating historical traffic flows for an application having application instances executing at each of a plurality of data centers;
determine, based on the plurality of records, whether a current network configuration for connections among the plurality of data centers will satisfy one or more service level expectations (SLEs) for the application, the current network configuration including first configuration information for a first set of links that facilitate traffic flows among the application instances located in different data centers of the plurality of data centers; and
based on determining the current network configuration will not satisfy the one or more SLEs for the application: generate, based on the plurality of records and the one or more SLEs, a new network configuration including second configuration information for a second set of links, and provision, based on the new network configuration, the second set of links at the plurality of data centers to facilitate the traffic flows among the application instances located in different data centers of the plurality of data centers.
2 . The computing system of claim 1 , wherein the plurality of data centers includes at least two of: an on-premises data center, a colocation data center, and a cloud service provider.
3 . The computing system of claim 1 , wherein the new network configuration includes second configuration information indicating a policy defining respective time windows for creating, using, and decommissioning the second set of links, and wherein to provision the second set of links, the processing circuitry is configured to send the policy to routers interconnecting the plurality of data centers.
4 . The computing system of claim 1 , wherein the new network configuration includes second configuration information indicating respective link types for the second set of links.
5 . The computing system of claim 1 , wherein to generate the new network configuration, the processing circuitry is configured to:
determine, based on the plurality of records and for each link of the first set of links, a baseline bandwidth to facilitate the traffic flows of the application instances executing at the plurality of data centers; and
generate, using a machine learning model, the new network configuration based on the baseline bandwidth and the one or more SLEs for the application.
6 . The computing system of claim 1 , wherein to generate the new network configuration, the processing circuitry is further configured to: update the new network configuration based on cost information associated with executing the application instances at the plurality of data centers.
7 . The computing system of claim 1 , wherein to determine whether the current network configuration will satisfy the one or more SLEs for the application, the processing circuitry is configured to determine whether the current network configuration will satisfy the one or more SLEs during a time window associated with high network traffic associated with the application.
8 . The computing system of claim 1 , wherein to determine the current network configuration will satisfy the one or more SLEs for the application, the processing circuitry is configured to determine whether the current network configuration will satisfy the one or more SLEs during a time window associated with synchronizing data for the application at the plurality of data centers.
9 . The computing system of claim 1 , wherein to determine whether the current network configuration will satisfy the one or more SLEs for the application, the processing circuitry is configured to:
determine, based on the plurality of records, traffic metrics associated with the application; and
determine, based on the traffic metrics, whether the current network configuration will satisfy the one or more SLEs for the application.
10 . The computing system of claim 9 , wherein:
the traffic metrics include one or more of: bandwidth, jitter, latency, packet loss, and throughput associated with the traffic flows among the application instances; and
the one or more SLEs for the application includes one or more of: a service availability threshold, performance indicator conditions, user experience criteria, a number of allowable packet drops, bandwidth thresholds, and latency thresholds.
11 . A method comprising:
obtaining, by a cloud management system, a plurality of records indicating historical traffic flows for an application having application instances executing at each of a plurality of data centers;
determining, by the cloud management system and based on the plurality of records, whether a current network configuration for connections among the plurality of data centers will satisfy one or more service level expectations (SLEs) for the application, the current network configuration including first configuration information for a first set of links that facilitate traffic flows among the application instances located in different data centers of the plurality of data centers; and
based on determining the current network configuration will not satisfy the one or more SLEs for the application: generating, by the cloud management system and based on the plurality of records and the one or more SLEs, a new network configuration including second configuration information for a second set of links, and provisioning, by the cloud management system and based on the new network configuration, the second set of links at the plurality of data centers to facilitate the traffic flows among the application instances located in different data centers of the plurality of data centers.
12 . The method of claim 11 , wherein the plurality of data centers includes at least two of: an on-premises data center, a colocation data center, and a cloud service provider.
13 . The method of claim 11 , wherein the new network configuration includes second configuration information indicating a policy defining respective time windows for creating, using, and decommissioning the second set of links, and wherein provisioning the second set of links comprises sending the policy to routers interconnecting the plurality of data centers.
14 . The method of claim 11 , wherein generating the new network configuration comprises:
determining, based on the plurality of records and for each link of the first set of links, a baseline bandwidth to facilitate the traffic flows of the application instances executing at the plurality of data centers; and
generating, using a machine learning model, the new network configuration based on the baseline bandwidth and the one or more SLEs for the application.
15 . The method of claim 11 , wherein generating the new network configuration further comprises: updating the new network configuration based on cost information associated with executing the application instances at the plurality of data centers.
16 . The method of claim 11 , wherein determining whether the current network configuration will satisfy the one or more SLEs for the application comprises: determining whether the current network configuration will satisfy the one or more SLEs during a time window associated with high network traffic associated with the application.
17 . The method of claim 11 , wherein determining whether the current network configuration will satisfy the one or more SLEs for the application comprises: determining whether the current network configuration will satisfy the one or more SLEs during a time window associated with synchronizing data for the application at the plurality of data centers.
18 . Non-transitory computer-readable storage media, storing instructions, that when executed by processing circuitry, cause the processing circuitry to:
obtain a plurality of records indicating historical traffic flows for an application having application instances executing at each of a plurality of data centers;
determine, based on the plurality of records, whether a current network configuration for connections among the plurality of data centers will satisfy one or more service level expectations (SLEs) for the application, the current network configuration including first configuration information for a first set of links that facilitate traffic flows among the application instances located in different data centers of the plurality of data centers; and
based on determining the current network configuration will not satisfy the one or more SLEs for the application: generate, based on the plurality of records and the one or more SLEs, a new network configuration including second configuration information for a second set of links, and provision, based on the new network configuration, the second set of links at the plurality of data centers to facilitate the traffic flows among the application instances located in different data centers of the plurality of data centers.
19 . The non-transitory computer-readable storage media of claim 18 , wherein the plurality of data centers includes at least two of: an on-premises data center, a colocation data center, and a cloud service provider.
20 . The non-transitory computer-readable storage media of claim 18 , wherein the new network configuration includes second configuration information indicating a policy defining respective time windows for creating, using, and decommissioning the second set of links, and wherein to provision the second set of links, the processing circuitry is configured to send the policy to routers interconnecting the plurality of data centers.