Self-optimization of Infrastructure and Platform Resources in Cloud Computing
Auto-optimisation des ressources des couches infrastructure et plate-forme du Cloud computing
Abstract
Elasticity is considered as an important solution to handle the performance issues in scalable distributed system. However, most of the researches of elasticity only concern the provisioning and de-provisioning resources in automatic ways, but always ignore the resource utilization of provisioned resources. This might lead to resource leaks while provisioning redundant resources, thereby causing unnecessary expenditure. To avoid the resource leaks and redundant resources, my research therefore focus on how to maximize resource utilization by self resource management. In this thesis, relevant to diverse problems of resource usage and allocation in different layers, I propose two resource management approaches corresponding to infrastructure and platform, respectively.
To overcome infrastructure limitation, I propose CloudGC as middleware service which aims to free occupied resources by recycling idle VMs. In platform-layer, a self-balancing approach is introduced to adjust Hadoop configuration at runtime, thereby avoiding memory loss and dynamically optimizing Hadoop performance. Finally, this thesis concerns rapid deployment of service which is also an issue of elasticity. A new tool, named « hadoop-benchmark », applies docker to accelerate the installation of Hadoop cluster and to provide a set of docker images which contain several well-known Hadoop benchmarks.
The assessments show that these approaches and tool can well achieve resource management and self-optimization in various layers, and then facilitate the elasticity of infrastructure and platform in scalable platform, such as Cloud computing.
L’élasticité s’est imposée comme une solution incontournable pour gérer des problèmes de performance dans des systèmes logiciels dans le Cloud. Toutefois, la plupart des recherches autour de l’élasticité ne concernent que l’automatisation de l’approvisionnement des ressources, sans se réellement se soucier de l’utilisation des ressources ainsi provisionnées. Cela peut rapidement conduire à des fuites de ressources, entraînant ainsi des dépenses inutiles. Pour éviter de tels problèmes, mes recherches se concentrent sur la maximisation de l’utilisation des ressources du Cloud par l’auto-gestion des ressources.
Dans cette thèse, pour faire face aux divers problèmes liés à l’utilisation des ressources dans les différentes couches du Cloud, je propose deux approches de gestion de ressources pour les couches d’infrastructure et la plate-forme. Pour surmonter la limitation des services d’infrastructure, je propose CloudGC comme service intergiciel qui vise à libérer les ressources occupées par les machines virtuelles qui tournent au ralenti. Au sein de la couche plate-forme, j’introduis également une approche d’auto-équilibrage pour ajuster automatiquement la configuration d’Hadoop en cours d’exécution, ce qui optimise dynamiquement les performances des applications. Enfin, cette thèse adresse également le déploiement rapide de Hadoop. En particulier, un nouvel outil, appelé « hadoop-benchmark », exploite la technologie Docker pour accélérer l’installation de Hadoop et fournir un ensemble d’images Docker qui embarquent plusieurs benchmarks Hadoop de référence.
Les évaluations montrent que toutes ces approches et outil peuvent permettre l’auto-gestion des ressources du Cloud, notamment en facilitant l’élasticité des couches d’infrastructure et de plate-forme.