Cloud Build Pool Virtual Machine Isolation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Compiling source code into low-level machine executable code is a hardware-intensive task that consumes significant network resources and processing power, especially when managing multiple versions and iterations, which can be inefficient in centralized environments.

Innovation Solution

A distributed computing method is implemented using a pool of virtual machines in a cloud environment, where virtual machines are configured specifically for each user, allowing for efficient compilation and isolation of source code while maintaining shared resources, with features like automated build management and security to prevent data access between users.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If source code is compiled locally on the programmer's computer system, then the compilation can be performed with direct access to the source code, but it consumes excessive amounts of processing power and network resources

Engineering Contradiction:
Improvecompilation efficiencyVSAvoidprocessing power consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The compilation function is extracted from the local programmer's computer system and relocated to a remote cloud-based compilation service. The source code is retrieved from a centralized repository, sent to the cloud service, compiled there, and the executable code is returned to the programmer, thereby offloading the processing power consumption from the local system.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

A cloud-based compilation service acts as an intermediary between the programmer's local system and the compilation process. This intermediary handles the hardware-intensive compilation tasks using its own computing resources, reducing the burden on the programmer's computer system while maintaining the ability to compile source code efficiently.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If source code is retrieved from a centralized repository for compilation, then multiple versions can be accessed, but it consumes substantial network resources due to the large size of the source code

Engineering Contradiction:
Improveversion management capabilityVSAvoidnetwork bandwidth consumption
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The compilation environment is extracted from the local system and moved to a cloud-based service. This allows the source code to remain in the centralized repository while the compilation happens remotely, reducing the need to transfer large amounts of source code over the network and thereby reducing network bandwidth consumption.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The cloud-based compilation service retrieves and prepares the source code in advance in its own environment, so that when the programmer requests compilation, the code is already available locally at the compilation service, reducing the need for repeated large-scale network transfers.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If a pool of virtual machines is configured specifically for each user, then secure isolated compilation is achieved, but the system complexity increases

Engineering Contradiction:
Improvecompilation security and isolationVSAvoidsystem configuration complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

A single cloud-based compilation service infrastructure serves multiple users simultaneously, providing universal access to compilation resources. The system uses virtualization to create isolated environments for each user, allowing one physical system to fulfill multiple user needs while maintaining security and isolation, thereby reducing overall system complexity compared to dedicated systems for each user.

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

Solution Approach 2:

The system creates virtual copies of the compilation environment for each user through virtualization technology. These virtual machines are copies that provide isolated compilation spaces, allowing secure simultaneous compilation for multiple users without requiring separate physical systems for each user, thus managing complexity efficiently.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8959484B2System for hosted, shared, source control build
Publication Date: 2015.02.17 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8959484B2 patent drawing
  • US8959484B2 patent drawing
  • US8959484B2 patent drawing

AI summary

Compiling source code to provide an executable code build. The method includes configuring a pool of substantially identical virtual machines in a distributed cloud computing environment. Configuring may include configuring virtual machines to have generic code compiling functionality. The method further includes determining that source code for a particular user should be compiled. As a result, the method includes selecting a virtual machine from the pool of substantially identical virtual machines and configuring the selected virtual machine in a way that is specific to the user. Source code for the user is retrieved from a source control system deployed in the distributed computing environment. Using the virtual machine configured in the way specific to the user, the user's retrieved source code is compiled to compiled code. After compiling is completed, the configured virtual machine is restored to a generic form.