Dynamic Code Deployment in Virtual Machine Containers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers face challenges in efficiently utilizing virtual machine instances due to latency issues during code execution, over- or under-provisioning of resources, and the need to predict traffic changes, leading to performance problems and increased costs.

Innovation Solution

A virtual compute system manages a pool of pre-initialized virtual machine instances with loaded operating systems and language runtimes, allowing for dynamic code deployment and execution in isolated containers, reducing latency and automatically scaling resources based on demand.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If virtual machine instances are pre-initialized with operating systems and language runtimes loaded, then code execution latency is reduced, but device complexity and resource provisioning complexity increase

Engineering Contradiction:
Improvecode execution latencyVSAvoidresource provisioning complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by pre-initializing virtual machine instances with operating systems and language runtimes loaded before code execution requests arrive. This allows the runtime environment to be ready in advance, reducing code execution latency when requests are received.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a runtime management system as an intermediary layer between resource provisioning and code execution. This mediator automatically manages the pool of pre-initialized virtual machine instances, handling the complexity of resource provisioning while presenting a simplified interface to users.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If a pool of virtual machine instances is maintained with pre-loaded runtimes, then code execution speed improves, but resource over-provisioning or under-provisioning issues arise

Engineering Contradiction:
Improvecode execution speedVSAvoidresource scaling adaptability
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The system implements dynamic resource management where the pool of virtual machine instances can automatically scale based on demand. The runtime management system monitors usage patterns and dynamically provisions or de-provisions instances, allowing the system to adapt to varying workloads while maintaining high execution speed.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent incorporates feedback mechanisms where the runtime management system continuously monitors the utilization and performance of virtual machine instances. Based on this feedback, the system automatically adjusts the size and configuration of the instance pool to match actual demand, preventing both over-provisioning and under-provisioning.

Inventive Principle:
Principle #23Feedback

3Adaptability or versatility

If users manually manage and provision virtual machine resources, then resource allocation flexibility increases, but operational complexity and time consumption increase

Engineering Contradiction:
Improveresource allocation flexibilityVSAvoidresource management ease
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The system implements self-service automation where the runtime management system automatically handles resource provisioning, configuration, and management without requiring user intervention. Users simply submit code execution requests, and the system autonomously selects and configures appropriate virtual machine instances from the pre-initialized pool.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent creates a universal runtime management system that handles multiple functions including instance selection, code deployment, execution monitoring, and resource cleanup. This multi-functional system provides both flexibility and ease of operation by automating complex resource management tasks while maintaining adaptability to different code types and execution requirements.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP3201762B1Dynamic code deployment and versioning
Publication Date: 2021.11.03 AMAZON TECH INC
  • EP3201762B1 patent drawingFigure 1
  • EP3201762B1 patent drawingFigure 2~5
  • EP3201762B1 patent drawingFigure 6

AI summary

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.