The Cloudify Manager contains several open-source components. The relationships between the components in the Cloudify Manager architecture are illustrated in the diagram below. Nginx Gunicorn Flask PostgreSQL RabbitMQ Pika 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 All ports are TCP ports unless stated otherwise By default, there are two external networks from which the Cloudify management environment is accessed:
Security, in the context of a Cloudify Manager, means securing communication with the Cloudify Manager and controlling who has permissions to use it to execute various operations. Secured communication is achieved using SSL, which allows clients to validate the authenticity of the Cloudify Manager, and to ensure that the data sent to and from it is encrypted. Controlling access to Cloudify Manager, and permissions to perform actions, is implemented via Flask-Security, to support user authentication and authorization.
Cloudify Manager comprises the following main parts:
- Cloudify Manager
- Agents optional
- Cloudify Management Console
Cloudify Manager consists of the Cloudify code and a set of open-source applications. For an in depth explanation of these applications, click here.
The Cloudify Manager architecture is designed to support all potential operational workflows you might require when managing your applications, including:
- Event-stream processing
- Processing secured requests
- Metrics queueing, aggregation and analysis
- Logs/events queueing, aggregation and analysis
- Manual or automated task execution and queueing, based on live streams of events or aggregated data
- Interaction with Cloudify agents, for executing tasks on, and maintaining, application hosts
You can also communicate with Cloudify Manager using the command-line interface, which uses the Cloudify REST client module to interact with the Cloudify REST service.
All requests are served via a proxy.
Cloudify agents are entities for executing tasks on application hosts. They listen to task queues and execute tasks when required.
The agents are designed to execute tasks using Cloudify-specific plugins.
In the background, the same agents that are used on the hosts are also used in Cloudify Manager, but in a different context. For instance, every deployment has two agents, one of which talks to IaaS APIs to deploy resources.
Note that Cloudify can run in “agentless” mode, which means that agents can use specific plugins to manage hosts without the agents being installed on those hosts. You can specify which server nodes will have agents installed on them in the blueprint.
For more information about agents, click here.
Cloudify Management Console
Cloudify includes a Cloudify Management Console that provides the same features as the CLI, as well as others. For more information, click here.