US 12,248,816 B2
Techniques for deploying changes to improve reliability of a cloud service
Nidhi Verma, Redmond, WA (US); Rahul Nigam, Bothell, WA (US); and Rohan Khanna, Bellevue, WA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Jan. 11, 2022, as Appl. No. 17/573,481.
Prior Publication US 2023/0222001 A1, Jul. 13, 2023
Int. Cl. G06F 9/50 (2006.01); G06F 8/656 (2018.01)
CPC G06F 9/505 (2013.01) [G06F 8/656 (2018.02); G06F 9/5038 (2013.01)] 17 Claims
OG exemplary drawing
 
1. A data processing system comprising:
a processor; and
a machine-readable medium storing executable instructions that, when executed, cause the processor to perform operations comprising:
receiving a set of input parameters associated with an update to be deployed to a plurality of server farms of a cloud-based service during a deployment, each server farm including a primary replica configured to handle user traffic and a disaster recovery replica configured to handle the user traffic upon a failure of the primary replica, the set of input parameters including a deployment threshold indicating an optimal number of the plurality of server farms for which the primary replica is updated prior to updating the disaster recovery replica of the plurality of server farms, and a deployment increment indicating a number of server farms to be updated during each phase of a plurality of phases of the deployment, wherein the optimal number is greater than zero and less than a total number of primary replicas in the plurality of server farms;
storing temperature information for each of the plurality of server farms, the temperature information including a first temperature associated with the primary replica and a second temperature associated with the disaster recovery replica, the first temperature representing a load on the primary replica and the second temperature representing a load on the disaster recovery replica;
iteratively deploying the update to the primary replica of the plurality of server farms during each phase of the deployment according to a ranking of the plurality of server farms and the deployment increment until the deployment threshold has been satisfied, wherein the ranking is based on the temperature information; and
after the deployment threshold has been satisfied, iteratively deploying the update to remaining primary replicas of server farms for which the primary replica has not yet been updated along with the disaster recovery replica of the plurality of server farms during subsequent phases of the deployment according to the ranking of the server farms and the deployment increment.