Threading as a service
First Claim
1. A computer implemented method to process requests to execute user code on one or more virtual machine instances, the method comprising:
- as implemented by one or more computing devices configured with specific computer-executable instructions,providing a plurality of warmed virtual machine instances, each of the warmed virtual machine instances being unassigned to a specific user and containing a software component associated with a programming language;
subsequent to providing the plurality of warmed, unassigned virtual machine instances, receiving a request to execute a user code, the request comprising configuration information associated with executing the user code, wherein the request is received at a first time;
identifying a virtual machine instance from the plurality of warmed virtual machine instances based on the configuration information of the request, wherein the identified virtual machine instance contains a particular software component that is suitable to execute the user code;
associating the identified virtual machine instance with a user account associated with the request;
creating, within the associated virtual machine instance, a container to execute the user code;
loading the particular software component and the user code into the container; and
initiating execution of the user code by the container, wherein said initiating occurs at a second time, andwherein a time period from the first time to the second time is less than a predetermined duration.
1 Assignment
0 Petitions
Accused Products
Abstract
A service manages a plurality of virtual machine instances for low latency execution of user codes. The plurality of virtual machine instances can be configured based on a predetermined set of configurations. One or more containers may be created within the virtual machine instances. In response to a request to execute user code, the service identifies a pre-configured virtual machine instance suitable for executing the user code. The service can allocate the identified virtual machine instance to the user, create a new container within an instance already allocated to the user, or re-use a container already created for execution of the user code. When the user code has not been activated for a time-out period, the service can invalidate allocation of the virtual machine instance destroy the container. The time from receiving the request to beginning code execution is less than a predetermined duration, for example, 100 ms.
187 Citations
34 Claims
-
1. A computer implemented method to process requests to execute user code on one or more virtual machine instances, the method comprising:
-
as implemented by one or more computing devices configured with specific computer-executable instructions, providing a plurality of warmed virtual machine instances, each of the warmed virtual machine instances being unassigned to a specific user and containing a software component associated with a programming language; subsequent to providing the plurality of warmed, unassigned virtual machine instances, receiving a request to execute a user code, the request comprising configuration information associated with executing the user code, wherein the request is received at a first time; identifying a virtual machine instance from the plurality of warmed virtual machine instances based on the configuration information of the request, wherein the identified virtual machine instance contains a particular software component that is suitable to execute the user code; associating the identified virtual machine instance with a user account associated with the request; creating, within the associated virtual machine instance, a container to execute the user code; loading the particular software component and the user code into the container; and initiating execution of the user code by the container, wherein said initiating occurs at a second time, and wherein a time period from the first time to the second time is less than a predetermined duration. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system comprising:
a computing device comprising a processor coupled to a memory, the memory including specific instructions that upon execution configure the system to; provide a plurality of warmed virtual machine instances, each of the warmed virtual machine instances being unassigned to a specific user and containing a software component associated with a programming language; subsequent to providing the plurality of warmed, unassigned virtual machine instances, receive a request to execute a user code, the request comprising configuration information associated with executing the user code, wherein the request is received at a first time; identify a virtual machine instance from the plurality of warmed virtual machine instances based on the configuration information of the request, wherein the identified virtual machine instance contains a particular software component that is suitable to execute the user code; associate the identified virtual machine instance with a user account associated with the request; create, within the associated virtual machine instance, a container to execute the user code; load the particular software component and the user code into the container; and initiate execution of the user code by the container, wherein said initiating occurs at a second time, wherein a time period from the first time to the second time is less than a predetermined duration. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16)
-
17. A non-transitory, computer-readable storage medium storing computer-executable instructions that, when executed by a computer system, configure the computer system to;
-
provide a plurality of warmed virtual machine instances, each of the warmed virtual machine instances being unassigned to a specific user and containing a software component associated with a programming language; subsequent to providing the plurality of warmed, unassigned virtual machine instances, receive a request to execute a user code, the request comprising configuration information associated with executing the user code, wherein the request is received at a first time; identify a virtual machine instance from the plurality of warmed virtual machine instances based on the configuration information of the request, wherein the identified virtual machine instance contains a particular software component that is suitable to execute the user code; associate the identified virtual machine instance with a user account associated with the request; create, within the associated virtual machine instance, a container to execute the user code; load the particular software component and the user code into the container; and initiate execution of the user code by the container, wherein said initiating occurs at a second time, wherein a time period from the first time to the second time is less than a predetermined duration. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A computer implemented method for managing virtual machine instances, the method comprising:
-
providing a plurality of virtual machine instances, wherein each of the plurality of virtual machine instances contains at least one software component associated with at least one programming language; receiving a request to execute a user code, the request comprising configuration information associated with the user code, wherein the request is received at a first time; identifying a virtual machine instance from the plurality of virtual machine instances based on the configuration information of the request, wherein the identified virtual machine instance contains a particular software component that corresponds to the configuration information; identifying a container having a first copy of the user code loaded thereon within the identified virtual machine instance; causing the first copy of the user code loaded on the container to be executed based on the configuration information, wherein the first copy of the user code is caused to begin executing within a predetermined duration after the first time; monitoring an activation history of the user code, wherein the activation history comprises information regarding execution of the user code in the identified virtual machine instance; and dissociating the identified virtual machine instance from the user account or destroying the container based on the activation history. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34)
-
Specification