Kubernetes tuning cuts costs using expert knowledge and fast solvers
Domain-Knowledge Driven Configuration Tuning of Kubernetes Workloads
Software Engineering
Summary
Configuring complex software like Kubernetes is tricky because so many settings affect performance and cost. The authors created a system that uses expert knowledge to guide automated searches for the best settings quickly. Their method helps engineers save a lot of money by picking configurations that lower costs without hurting how well applications run. They tested two approaches, one heuristic and one optimization-based, and both worked faster and better than manual tuning.
What this means in practice
- •For cloud platform engineers: Automatically find cost-saving Kubernetes settings by selecting expert-informed constraints for industrial workloads.
- •For performance optimization teams: Use fast heuristic or optimization solvers to balance cost and performance in container management.
Authors
Federico Imberti, Luca Cavagnis, Stefano Cereda, Giovanni Gibilisco, Claudio Menghi
Abstract
Industrial software applications often require engineers to tune the software deployment platform. Configuration tuning identifies valuable configurations that minimize costs while ensuring the application performance. However, finding these configurations is difficult. The number of tunable configuration parameters in industrial applications is large, and engineers cannot assess different configurations in production because users may experience performance degradation. This work targets Kubernetes: A system for automating the deployment, scaling, and management of containerized applications. This paper proposes a domain-knowledge-driven solution for finding configurations of industrial applications in a practical time. The solution relies on a catalog of constraints encountered by domain experts in similar applications. Depending on the problem under analysis, engineers can customize the optimization problem by selecting the relevant constraints from the catalog for the application at hand. We rely on two alternative solvers to find an optimal configuration: The first is based on heuristics, while the second reuses existing optimization-based solutions. We implemented our solution within an industrial tool from a software company specializing in performance engineering and optimization. We compare our solution to a baseline, considering a set of predefined configuration values provided by engineers. Our results confirm the effectiveness of our solution: Compared to the baseline, the heuristic-based and optimization-based solutions provide significant average savings of 11591 USD/mo and 15874 USD/mo per Kubernetes, respectively, accounting for 24.03% and 32.90% of the costs, in practical time (0.71 seconds per extraction for the heuristic-based and 45.54 seconds per extraction for the optimization-based solution).