Proposition de thèse Un cadre flexible pour l élasticité dans les nuages Mots clés : Cloud Computing, élasticité, scalabilité, équilibrage de charge, OCCIware Durée du contrat : 36 mois Date prévisible d embauche : dès que possible Encadrement Ce sujet de thèse est proposé par la société Scalair avec un encadrement scientifique de Inria. Nabil Djarallah Responsable R&D Société Scalair 3 avenue Antoine Pinay 59510 Hem - France Philippe Merle Chargé de Recherche Equipe- projet Spirals Inria Lille - Nord Europe Parc Scientifique de la Haute Borne 40, avenue Halley - Bât. B, Park Plaza 59650 Villeneuve d'ascq - France Sujet de thèse Depuis 2006, l informatique vit la révolution du «Cloud Computing» qui permet de ra- tionnaliser et maîtriser les coûts d exploitation des systèmes informatiques. Selon la dé- finition proposée par le NIST [1], le Cloud Computing, ou informatique en nuage 1, est un modèle permettant un accès omniprésent, pratique et à la demande via le réseau à un réservoir partagé de ressources informatiques configurables (réseaux, serveurs, stock- age, applications, services, etc.) qui peuvent être rapidement provisionnées et libérées avec un effort minimal de gestion ou d interaction avec le fournisseur. L élasticité est l une des principales caractéristiques de l informatique en nuage. Initia- lement, le concept d élasticité a été défini en physique comme la capacité d un matériel à revenir à son état initial après une déformation. En économie, l élasticité dénote la sen- sibilité d une variable dépendante aux changements d une ou plusieurs autres variables. En informatique en nuage, il existe de nombreuses définitions de la notion d élasticité comme indiquée dans [2]. L élasticité est définie dans [2] comme la mesure par laquelle 1 http://en.wikipedia.org/wiki/elasticity_(cloud_computing)
un système est capable de s adapter aux changements de la charge de travail en approvi- sionnant ou libérant des ressources d'une manière autonome, de sorte qu à chaque ins- tant les ressources disponibles correspondent au plus près que possible à la demande actuelle. La notion d élasticité peut être considérée comme une automatisation de la no- tion de scalabilité (passage à l échelle, montée en charge). Toutefois, l élasticité vise à optimiser au mieux et le plus rapidement possible les ressources utilisées à un instant donné. L élasticité d un système dans les nuages peut aussi bien s appliquer sur des ressources d infrastructures (IaaS), de plates- formes (PaaS) que d applications (SaaS). L élasticité peut être mise en œuvre de manière manuelle ou automatique. Pour cette dernière, on distingue les stratégies réactives de celles prédictives. Une stratégie réactive réagit à un changement de la charge du système en approvisionnant (libérant) des ressources. Ces stratégies s expriment souvent sous la forme de règles Evénements / Conditions / Ac- tions où l événement est un changement observable du système (e.g., nouveau taux d utilisation du CPU, etc.), la condition s exprime sur les indicateurs observés (e.g., CPU > 80%) et l action exprime une reconfiguration des ressources du système (e.g., ajout d une machine virtuelle). Une stratégie réactive a pour principal défaut de réagir sou- vent trop tard à la variation de la charge car il est difficile de déterminer les conditions et les actions adéquates. De l autre côté, une stratégie prédictive tente de prédire à l avance les changements de la charge du système puis de reconfigurer le système avant qu il ne soit trop tard. De nombreuses stratégies prédictives ont été proposées dans la littérature. Toutefois, souvent ces stratégies sont spécifiques à un système donné et dif- ficilement applicable de manière générique à d autres systèmes. Il existe trois princi- pales méthodes de gestion des ressources : la réplication (ou scalabilité horizontale), le redimensionnement (ou scalabilité verticale) et la migration. La réplication consiste à dupliquer une ressource en plusieurs exemplaires. Un équilibrage de charge est alors placé devant les réplicas et une stratégie de maintien de la cohérence de l état des répli- cas est nécessaire. Le redimensionnement consiste à modifier les caractéristiques d une ressource (e.g., augmenter/diminuer le CPU, la mémoire, etc.). La migration consiste à déplacer une ressource (e.g., migration d une machine virtuelle) vers un emplacement physique plus adéquate. Ces deux dernières méthodes sont difficiles à mettre en œuvre lorsque l on désire reconfigurer à chaud le système sans l arrêter. L état de l art [3] identifie quelques défis et questions ouvertes sur l élasticité en infor- matique en nuage : 1. Disponibilité des ressources. L élasticité d un fournisseur d informatique dans les nuages est limitée par les ressources physiques dont il dispose. Ainsi souvent il doit limiter la quantité de ressources qu un utilisateur peut allouer à un instant donné afin de satisfaire toutes les demandes de tous les utilisateurs. Si celles- ci dépassent ses capacités physiques soit il refuse de nouvelles demandes soit il doit sous- traiter celles- ci auprès d autres fournisseurs. 2. Interopérabilité entre nuages. Actuellement, il y a un manque d interfaces communes et/ou standardisées (API) entre les différents nuages freinant l interopérabilité entre fournisseurs de nuages, la migration de ressources (ma- chines virtuelles, données et applications) d un nuage à un autre, l interaction entre nuages. 3. Granularité des ressources. Actuellement, chaque fournisseur définit les diffé- rentes granularités de ressources qu il offre (e.g., les types d instances de Amazon
EC2). Il serait plus appréciable que les utilisateurs puissent dimensionner fine- ment les ressources en fonction de leurs besoins. Par exemple, un besoin en cal- cul intensif pourrait nécessiter une machine virtuelle de nombreux proces- seurs/cores (16 vcpu) et peu de mémoire vive (2 Go) alors que provisionner une base de données nécessiterait peu de processeurs/cores (2 vcpu) mais beaucoup de mémoire vive (16 Go). 4. Temps d approvisionnement. Selon le fournisseur, l allocation d une machine virtuelle peut prendre entre 1 à 10 minutes [4]. De tels temps d approvisionnement ne permettent pas d obtenir une élasticité réagissant ex- trêmement rapidement. 5. Outils et plates- formes pour le développement d applications élastiques. Les infrastructures de cloud fournissent des outils dédiés à la gestion de l élasticité des machines virtuelles et des applications qu elles exécutent. Toute- fois il y a un manque d outils et de plates- formes pour le développement d applications élastiques. Par exemple, on ne sait pas encore caractériser claire- ment ce que serait le redimensionnement (scalabilité verticale) d un composant ou service applicatif. Depuis récemment, des solutions comme Docker 2 proposent une approche à base de conteneurs qui est plus légère que les approches à base de machines virtuelles. Le dé- ploiement d un conteneur est de l ordre de la minute lorsque l approvisionnement d une machine virtuelle est de l ordre de plusieurs minutes. Ainsi, les fournisseurs mais aussi les utilisateurs doivent faire face à une hétérogénéité des outils de virtualisation et doivent les composer pour optimiser leurs systèmes. L utilisateur peut ainsi devoir choi- sir entre 1) allouer une seule machine virtuelle puis y déployer ces différents conte- neurs, 2) allouer plusieurs machines virtuelles hébergeant un conteneur chacune, 3) allouer des serveurs physiques dédiés puis déployer un environnement de virtualisation puis de conteneurs, et 4) toute combinaison des trois choix précédents. L objectif de cette thèse est de proposer un cadre flexible pour l élasticité en informa- tique dans les nuages. Ce cadre devra couvrir toutes sortes de ressources IaaS, PaaS et SaaS, supporter l interopérabilité avec d autres nuages et la diversité des techniques de virtualisation, permettre d exprimer et composer des stratégies réactives et prédictibles, etc. Ce cadre apportera des éléments de réponses pour les six défis précédemment cités. Cette thèse s inscrit dans une collaboration entre la société Scalair et Inria dans le cadre du projet PIA OCCIware. Ainsi, le cadre à concevoir s appuiera sur la recommandation Open Cloud Computing Interface (OCCI) 3 [5] de l Open Grid Forum (OGF) qui propose une interface ouverte et standardisée pour toute ressource dans les nuages. Les résultats de la thèse de Fawaz Paraiso [6] [7] pourront être réutilisés et servir de point de départ pour l'étude présente. Programme et échéancier de travail Année 1 2 https://www.docker.com/ 3 http://occi-wg.org/
Etat de l art sur l élasticité/scalabilité dans le Cloud Computing. Proposition d un cadre flexible pour l élasticité en Cloud Computing. Soumission d un papier dans un workshop international. Année 2 Implantation du cadre flexible pour l élasticité en Cloud Computing. Expérimentation du cadre sur différents types de ressources. Soumission d un papier dans une conférence internationale. Année 3 Expérimentation du cadre sur différents types d applications métiers. Soumission d un article dans un journal ou revue international. Rédaction de la thèse. Diplôme requis Bac + 5 - Master professionnel spécialité informatique - école d ingénieur spécialité in- formatique Compétences recherchées Forte connaissance en cloud computing, élasticité et scalabilité. Maîtrise de plusieurs langages de programmation. Connaissance en algorithmique. Excellent niveau en anglais exigé. Capacité de rédaction écrite et de communication orale. Capacité de travailler en collaboration. Contact Pour candidater, envoyez un CV très détaillé de notre parcours, une lettre de motivation argumentant de l excellence de votre candidature par rapport au sujet de thèse, les relevés de notes et de classement en License, Master 1 et 2 ou des 5 années d école d ingénieurs et des lettres de recommandations (enseignants et tuteurs de stage) à ndjarallah@scalair.fr et Philippe.Merle@inria.fr. Projet PIA OCCIware Le projet OCCIware, http://www.occiware.org, est financé par le Programme d Investissements d Avenir (PIA) «Cloud Computing et Big Data». Ce projet est labellisé par cinq pôles de compétitivité dont le pôle PICOM des industries du commerce de la région Nord / Pas- de- Calais, Systematic de la région Ile de France, Minalogic de la région Rhône- Alpes, SCS de la région PACA, Images et Réseaux de la région Bretagne. Les par- tenaires du projet sont les sociétés Open Wide, ActiveEon SA, Scalair, Linagora GSO, Obeo, les associations OW2 Consortium et Pôle Numérique, l Institut Mines- Télécom/Télécom SudParis et l Université Joseph Fourier Grenoble.
L utilisation de ressources informatiques sous forme de services à la demande, aussi appelé cloud computing, constitue désormais une réalité dans la plupart des domaines de l informatique. Néanmoins, ce changement massif de paradigme ne s est pas encore matérialisé par un cadre formel cohérent ni des technologies standardisées. Ainsi la mise sous forme de service d un logiciel existant ou même son développement constitue toujours un effort de R&D particulièrement important pour un éditeur de logiciel. De plus, si des standards de facto sont apparus dans le cloud computing (par exemple, OpenStack pour le IaaS), ces standards restent cloisonnés à un domaine particulier : in- frastructure (IaaS), plateforme (PaaS) ou applicatif (SaaS). Nous croyons que le déve- loppement d outils scientifiques et techniques spécifiques au cloud computing dans son ensemble permettront de baisser considérablement le coût d entrée sur le marché du cloud d acteurs existants du logiciel mais aussi de permettre le développement de nou- veaux services innovants et à forte valeur ajoutée grâce au décloisonnement des techno- logies du cloud computing. Le projet OCCIware vise donc à développer un cadre formel ainsi que les outils de modélisation, conception, déploiement et exécution de toute res- source informatique sous forme de service. Ce cadre repose sur la recommandation Open Cloud Computing Interface (OCCI) de l Open Grid Forum (OGF) et s inscrit ainsi dans la continuité du projet FUI CompatibleOne. Des démonstrateurs dans chacun des domaines les plus utilisés par le cloud computing permettront de valider l approche du projet. La dissémination des résultats sera assurée par les liens forts des acteurs du pro- jet avec l OGF, le DMTF, le consortium OW2 et la fondation Eclipse. La valorisation des outils développés sera garantie par la cohérence de l ensemble, la modularité des com- posants et la distribution sous forme de logiciel libre (licence type Apache Public License 2, LGPL, EPL selon la nature des logiciels). Société Scalair Scalair est intégrateur d'infrastructure système, réseau et télécom, expert en environ- nement de Cloud Privé. Sa mission est de répondre aux enjeux des entreprises et orga- nismes publics en mettant en œuvre des solutions hébergées adaptées à leurs besoins avec une maitrise et une gestion de bout en bout. Scalair accompagne ses clients à chaque étape de leur projet qu'il s'agisse de l'analyse de l'existant, de la conception de l'architecture cible, de la mise en œuvre à l infogérance des systèmes (Linux et Windows) et des applications. Equipe- projet Spirals L équipe- projet Spirals mène des recherches dans les domaines des systèmes répartis et des sciences du logiciel. Spirals a pour but d'introduire plus d'automatisation dans les mécanismes d'adaptation des systèmes logiciels, en particulier pour assurer la transi- tion entre des systèmes adaptatifs et auto- adaptatifs. Spirals vise plus particulièrement deux propriétés : l'auto- réparation et l'auto- optimisation. Avec l'auto- réparation, Spirals vise à étudier et adapter des solutions de fouille de données et d'apprentissage automa- tique pour la conception et l'implémentation des systèmes logiciels. Cela contribue à l'objectif d'obtenir des solutions pour la réparation automatique du logiciel. Avec l'auto- optimisation, Spirals vise à partager, collecter et analyser des comportements et des données distribuées pour continuellement adapter, optimiser et conserver en fonction-
nement les systèmes logiciels. Cela participe à l'objectif d'obtenir des systèmes logiciels éternels. Inria Lille- Nord Europe Créé en 1967, Inria est le seul institut public de recherche entièrement dédié aux sciences du numérique. A l interface des sciences informatiques et des mathématiques, les 3400 chercheurs d Inria inventent les technologies numériques de demain. Issus des plus grandes universités internationales, ils croisent avec créativité recherche fonda- mentale et recherche appliquée. Ils se consacrent à des problèmes concrets, collaborent avec les acteurs de la recherche publique et privée en France et à l étranger, et transfè- rent le fruit de leurs travaux vers les entreprises innovantes. Les chercheurs des équipes Inria ont publié plus de 4800 articles en 2010. Ils sont à l'origine de plus de 270 brevets actifs et de 105 start- ups. Les 171 équipes- projets Inria sont réparties dans huit centres de recherche implantés en région. Le centre de recherche Inria Lille Nord Europe, créé en 2008, compte 357 personnes dont 250 scientifiques répartis dans 17 équipes de recherche. Reconnu pour son impli- cation forte dans le développement socio- économique sur le territoire du Nord Pas- de- Calais, le centre de recherche Inria Lille Nord Europe poursuit une démarche de proximité avec les grandes entreprises et les PME. En favorisant ainsi les synergies entre chercheurs et industriels, Inria participe au transfert de compétences et d expertises dans les technologies numériques et donne accès aux meilleures recherches euro- péennes et internationales au bénéfice de l innovation et des entreprises notamment en région. Bibliographie [1] Peter Mell, Timothy Grance. «The NIST Definition of Cloud Computing». NIST Special Publication 800-145. Septembre 2011. [2] Nikolas Roman Herbst, Samuel Kounev, Ralf Reussner. «Elasticity in Cloud Compu- ting: What It Is, and What It Is Not». Proceedings of the 10th International Confe- rence on Autonomic Computing (ICAC 2013), San Jose, CA, Etats- Unis. Juin 2012. [3] Guilherme Galante, Luis Carlos E. de Bona. «A Survey on Cloud Computing Elastici- ty». Proceedings of the 2012 IEEE/ACM Fifth International Conference on Utility and Cloud Computing. 2012. [4] Ming Mao, Marty Humphrey. «A Performance Study on the VM Startup Time in the Cloud». Prooceddings of 5th IEEE International Conference on Cloud Computing (CLOUD 2012). 2012. [5] Ralf Nyrén, Andy Edmonds, Alexander Papaspyrou, Thijs Metsch. «Open Cloud Com- puting Interface Core». Open Grid Forum Specification Document GFD- P- R.183. Avril 2010. [6] Fawaz Paraiso. «socloud : une plateforme multi- nuages distribuée pour la concep- tion, le déploiement et l exécution d applications distribuées à large échelle». Thèse de doctorat, Université des Sciences et Technologie de Lille Lille I. 2014. [7] Fawaz Paraiso, Philippe Merle, Lionel Seinturier. «socloud: a service- oriented com- ponent- based PaaS for managing portability, provisioning, elasticity, and high availa- bility across multiple clouds». Computing, Springer. 2014.