Genetic Algorithm for Multi-Objective Optimization of Container Allocation in Cloud Architecture
Carlos Guerrero, Isaac Lera, Carlos Juiz
TL;DR
The paper tackles the NP-complete problem of container allocation and elasticity in microservice-based clouds by formulating four objectives: $OBJ-i$ (Threshold Distance), $OBJ-ii$ (Cluster Balanced Used), $OBJ-iii$ (System Failure), and $OBJ-iv$ (Total Network Distance). It proposes a NSGA-II-based genetic algorithm with a chromosome encoding that captures per-microservice scalability and container-to-physical-machine mappings, along with crossover, three mutation operators, and an elitist, multi-objective selection scheme. Experimental evaluation on data inspired by Socks Shop and Kubernetes policies shows that NSGA-II yields better objective values across configurations and typically uses fewer physical machines, implying potential energy savings. The work demonstrates the practical viability of evolutionary multi-objective optimization for container orchestration and elasticity in cloud architectures, offering a framework for improved provisioning, reliability, and network locality. $Threshold Distance$, $Cluster Balanced Used$, $System Failure$, and $Total Network Distance$ are used to quantify trade-offs, and the Pareto front provides a diverse set of near-optimal solutions for deployment decisions.
Abstract
The use of containers in cloud architectures has become widespread because of advantages such as limited overhead, easier and faster deployment and higher portability. Moreover, they are a suitable architectural solution for deployment of applications created using a microservices development pattern. Despite the large number of solutions and implementations, open issues have not been addressed in container automation and management. Container resource allocation influences system performance and resource consumption so it is a key factor for cloud providers. We propose a genetic algorithm approach, using the Non-dominated Sorting Genetic Algorithm-II (NSGA-II), to optimize container allocation and elasticity management due to the good results obtained with this algorithm in other resource management optimization problems in cloud architectures. The optimization has been focused on a tight use of the resources and a reduction of the network overhead and system failure rate. A model for cloud cluster, containers, microservices and four optimization objectives is presented. Experimental results have shown that our approach is a suitable solution to address the problem of container allocation and elasticity and it obtains better objectives values than the container management policies implemented in Kubernetes.
