Dynamic code deployment and versioning
AssigneeAmazon Technologies, Inc.
InventorsTimothy Allen Wagner, Sean Philip Reque, Derek Steven Manwaring, Xin Zhao, Dylan Chandler Thomas
Life of this patent
Estimating the term…
Abstract
A system for providing dynamic code deployment and versioning is provided. The system may be configured to receive a first request to execute a newer program code on a virtual compute system, determine, based on the first request, that the newer program code is a newer version of an older program code loaded onto an existing container on a virtual machine instance on the virtual compute system, initiate a download of the newer program code onto a second container on the same virtual machine instance, and causing the first request to be processed with the older program code in the existing container.
Claims20
A system for providing low-latency computational capacity from a virtual compute fleet, the system comprising:
- an electronic data store configured to store at least a program code of a user;
- and
- a virtual compute system comprising one or more hardware computing devices executing specific computer-executable instructions, said virtual compute system in communication with the data store, and configured to at least:
- maintain a plurality of virtual machine instances on one or more physical computing devices, wherein the plurality of virtual machine instances comprise:
- a warming pool comprising virtual machine instances having one or more software components loaded thereon and waiting to be assigned to a user;
- and
- an active pool comprising virtual machine instances assigned to one or more users;
- receive a first code execution request to execute a program code on the virtual compute system, the first code execution request including version information identifying a first version of the program code;
- determine, based on the version information, that the program code was updated, prior to the receipt of the first code execution request by the virtual compute system, from a second version to the first version;
- determine whether the second version of the program code is loaded onto an existing container created on a particular instance of the virtual machine instances in the active pool;
- initiate a download of the first version of the program code onto at least one of the data store, a code cache of the particular instance, or the existing container;
- and
- in response to determining that the second version of the program code is loaded onto an existing container created on the particular instance, determine that the download of the first version of the program code is expected to take longer than a threshold amount of time;
- and
- based on the determination that the first version of the program code is expected to take longer than the threshold amount of time, cause the first code execution request to be processed with the second version of the program code that is in the existing container.
A system, comprising:
- a virtual compute system comprising one or more hardware computing devices executing specific computer-executable instructions and configured to at least:
- receive a first request to execute a program code on the virtual compute system, the first request including version information identifying a first version of the program code;
- determine, based on the version information, that the first version is different from a second version of the program code loaded onto a first container created on a first virtual machine instance on the virtual compute system;
- initiate a download of the first version of the program code onto at least one of a second container created on the first virtual machine instance, an internal data store of the virtual compute system, and a code cache of the first virtual machine instance;
- determine that the download of the first version of the program code is expected to take longer than a threshold amount of time;
- and
- based on the determination that the first version of the program code is expected to take longer than the threshold amount of time, cause the first request to be processed with the second version of the program code loaded onto the first container.
A computer-implemented method comprising:
- as implemented by one or more computing devices configured with specific executable instructions,
- receiving a first request to execute a program code on a virtual compute system, the first request including version information identifying a first version of the program code;
- determining, based on the version information, that the first version is different from a second version of the program code loaded onto a first container created on a first virtual machine instance on the virtual compute system;
- initiating a download of the first version of the program code onto at least one of a second container created on the first virtual machine instance, an internal data store of the virtual compute system, or a code cache of the first virtual machine instance;
- determining that the download of the first version of the program code is expected to take longer than a threshold amount of time;
- and
- based on the determination that the first version of the program code is expected to take longer than the threshold amount of time, causing the first request to be processed with the second version of the program code loaded onto the first container.
Non-transitory physical computer storage storing computer executable instructions that, when executed by one or more computing devices, configure the one or more computing devices to:
- receive a first request to execute a program code on a virtual compute system, the first request including version information identifying a first version of the program code;
- determine, based on the version information, that the first version is different from a second version of the program code loaded onto a first container created on a first virtual machine instance on the virtual compute system;
- initiate a download of the first version of the program code onto at least one of a second container created on the first virtual machine instance, an internal data store of the virtual compute system, or a code cache of the first virtual machine instance;
- determine that the download of the first version of the program code is expected to take longer than a threshold amount of time;
- and
- based on the determination that the first version of the program code is expected to take longer than the threshold amount of time, cause the first request to be processed with the second version of the program code loaded onto the first container.
Dependencies are inferred from the claim text.