Sujets de Master Recherche


Systèmes distribués à grande échelle : déploiement et mise à jour à base de composants
Responsable : Vania Maragozova
Description



Systèmes distribués à grande échelle : déploiement et mise à jour à base de composants

Résumé

Le déploiement d'un système à grande échelle est un processus complexe qui inclut l'installation, la configuration et l'activation de logiciels divers allants du système d'exploitation aux applications utilisateur. Il implique la gestion d'un très grand nombre de machines, de liens de réseau hétérogènes et d'une multitude de versions logicielles. La gestion de tous ces aspects nécessite des outils adaptés qui permettent le contrôle et l'automatisation du processus de déploiement.

Dans le cadre des plates-formes de calcul scientifique hautes performances, où il s'agit d'effectuer des calculs sur des milliers de machines pendant des heures (des exemples sont le calcul du génome humain ou la simulation d'une explosion nucléaire), les exigences envers les outils de déploiement sont encore plus importantes. En effet, en plus de contrôler le processus de déploiement, les outils doivent minimiser le temps de déploiement et adapter le processus de déploiement aux spécificités du calcul à effectuer.

L'objectif de ce stage est d'étudier et de proposer des mécanismes de déploiement qui, tout en restant efficaces dans le temps, permettent de prendre en compte la structure du logiciel déployé afin d'adapter le processus de déploiement.

Description 

Ce stage s'inscrit dans la recherche d'outils de déploiement pour les systèmes à grande échelle utilisés pour le calcul scientifique [1]. Dans ces systèmes, les utilisateurs effectuent des calculs sur un grand nombre de machines et ont souvent besoin de logiciels et de configurations spécifiques. Le calcul s'effectue pendant un certain temps après lequel les machines sont affectées à d'autres calculs avec des besoins différents. L'objectif est donc d'être capable de déployer (d'adapter) l'environnement logiciel d'un grand nombre de machines en peu de temps et de manière à répondre aux besoins de l'utilisateur en cours.

De nombreuses recherches se sont intéressées au problème de déploiement logiciel, proposant toujours de nouveaux outils de déploiement. Toutefois, peu d'outils se sont intéressés simultanément au déploiement de l'intégralité de la pile logicielle (système d'exploitation, librairies, applications), aux aspects de performances (temps de déploiement) et aux aspects d'architecture du logiciel déployé. Dans le domaine du génie logiciel, par exemple, les outils s'adressent généralement à un seul logiciel et considèrent son architecture en vue de la gestion des versions et des mises à jour [2]. Dans le domaine des intergiciels distribués, les outils traitent les dépendances et la précédence d'installation et d'activation des composants du niveau middleware, mais en considérant que la couche système est préalablement installée [3]. Enfin, dans le domaine du calcul scientifique, les outils visent un temps de déploiement minimal et déploient des blocs de logiciels qui incluent toute la pile logicielle [4]. Ils ne s'intéressent pas à la structure interne des blocs déployés, ni à l'architecture logicielle globale.

L'objectif de ce stage de DEA est de proposer une solution de déploiement qui permette de marier ces différentes approches. La recherche portera sur des mécanismes de déploiement permettant (1) de supporter la grande échelle (2) rester efficace dans le temps et (3) utiliser une modélisation à base de composants de la structure du logiciel afin de permettre l'adaptation lors de son déploiement. La proposition d'utiliser une approche à composants est motivée par l'application réussie des composants dans les cas d'adaptation de grands systèmes logiciels distribués [5].

Le projet de DEA s'effectuera dans le projet MESCAL du laboratoire ID (projet joint INRIA-CNRS-UJF-INPG). MESCAL travaille sur les problèmes de construction de middleware efficace pour les systèmes à grande échelle et un des acteurs majeurs dans la construction de la plate-forme nationale Grid'5000. Lors du stage, l'étudiant travaillera sur les outils de déploiement développés au sein du projet et étudiera les possibilités d'application d'une approche à base de composants. 

[1] The Grid: Blueprint for a New Computing Infrastructure, 2nd Edition, Morgan Kaufmann, 2004.  ISBN: 1-55860-933-4.
[2] Lars Bendix: Fundamental Tasks in Software Development Environments  in INFORMATICA - An International Journal of Computing and Informatics, Volume 19, Number 3, September 1995
[3] Sara Bouchenak, Fabienne Boyer, Daniel Hagimont, Sacha Krakowiak, Adrian Mos, Noël de Palma, Vivien Quema, and Jean-Bernard Stefani. Architecture-Based Autonomous Repair Management: An Application to J2EE Clusters. The 24th IEEE Symposium on Reliable Distributed Systems Orlando, FL, USA, October 2005.
[4] http://www-id.imag.fr/Logiciels/kadeploy/index.html
[5] http://en.wikipedia.org/wiki/Software_componentry


Mots-Clés
Déploiement, Grande échelle, Systèmes distribués, Composants


Résultats théoriques attendus

L'étudiant devra expliciter la structure d'une pile logicielle d'une machine et proposer une modélisation en termes de composants. Après une étude bibliographique dans le domaine du déploiement et des composants, il devra (1) proposer une structuration générique des environnements logiciels déployés (2) étudier les modèles à composants et choisir un modèle adapté au contexte du déploiement et (3) exprimer les actions de déploiement en termes d'actions sur des composants.


Résultats pratiques attendus

L'étudiant devra valider sa proposition en travaillant sur l'outil kadeploy développé au sein de MESCAL. La validation sera faite sur la plate-forme Grid'5000 qui compte 9 sites et 3000 processeurs environ.

Contact
Vania dot Marangozova at imag dot fr





Coallocation de ressources dans les grilles hierarchiques
Responsable : Guillaume Huard
Description



Coallocation de ressources dans les grilles hierarchiques

Résumé

L'objectif proposé par ce sujet est la mise en place de solutions théoriques et pratiques pour la collaboration et la coordination d'un ensemble de gestionnaires de ressources afin de permettre la coallocation d'une partie des ressources d'une grille à structure hiérarchique.

Sujet détaillé





Etude des solutions de déploiement d'exécutions distantes
Responsable : Guillaume Huard
Description



Etude des solutions de déploiement d'exécutions distantes

Résumé

Le travail proposé par ce sujet est l'étude expérimentale des différentes solutions existantes pour le déploiement d'exécutions distantes. Il s'agit en particulier d'identifier les besoins dans ce domaine, de comparer les caractéristiques et fonctionnalités proposées par les différents outils disponibles et, selon le temps disponible, de proposer des améliorations à intégrer à l'outil de déploiement utilisé au laboratoire ID.

Sujet détaillé





Mesure, caractérisation et injection de charge à l'usage des machines parallèles
Responsable : Guillaume Huard
Description



Mesure, caractérisation et injection de charge à l'usage des machines parallèles

Résumé

Le travail proposé par ce stage est l'étude des diverses charges matérielles pouvant apparaître au sein d'une machine parallèle. Ces charges concernent toutes les composantes d'une machine parallèle : réseaux, processeur, mémoire, disque. Le but de ce stage est d'étudier les mécanismes de mesure, le comportement caractéristique et la reproduction (aussi appelée injection) de ces différents types de charge.

Sujet détaillé





Sujets de TER

A venir.