Thèse soutenue

FR
Auteur / Autrice : Jacub Zwolakowski
Direction : Stefano ZacchiroliRoberto Di Cosmo
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance en 2015
Etablissement(s) : Sorbonne Paris Cité
Ecole(s) doctorale(s) : École doctorale Sciences mathématiques de Paris centre (Paris2000-....)
Partenaire(s) de recherche : autre partenaire : Université Paris Diderot - Paris 7 (1970-2019)

Résumé

FR  |  
EN

Des applications reparties complexes sont assemblées en connectant des composants logiciels distribués sur plusieurs machines. Concevoir et déployer tels systèmes est un problème difficile, qui nécessite un niveau important d'expertise: l'architecte système doit s'assurer que toutes les dépendances des composants sont satisfaits, éviter les composants incompatibles et ajuster la quantité de répliques du chaque composant pour tenir compte de la qualité de service et la tolérance aux pannes. Dans un environnement cloud il faut aussi minimiser les ressources virtuelles utilisées, afin de réduire le coût. Une fois l'architecture complète est conçue, il est nécessaire d'orchestrer correctement le processus de déploiement, en assurant que tous les composants sont installés, démarrés et connectés dans le bon ordre. Dans ce travail, nous décrivons le modèle formel Aeolus et l'outil Zephyrus, développés au cours du projet de recherche Aeolus, qui tente d'aborder les défis scientifiques liés à l'administration des systèmes distribués modernes et de les résoudre en pratique. Le modèle Aeolus nous permet d'exprimer une spécification de haut niveau du système souhaité, l'ensemble des composants disponibles avec leurs exigences et la quantité maximale de ressources virtuelles à engager. L'outil Zephyrus, basé sur ce modèle formel, est capable d'automatiser l'assemblage des applications distribuées complexes: il synthétise l'architecture complète du système en plaçant les composants de manière optimale sur les machines disponibles. Autres outils développés dans le projet Aeolus peuvent ensuite être utilisés pour déployer automatiquement le système complet dans un environnement cloud.