Automated Software Deployment via Data Association

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The rapid frequency of software updates and deployments in modern software systems, often requiring coordination across multiple machines and geographical locations, leads to inefficiencies and errors due to the reliance on human intervention, which is costly and error-prone, especially when systems are sensitive and require defined deployment windows.

Innovation Solution

An automated deployment system that uses deployment logic, release data, and environmental data to generate deployment plans and objects, enabling the automatic deployment of software artifacts across target systems without user intervention, by determining associations between deployment steps and artifacts, and configuration information, thus streamlining the process and reducing human error.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If automated deployment is implemented, then deployment time and human error are reduced, but system complexity increases due to the need for deployment logic, release data, and environmental data management

Engineering Contradiction:
Improvedeployment timeVSAvoidsystem complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The deployment system is segmented into distinct data structures: deployment logic (defining deployment steps), release data (defining software artifacts), and environmental data (defining target systems). This segmentation allows each component to be independently managed and combined to create deployment plans, reducing overall system complexity while enabling automation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system uses an intermediary data processing layer that takes deployment logic, release data, and environmental data as inputs, processes them to generate deployment plans and objects, and executes the deployment. This intermediary layer abstracts the complexity of coordination between multiple machines and geographical locations, providing automated deployment without exposing the user to underlying system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If manual deployment coordination is used, then system complexity is lower, but deployment time increases and human error increases

Engineering Contradiction:
Improvesystem complexityVSAvoiddeployment speed
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The deployment system performs self-service by automatically generating deployment plans and executing deployments without requiring manual coordination. The system uses deployment logic to automatically determine deployment steps, release data to identify software artifacts, and environmental data to configure target systems, thereby increasing deployment speed while maintaining manageable complexity through structured data organization.

Inventive Principle:
Principle #25Self-service

3Productivity

If deployments are performed frequently to keep up with development cycles, then software update speed increases, but the risk of errors and coordination failures increases

Engineering Contradiction:
Improvesoftware update frequencyVSAvoiddeployment reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system incorporates feedback mechanisms where deployment plans are generated based on deployment logic, release data, and environmental data, and deployment objects are created and executed systematically. This structured feedback loop ensures that each deployment step is validated and coordinated correctly, maintaining high reliability even during frequent deployments.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs preliminary actions by pre-defining deployment logic, release data, and environmental data before actual deployment occurs. Deployment plans are generated in advance based on these pre-configured elements, allowing for systematic execution and reducing the risk of errors during frequent updates.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9477454B2Automated software deployment
Publication Date: 2016.10.25 CA TECH INC
  • US9477454B2 patent drawing
  • US9477454B2 patent drawing
  • US9477454B2 patent drawing

AI summary

Particular deployment logic is selected that describes a plurality of steps in a type of software deployment. Release data is identified that defines a selection of a set of software artifacts to be deployed in a particular deployment. Further, environmental data is selected that describes configuration of a target system for the particular deployment. First associations are determined, using data processing apparatus, between steps in the plurality of steps and software artifacts in the set of software artifacts. Second associations are determined between steps in the plurality of steps and configuration information of the target system used in the respective steps. The artifacts are automatically deployed on the target system, using one or more data processing apparatus, based on the first and second associations.