Sandbox Service Virtual Machine Provisioning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional sandbox services for cloud-based platforms incur significant costs and downtime due to the time-consuming process of creating safe environments for developers to test updates, leading to frustrating wait times and inefficient resource allocation.
Innovation Solution
Implementing a smart, tiered approach to provisioning virtual machines using historical data to predict demand, pre-configuring template images, and managing virtual machines in different states (reserved, stopped, and running) to instantly provide test environments while minimizing costs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If virtual machines are created from scratch when a developer requests a sandbox environment, then the test environment can be safely isolated, but the provisioning time becomes excessively long (up to an hour) and costs increase
Solution Approach 1:
The patent pre-creates virtual machines in advance before developers need them. The system provisions multiple virtual machines ahead of time, stores them in a pool, and makes them immediately available when developers request sandbox environments. This eliminates the hour-long wait time while maintaining the same isolation safety through proper template image configuration.
2Productivity
If virtual machines are pre-configured with template images in advance, then provisioning speed increases, but storage costs increase due to maintaining multiple pre-configured images
Solution Approach 1:
The patent creates template images that can be rapidly copied to generate multiple virtual machines. Instead of storing numerous unique pre-configured images, the system maintains a small set of template images that serve as blueprints. When virtual machines are needed, the system copies these templates and quickly provisions instances from them, significantly reducing storage requirements while maintaining fast provisioning speeds.
3Loss of time
If a large number of virtual machines are kept in running state to satisfy peak demand, then developer wait time is minimized, but compute costs increase significantly
Solution Approach 1:
The patent implements dynamic resource allocation where the number of running virtual machines adjusts based on actual demand. The system monitors sandbox usage patterns and dynamically provisions or deprovisions virtual machines from the pool. When demand is high, more machines are activated; when demand is low, machines are deactivated to save compute costs. This dynamic approach eliminates the need to maintain a large static fleet of running machines while still satisfying peak demand.
4Loss of energy
If virtual machines are created on-demand without preconfiguration, then storage resources are conserved, but the configuration process consumes excessive compute resources and time
Solution Approach 1:
The patent performs configuration work in advance by creating template images with all necessary software, dependencies, and sandbox configurations pre-installed. This preliminary configuration step is done during off-peak times when resource availability is higher. Once the template is created, subsequent virtual machines are rapidly deployed by copying the template rather than performing full configuration from scratch, dramatically reducing both storage requirements and compute resource consumption during active provisioning.
Data Source
AI summary
Disclosed herein is a system for providing a test environment, composed of one or more virtual machines, to a developer instantly in response to a checkout request from the developer. To do this, a sandbox service implements a smart, tiered approach to creating and provisioning virtual machines that compose the test environments. The approach is flexible and elastic in nature, so that the developers do not have to wait an extended period of time for a test environment, yet the costs associated with configuring the virtual machines (e.g., storage and compute costs) are minimized. For example, the sandbox service can use historical data to predict a number of checkout requests expected for a first time interval (e.g., one day), a second time interval (e.g., thirty minutes), and a third time interval (e.g., five minutes). The sandbox service can then configure virtual machines into different states based on the predicted numbers.


