Les technologies de l’information et de la communication évoluent et révolutionnent nos modes de vie et de travail. Le cloud computing ou informatique virtuelle, est apparu ces dernières années comme un nouveau modèle de gestion et d’utilisation des systèmes informatiques. Le concept consiste à déporter sur des serveurs distants les traitements et stockages habituellement effectués en local afin d’y accéder sous forme de service.
En fonction des besoins, les services du cloud computing peuvent s’étendre du simple approvisionnement de machines virtuelles, services IaaS (Infrastructure as a service) aux services de type applications SaaS (Software as a service). Plusieurs modes de déploiement de ces services peuvent être employés selon l’ « institut national des normes et de la technologie » des Etats-Unis (National Institute of Standard and Technology NIST) parmi lesquels le mode public et le mode privé.
Déployés en public, les services du cloud computing permettent d’offrir aux utilisateurs des applications ou systèmes informatiques sous forme de service accessible via l’Internet. Ils permettent aux utilisateurs de s’affranchir des tâches de déploiement et d’administration des systèmes informatiques complexes en local, en leur offrant ces derniers suivant un mode de payement à l’usage. Toutefois, selon Galán et al (2009), les offres publiques du cloud computing sont sujettes à des contrôles de type vendor lock-in qui empêchent les utilisateurs de profiter pleinement de l’architecture. Des questions de sécurité et de réseau, soulevées par les auteurs tels que Ginovsky (2011), Subashini et Kavitha (2011), constituent également des facteurs limitant l’adoption des services publics du cloud computing.
En privé, le cloud computing permet d’optimiser et de faciliter l’utilisation et l’administration des ressources informatiques internes, généralement distribuées sur un réseau local, en offrant une haute disponibilité de ces dernières, accessibles de façon dynamique via une plateforme Web. Ce mode de déploiement apporte de nombreux avantages en termes de coût de gestion et de temps d’administration des systèmes informatiques. Si les solutions du cloud computing privé constituent une alternative aux services publics en termes de sécurité et de réseau, elles adoptent cependant des architectures centralisées de supervision des ressources du système et d’exposition des services aux utilisateurs (Nurmi et al 2008; Sempolinski et Thain 2010; Alrwais, 2011) ; ce qui est susceptible de conduire à des ruptures de service en cas de panne du nœud central du système (Naing, 2012). Il est donc nécessaire, en vue d’implémenter un système de cloud computing privé efficace, de concevoir une nouvelle solution qui intègre la tolérance aux pannes en offrant à tous les hôtes du réseau la possibilité d’être élus pour les différentes tâches de supervision afin d’assurer la continuité des services en cas de panne d’un nœud quelconque du système. C’est dans cette optique que s’inscrit le présent projet de fin d’étude qui vise la conception d’une solution de cloud computing privé basée sur un algorithme de supervision distribué.
Le présent mémoire rédigé, en guise de synthèse du travail effectué dans ce contexte, s’organise en trois grandes parties. Dans une première partie, nous passerons en revue les différents concepts du cloud computing et présenterons l’état de l’art dans le domaine. Dans la deuxième partie, nous aborderons la conception de la solution proposée à travers sa modélisation et les différents choix techniques effectués. Dans la troisième partie, nous présenterons les résultats obtenus après tests et simulations pour enfin conclure par une discussion et des perspectives.
1. CONTEXTE, JUSTIFICATION ET PROBLEMATIQUE
Dans le but de faciliter le déploiement, l’administration et l’utilisation des systèmes informatiques dans les grands centres de données ou entreprises, un nouveau concept, le cloud computing, a été développé. Trois types de services permettent de mettre en oeuvre la facilité d’accès et l’homogénéité de gestion des ressources apportées par ce concept: ce sont les services IaaS (Infrastructure as a Service), les services PaaS (Platform as a Service), et les services SaaS (Software as a Service). Ces différents services du cloud computing visent à offrir respectivement à travers le réseau l’accès à des ressources physiques (stockage, systèmes d’exploitation) sous forme virtuelle, des environnements de développement préconfigurés et adaptés au travail de test et d’exécution d’applications et enfin des applications prêtes à l’usage mises à la disposition des utilisateurs finaux. Ainsi, tous les traitements habituellement effectués en local sont désormais déportés sur des serveurs distants avec pour buts: la mobilité des utilisateurs, la haute disponibilité des ressources, la facilité d’administration, l’accès à distance à partir de simples clients légers à des systèmes (calculateurs) performants, le partage simplifié de ressources, etc.
Consciente des avantages du cloud computing, la société Logisoft-Bénin, spécialisée dans les offres de solutions logicielles, de développement et d’intégration de systèmes d’information (SI) d’entreprise et de fourniture des applications de gestion de la relation clients CRM (Customer RelationShip Management), souhaite déployer en interne un système de cloud computing privé. Le but est de mettre à la disposition de son équipe de développement, des environnements (systèmes d’exploitation) virtuels pour le test des applications ou logiciels développés.
Plusieurs solutions existent dans le domaine du cloud computing permettant le déploiement de l’architecture en privé. On distingue Eucalyptus, OpenNebula, Nimbus, Openstack, etc. Sempolinski et Thain (2010) donnent une vue détaillée de l’architecture de ces solutions et en présentent les avantages et inconvénients des unes par rapport aux autres.
Il s’avère donc que ces solutions, bien qu’éprouvées et souvent employées pour l’implémentation du système en privé, adoptent des architectures centralisées de supervision des différents hôtes du réseau, et d’exposition des services aux utilisateurs ; ce qui est susceptible de conduire à des ruptures de service en cas de panne du nœud central (Naing, 2012). Ainsi, notre travail dans le cadre de ce projet consiste à proposer une nouvelle solution de cloud computing privé supportant la tolérance aux pannes qui désigne une méthode de conception permettant à un système de continuer à fonctionner, éventuellement de manière réduite au lieu de tomber complètement en panne, lorsque l’un de ses composants ne fonctionne plus correctement.
2. OBJECTIFS
L’objectif général visé par le présent travail est la conception d’une solution de cloud computing privé basée sur un algorithme de supervision distribué. De façon spécifique, il s’agira de :
– Présenter l’état de l’art du cloud computing, en particulier des solutions privées ;
– Etudier les solutions architecturales existantes dans le domaine du cloud computing privé ;
– Proposer une solution pour le cloud privé supportant la tolérance aux pannes dans le réseau ;
– Modéliser le fonctionnement de la solution proposée et montrer sa capacité à assurer la continuité des services IaaS du cloud privé en cas de panne d’un nœud quelconque du système.