Conductor Documentation

Overview of the Open Source Components in Conductor

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

Conductor 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 Conductor Managers are accessed:

Therefore, Studio Conductor 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

Nginx is a high-performing Web server. In the Conductor 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 Studio Conductor REST service. The REST service is written using Flask, and Gunicorn is the server. Nginx, is the proxy to that server. The Studio Conductor’s REST service is the integrator of all parts of the the Studio Conductor environment.

PostgreSQL

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

In the Conductor Manager, PostgreSQL serves two purposes:

RabbitMQ

RabbitMQ is a queue-based messaging platform.

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

Pika

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

The Studio Conductor 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 Studio Conductor Management Worker.

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