TIME-AWARE ROLLOUTS FOR CLOUD SOFTWARE
Cloud software provides services to client devices and other cloud software. During a period of time in which cloud software is being rolled out, such as during an upgrade, the performance of the software may be degraded, or the software may even be offline during the rollout. A workload of the cloud software over a previous period of time is analyzed and used to determine a rollout window. The rollout window is a period of time during which the expected usage of the cloud software is relatively low. Accordingly, the disruptive effect of the rollout is reduced in comparison with systems that do not determine a rollout window based on usage data.
1 . A system comprising:
one or more hardware processors; and
a memory that stores instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations comprising:
determining, for each rollout window of a set of rollout windows, a maximum workload of a resource within the rollout window on a set of previous dates;
ranking, for each of the previous dates, each of the rollout windows of the set of rollout windows based on the maximum workload of the resource during the rollout window;
determining, for each rollout window of the set of rollout windows, a sum of the ranks during the rollout window on the set of previous dates;
selecting, based on the maximum workloads, a rollout window of the set of rollout windows having a lowest sum of the ranks among the sums determined for each rollout window of the set of rollout windows; and
based on the selection of the rollout window, deploying a cloud application to the resource during the selected rollout window.
2 . The system of claim 1 , wherein the set of rollout windows comprises twenty-four rollout windows, each of the twenty-four rollout windows beginning at a different hour of a day.
3 . The system of claim 2 , wherein each of the twenty-four rollout windows has a one-hour duration.
4 . The system of claim 2 , wherein each of the twenty-four rollout windows has a two-hour duration.
5 . The system of claim 1 , wherein the set of previous dates comprises a plurality of dates that have a same day of week as a day in which the cloud application is deployed and excludes dates having a different day of week as the day in which the cloud application is deployed.
6 . The system of claim 5 , wherein the set of previous dates comprises a most recently completed three dates that have the same day of week as the day in which the cloud application is deployed.
7 . (canceled)
8 . The system of claim 1 , wherein the selecting of the rollout window comprises determining a rollout window for a day of a week.
9 . The system of claim 1 , wherein the selecting of the rollout window comprises determining a single rollout window for all days of a week.
10 . A method comprising:
determining, by one or more hardware processors and for each rollout window of a set of rollout windows, a maximum workload of a resource within the rollout window on a set of previous dates;
ranking, for each of the previous dates, each of the rollout windows of the set of rollout windows based on the maximum workload of the resource during the rollout window;
determining, for each rollout window of the set of rollout windows, a sum of the ranks during the rollout window on the set of previous dates;
selecting, based on the maximum workloads, a rollout window of the set of rollout windows having a lowest sum of the ranks among the sums determined for each rollout window of the set of rollout windows; and
based on the selection of the rollout window, deploying a cloud application to the resource during the selected rollout window.
11 . The method of claim 10 , wherein the set of rollout windows comprises twenty-four rollout windows, each of the twenty-four rollout windows beginning at a different hour of a day.
12 . The method of claim 11 , wherein each of the twenty-four rollout windows has a one-hour duration.
13 . The method of claim 11 , wherein each of the twenty-four rollout windows has a two-hour duration.
14 . The method of claim 10 , wherein the set of previous dates comprises a plurality of dates that have a same day of week as a day in which the cloud application is deployed and excludes dates having a different day of week as the day in which the cloud application is deployed.
15 . The method of claim 14 , wherein the set of previous dates comprises a most recently completed three dates that have the same day of week as the day in which the cloud application is deployed.
16 . (canceled)
17 . The method of claim 10 , wherein the selecting of the rollout window comprises determining a rollout window for a day of a week.
18 . A non-transitory machine-storage medium comprising instructions that, when executed by one or more hardware processors of a machine, cause the machine to perform operations comprising:
determining, for each rollout window of a set of rollout windows, a maximum workload of a resource within the rollout window on a set of previous dates;
ranking, for each of the previous dates, each of the rollout windows of the set of rollout windows based on the maximum workload of the resource during the rollout window;
determining, for each rollout window of the set of rollout windows, a sum of the ranks during the rollout window on the set of previous dates;
selecting, based on the maximum workloads, a rollout window of the set of rollout windows having a lowest sum of the ranks among the sums determined for each rollout window of the set of rollout windows; and
based on the selection of the rollout window, deploying a cloud application to the resource during the selected rollout window.
19 . The non-transitory machine-storage medium of claim 18 , wherein the set of rollout windows comprises twenty-four rollout windows, each of the twenty-four rollout windows beginning at a different hour of a day.
20 . The non-transitory machine-storage medium of claim 19 , wherein each of the twenty-four rollout windows has a one-hour duration.
21 . The non-transitory machine-storage medium of claim 19 , wherein each of the twenty-four rollout windows has a two-hour duration.
22 . The non-transitory machine-storage medium of claim 18 , wherein the set of previous dates comprises a plurality of dates that have a same day of week as a day in which the cloud application is deployed and excludes dates having a different day of week as the day in which the cloud application is deployed.