In the last few years more and more companies are organizing their software business adopting the “as a service” approach, that is, offering it for usage but keeping the control of its operation entirely within the boundaries of the company itself. This shows a number of advantages both from the technical and business perspectives and, at the same time, requires new ways of organizing and managing the lifecycle of software. The DevOps movement was born to address this requirement and highlights the importance of ensuring that operation and development are well-coordinated and work together in a seamless way.
In this context, researchers and practitioners have started exploring the possibility of automating resource provisioning, software deployment, and ops-specific operations thanks to the development of Infrastructural software. Such infrastructural software, also called Infrastructure as Code or IaC, can be treated as any other type of software and, therefore, subject to versioning, debugging, verification, reuse, and the like. Nowadays, multiple IaC languages and frameworks have been developed, each of which has its own peculiarities focuses on specific tasks – from provisioning to configuration, deployment and operation –, is able to manage specific resources, and requires a significant language-specific and operation-specific knowledge.
The SODALITE H2020 project aims at offering a contribution to this endeavour by offering a smart development environment for IaC and corresponding tools to support the automation of various deployment and operation phases. The aim of this book is to describe the approach and toolset proposed by this project. It presents also some case studies that show the practical utility of the approach and hints for the usage of SODALITE in other cases. The book is structured as follows:
- Chapter 1 - Orchestrating Heterogeneous Applications: Motivation and State of the Art
Elisabetta Di Nitto and Daniel Vladušic
Provides an overview of the motivations for the development of a new approach and framework in the area of IaC, of the state of the art, and of the challenges to be addressed. Moreover, it describes the innovations introduced by SODALITE.
- Chapter 2 - The SODALITE Approach: an Overview
Luciano Baresi, Elisabetta Di Nitto and Daniel Vladušic
Presents a general overview of the SODALITE approach and of the workflows it supports. v vi Preface
- Chapter 3 - The SODALITE Model-driven Approach
Jesús Gorroñogoitia, Dragan Radolovic, Zoe Vasileiou, Georgios Meditskos, Anastasios Karakostas, Stefanos Vrochidis, Michail Bachras
Focuses on the problem of defining deployment models for complex applications and presents the solution proposed by SODALITE in this context.
- Chapter 4 - Quality Assurance and Design-time Optimization
Indika Kumara, Alfio Lazzaro, Nina Mujkanovic, Zoe Vasileiou, and Damian A. Tamburri
presents our approach to ensure the quality of IaC and to create optimized execution containers for components running on High-Performance Computing (HPC) clusters.
- Chapter 5 - The SODALITE Runtime Environment
Indika Kumara, Giovanni Quattrocchi, Dragan Radolovic, Kamil Tokmakov, Jesús Ramos Rivas, and Willem-Jan Van Den Heuvel
Presents the SODALITE runtime environment, including the features to support the adaptation of running systems and identification of refactoring possibilities for the IaC associated to a certain software.
- Chapter 6 - SODALITE in Context
Kamil Tokmakov and Indika Kumara
Describes how the SODALITE approach can be used to deploy complex software across various platforms in the Cloud, Edge, and HPC domains, with a specific focus on OpenStack, AWS EC2, Kubernetes, and PBS Torque/Slurm.
- Chapter 7 - SODALITE Use Cases
Joao Pita Costa, Piero Fraternali, Kalman Meth, Paul Mundt, Giovanni Quattrocchi, Ralf Schneider, Kamil Tokmakov, and Rocio Nahime Torres
Describes the case studies in which the SODALITE approach has been used.
- Chapter 8 - Toward Impact Generation and Future Research
Joao Pita Costa, Elisabetta Di Nitto and Indika Kumara
Concludes the book by providing an overview of how the SODALITE results are being packaged in ready-to-use tools and then discussing future research challenges.
Acknowledgements: Together with all authors of this book we are indebted to all other colleagues who joined forces with us for part of the SODALITE endeavour, to our external advisory board members, Nicolas Ferry, Andreas Metzger, Mark Parsons for their comments and new ideas and to our project reviewers for their continuous push that helped us increase the quality and effectiveness of project results. Moreover, we are very thankful to our project officers, Luis Carlos Busquets Pérez, and Stefano Foglietta, who supported us in all phases of the project. The work reported in this book is partially funded by the European Commission within the Horizon 2020 research and innovation programme, under grant agreement number 825480.