DECIDE ADAPT Deployment Orchestrator from multi-cloud to Hybrid Cloud

DECIDE ADAPT Deployment Orchestrator (DO), provides automatic deployment of applications to multiple cloud providers at the same time.

Current services and applications are more and more oriented to deployments which involve multiple clouds; either because no single provider offers all the needed services, or because smart companies tend towards avoiding lock-in.

A multi-cloud deployment may also optimize costs, by exploiting the cheapest offers from each provider, and even result in increased tolerance to faults since the probability of a simultaneous downtime of a multi-cloud infrastructure becomes negligible. Additional benefits come from the possibility to satisfy all the applications’ requirements and also obtain compliance with regulations such as those requiring a specific geo-location for particular stored data.

For all the listed reasons multi-cloud deployments are becoming more and more desirable, but obviously this kind of deployment increases complexity, execution time and even error rate, especially if done by hand. Automation of such a deployment is a must, but the complexity remains.

To cope with these challenges the DECIDE project proposes the DECIDE ADAPT Deployment Orchestrator (DO), providing automatic deployment of applications to multiple cloud providers at the same time. Multi-cloud deployment with ADAPT DO is made simple, because the developer should just describe the application and its requirements by filling in the DECIDE Application Description document and ADAPT DO takes care of all the rest, from provisioning to configuration to the actual deployment.

As already pointed out in previous posts, ADAPT targets native cloud applications possibly developed according to the micro-services architecture and deployed using containers technology; therefore the developer should provide, along with the Application Description, all the Docker containers that constitute the application, so that ADAPT DO has everything it needs to do its magic.

ADAPT DO is layered on top of the open source Terraform tool and dynamically generates and manages Terraform configuration files to orchestrate the deployment of both the infrastructure (virtual machines) and services (containers) of the application. There is no need for the application developer to implement dedicated infrastructural code for deploying the application: ADAPT DO generates it automatically based on the Application Description.

From the generated configuration files a plan for building the infrastructure is then prepared: this allows both verifying the consistency of configuration and dependencies and to check the operations before applying them. The process then continues by applying the plan, which invokes all the needed commands for provisioning the required resources, configuring them, deploying the application and finally starting it along with its monitoring.

Dynamically generating the needed infrastructural code is the basis for automatic adaptation: in case of a violation of the established SLA, a new deployment configuration is generated and the application deployed again.

The first version of ADAPT DO has been successfully tested and released last year: this was a first step toward continuous deployment and dynamical self-adaptation for multi-cloud applications.

This second version of ADAPT DO is integrated with more tools in the DECIDE framework. The integration with ADAPT Monitoring Manager (MM) allows automatic startup of monitoring for the application as soon as it is deployed. Integration with the DECIDE DevOps Framework allows to visually follow the progress of each deployment and supports the developer in creating a proper Application Description; other DECIDE tools –ADAPT Violations Handler (VH) and OPTIMUS– handle the automatic adaptation process that in case of a SLA violation will generate a new deployment configuration for ADAPT DO to re-deploy the application.

ADAPT DO is currently being extended to support also an Hybrid Cloud scenario. As by multi-cloud we mean the use of multiple clouds at the same time for the same application, by Hybrid Cloud we mean the use of both private and public clouds, at the same time and for the same application.

There are many reasons for a company to use a private cloud. In some cases companies prefer to keep their application, and especially their data, locally for compliance reasons; in other cases this is due to security concerns or simply to avoid the burden of moving a lot of data around; finally more and more companies want to go back to a private or hybrid cloud solution after experiencing high costs when using the public one. For all these reasons we think that ADAPT should support hybrid cloud, thus combining the benefits of public clouds with those of private ones.