Dynamic Docker Pool Recycling for SaaS Resource Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The complexity of maintaining high service performance and user experience in web services, particularly in distributed systems, is exacerbated by the difficulty in monitoring and managing data across disparate systems, tools, and layers, and ensuring account level isolation while efficiently managing multiple accounts of monitored data in a Software as a Service (SaaS) environment.
Innovation Solution
A dynamic Docker pool recycling system that uses a processor and memory to manage monitored data from agents across a network, generates a model to estimate Docker container pool capacity, dynamically allocates Docker containers based on performance alerts, and updates the model using simulations and additional usage data, integrating parameters like launching and killing times, throughput, and historical data to maintain account level isolation while reducing the number of Docker containers used.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a large number of Docker containers are allocated to service multiple accounts, then service quality and account level isolation are maintained, but resource costs increase and underused containers are wasted
Solution Approach 1:
The patent implements dynamic allocation of Docker containers based on real-time performance monitoring and predictive modeling. The system continuously adjusts the number of containers allocated to each account according to actual usage patterns, transforming the static resource allocation into a dynamic process that adapts to changing demands, thereby reducing waste while maintaining service quality.
Solution Approach 2:
The system employs performance monitoring agents that collect data from Docker containers and feed it back to the management system. This feedback loop enables the system to detect performance degradation, adjust container allocation accordingly, and maintain service quality thresholds while optimizing resource utilization through continuous monitoring and adjustment.
2Productivity
If Docker containers are recycled immediately when idle, then resource utilization improves, but service response time may be degraded due to container launching time
Solution Approach 1:
The patent implements a predictive modeling system that analyzes performance data and forecast future resource demands before they occur. By predicting when containers will be needed based on historical patterns and current trends, the system can pre-allocate or pre-warm containers in advance, eliminating launch delays when actual demand arises while maintaining high resource utilization during low-demand periods.
Solution Approach 2:
The system dynamically adjusts the idle timeout parameter for container recycling based on predicted demand patterns. Instead of using a fixed recycling threshold, the model modifies the idle time parameter in response to changing workload patterns, account priorities, and predicted future demands, allowing flexible optimization between resource utilization and response time.
3Reliability
If performance monitoring is implemented across distributed systems, then service quality is maintained, but system complexity increases
Solution Approach 1:
The patent implements a universal performance monitoring agent that can be deployed across diverse distributed systems regardless of platform or application type. This single multi-functional agent handles multiple monitoring tasks including performance metric collection, anomaly detection, and data transmission, eliminating the need for separate monitoring solutions for different system components and reducing overall system complexity.
Data Source
AI summary
In one aspect, a system for dynamically recycling a pool of Docker containers is disclosed. The system includes a processor; a memory; and one or more modules stored in the memory and executable by a processor to perform operations. The operations include operations to manage for multiple accounts, monitored data received from agents installed at machines connected over a network, wherein the managed monitored data are associated with applications running over the machines for the multiple accounts; generate a model to estimates a Docker container pool capacity that can service the multiple accounts; receive performance alert action requests associated with the managed monitored data for at least a subset of the multiple accounts; based on the model, dynamically allocate a number of Docker containers in the pool that satisfies the estimated capacity; and update the model by performing simulations that uses additional data of Docker container usage.


