European Commission logo
español español
CORDIS - Resultados de investigaciones de la UE

DEvOps for trusted, portable and interoperable Multi-Cloud applications towards the Digital singlE market

Periodic Reporting for period 2 - DECIDE (DEvOps for trusted, portable and interoperable Multi-Cloud applications towards the Digital singlE market)

Período documentado: 2018-06-01 hasta 2019-11-30

The digital transformation from product to service economy means changes in the companies’ operating environment: they need to transform into service providers from product providers and be able to flexibly change their role in the value chain and markets. The main objective of the DECIDE project is to ease the servitization of the software industry by providing a new generation of framework for multi-cloud service-based software, enabling techniques and mechanisms to design, develop, and dynamically deploy multi-cloud aware applications in an ecosystem of reliable, interoperable, and legally secured cloud services. For DECIDE, a multi-cloud native application is a distributed application over heterogeneous cloud resources whose components are deployed on different Cloud Service Providers (CSPs) and still, they all work in an integrated way and transparently for the end-user. There are several reasons for deploying an application in a multi-cloud architecture, the most important ones being: dynamic switching in case of non-compliance of the CSPs to the agreed SLAs, avoidance of vendor lock-in, increasing reliability, ensuring service continuity or improving other QoS concerns such as increasing performance or security, and finally, reducing costs. The application types that would benefit the most from such a multi-cloud approach are on the one hand, those that are critical to the business and that need to respond efficiently to the user’s needs in terms of performance, reliability and security and on the other hand, complex applications whose components need to be distributed over different CSPs due to their specific needs and requirements.

Developing, deploying and operating multi-cloud applications present the following challenges:
- Applications need to be responsive to hybrid/multi-cloud model scenario, in which an application that is executing in a private cloud bursts into a public cloud when the demand for computing capacity spikes.
- Means shall be provided to manage and assess cloud deployment alternatives to better support cloud re-deployment decisions.
- Existing cloud services shall be made available dynamically, broadly and cross border, so that software providers can re-use and combine cloud services, assembling a dynamic and re-configurable network of interoperable, legally secured, quality assessed (against SLAs) single and composite cloud services, facilitating the free flow of data.

The main goal of DECIDE is to provide a new generation of multi-cloud services-based software framework, enabling techniques, tools and mechanisms to design, develop, operate, and dynamically (re-)deploy multi-cloud aware applications in an ecosystem of reliable, interoperable, and legal compliant cloud services. DECIDE provides architectural patterns and the needed supporting tools for developers and operators of multi-cloud application providers to develop and operate (following the DevOps approach), multi-cloud native applications that can be dynamically self-adapted and re-deployed using the “best” combination of cloud services in each moment (depending on the existing multi-cloud context considering both the multi-cloud application behaviour as well as the behaviour of the underlying used cloud offerings). Moreover, DECIDE enhances the trustworthiness of multi-cloud application providers towards buyers and users of the SaaS applications by setting up an ecosystem of trusted, interoperable and legally compliant cloud services and the required mechanisms to register, discover, compose, use and assess them.

DECIDE has been validated in three use cases with strict non-functional requirements (NFR): clinical research platforms, network management and high availability from a user centric perspective, and in another application from a developer centric point of view.
Main achievements can be summarized as follows:
• Fully functional version of the DevOps framework integrated and the individual components (ARCHITECT, OPTIMUS, ACSmI and ADAPT), supporting the complete DECIDE workflow as well as sub-workflows, for applications both with high and low technological risk.
• Validation of the DECIDE DevOps Framework through the three contractual use cases and an additional use case, the SockShop application, selected to demonstrate that DECIDE can scale to a more complex application with more microservices.
• Several dissemination activities in the scientific and industrial arena, scientific papers, business publications, social networks, participation in industrial events, demo sessions in several events, organization of networking events, and participation in a beta-testing campaign.
• Continuous market watch, IPR and joint exploitation strategy, positioning DECIDE in a market niche, definition of the pricing strategy for the DECIDE KRs, business plan, and sustainability strategy beyond the end of the project.
The main innovations of DECIDE can be summarized as follows:

• Final version of the ‘Extended DevOps’ concept, that includes the continuous architecting (ARCHITECT), pre-deployment (OPTIMUS) and continuous delivery and adaptation (ADAPT), supported by an ecosystem of cloud offerings, that allows for the selection of the most appropriate configuration of cloud services, and which can be contracted automatically (ACSmI). Continuous integration and continuous quality of the traditional DevOps approach are achieved with the integration of Jenkins and SonarQube in the DECIDE DevOps framework.
• Compendium of architectural patterns for multi-cloud aware applications and the supporting tool that recommends a set of patterns that fulfill certain requirements entered by the developer (ARCHITECT). The ARCHITECT tool is presented in Eclipse and integrated in the DevOps Framework, as a website.
• Implementation of the optimization algorithm which based on the classification of the components of the application and of the cloud offerings it selects the most adequate deployment topology for that specific application and the underlying non-functional requirements. The algorithm used is NGSA-II. This is implemented in OPTIMUS, which is offered also in Eclipse, integrated with ARCHITECT, and in the DevOps framework. Initially, only the first option was planned.
• A multi-cloud service level agreement (MCSLA) editor which allows to define the Application SLA based on the selected underlying cloud offerings.
• Automatic contracting and deployment on the set of selected cloud offerings, supported by the monitoring of the non-functional requirements established for the components of the application and the underlying cloud offerings, launching a violation whenever a threshold is not met. The result of this violation may imply a redeployment, which triggers a new simulation, an update of the MCSLA, new contracts to be automatically established with the cloud service provider, provision of the cloud resources and installation of the software packages needed to run the software and the monitoring activities of both the cloud resources and the application microservices.

The source code is open and has been released in GitLab.