Software Build Isolation System for Multi-System Environments

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developing software products with extensive code bases is time-consuming and resource-intensive, requiring varying levels of machine power and posing challenges in code management and backup due to complex interdependencies.

Innovation Solution

An automated system for software build isolation in a multi-system environment, which allocates machines on demand, segregates code into tenants for efficient build and validation, and provides an automated backup system for managing dependencies and assets across multiple tenants.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a monolithic code base is used for software development, then all code can be built and validated together, but build time increases and machine resources are wasted due to redundant processing of unchanged code

Engineering Contradiction:
Improvebuild efficiencyVSAvoidbuild time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent divides the monolithic code base into multiple independent tenants or modules that can be built and validated separately. Each tenant represents a distinct functional unit that can be processed independently, allowing parallel builds and reducing overall build time while maintaining the ability to validate integrated code when needed.

Inventive Principle:
Principle #1Segmentation

2Power

If high-end server-class machines are allocated to developers, then build power is sufficient, but resource allocation becomes inefficient when developers need varying levels of power

Engineering Contradiction:
Improvemachine powerVSAvoidresource utilization
Core Design Contradiction:
PowerVSProductivity

Solution Approach 1:

The patent implements dynamic machine allocation where computing resources are not statically assigned but dynamically provisioned based on actual build requirements. The system monitors and adjusts resource allocation in real-time, matching machine power to the specific needs of each build task rather than providing constant high-end resources to all developers.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent creates a shared pool of computing resources that can be dynamically allocated to multiple tenants based on demand. This universal resource pool serves multiple functions - handling different build sizes, supporting varying numbers of concurrent builds, and adapting to changing requirements without requiring dedicated machines for each scenario.

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

3Reliability

If the entire code base is backed up together, then all dependencies are preserved, but backup complexity and time increase due to tremendous interdependencies

Engineering Contradiction:
Improvebackup completenessVSAvoidbackup complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the code base into independent tenants with clearly defined boundaries and dependencies. This segmentation allows the backup system to target specific tenants rather than requiring full code base backups, reducing complexity while maintaining reliability by preserving necessary dependencies within each tenant context.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11093237B2Build isolation system in a multi-system environment
Publication Date: 2021.08.17 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11093237B2 patent drawing
  • US11093237B2 patent drawing
  • US11093237B2 patent drawing

AI summary

Software build isolation is provided. Systems, methods and computer-readable devices provide for receiving a request from a user who is a member of a team or group for allocation of a machine from a pool of machines. A determination is made as to whether a limit has been reached on the number of machines available to the team or group. If the limit has not been reached, the machine is provisioned and the user is notified that the machine has been provisioned and allocated to the user. In addition, in response to receiving a notification that an asset is ready for backup, an asset is replicated on an archive server. Dependencies of the asset on dependent assets are determined and the dependent assets are replicated on the archive server.