Gestion autonome de la résilience des applications dans un cloud massivement réparti en bordure de réseau(Fog)

par Umar Ozeer

Projet de thèse en Informatique

Sous la direction de Gwen Salaun et de Jean-marc Vincent.

Thèses en préparation à Grenoble Alpes , dans le cadre de Mathématiques, Sciences et technologies de l'information, Informatique , en partenariat avec Institut National de Recherche en Informatique et en Automatique (laboratoire) depuis le 20-01-2017 .


  • Résumé

    Le cloud computing est un concept qui se caractérise par la fourniture à la demande des ressources. Un des enjeux du cloud computing est d'offir une plus grande efficacité dans la mise en oeuvre et l'utilisation de ces ressources matérielles (middlewares, applications). Pour cela le cloud computing s'appuie sur les caractéristiques d'auto-gestion des ressources afin de limiter le nombre d'interventions humaines dans la gestion du cycle de vie des ressources. La résilience des ressources constitue l'un des domaines non fonctionnels majeurs que doit adresser le cloud computing pour être crédible. Il s'agit d'offrir des mécanismes capables de détecter et corriger des pannes qui affectent les ressources, pour en limiter l'indisponibilité. Cette exigence en résilience s'inscrit dans une mutation des principes du cloud computing, appliqués à des architectures centralisées, bien maitrisées vers des architectures largement réparties géographiquement, s'appuyant sur un nombre important de ressources hétérogènes. Cette transformation induit une plus forte volatilité des ressources et une multiplication des instances de gouvernance qui composent ces environnement de clouds largement répartis : certaines ressources peuvent apparaître / disparaitre sans synchronisation préalable, les canaux de communication entre ressources peuvent être interrompus. La résilience de bout en bout des applications réparties dans le cloud nécessite donc d'être capable de détecter les pannes et de les corriger. Ceci passe par des opérations de monitoring et de reconfiguration généralement complexes. Cependant les solutions actuelles ne traitent que de manière partielle la gestion autonome de la résilience des applications dans le cloud. Ainsi la plupart des solutions proposées se situent au niveau de l'infrastructure, sans mécanisme de restauration d'un état, et avec une granularité de manipulation fixe. En matière de restauration d'état, les solutions de type DBaaS (DataBase as a Service) ne proposent que des mécanismes très spécifiques au domaine des bases de données. Enfin, la plupart des solutions de PaaS (Platform as a Service) proposent essentiellement des mécanismes de réplication pour faire face aux pannes. Or de telles approches ne sont pas forcément adaptées à tout type d'architecture applicative. L'objectif de cette thèse est de proposer des modèles et mécanismes permettant d'assurer la gestion autonome de la résilience (tolérance aux pannes) de bout en bout des applications instanciées dans des clouds massivement répartis. Ce projet de thèse inclut les phases suivantes : -Définition de modèles La définition de modèles architecturaux intégrant, pour l'ensemble des ressources qui participent à la mise en oeuvre d'une application répartie, les niveaux de tolérance aux pannes /disponibilité, la nature des défaillances supportées, la description de patrons de résilience (réplication, réparation, prédiction, élection / vote, point de reprise). -La conception de mécanismes capables de mettre en oeuvre ces modèles afin de proposer une gestion autonome de la résilience de bout en bout de de l'application répartie dans le cloud -La spécification et la vérification formelle de la solution proposée dans le cadre d'une collaboration entre Orange et Inria afin d'éliminer les risques d'erreur de conception, critique dans un système d'auto-réparation.

  • Titre traduit

    Autonomous resilience of applications in a largely distributed cloud environement (Fog)


  • Résumé

    Cloud computing is a concept characterized by on-demand self-service resources. One of the challenges of cloud computing is greater efficiency in implementing and providing resources (middleware, applications). In order to meet this requirement, cloud computing is based on autonomic computing to limit human interventions in the management of the lifecycle of resources. Resilience of resources is one of the critical issues of cloud computing. There should be mechanisms to detect and correct faults so as to limit the unavailability of the resources. This requirement in resilience arises because of the transformation of cloud computing principles, from centralized architectures that are well mastered to geographically widely distributed architectures based on large numbers of heterogeneous resources. This transformation induces a greater volatility of resources and a proliferation in the number of entities which manage this distributed environment. For instance, some resources may appear and disappear without prior synchronization and communication channels between resources may be interrupted. End to end resilience of applications distributed in the cloud hence require the capacity to detect faults and correct them. This involves complex monitoring and configuration. However, current solutions only address partially the autonomous resilience of applications in the cloud. Most of the solutions proposed are at the infrastructure level, without any state recovery mechanism. In terms of state recovery, DBaaS(DataBase as a Service) solutions offer solutions which are very specific to database context and most of the solutions at the PaaS (Platform as a Service) level to deal with faults are primarily replication mechanisms. Such approaches are however not always appropriate for every type of application architecture. The aim of this thesis is to propose models and mechanisms for the autonomous management of end to end resilience (fault tolerance) of applications in a largely distributed cloud environment. The thesis includes the following stages: -Definition of models: defining architectural models integrating, for all the resources involved in the implementation of a distributed application, tolerance levels to failures / availability, the type of failures supported, the description of resilience patterns (replication, repair, prediction, recovery point) -Designing mechanisms capable of implementing these models to propose an autonomous management of end to end resilience of application distributed in the cloud. -The specification and model checking of the solution proposed as part of collaboration between Orange and INRIA to eliminate the risks of design error which is critical in a self-healing system.