Persistent Serverless Execution Environments with Dynamic Compute Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing technologies for computer networks and data centers require users to manually build and configure containers and compute instances for cloud-based backend systems, which is complex and time-consuming, and do not provide persistent execution environments for web-based applications, leading to inefficiencies in container construction and deployment.

Innovation Solution

A computation service that provides persistent execution environments by automatically creating and managing container-based virtualization environments, allowing users to work entirely in code through a notebook interface, eliminating the need for explicit container building and compute instance provisioning, and enabling seamless switching between compute instance types and automatic resource allocation based on user context.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If users manually build and configure containers and compute instances, then execution environments can be created, but the process becomes complex and time-consuming

Engineering Contradiction:
Improvecontainer construction processVSAvoidtime for container building and configuration
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The system automatically detects changes in execution environments and provisions corresponding containers and compute instances without user intervention. The service monitors execution environments, detects modifications, and self-provisions the necessary infrastructure, eliminating the need for manual container building and configuration by users.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary detection and provisioning actions before users need to access or use the execution environments. By continuously monitoring and pre-provisioning containers and compute instances based on detected changes, the system prepares the infrastructure in advance, reducing the time users would otherwise spend on manual setup.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If compute resources are permanently allocated for execution environments, then consistent performance is achieved, but resource utilization efficiency decreases

Engineering Contradiction:
Improveexecution environment consistencyVSAvoidresource utilization efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically adjusts compute resource allocation based on real-time detection of execution environment changes. Instead of static permanent allocation, the service continuously monitors execution environments and dynamically provisions or de-provisions containers and compute instances to match actual needs, achieving both consistency and efficiency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements a feedback mechanism where execution environment changes are detected and monitored, triggering automatic provisioning adjustments. This closed-loop feedback ensures that compute resources are allocated consistently with actual execution environment states, maintaining reliability while optimizing resource utilization by deallocating unused resources.

Inventive Principle:
Principle #23Feedback

3Productivity

If execution environments are not persisted, then resource allocation is flexible, but deployment efficiency and reproducibility are reduced

Engineering Contradiction:
Improvedeployment efficiencyVSAvoidenvironment management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system creates and maintains persistent copies or representations of execution environments. By persisting execution environment states and automatically provisioning corresponding containers based on these persisted definitions, the system enables efficient replication and reproduction of environments across different services and instances, improving deployment efficiency while managing complexity through automation.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11422862B1Serverless computation environment with persistent storage
Publication Date: 2022.08.23 AMAZON TECH INC
  • US11422862B1 patent drawing
  • US11422862B1 patent drawing
  • US11422862B1 patent drawing

AI summary

A service that provides serverless computation environments with persistent storage for web-based applications. Users of a web application are provided with persistent user-specific contexts including a file volume and application settings. Upon logging into the application via a web application interface, the service accesses the user's context and dynamically allocates compute instance(s) and installs execution environment(s) on the compute instance(s) according to the user's context to provide a network environment for the user. A network pipe may be established between the web application interface and the network environment. Interactions with the network environment are monitored, and changes to execution environments are recorded to the user's context. Compute instances may be deallocated by the service when not in use, with new compute instances allocated as needed. The user may select a different compute instance type for an execution environment, and the service seamlessly switches computer instances for the user.