Incremental Software Builds from Snapshots in Cloud-Native CI

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Building new versions of software applications from scratch in cloud native environments is time-consuming and resource-intensive, especially for large applications with complex build processes, and traditional methods rely on manual intervention, which is error-prone.

Innovation Solution

Implementing a system that incrementally builds new versions of software applications based on snapshots of qualified past versions, using cloud-native technologies like Kubernetes, by determining a suitable past version within a threshold distance and generating the new build from that snapshot, optimizing the process with caching and parallelization techniques.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a new build is generated from scratch, then the build is complete and reliable, but the time and computational resources required are excessive

Engineering Contradiction:
Improvebuild reliabilityVSAvoidbuild time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by creating snapshots of past build states and storing them for future reuse. When a new build is requested, the system checks for existing snapshots that can serve as a starting point, thereby avoiding redundant build steps and significantly reducing build time while maintaining reliability through validated previous states.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates and stores copies of past build states (snapshots) that can be reused for generating new builds. Instead of rebuilding everything from scratch, the system copies relevant artifacts and state information from previous successful builds, reducing computational overhead and time while preserving build reliability through proven configurations.

Inventive Principle:
Principle #26Copying

2Reliability

If a new build is generated from scratch, then all dependencies are freshly resolved, but the computational resources and time required are excessive

Engineering Contradiction:
Improvedependency resolution accuracyVSAvoidcomputational resources
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The system copies dependency information and artifact states from previous builds into snapshots. When generating a new build, the system reuses these copied dependency resolutions if they remain valid, avoiding redundant computational work for dependency resolution while maintaining accuracy through validation mechanisms that ensure copied dependencies are still applicable.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system performs preliminary dependency resolution and stores the results in snapshots during previous builds. When a new build is requested, the system retrieves and reuses these pre-resolved dependencies, significantly reducing computational resource requirements while maintaining dependency resolution accuracy through validation against current build requirements.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If manual intervention is used in the build process, then flexibility is maintained, but errors and time consumption increase

Engineering Contradiction:
Improvebuild process flexibilityVSAvoidbuild error rate
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system enables self-service by automatically detecting when a snapshot can be reused for a new build and performing the incremental build process without manual intervention. The system autonomously manages snapshot creation, retrieval, and application, reducing human error while maintaining flexibility through automated decision-making logic that adapts to different build scenarios.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system implements feedback mechanisms that automatically analyze build requests, compare them against stored snapshots, and determine the appropriate build strategy. This automated feedback loop reduces manual intervention and associated errors while maintaining flexibility by adapting to different build scenarios based on real-time analysis of build requirements and snapshot compatibility.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS12423093B2Techniques for incremental software build
Publication Date: 2025.09.23 CISCO TECHNOLOGY INC
  • US12423093B2 patent drawing
  • US12423093B2 patent drawing
  • US12423093B2 patent drawing

AI summary

Techniques for incrementally building a new version of a software application based on a cloud native distributed CI systems with snapshot of a past build for a qualified past version of the same software application are described herein. The techniques include receiving a first request to generate a first build unit for a first version of the software application and determining a first environment parameter associated with the request. A version history graph associated with the software application is also received, and based on this graph, a second version of the software application is determined. The techniques may further include generating the first build unit based on a distance measure associated with the first version and the second version. The techniques may also include determining the underlying external storage provisioner in Kubernetes base continuous integration systems and provision the snapshots by calling appropriate drivers.