Gestion et Optimisation d’Applications dans le Cloud

Supervision

Walter Rudametkin (Maître de conférences - Spirals)
Lionel Seinturier (Professeur - Spirals)

Lieu

Spirals Research Group
Inria Lille - Nord Europe
Parc Scientifique de la Haute Borne
40, avenue Halley - Bat. B, Park Plaza
59650 Villeneuve d'Ascq – FRANCE

Contexte

Dans l’informatique en nuage (Cloud Computing) l’environnement d’exécution est en changement continu pour pouvoir s’adapter à la charge des clients, pour pouvoir ajouter de nouvelles fonctionnalités dans les applications, pour réaliser des mises à jour, … Ces applications dans le cloud sont composés de noeuds et de composants logiciels pouvant être ajoutés ou supprimés pendant l’exécution, ce qui permet à un logiciel de s’adapter et de s’ajuster à l’évolution de l’environnement, et également de tenir compte de l’évolution du logiciel même.

Malgré les avantages du cloud, les nombreux paramètres à gérér et la complexité des applications elles mêmes dépassent les capacités humaines pour les administrer manuellement. Notre objectif est de proposer des solutions d’automatisation pour optimiser le fonctionnement des applications dans le cloud.

Projet

Dans ce contexte, ce sujet de recherche porte sur la définition d'une plateforme d'analyse et de comparaison d'architectures logicielles pour les applications dans le Cloud, avec le but d’optimiser l’application selon des criteres fonctionnels et extra-fonctionnels. L’infrastructure du cloud et l’architecture de l’application sont en changement continus, nous voulons être capable de choisir, à un instant donné, la “meilleure architecture” possible pour répondre aux nombreux besoins parfois contradictoires (par exemple, l’architecture la moins cher à déployer, l’architecture la plus fiable, ...).

Nous souhaitons privilégier deux pistes de recherche. Tout d'abord en terme statique, nous souhaitons orienter le travail vers la définition d'une modélisation des architectures logicielles pour le Cloud permettant d’étudier les points de variabilité et leur optimisabilité, par exemple en envisageant des solutions à base de lignes de produits logiciels (SPL pour Software Product Line) [2] et l'utilisation d’algorithmes d'exploration et d’optimisation [3]. Deuxièmement, en terme dynamique, nous souhaitons pouvoir concevoir des solutions permettant la mise à jour à chaud de l'application, en cours d'exécution, et sa gestion continue cherchant l'optimalité. Les solutions développées dans [4] et [5] pourront servir de base à ce travail.

Compétences

Le sujet utilisera les technologies suivants : Java SE, des plateformes Clouds tel que Microsoft Azure, Amazon EC2 et OpenShift (RedHat), Kevoree Modelling Framework (KMF), le système d’exploitation Linux, le conteneur d’applications Docker, Git et Github.

Le code source produit sera mis en ligne avec une licence libre (GPL ou Apache), permettant aux étudiants de facilement enrichir leurs CVs.

À la fin de ce stage, l'étudiant aura des compétences théoriques et pratiques avec des technologies très recherchées en entreprise et dans le monde de la recherche, telles que le Cloud Computing, les middleware adaptatifs, et l'Ingenierie Dirigée par les Modèles.

Poursuite

Nous comptons proposer un sujet de thèse comme poursuite de ce travail ou un poste d’ingénieur.

Références

[1] Gregory D. Abowd and Elizabeth D. Mynatt. 2000. Charting past, present, and future research in ubiquitous computing. ACM Trans. Comput.-Hum. Interact. 7, 1 (March 2000), 29-58.
[2] Klaus Pohl, Günter Böckle, and Frank J. van der Linden. Software Product Line Engineering: Foundations, Principles and Techniques. Springer-Verlag, 2005.
[3] Mark Harman, S. Afshin Mansouri, and Yuanyuan Zhang. 2012. Search-based software engineering: Trends, techniques and applications. ACM Comput. Surv. 45, 1, Article 11 (December 2012), 61 pages.
[4] G. S Blair, N. Bencomo, and R B. France. Models@ run.time. IEEE Computer, 42(10):22-27, 2009.
[5] Automated Selection and Configuration of Cloud Environments Using Software Product Lines Principles. Clément Quinton, Daniel Romero and Laurence Duchien. In Proceedings of the 7th IEEE International Conference on Cloud Computing, CLOUD'14 . Anchorage, Alaska (USA), 27-02 June/July 2014.