Cloudify is an open-source cloud orchestration framework based on the TOSCA (Topology and Orchestration Specification for Cloud Applications) OASIS standard. Cloudify is a framework (i.e., a software) supporting the deployment of cloud applications on OpenStack, AWS, Google Cloud, Azure and other cloud service providers. TOSCA is a standard (i.e., first an XML- and now a YAML-based modelling language) for representing cloud applications.
Table of Contents:
TOSCA addresses the lack of a standardized view on cloud services (e.g., storage, computing) offered by different cloud service providers. To avoid the Vendor lock-in effect, OASIS proposes TOSCA: a YAML (formerly XML) standard modelling language to address the automation, portability and interoperability of complex cloud applications.
In Detail, TOSCA represents a cloud application in a Service Template. The Service Template is the union of (i) the Topology Template and (ii) the Management Plans. The Service Template contains also the definition of the node and relationship types.
The Topology template is a typed topology graph. Vertices are called Nodes. Each node (i.e., instance) is represented by a node template, (i.e., class). Tomcat, Ubuntu, AWS EC2 Server are examples of node templates. Each node template belongs to a node type (i.e., abstract class). Web Server, OS and Virtual Server are examples of node types. The node type describes the structure of the application-specific features, while the node template defines the actual property values. Nodes are connected through edges, called Relationships. Each Relationship (i.e., instance) is represented by a relationship template (i.e., class). Each relationship template belongs to a relationship type (i.e., abstract class). Artifacts are resources needed to deploy a node (e.g., the WAR
file for the Tomcat node template). Artifacts are therefore executable, libraries, and scripts.
TOSCA models types and templates, not instances or artefacts
Management Plans are defined as a workflow or sequence of steps on nodes or relationships (e.g., host Tomcat node on Ubuntu node - deploy the WAR
file on the Tomcat node). TOSCA does not specify the language for writing management plans. A common choice is to use BPMN (Business Process Modeling Language). There are BUILD plans (e.g., deploy, scale-up) and TERMINATION plans (e.g., destroy, scale down). Managements plans can have different kinds of constraints (e.g., budget, response time).
Cloudify is an open-source cloud orchestration framework that allows you to Model and Orchestrate cloud applications. With Cloudify, you can deploy cloud applications through either the CLI
or, as it usually happens, the Cloudify Manager. The Cloudify Manager refers to TOSCA Service Templates as blueprints.
Note: Cloudify offers a premium and a community edition of the Cloudify Manager. The community edition has, of course, fewer features than the premium. In particular, the community edition of the Cloudify Manager does not provide the UI. Therefore, you must interact through the
CLI
The Cloudify Composer is the tool for creating blueprint files through a drag and drop interface. The Cloudify Composer generates downloadable TGZ
or ZIP
archives containing blueprint.yaml
files. This file contains a TOSCA-based description of the application topology and its lifecycle management. In addition to YAML artefacts, the archive includes multiple resources such as configuration and installation scripts, code, and any other resource required for running the cloud application.
Note: Cloudify Composer is part of the Cloudify Manager premium package
In 2016, GigaSpaces decided to take a big part of the Cloudify code base and create an open-source project named Aria. The open-source project is aimed at the network provider that wants to build its VNFMs and NFVOs through a free and open-source library of orchestration tools. Aria is an embeddable lightweight library and command-line tool for NFV and Hybrid Cloud Orchestration.
Note: Aria has been dismissed (i.e., is not maintained anymore) around May 2019