Jury :
L'émergence des nouveaux types d’environnements informatiques amplifie le besoin pour des systèmes logiciels d’être capables d’évoluer dynamiquement. Cependant, ces systèmes rendent très difficile le déploiement de logiciels en utilisant des processus humains. Il y a donc un besoin croissant d’outils d'automatisation qui permettent de déployer et reconfigurer des systèmes logiciels sans en interrompre l’exécution. Le processus de déploiement continu et automatisé permet de mettre à jour ou d’adapter un logiciel en exécution en fonction des changements contextuels et des exigences opérationnelles. Les solutions existantes ne permettent pas des déploiements reproductibles et tolérant aux pannes dans des environnements fluctuants, et donc requérant une adaptation continue.
Cette thèse se concentre en particulier sur des solutions de déploiement continu pour les plates-formes d'exécution dynamiques, tels que celle utilisé dans les environnements ubiquitaires. Elle adopte une approche basée sur un processus transactionnel et idempotent pour coordonner les actions de déploiement. La thèse propose, également, un ensemble d'outils, y compris un gestionnaire de déploiement capable de mener des déploiements discret, mais également d’adapter les applications continuellement en fonction des changements contextuels. La mise en œuvre de ces outils, permet notamment aux développeurs et aux administrateurs de développer des déploiements d'applications grâce à un langage spécifique suivant les principes de l‘infrastructure-as-code.
En utilisant l’implantation de Rondo, les propositions de cette thèse sont validées dans plusieurs projets industriels et académiques à la fois pour l’administration de plates-formes ubiquitaires ainsi que pour l’installation d’applications et leurs reconfigurations continues.