Sidecar VM Provisioning for On-Demand Auxiliary Functions
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computing systems face challenges with limited resource utilization, inefficiencies due to always-on auxiliary functionality, and security issues from shared control planes in executing user code, particularly in data centers with virtual machines.
Innovation Solution
An on-demand code execution system utilizing sidecar virtual machine instances that provide user-specific or task-specific auxiliary functions, enabling efficient and secure execution of user code without requiring constant hardware configuration, by instantiating sidecars only when needed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If auxiliary functions are always-on in virtual machine instances, then functionality is available when needed, but resource utilization deteriorates due to wasted computational resources
Solution Approach 1:
The auxiliary functions are transformed from static always-on components to dynamic on-demand components. The system dynamically instantiates auxiliary function instances only when required by user code, and dynamically terminates them after use. This dynamic behavior allows the system to maintain functionality availability when needed while eliminating wasted computational resources during idle periods, directly resolving the contradiction between reliability and productivity.
Solution Approach 2:
The auxiliary function system operates autonomously by monitoring user code execution requirements and automatically instantiating/terminating auxiliary functions without manual intervention. The system self-manages resource allocation, detecting when auxiliary functions are needed based on user code behavior and provisioning them accordingly, thereby optimizing resource utilization while ensuring functionality availability.
2Productivity
If shared control plane is used in virtual machine instances, then resource sharing is achieved, but security deteriorates due to shared control access
Solution Approach 1:
The control plane is segmented from the shared control plane into isolated auxiliary function instances. Each auxiliary function instance operates as an independent, user-specific container that does not share control access with other users or functions. This segmentation maintains resource sharing efficiency through the virtualized infrastructure while eliminating security vulnerabilities associated with shared control access by ensuring complete isolation between different users and functions.
3Reliability
If hardware configuration is always-active, then system readiness is maintained, but device complexity increases due to constant configuration requirements
Solution Approach 1:
The hardware configuration is transformed from a static always-active state to a dynamic on-demand state. The system maintains system readiness by having the hardware configuration capability available, but actually configures and activates it only when user code requires auxiliary functions. This dynamic approach reduces device complexity by eliminating constant configuration operations while maintaining reliability through on-demand configuration capability.
Data Source
AI summary
Systems and methods are described for providing auxiliary functions in an on-demand code execution system in a manner that enables efficient execution of code. A user may generate a task on the system by submitting code. The system may determine the auxiliary functions that the submitted code may require when executed on the system, and may provide these auxiliary functions by provisioning or configuring sidecar virtualized execution environments that work in conjunction with the main virtualized execution environment executing the submitted code. Sidecar virtualized execution environments may be identified and obtained from a library of preconfigured sidecar virtualized execution environments, or a sidecar agent that provides the auxiliary function may be identified from a library, and then a virtualized execution environment may be provisioned with the agent and/or configured to work in conjunction with the main virtualized execution environment.


