Environment Lock Mechanism for CI/CD Deployment Concurrency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current source code deployment systems face issues with concurrent deployments to the same environment, leading to non-deterministic and unpredictable race conditions, especially with the increasing automation of build and deployment operations in CI/CD systems.

Innovation Solution

Implementing an environment lock mechanism that selectively prevents deployments by allowing only one deployment to acquire ownership of the lock, ensuring that other deployments are blocked until the lock is released, thereby preventing concurrent deployments to the same environment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple deployments are allowed concurrently to the same environment, then deployment speed and productivity are improved, but system reliability deteriorates due to non-deterministic race conditions

Engineering Contradiction:
Improvedeployment speedVSAvoiddeployment determinism
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary locking of the deployment environment before the actual deployment process begins. The lock is acquired in advance to prevent other deployment processes from starting, ensuring deterministic execution while maintaining high productivity through parallel processing of unrelated deployments.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If environment locking is implemented to prevent concurrent deployments, then deployment reliability is improved, but deployment productivity deteriorates due to sequential processing

Engineering Contradiction:
Improvedeployment determinismVSAvoiddeployment speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system segments the deployment control mechanism by introducing environment-specific locks that are tied to particular deployment environments. This allows different environments to be locked and unlocked independently, enabling parallel deployments to different environments while maintaining reliability through sequential processing within each environment.

Inventive Principle:
Principle #1Segmentation

3Reliability

If environment locks are held for extended periods to ensure complete deployment, then deployment reliability is improved, but system responsiveness deteriorates due to prolonged blocking of other deployments

Engineering Contradiction:
Improvedeployment completenessVSAvoiddeployment blocking time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system implements dynamic lock management where lock duration and scope are adjusted based on the specific deployment context. Locks are released as soon as the critical section is completed, and the system adapts lock behavior to balance reliability requirements with time loss considerations for different deployment scenarios.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11055078B2Systems and methods for deploying software products to environments
Publication Date: 2021.07.06 ATLASSIAN PTY LTD
  • US11055078B2 patent drawing
  • US11055078B2 patent drawing
  • US11055078B2 patent drawing

AI summary

Described herein is a computer-implemented method for deploying a software product to an environment. The method comprises defining an environment lock for the environment, the environment lock being configured to selectively prevent deployment of a software product to the environment. The method further comprises receiving a request from a requesting entity to deploy a designated software product to the environment, determining a status of the environment lock, and either permitting or preventing the deployment of the designated software product to the environment by reference to the determined status of the environment lock.