Automated Container Image Assembly via Dependency Graph
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If comprehensive library dependencies are included, then application functionality and reliability are improved, but container image size increases
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.
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.
3Reliability
If vulnerabilities are removed from container images, then security and reliability are improved, but build time and processing complexity increase
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.
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.
4Adaptability or versatility
If multiple container image layers are created, then image functionality and modularity are improved, but assembly complexity and build time increase
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.
Data Source
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.


