Dynamic Sidecar Containers for Scalable Resource-Efficient Pods
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Containerized applications face challenges in scaling within the application itself, as sidecar containers consume computing resources even when not in use, leading to inefficiencies and increased licensing costs.
Innovation Solution
Dynamic sidecar containers are suspended when not necessary, with their state saved for later resumption, allowing resources to be reserved and used for other tasks, and ensuring efficient resource utilization through liveness probes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If sidecar containers are continuously running to support containerized applications, then application functionality and reliability are maintained, but computing resource consumption increases
Solution Approach 1:
The sidecar container's execution state is made dynamic rather than static. The system suspends the sidecar container when it's not needed and resumes it when needed, allowing the container to transition between active and suspended states based on real-time requirements. This resolves the contradiction by maintaining reliability when needed while reducing resource consumption during idle periods.
Solution Approach 2:
The execution parameter of the sidecar container is changed from a constant 'running' state to a variable state that can be suspended or resumed. By controlling the execution state parameter based on operational needs, the system achieves both reliability (when executed) and resource efficiency (when suspended).
2Productivity
If multiple instances of containerized applications are instantiated to achieve scalability, then system capacity increases, but hardware requirements and licensing costs increase
Solution Approach 1:
The sidecar container is designed to be multi-functional and shareable across multiple application instances. Instead of requiring dedicated support containers for each instance, a single sidecar container can serve multiple containers within a pod, reducing the total quantity of hardware resources needed while maintaining system capacity through efficient resource sharing.
3Speed
If sidecar containers are kept ready to perform computing tasks, then task execution speed is improved, but resource allocation efficiency decreases
Solution Approach 1:
The sidecar container is initialized and prepared in advance with all necessary configurations and dependencies, but its actual execution is suspended until needed. This preliminary setup ensures that when the container does execute, it can perform tasks immediately without setup delays, while resources are not consumed during the suspended preparation phase.
Data Source
AI summary
A computer system provides dynamic support containers for containerized applications. A pod is instantiated comprising one or more containers and a sidecar container, wherein execution of the sidecar container is temporarily suspended after initialization. It is determined that a container of the one or more containers requires additional computing resources. In response to determining that the container requires additional computing resources, execution of the sidecar container is resumed and the sidecar container is provided with instructions to perform a computing task of the container. In response to determining that the computing task is complete, execution of the sidecar container is suspended. Embodiments of the present invention further include a method and program product for providing dynamic support containers for containerized applications in substantially the same manner described above.


