Generic CI/CD Pipelines in Portable Containers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing CI/CD pipelines are tool-specific and require significant rewriting and reconfiguration when migrating between different CI/CD tools, as they depend on specific software versions and proprietary code, making it difficult to switch between tools without rewriting pipeline code and ensuring dependencies are met.

Innovation Solution

The development of generic pipelines that can be placed in portable containers, allowing the same code to operate across various CI/CD tools, with utility libraries and stage scripts that can be reused, and platform-specific build scripts to enable execution in different environments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a developer uses a specific CI/CD tool with proprietary code, then the pipeline can be executed on that platform, but the pipeline cannot be easily migrated to a different CI/CD tool without rewriting code

Engineering Contradiction:
ImprovePipeline portability across CI/CD toolsVSAvoidPipeline code complexity and tool-specific dependencies
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates a universal pipeline execution environment using Docker containers that can run the same pipeline code across multiple CI/CD tools (Jenkins, CircleCI, Travis CI, etc.). The containerized approach allows a single pipeline definition to be executed on different platforms without modification, achieving multi-functionality and eliminating tool-specific code rewriting.

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

Solution Approach 2:

The patent introduces Docker containers as an intermediary layer between the pipeline code and the CI/CD tool. This mediator encapsulates all tool-specific dependencies and environment configurations, allowing the pipeline to interact with a standardized interface rather than dealing with proprietary tool differences directly.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If a CI/CD pipeline includes specific software dependencies, then the pipeline can function correctly, but migrating to a new CI/CD tool requires ensuring all dependencies are met

Engineering Contradiction:
ImprovePipeline functionality and dependency satisfactionVSAvoidEase of switching CI/CD tools
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent performs preliminary action by pre-configuring all required software dependencies, compilers, and tools inside the Docker container before the pipeline executes. This ensures that when the pipeline runs, all dependencies are already satisfied within the containerized environment, eliminating the need to verify dependency availability on the host CI/CD platform.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The Docker container creates a universal execution environment that bundles all necessary software dependencies regardless of the host CI/CD tool. This allows the same pipeline with its dependencies to run reliably on any CI/CD platform that supports Docker, achieving both reliability and tool independence.

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

3Ease of manufacture

If a build server maintains separate software for each pipeline, then each pipeline has its required tools, but switching CI/CD tools requires deploying new software sets

Engineering Contradiction:
ImprovePipeline setup and software deploymentVSAvoidTime to reconfigure and deploy when switching tools
Core Design Contradiction:
Ease of manufactureVSLoss of time

Solution Approach 1:

The patent merges all pipeline-specific software, compilers, and dependencies into a single Docker container image. This consolidation eliminates the need for the build server to maintain separate software sets for different pipelines or CI/CD tools, as the container self-contained environment carries everything needed for execution.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent uses Docker container images as portable, copyable units that encapsulate the entire execution environment. When switching CI/CD tools, the same container image can be copied and executed on the new platform without reconfiguration, dramatically reducing the time and effort required for tool migration.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11249739B2Systems and methods for building generic CI/CD pipelines
Publication Date: 2022.02.15 CAPITAL ONE SERVICES LLC
  • US11249739B2 patent drawing
  • US11249739B2 patent drawing
  • US11249739B2 patent drawing

AI summary

At least one application may include instructions comprising application instructions and a plurality of separate pipeline definition instructions. The application instructions may be within a virtual container including at least one program that is generically executable in a plurality of different continuous integration and delivery (CI/CD) environments. Each of the plurality of separate pipeline definition instructions may be configured for each of the plurality of different CI/CD environments such that each pipeline definition may operate only in the CI/CD environment for which it is created. Each pipeline definition may be configured to cause the CI/CD environment for which it is created to execute the at least one program.