US 12,008,390 B1
Persistent execution environment
Thomas Albert Faulhaber, Seattle, WA (US); Jonathan Esterhazy, Alameda, CA (US); Vladimir Zhukov, Seattle, WA (US); and Stefano Stefani, Issaquah, WA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Nov. 29, 2019, as Appl. No. 16/699,488.
Int. Cl. G06F 9/455 (2018.01); G06F 9/54 (2006.01)
CPC G06F 9/45558 (2013.01) [G06F 9/54 (2013.01); G06F 2009/45562 (2013.01); G06F 2009/45591 (2013.01)] 17 Claims
OG exemplary drawing
 
1. A system, comprising:
one or more processors and corresponding memory, on a network, configured to implement a computation service configured to:
receive an indication of an execution environment from a user interface via an application programming interface (API) to the computation service; and
in response to the indication:
allocate a compute instance for the environment on a host device, comprising one or more other processors and corresponding memory, on the network; and
instantiate a host agent and a web server on the compute instance, wherein the one or more other processors and corresponding memory is configured to, via the host agent:
instantiate the execution environment on the compute instance, wherein the instantiated execution environment is for an environment interface displayed by the user interface, wherein the execution environment comprises a container as a base layer and one or more additional layers, wherein the environment interface is configured to interact with the execution environment through the web server on the compute instance to execute code within the container; and
instantiate a monitoring agent, distinct from the host agent, on the compute instance, wherein the one or more other processors and corresponding memory is configured to, via the monitoring agent monitor the execution environment on the compute instance to detect one or more changes in the execution environment caused by the environment interface interactions with the execution environment;
wherein the one or more processors and corresponding memory are configured to, based on an indication of the one or more changes in the execution environment;
generate a new environment version that includes the one or more changes; and
store the new environment version that includes the one or more detected changes in the execution environment caused by the interactions with the execution environment; and
wherein the one or more processors and corresponding memory are configured to instantiate a new environment from the stored new environment version.