Decoupled Controller and VM Image for CI Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Continuous integration management systems face challenges in managing and providing varied build and test environments due to the size, inflexibility, and customizability of virtual machine images, which are often bulky and limited in number, failing to offer the specific hardware and software combinations required for test environments.

Innovation Solution

Decoupling controllers from VM images allows developers to select VM images on demand, simplifying image management by storing controller programs/modules separately and retrieving VM images from external sources, enabling the launch of separate containers for controller and build environments, thereby increasing flexibility and security.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If VM images are used to provide test environments, then the system can offer standardized build and test environments, but the images become bulky and limited in number, reducing flexibility and variety

Engineering Contradiction:
Improvestandardization of test environmentsVSAvoidvariety of test environments
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments the VM image into two separate components: the base image containing only essential system files and dependencies, and the controller program that provides the test environment functionality. This segmentation allows the base image to remain small and standardized, while the controller program can be dynamically selected to provide variety in test environments.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The base image is designed to be universal and multi-functional, serving as a common foundation for all test environments. Different controller programs are then applied to this universal base to create specialized test environments, allowing one image to serve multiple purposes while maintaining flexibility.

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

2Adaptability or versatility

If multiple VM images are maintained to provide varied test environments, then more test environment options are available, but image management becomes more complex and difficult

Engineering Contradiction:
Improvevariety of test environmentsVSAvoidimage management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the environment-specific functionality from the VM image itself and places it in separate controller programs. This extraction simplifies image management by reducing the image to a minimal base that doesn't require complex versioning or maintenance, while the varied functionality is managed through selectable controller programs.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of maintaining multiple complete VM images, the system creates lightweight copies or instances of the base image, each paired with a different controller program. This copying approach allows rapid provisioning of varied test environments without the overhead of managing multiple full image files.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If VM images are customized to provide specific hardware and software combinations, then test environment specificity is improved, but the images become larger and less flexible

Engineering Contradiction:
Improvespecificity of test environmentsVSAvoidVM image size
Core Design Contradiction:
Adaptability or versatilityVSWeight of moving object

Solution Approach 1:

The patent segments the customized test environment into a minimal base image and a separate controller program that contains the specific hardware and software configurations. This segmentation allows the image size to remain small while the controller program provides the necessary specificity for different test environments.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the parameter of image size by separating essential system files from environment-specific configurations. The base image maintains a small, optimized size, while customization parameters are managed through the controller program, allowing specificity without size increase.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10754761B2Systems and methods for testing source code
Publication Date: 2020.08.25 ATLASSIAN PTY LTD
  • US10754761B2 patent drawing
  • US10754761B2 patent drawing
  • US10754761B2 patent drawing

AI summary

Methods and systems for testing source code are disclosed. The method includes mounting a shared memory and launching a controller container. The controller container is configured to retrieve a repository identifier of a repository on which the source code is stored, and a build descriptor including build steps and an indicator of a build VM image for generating the build. The method further includes storing the build steps in the shared memory, retrieving the source code from the repository based on the repository identifier, and storing the retrieved source code in the shared memory. The method also includes launching a build container based on the indicator of the build VM image, the build container configured to retrieve the build steps and the source code from the shared memory and perform the build on the source code based on the steps defined in the build steps.