US2015277892A1PendingUtilityA1

Multi-phase software delivery

Assignee: AMAZON TECH INCPriority: Mar 30, 2011Filed: Jun 10, 2015Published: Oct 1, 2015
Est. expiryMar 30, 2031(~4.7 yrs left)· nominal 20-yr term from priority
Inventors:Fancong Zeng
G06F 11/0709G06F 8/65H04L 67/10G06F 11/3495G06F 11/3006H04L 41/0869H04L 41/0813G06F 11/302H04L 41/082
38
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A service manager component associated with a set of hosts receives an update to be implemented on the set of hosts. The service manager component can then determine a penalty model that approximates the likely impact associated with an error in the update. Based on the penalty model, the service manager component selects a first subset of hosts to receive and implement the update and an observation window to determine whether an error has emerged or has been detected. If no errors are detected during the observation window, the service manager component can select additional subsets and observations windows and repeat the process or, alternatively, implement the update in the remaining set of hosts and monitor the system until it receives the next update.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method for managing updates to a set of hosts associated with a service provider, comprising:
 obtaining an update to be implemented on a set of computing devices;   obtaining a characterization of a numerical measure that quantifies an error occurring during deployment of the update in a first subset of the set of computing devices and an error occurring during deployment of the update in the set of computing devices;   determining a size of the first subset based, at least in part, on a minimization of the numerical measure;   causing a deployment of the update in the first subset of computing devices corresponding to the determined size of the first subset; and   determining a timing for a deployment of the update in the set of computing devices based, at least in part, on an attribute associated with the deployment of the update in the first subset of computing devices;   the method performed programmatically by one or more computing systems under control of executable program code.   
     
     
         2 . The method of  claim 1 , wherein the update corresponds to at least one of an upgrade, modification, patch, or configuration. 
     
     
         3 . The method of  claim 1 , wherein the numerical measure includes an amount of time in which at least one error associated with the deployment of the update is present and not yet mitigated. 
     
     
         4 . The method of  claim 1  further comprising determining a duration of time associated with the deployment of the update in the first subset. 
     
     
         5 . The method of  claim 4 , wherein determining the duration of time comprises determining the duration of time based, at least in part, on a minimization of the numerical measure. 
     
     
         6 . The method of  claim 4 , wherein determining the duration of time comprises determining the duration of time based, at least in part, on the size of the first subset. 
     
     
         7 . The method of  claim 1 , wherein the characterization of the numerical measure includes at least one mathematical formula for the numerical measure. 
     
     
         8 . The method of  claim 7 , wherein the at least one mathematical formula is based, at least in part, on a distribution of time before an initial error occurs during the deployment of the update. 
     
     
         9 . The method of  claim 7 , wherein the minimization of the numerical measure is based, at least in part, on partial derivatives applicable to the at least one mathematical formula. 
     
     
         10 . The method of  claim 1 , wherein the attribute associated with the deployment of the update in the first subset corresponds to a timing of detecting an error during the deployment of the update in the first subset. 
     
     
         11 . A system for managing updates comprising:
 a set of hosts for providing services to service clients, the set of hosts each including a processor and maintaining software applications;   a host manager component, implemented on a computing system including one or more processors and memory, the host manager component operative to:
 obtain an update to be deployed on the set of hosts; 
 determine a size of a first subset of the set of hosts based, at least in part, on a minimization of a first quantification of an error occurring during deployment of the update in the first subset of hosts and a second quantification of an error occurring during deployment of the update in the set of hosts; 
 cause the deployment of the update in the first subset of hosts corresponding to the determined size of the first subset; and 
 determine a timing for a deployment of the update in the set of hosts based, at least in part, on an attribute associated with the deployment of the update in the first subset of hosts. 
   
     
     
         12 . The system of  claim 11 , wherein the attribute associated with the deployment of the update in the first subset includes an amount of time in which no error is detected during the deployment of the update in the first subset. 
     
     
         13 . The system of  claim 11 , wherein the host manager component is further operative to obtain at least one of a criterion for identifying the set of hosts, timing for completion of the update, or information for testing verification. 
     
     
         14 . The system of  claim 11 , wherein the host manager component is further operative to detect an error during the deployment of the update in the first subset of hosts. 
     
     
         15 . The system of  claim 14 , wherein the host manage component is further operative to cause mitigation of the detected error. 
     
     
         16 . The system of  claim 15 , wherein mitigation of the detected error includes at least one of recalling the update, restoring a previous version of software application, instantiating a new virtual instance of a host, turning off a feature, or reconfiguration of the first subset of hosts. 
     
     
         17 . The system of  claim 11 , wherein the first and second quantifications are characterized in accordance with a penalty model. 
     
     
         18 . A non-transitory computer readable storage medium storing computer executable instructions that instruct one or more processors to perform operations comprising:
 obtaining an update to be deployed on a set of computing devices;   determining a size of a first subset of the set of computing devices based, at least in part, on a minimization of a numerical measure that quantifies an error occurring during deployment of the update in the first subset of computing devices and an error occurring during deployment of the update in the set of computing devices in accordance with a characterization of the numerical measure;   causing a deployment of the update in the first subset of computing devices corresponding to the determined size of the first subset; and   causing a deployment of the update in the set of computing devices based, at least in part, on a timing of error occurrence during the deployment of the update in the first subset of computing devices.   
     
     
         19 . The non-transitory computer readable storage medium of  claim 18 , wherein the characterization of the numerical measure includes at least one of a duration of time associated with the deployment of the update in the first subset, a time interval between error occurrence and error mitigation, or a time for next scheduled update. 
     
     
         20 . The non-transitory computer readable storage medium of  claim 18 , wherein the operations further comprise:
 determining a size of a second subset of the set of computing devices; and   causing a deployment of the update in the second subset prior to the deployment of the update in the set of computing devices.   
     
     
         21 . The non-transitory computer readable storage medium of  claim 20 , wherein the size of the second subset is larger than the size of the first subset.

Join the waitlist — get patent alerts

Track US2015277892A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.