SeaClouds platform has five major components in the architecture, plus a RESTful harmonized and a unified SeaClouds API layer used for the deployment, management and monitoring of simple cloud-based applications through different and heterogeneous cloud providers.
A distinguishing aspect of this architecture is that it builds on top of two OASIS standards initiatives: TOSCA (Orchestration Specification for Cloud Applications) and CAMP (Cloud Application Management for Platforms).
The following picture shows this architecture:
- GUI and Dashboard: The GUI constitutes the uppermost layer in the SeaClouds architecture and consists of an easy-to-use topology editor. It takes the inputs from the user and generates the Abstract Application Model to be used by the planner. On the other hand, the dashboard provides an easy way to interact with the SeaClouds Platform, allowing the final user to follow the entire application lifecycle.
- The Discoverer component is in charge of discovering available capabilities offered by cloud providers. The description of such capabilities includes technology aspects (e.g., programming languages, development frameworks, runtime environments, add-ons), QoS properties (e.g., availability, reliability), along with the associated SLAs (including the cost associated to each provided service).
- The Planner component receives from the application designer an Abstract Application Model (AAM) - a description of the application topology together with a set of requirements, including QoS properties and technology requirements - and it determines (by consulting the repository of cloud offerings) how the application modules can be distributed over the available clouds without violating the given set of requirements. The Planner will generate a Deployable Application Model (DAM) that specifies the concrete cloud services where to distribute the application modules.
- The Deployer component deploys the application in a multi-cloud environment using the Deployable Application Model (DAM) which contains the necessary information to deploy an application over a set of cloud providers (locations). The Deployer provides the necessary operations or methods, through the REST API, allowing the post-deployment management like changing the application status (e.g., stop, pause and restart) or performing entity-specific actions (e.g., scale up/down).
- The Monitor component receives the set of monitoring rules to be executed for controlling that the QoS properties of the application modules and the whole application are not violated by the clouds in which they were deployed. These monitoring rules include the resources to be monitored, the metrics to be collected, the formulas to be verified and the actions to be executed when the formulas become true.
- The SLA Service it’s in charge of mapping the low level information gathered from the Monitor into business level information about the fulfilment of the SLA defined for a SeaClouds application, using the SLA Service API.
These components are: