Automated Container Image Assembly via Dependency Graph

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing container image generation processes face challenges in minimizing image size and removing vulnerabilities while maintaining efficiency and automation, particularly in the context of distributed applications.

Innovation Solution

A computer-implemented method that assesses application definitions to determine base container images and necessary libraries, generates a library dependency graph, and optimizes container image assembly files by removing vulnerabilities and minimizing layers, using a knowledge base to automate the process and ensure efficient generation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Extent of automation

If manual container image assembly is used, then flexibility and control over image composition is maintained, but automation level and build efficiency deteriorate

Engineering Contradiction:
Improveautomation levelVSAvoidassembly process complexity
Core Design Contradiction:
Extent of automationVSDevice complexity

Solution Approach 1:

The container image assembly process is segmented into distinct phases: dependency graph generation, vulnerability assessment, and optimized assembly. This segmentation allows each phase to be automated independently while maintaining overall process manageability, resolving the contradiction between automation and complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A dependency graph serves as an intermediary data structure that mediates between the application definition and the final container image assembly. This intermediary enables automated processing by transforming high-level application requirements into concrete assembly instructions, reducing the perceived complexity of automation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If comprehensive library dependencies are included, then application functionality and reliability are improved, but container image size increases

Engineering Contradiction:
Improveapplication reliabilityVSAvoidcontainer image size
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system extracts only the necessary library dependencies required by the application through automated dependency graph generation. By taking out and including only essential dependencies rather than all possible libraries, the system maintains application reliability while minimizing container image size.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system changes the parameter of dependency inclusion from comprehensive to selective based on automated analysis. By dynamically adjusting which libraries are included based on the dependency graph and vulnerability assessment, the system optimizes the balance between reliability and image size.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If vulnerabilities are removed from container images, then security and reliability are improved, but build time and processing complexity increase

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

Solution Approach 1:

Vulnerability assessment is performed as a preliminary action during the dependency graph generation phase. By identifying vulnerable libraries early in the process rather than during final assembly, the system reduces overall build time while maintaining security reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system skips unnecessary vulnerability assessment steps for libraries that are confirmed safe through the dependency graph analysis. This selective rushing through of the assessment process maintains security reliability while reducing build time for safe components.

Inventive Principle:
Principle #21Skipping (Rushing through)

4Adaptability or versatility

If multiple container image layers are created, then image functionality and modularity are improved, but assembly complexity and build time increase

Engineering Contradiction:
Improveimage modularityVSAvoidbuild efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system merges multiple necessary layers into a single optimized assembly operation by using the dependency graph to determine the optimal layer sequence. This combining approach maintains image modularity while improving build efficiency by reducing the number of separate assembly operations needed.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11029975B2Automated container image assembly
Publication Date: 2021.06.08 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11029975B2 patent drawing
  • US11029975B2 patent drawing
  • US11029975B2 patent drawing

AI summary

Automatically generating a container image assembly file is provided. A definition of an application is assessed to determine a base container image and application libraries needed as add-ons for a container image corresponding to the application. A library dependency graph of flow from the base container image to add-on libraries for the application is generated. The container image assembly file is generated based on the library dependency graph of flow from the base container image to the add-on libraries for the application. Vulnerabilities corresponding to the add-on libraries of the container image assembly file are removed.