Automated transparent distribution of updates to server computer systems in a fleet
AssigneeAmazon Technologies, Inc.
InventorsJulien Delange, Daniel Edenhofer
Life of this patent
Estimating the term…
Abstract
A deployment subsystem provides updates to an application and/or software executed by server computer systems. The update is included in an update script. Execution of the update script by a server computer system causes the server computer system to execute a set of checks. After completing the set of checks the server computer system may execute the update to the application and/or software executed by server computer systems.
Claims20
A non-transitory computer-readable storage medium storing executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to at least:
- obtain an update to an application executed by a server computer system operated by a computing resource service provider;
- generate an update script based at least in part on the update, the update script including a plurality of conditions and a plurality of operations, at least one condition of the plurality of conditions indicating that a volume served by the server computer system is to be available on another server computer system prior to updating the application;
- provide the update script to the server computer system;
- cause the server computer system to execute the update script, the update script causing the server computer system to:
- generate a set of determinations, members of the set of determinations indicate whether a condition of the plurality of conditions is satisfied;
- and
- as a result of the at least one condition not being satisfied based at least in part on a determination of the set of determinations, perform at least one operation to satisfy the at least one condition and returning an exception;
- as a result of obtaining the exception, update a wait list to indicate that the server computer system will rerun the script at a later time;
- and
- as a result of determining that the plurality of conditions is satisfied based at least in part on the set of determinations, cause the server computer system to update the application.
A computer-implemented method, comprising:
- obtaining, at a deployment subsystem, an update script to update software executed by a server computer system, the update script indicating a plurality of operations that, as a result of being executed successfully, causes the server computer system to update the software, the update script further indicating a plurality of conditions, at least one condition indicating that a volume served by the server computer system is to be available on another server computer system prior to updating the software;
- determining, by the deployment subsystem, a set of server computer systems to provide the update script;
- providing the update script to the set of server computer systems;
- the update script causing the server computer system, where the server computer system is a member of the set of server computer systems, to:
- generate a plurality of checks for the plurality of conditions, where at least one check of the plurality of checks indicates that the at least one condition is not satisfied;
- and
- as a result of the at least one check indicating that the at least one condition is not satisfied, cause the server computer system to transmit an exception and perform an operation of the plurality of operations to satisfy the at least one condition;
- in response to the exception, storing information associated with the server computer system in a wait list indicating that the server computer system has failed at least one operation and that the server computer system will rerun the update script;
- and
- determining the server computer system has updated the software based at least in part on the server computer system re-executing the update script and the plurality of checks indicating that the plurality of conditions is satisfied.
A system, comprising:
- one or more processors;
- and
- memory that stores computer-executable instructions that, as a result of being executed by the one or more processors, cause the system to:
- determine a server computer system of a set of server computer systems to provide an update, the update specifying a set of operations that causes the server computer system to update software associated with the server computer system and a plurality of conditions, at least one condition of the plurality of conditions indicating that a volume served by the server computer system is to be available on at least one other server computer system prior to executing the update;
- provide the update to the server computer system operated by a computing resource service provider, the update causing the server computer system to:
- perform a plurality of checks of the plurality of conditions to determine whether conditions of the plurality of conditions are satisfied, at least one check of the plurality of checks indicating that the at least one condition is not satisfied;
- and
- as a result of the at least one check indicating that the at least one condition is not satisfied, return an exception and perform at least one operation of the set of operations to satisfy the at least one condition;
- in response to the exception, cause information associated with the server computer system to be stored in a wait list indicating that the server computer system is awaiting execution of the update once the at least one condition is satisfied;
- and
- in response to the at least one condition being satisfied, cause the server computer system to execute the update.
Dependencies are inferred from the claim text.