Coordination and Reconfiguration of Distributed Cloud Applications
Coordination et reconfiguration des applications réparties dans le nuage
Résumé
Cloud applications consist of a set of interconnected software components running
on multiple virtual machines. Thus, there is a need for protocols that can dynamically
reconfigure such distributed applications. We present in the first part of this thesis
a novel protocol, which can resolve dependencies in distributed cloud applications, by
(dis)connecting and starting/stopping components in a particular order. The protocol also supports virtual machine failures. The virtual machines interact through a
publish-subscribe communication media and reconfigure themselves upon demand in a
decentralised fashion. Designing such protocols is an error-prone task. Therefore, we
investigated the use of formal specification languages and verification techniques, in
particular the LNT value-passing process algebra to specify the protocol and the model
checking tools available in the CADP toolbox to verify it. Moreover, managing distributed cloud applications is a challenging problem because the manual administration
is no longer realistic for these complex distributed systems. Thus, autonomic computing
is a promising solution for monitoring and updating these applications automatically.
This is achieved through the automation of administration functions and the use of control loops, called autonomic managers. Multiple autonomic managers can be deployed
in the same system and must make consistent decisions. However, using them without
coordination may lead to inconsistencies and error-prone situations. We propose a new
approach for coordinating stateful autonomic managers, which relies on a simple coordination language, new techniques for asynchronous controller synthesis and Java code
generation. We used our approach for coordinating real-world cloud applications.
Les applications réparties dans le nuage sont constituées d’un ensemble de composants logiciels interconnectés et répartis sur plusieurs machines virtuelles. Cet environnement nécessite des protocoles pour reconfigurer dynamiquement ces applications.
Nous présentons dans la première partie de cette thèse un nouveau protocole pour résoudre les dépendances dans ces applications. Ce protocole consiste à (dé) connecter et
démarrer/arrêter les composants dans un ordre spécifique. Il supporte les pannes des
machines virtuelles et les opérations de reconfiguration se terminent toujours avec succès. Ces machines virtuelles interagissent à travers un «publish-subscribe support de
communication» et se reconfigurent d’une manière décentralisée. La conception de ces
protocoles étant une source d’erreurs. Alors, nous avons étudié l’utilisation des langages
et techniques de verification formelles. En particulier, nous avons utilisé LNT pour spécifier le protocole et les outils disponibles dans la boîte à outils CADP pour le vérifier.
D’autre part, la gestion des applications reparties dans le nuage est une tâche complexe
car l’administration manuelle n’est plus réaliste pour ces systèmes. Nous avons proposé
d’automatiser certaines fonctions d’administration en utilisant des boucles de contrôle
appelées gestionnaires autonomes. Plusieurs gestionnaires peuvent être déployés pour
la gestion de la même application. Cependant, leur utilisation sans coordination peut
conduire à des incohérences et à des situations d’erreur. Dans la deuxième partie de
cette thèse, nous avons proposé une nouvelle approche pour coordonner plusieurs gestionnaires autonomes. Cette approche repose sur un language de coordination simple,
de nouvelles techniques asynchrones pour la synthèse de contrôleur et la génération de
code Java. Nous avons appliqué notre approche pour coordonner les applications réparties dans le nuage dans le monde réel.
Loading...