Branched Development Environment Replication via VM Copying

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing Software Configuration Management (SCM) systems fail to consistently map codeline branches to various development and testing environments, leading to inconsistent testing, development, and execution, resulting in undetected errors when software is introduced into production environments.

Innovation Solution

A branched development system that constructs and manages development environments to faithfully reproduce the state of an application at a given revision, allowing for consistent execution across all stages of the Software Delivery Life Cycle (SDLC), including historical environments for re-testing and error identification, using cloud compute resources and automated qualification processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional SCM systems organize software development by grouping work into codeline branches, then development organization and parallel work capability are improved, but consistent mapping to development and testing environments cannot be achieved, leading to inconsistent testing and undetected errors

Engineering Contradiction:
Improvedevelopment organization capabilityVSAvoidtesting consistency
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system creates virtual machine images that copy and replicate the complete development environment state for each codeline branch. Each branch gets a dedicated VM image containing identical hardware configuration, operating system, applications, and data, enabling consistent and reproducible testing across all branches without manual mapping complexity

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The development environment is segmented into separate virtual machine images, each isolated to a specific codeline branch. This segmentation allows independent testing of each branch without interference from others, while maintaining consistent environment templates that can be replicated as needed

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If manual mapping of codeline branches to development environments is performed, then environment configuration flexibility is maintained, but mapping complexity and error-proneness increase, resulting in inconsistent execution

Engineering Contradiction:
Improveenvironment configuration flexibilityVSAvoidmapping complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system automatically generates and manages environment mappings between codeline branches and virtual machine images without manual intervention. The mapping is self-contained within the VM image metadata, eliminating complex manual configuration while maintaining full environmental flexibility through automated provisioning

Inventive Principle:
Principle #25Self-service

3Difficulty of detecting and measuring

If historical production environments are maintained for re-testing, then error identification capability is improved, but storage and system resource requirements increase

Engineering Contradiction:
Improveerror identification capabilityVSAvoidstorage resource requirement
Core Design Contradiction:
Difficulty of detecting and measuringVSQuantity of substance

Solution Approach 1:

Instead of storing complete historical production environments as full system states, the system creates virtual machine images that copy only the essential environment configuration and state at the time of branching. These compact VM images preserve historical context for re-testing while minimizing storage requirements compared to full environment archiving

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10083027B2Systems and methods for managing software development environments
Publication Date: 2018.09.25 SOLANO LABS
  • US10083027B2 patent drawing
  • US10083027B2 patent drawing
  • US10083027B2 patent drawing

AI summary

Systems and methods for branched development environments enable construction of development and deployment environments for use at various stages of software development and delivery. Various embodiments are configured to deliver these constructed environments to reproduce faithfully the state of an application at a given revision of the application's source or configuration. The branched development system can be configured to use the constructed environments to offer a variety of novel results and benefits that simplify the development, test, deployment, and debugging tasks commonly associated with software throughout its lifecycle.