Large production-like test environments (sandboxes) are widely used to perform manual and automated code testing, feature validation, and evaluation of uncommitted code. Sandboxes represent the production jobs, datastores, and configurations needed to effectively replicate a production environment. However, sandboxes can be difficult to start, have a steep learning curve for configuration, and suffer from reliability concerns. Also, sandboxes can be challenging to share beyond an original engineering team, e.g., for integration testing. Due to such challenges, engineering time is wasted deploying sandboxes, and some development teams instead utilize live production environments for testing putting a product or service at risk.
This disclosure includes techniques to automatically provision pools of sandboxes for immediate use and ensure sandbox health and freshness. Sandbox pools described herein support automatic starting of new sandboxes, automatic clean-up of sandboxes returned by a user, and configurable lease lengths, after which a sandbox is automatically reclaimed. Configurable access control is provided at a pool level to control usage and enable sharing.
Carter, Andrew, "Automatically Managed Pools of Large Test Environments", Technical Disclosure Commons, (April 19, 2017)