Continuous Deployment of Pervasive Applications in Dynamic Environments Ozan Necati Günalp
Total Page:16
File Type:pdf, Size:1020Kb
Continuous deployment of pervasive applications in dynamic environments Ozan Necati Günalp To cite this version: Ozan Necati Günalp. Continuous deployment of pervasive applications in dynamic environments. Ubiquitous Computing. Université de Grenoble, 2014. English. NNT : 2014GRENM052. tel- 01215029 HAL Id: tel-01215029 https://tel.archives-ouvertes.fr/tel-01215029 Submitted on 13 Oct 2015 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. THÈSE Pour obtenir le grade de DOCTEUR DE L’UNIVERSITÉ DE GRENOBLE Spécialité : Informatique Arrêté ministériel : 7 août 2006 Présentée par Necati Ozan GÜNALP Thèse dirigée par Philippe LALANDA préparée au sein Laboratoire d’Informatique de Grenoble et de École Doctorale Mathématiques, Sciences et Technologies de l’Information, Informatique Déploiement continu des applications pervasives en milieux dynamiques Thèse soutenue publiquement le 13 Novembre 2014, devant le jury composé de : Mme Frédérique LAFOREST Professeur à Université de Saint Etienne, Présidente Mr Christian BECKER Professor at Universität Mannheim, Rapporteur Mr Frédéric WEIS Professeur à l’Université de Rennes, Rapporteur Mr Philippe LALANDA Professeur à Université Joseph Fourier, Directeur de thèse Mr Clément ESCOFFIER Ingénieure de Recherche, Université Joseph Fourier, Co-Encadrant de thèse Mr Vincent LESTIDEAU Maitre de Conférences, Université Joseph Fourier, Co-Encadrant de thèse Mr Levent GÜRGEN Ingénieure de Recherche, CEA-LETI, Co-Encadrant de thèse From too much love of living, From hope and fear set free, We thank with brief thanksgiving Whatever gods may be That no life lives for ever; That dead men rise up never; That even the weariest river Winds somewhere safe to sea. — Charles Swineburne, The Garden of Proserpine To my dear family and friends. Continuous deployment of pervasive applications in dynamic environments Abstract Driven by the emergence of new computing environments, dynamically evolving soft- ware systems makes it impossible for developers to deploy software with human-centric processes. Instead, there is an increasing need for automation tools that continuously deploy software into execution, in order to push updates or adapt existing software re- garding contextual and business changes. Existing solutions fall short on providing fault- tolerant, reproducible deployments that would scale on heterogeneous environments. This thesis focuses on enabling continuous deployment solutions for dynamic envi- ronments, such as Pervasive Computing environments. It adopts an approach based on a transactional, idempotent process for coordinating deployment actions. This thesis pro- poses a set of deployment tools, including a deployment manager capable of conducting deployments and continuously adapting applications according to the changes in the cur- rent state of the target platform. The implementation of these tools, Rondo, also allows developers and administrators to code application deployments thanks to a deployment descriptor DSL. Using the implementation of Rondo, the propositions of this thesis are validated in several industrial and academic projects by provisioning frameworks as well as installing applications and continuous recongurations. Résumé L’émergence des nouveaux types d’environnements informatiques amplie le besoin pour des systèmes logiciels d’être capables d’évoluer dynamiquement. Cependant, ces sys- tèmes rendent très dicile 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 recongurer 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 uctuants, 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 idem- potent 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 fonc- tion 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écique 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 recongurations continues. Contents Foreword 1 1 Introduction 3 1.1 Motivations ...................................... 4 1.2 Research Challenges ................................. 6 1.3 Contribution ..................................... 7 1.4 Dissertation Structure ................................ 8 2 Pervasive Computing 9 2.1 Introduction ...................................... 10 2.1.1 Evolution of Computing Environments . 10 2.1.2 Pervasive Computing ............................ 12 2.1.3 Context & Context-awareness ...................... 14 2.1.4 Motivating Examples ............................ 16 2.1.5 Research Domains ............................. 20 2.2 Characteristics of Pervasive Environments ................... 23 2.2.1 Distribution ................................. 23 2.2.2 Heterogeneity ................................ 24 2.2.3 Openness & Plural Authority ...................... 25 2.2.4 Dynamism .................................. 25 2.2.5 Autonomy .................................. 26 2.2.6 Summary ................................... 27 2.3 Characteristics of Pervasive Applications .................... 27 2.3.1 Resource Management ........................... 28 2.3.2 Data Orientation .............................. 29 2.3.3 Notion of Context ............................. 29 2.3.4 Adaptability ................................. 30 2.3.5 Security .................................... 31 2.3.6 Summary ................................... 31 2.4 Building Pervasive Applications .......................... 32 2.4.1 Development Tools ............................. 33 2.4.2 Runtime Tools & Middlewares ...................... 34 2.4.3 Management Tools ............................. 35 xii Contents 2.5 Conclusion....................................... 37 3 Software Deployment 39 3.1 Introduction ...................................... 40 3.1.1 Software Development Life Cycle .................... 40 3.1.2 Development Process Models ....................... 42 3.1.3 Summary ................................... 45 3.2 Software Deployment ................................ 46 3.2.1 Two Faces of Evolution .......................... 46 3.2.2 Definitions .................................. 48 3.2.3 Concepts ................................... 49 3.2.4 Deployment Activities ........................... 52 3.2.5 Deployment Roles ............................. 54 3.3 Issues on Software Deployment .......................... 55 3.3.1 Managing Dynamic Evolution ...................... 55 3.3.2 Maintaining Metadata Throughout the Life Cycle . 56 3.3.3 Managing Heterogeneous Environments . 57 3.3.4 Managing Dependencies .......................... 58 3.3.5 Planning and Coordinating Deployment Activities . 58 3.3.6 Ensuring Security .............................. 59 3.4 Software Deployment and Other Research Fields . 60 3.4.1 Software Architectures ........................... 60 3.4.2 Software Product Lines .......................... 61 3.4.3 Self-adaptive Software Systems ...................... 62 3.4.4 System Administration .......................... 63 3.4.5 Summary ................................... 64 3.5 Software Deployment Facilities .......................... 65 3.5.1 Characterization Framework ....................... 65 3.5.2 Evaluation Criteria ............................. 68 3.5.3 Single Target Deployment ......................... 69 3.5.4 Modular Execution Platforms ...................... 72 3.5.5 Distributed Deployment ......................... 75 3.5.6 Cloud Deployment ............................. 79 3.6 Conclusion ....................................... 83 4 Continuous Deployment 85 4.1 Introduction ...................................... 86 4.1.1 From Lean Development to Continuous Delivery . 86 4.1.2 Value Stream in Software Lifecycle ................... 87 4.1.3 Deployment Pipeline ............................ 88 4.2 Enabling Technologies for Continuous Deployment . 90 4.2.1 Source Code Management ......................... 90 Contents xiii 4.2.2 Automated Build .............................. 91 4.2.3 Continuous Integration