thesis

Openicra : vers un modèle générique de déploiement automatisé des applications dans le nuage informatique

Abstract

Le nuage informatique ou le « Cloud Computing » est une approche informatique qui fait référence à la mise à disposition de ressources informatiques à la demande via Internet ou en privé via le réseau interne de l’entreprise, avec un modèle de facturation à l’usage. Le paradigme IaaS (Infrastructure as a Service) consiste à fournir aux utilisateurs un accès, à la demande et en libre-service, à un parc informatique virtualisé, souvent composé de machines virtuelles sur lesquelles les utilisateurs peuvent installer, contrôler et personnaliser leurs applications. Alternativement, le modèle de service PaaS (Platform as a Service) offre aux utilisateurs un environnement de programmation disponible immédiatement et entièrement gérable pour créer et déployer des applications évolutives dans le nuage informatique et sans intervention de l’utilisateur. Bien que le choix d’un tel environnement puisse paraitre assez avantageux, plusieurs défis se lèvent devant l’utilisation efficace des systèmes du nuage informatique. Ainsi, les services du nuage informatique sont offerts à différents niveaux d’abstraction où les fournisseurs de nuage exposent l’accès à leurs services via des APIs propriétaires. Cela encourage l’enfermement propriétaire et limite l’interopérabilité des services de nuage informatique, ce qui constitue une barrière à l'entrée significative pour les utilisateurs de nuage. Plusieurs solutions ont été proposées en se basant sur l'utilisation des couches intermédiaires qui permettent d’isoler les applications de la variabilité de certains services offerts par les fournisseurs de nuages. Toutefois, ces approches constituent une solution partielle de ce problème lorsque de telles solutions utilisent certaines technologies propriétaires, car elles contribuent au risque de déplacer l'effet de l’enfermement propriétaire du fournisseur vers les outils de déploiement. L’objectif principal de notre recherche consiste à concevoir et à développer un nouveau modèle générique de déploiement automatique des applications dans le nuage informatique, afin d'atténuer les effets de ces barrières à l'entrée, de réduire la complexité de développement des applications et de simplifier le processus de déploiement des services dans le nuage. De surcroît, supporter et déployer automatiquement des applications sur le nuage en assurant l’élasticité, la mise à l’échelle automatique et l’interopérabilité avec toutes les plateformes et en optimisant la gestion du stockage sont les objectifs primordiaux de ce mémoire. Notre modèle proposé OpenICRA met en oeuvre une architecture en couches qui cache les détails de l'implémentation permettant d’avoir un processus de déploiement simple. En outre, contrairement aux autres solutions de nuages informatiques disponibles telles que Google App Engine, Windows Azure ou Amazon Elastic Beanstalk, les composants du modèle proposé se caractérisent par la liberté d’accès à leur code source. Ceci nous permet de garantir la portabilité des applications dans tout environnement d’exécution, d’éviter l’enfermement propriétaire et de faciliter le processus d’automatisation des applications dans le nuage. Les méthodes de redondance, de mise à l’échelle et l’intégration du système de fichiers distribué avec la couche IaaS permettent d’assurer la haute disponibilité, l’évolutivité et l’extensibilité du modèle et des applications ainsi que l’optimisation de la gestion de stockage des disques durs virtuels des VMs dans tout environnement du nuage. Nous avons réalisé deux cas d’études réels pour valider le modèle OpenICRA dont le premier consiste à automatiser le déploiement de l’intergiciel distribué OpenSAF dans un cluster de noeuds au sein de l’environnement Cloud du réseau GSN (Synchromedia, 2010), alors que le deuxième cas consiste à migrer l’application de travail collaboratif ICRA (Cheriet, 2012) vers le nuage EC2 d’Amazon (2012a). Nos résultats empiriques démontrent l’efficacité de notre modèle proposé pour déployer différents types d’applications sans apporter aucune modification dans leurs codes sources. En outre, nous démontrons comment notre proposition est capable d’automatiser et d’orchestrer le processus de déploiement des applications et d’optimiser leur exécution en fonction de la performance dans des environnements de nuage informatique hétérogènes

    Similar works