Cloudiator is a cross-cloud toolset developed by the OMI. Thus, it allows the deployment of applications across multiple cloud providers and automatically manages deployed applications by applying e.g. scalability rules, adapting the deployment to the current usage context.
For this purpose, the application owner starts by modelling his application either using Cloudiator's graphical web interface or a modelling language. Afterwards Cloudiator takes over and deploys the modelled application to the cloud. Once deployed, the application is monitored allowing Cloudiator to detect bottlenecks of the current configuration. This allows Cloudiator to apply previously defined scalability rules.
To achieve this functionality, Cloudiator follows the divide et impera principle, leading to multiple components, each implementing a part of the overall feature set:
- Colosseum: Colosseum is the main orchestration component of the toolset. It holds multiple registries: one storing the cloud offerings like hardware flavors, images and locations; one storing the application model and one storing authentication information. Based on this information, Colosseum is responsible for allocating the virtual machines and bootstrapping the virtual machine by installing the other components of Cloudiator.
- Sword: Sword is the cloud abstraction layer of the Cloudiator toolset. Being based on the Apache jclouds multi-cloud toolkit, its task is to harmonize the semantical and syntactical differences of the different cloud providers' APIs.
- Lance: Lance is the life cycle agent of the toolset. It is responsible for installing and starting the user's application's components on the virtual machines. For this purpose the application model contains so called life-cycle handlers, representing the actions to be executed during specific steps of the application's life-cycle (e.g. onStart, onStop)
- Visor: Visor is the monitoring agent of the toolset, responsible for monitoring the application's status. For this purpose it offers a two-fold approach: it a) uses sensors written in Java for monitoring basic virtual machine or application properties like CPU or RAM usage; b) it offers a easy to use telnet interface for reporting external metrics to the system.
- Axe: Using the monitoring data of Visor, Axe is responsible for aggregating the raw monitoring data to achieve higher level metrics like "average CPU Usage over the last five minutes". If the application state reaches user defined thresholds, Axe is also responsible for triggering scaling actions which will be executed by Colosseum.
The open-source project is published on Github (details see below) under the Apache License 2.0. For more information about the project visit github or the soon to come website under cloudiator.github.io.