Cloud computing has successfully and steadily addressed issues of how to run applications on complex distributed computing infrastructures. On-demand access to cloud resources in a flexible and elastic way could result in significant cost savings due to more efficient and convenient resource utilization. However, the efficient and dynamic utilization of Cloud is not trivial. The take up of cloud computing in some application areas is still relatively low due to limited application-level flexibility and shortages in cloud specific skills. Public sector organizations and SME are increasingly considering using the Cloud in their everyday activities but they still face difficulties of both economic and technical nature. To enable the execution of applications in the Cloud in a cost effective, flexible and secure way, applications must be deployed, executed and removed through a framework that hides cloud specific details from users. COLA addressed the following challenges:
- describing the structure of containerized/virtualized applications and their behaviour to control their lifecycle in a cloud agnostic way,
- supporting deployment and run-time orchestration and optimisation of such applications taking various QoS parameters into account,
- creating and running near production level applications in the Cloud.
COLA developed the MiCADO framework to process application descriptions, to deploy and execute them in the Cloud. COLA elaborated the TOSCA based Application Description Template (ADT) to specify applications's structure and their behaviour. ADT enables application descriptions based on two-level topology (container- and Virtual Machine-level) and adding security and scaling policies. ADTs are forwarded to the MiCADO Submitter that parses and validates ADTs and forwards them to adaptors, such as container adaptor, cloud orchestration adaptor and policy keeper adaptor. The orchestrators create and launch virtual machines and containers specified in ADTs. The MiCADO Policy Keeper scales up and down virtual machines and containers using cloud (e.g. Occopus or Terraform) and container orchestrator (e.g. Docker Swarm or Kubernetes) based on the information gathered by the Prometheus monitoring, recommendations provided by the MiCADO Optimizer and TOSCA policies specified in ADTs. The MiCADO Security Policy Manager handles security policies given in ADTs through security enablers. The MiCADO framework can be deployed as Ansible playbook to make deployment effortless as much as possible. To support application developers and end users MiCADO was extended with a dashboard including Docker Visualizer, (replaced by Kubernetes dashboard later), Prometheus. COLA elaborated 3 near production level applications and 26 proof of concepts demonstrators.