Overview of the Open Source Components in Cloudify

The Cloudify Manager contains several open-source components. The relationships between the components in the Cloudify Manager architecture are illustrated in the diagram below.

Cloudify components

Ports and Entry Points

Rather than specifying the ports in each component’s overview, ports are specified here so that you can easily review the network requirements.

External Ports

By default, there are two external networks from which the Cloudify management environment is accessed:

Therefore, Cloudify requires only two entry points to its management environment:

Application Ports

The following ports are exposed for agent-manager communication:

The agents use the REST service to update the application’s model (for example, setting runtime-properties). Agents connect to RabbitMQ to receive tasks.

Local ports

The following additional ports are exposed on localhost, and used by the manager internally:


Nginx is a high-performing Web server. In the Cloudify Manager, it serves two purposes:

File Server

The file server served by Nginx, is available at https://{manager_ip}:53333/resources, which is mapped to the /opt/manager/resources/ directory. You must authenticate in order to access the file server.

To access subdirectories that include tenant names in their path, you must have privileges on that tenant. These subdirectories are:

The directories that are stored in snapshots are:

Gunicorn and Flask

Gunicorn is a Web server gateway interface HTTP server. Flask is a Web framework.

Together, Gunicorn and Flask provide the Cloudify REST service. The REST service is written using Flask, and Gunicorn is the server. Nginx, is the proxy to that server. The Cloudify’s REST service is the integrator of all parts of the the Cloudify environment.


PostgreSQL is an object-relational database that can handle workloads ranging from small single-machine applications to large Internet-facing applications.

In the Cloudify Manager, PostgreSQL serves two purposes:


RabbitMQ is a queue-based messaging platform.

RabbitMQ is used by Cloudify as a message queue for different purposes:


Pika is a pure-Python implementation of the AMQP 0-9-1 protocol.

The Cloudify management worker and the host agents are using pika to communicate with RabbitMQ.

Management Worker (or Agent)

Both the Workflow Executor and the Task Broker that appear in the diagram are part of the Cloudify Management Worker.

Note that all the agents (the Management Worker, and agents deployed on application hosts) are using the same implementation.

Open-Source Compliance

In addition to the above 3rd party components, Cloudify leverages open-source libraries and components as part of the product code. The list of third party software and third party open source software components used by Cloudify is available here.