Software Build Isolation System for Multi-System Environments
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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.
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
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.
Data Source
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.


