Microservice Scaling via Resource Usage Prediction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current cloud systems require users to manually estimate and specify resource limits for microservices, leading to resource wastage and poor utilization due to difficulties in predicting CPU and memory needs, which can result in throttling or killing tasks if limits are exceeded.
Innovation Solution
A method for predicting resource usage by building clustering models and regression models to automatically determine the number of replicated containers, node bindings, and weights based on application requests and current usage status, enabling efficient scaling, scheduling, and load balancing across multiple nodes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of energy
If users manually estimate and specify resource limits for microservices, then resource allocation can be controlled, but resource wastage and poor utilization occur due to difficulties in predicting CPU and memory needs
Solution Approach 1:
The system enables microservices to automatically self-scale based on their actual resource consumption patterns. The scaling mechanism monitors resource usage metrics and dynamically adjusts the number of container replicas without manual intervention, allowing the system to serve itself and eliminate resource wastage caused by manual estimation errors.
Solution Approach 2:
The system implements continuous feedback loops by monitoring resource usage metrics (CPU, memory) and using this information to dynamically adjust scaling decisions. The feedback mechanism compares actual resource consumption against thresholds and triggers automatic scaling actions to optimize resource utilization while preventing resource wastage.
2Reliability
If resource limits are exceeded, then task throttling or killing occurs, but this results in poor service performance and availability
Solution Approach 1:
The system performs preliminary scaling actions by predicting future resource needs based on historical patterns and current trends. Before resource limits are exceeded and cause task throttling or killing, the system proactively scales up container replicas to prevent performance degradation and maintain service availability.
Solution Approach 2:
The system implements dynamic resource allocation that continuously adapts to changing workload conditions. Rather than static resource limits that cause throttling, the system dynamically adjusts resource capacity by scaling container replicas based on real-time monitoring of CPU and memory usage patterns.
3Productivity
If the system dynamically adjusts resources based on demand, then resource utilization improves, but system complexity increases due to automated scaling mechanisms
Solution Approach 1:
The system implements a universal scaling mechanism that can be applied across multiple microservices and container orchestration platforms. The automated scaling controller serves multiple functions including monitoring, prediction, decision-making, and execution of scaling actions, reducing overall system complexity through consolidation of responsibilities into a single multi-functional component.
Data Source
AI summary
A computer-implemented method for scheduling and scaling a cloud system for microservice applications is provided including identifying a plurality of nodes within one or more clusters associated with a plurality of containers, generating a model for predicting resource usage among the plurality of nodes, automatically deciding on a number of replicated containers, node bindings, and weight for each replicated container according to application requests and current usage status of a cluster of the one or more clusters that reduce resource usages and microservice cohesion, and determining at least node redistribution of the plurality of nodes within the plurality of containers and workload partitioning to reconfigure scaling, scheduling, and balance deployment requirements of the microservice applications.


