A formal approach to distributed application synthesis and deployment automation
Une approche formelle à la synthèse des applications distribuées et leur déploiement automatique
Résumé
Complex networked applications are assembled by connecting software components
distributed across multiple machines. Building and deploying such systems is a
challenging problem which requires a significant amount of expertise: the system
architect must ensure that all component dependencies are satisfied, avoid
conflicting components, and add the right amount of component replicas to
account for quality of service and fault-tolerance. In a cloud environment, one
also needs to minimize the virtual resources provisioned upfront, to reduce the
cost of operation. Once the full architecture is designed, it is necessary to
correctly orchestrate the deployment process, to ensure all components are
installed, started and connected in the right order.
In this work, we describe the different variants of the Aeolus formal model and
the Zephyrus tool developed during the Aeolus research project, which attempts
to tackle the scientific challenges related to the administration of modern
distributed systems and solve them in practice. The various parts of the Aeolus
model allow us to express a high-level specification of the desired system, the
set of available components together with their requirements, and the maximal
amount of virtual resources to be committed. The associated Zephyrus tool, based
on this formal model, is capable of automating the assembly of complex
distributed applications: it synthesizes the full architecture of the system,
placing components in an optimal manner using the minimal number of available
machines. Other tools developed in the Aeolus project can then be used to
automatically deploy the complete system in a cloud environment.
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.
Loading...