Command Line Flows
Upload Blueprint Workflow
This section describes the workflow for uploading a blueprint to a Cloudify Manager environment. mermaid.initialize({startOnLoad:true}); sequenceDiagram participant CLI participant NP as Nginx (Proxy) participant REST participant NF as Nginx (Fileserver) participant PSQL as PostgreSQL CLI-CLI: cfy blueprints upload CLI-CLI: Parse blueprint CLI-NP: POST /blueprints NP-NP: validate blueprint size NP-REST: POST /blueprints REST-NF:Copy blueprint & resources REST-PSQL:Save parsed blueprint
Deployment Creation Workflow
This section describes the workflow for creating a deployment for a blueprint. mermaid.initialize({startOnLoad:true}); sequenceDiagram participant CLI participant NP as Nginx (Proxy) participant REST participant ES as Elasticsearch participant MA as Management Agent CLI-NP: cfy deployments create - PUT /deployments/{{deployment-id}} NP-CLI: PUT /deployments/{{deployment-id}} REST-ES: get blueprint by ID REST-REST: create deployment data REST-ES: save deployment data REST-MA:create deployment agents The REST service retrieves the blueprint document from Elasticsearch and creates a tangible manifestation of it by expanding nodes to node-instances, attaching node-instance ID’s to them, and so on.
Workflow Execution Flow
This section describes the flow for executing a workflow on an existing deployment. mermaid.initialize({startOnLoad:true}); sequenceDiagram participant CLI participant Nginx participant REST participant PSQL as PostgreSQL participant RMQ as RabbitMQ participant MW as Management Worker CLI-Nginx: cfy executions start workflow_name -d deployment_id - POST /executions Nginx-REST: POST /executions REST-PSQL: Get deployment by ID REST-RMQ: Submit workflow MW-RMQ: Pull workflow REST-PSQL: Store workflow information MW-MW: Process workflow
Logs and Events Workflow
This section describes the workflow of streaming metrics from a host to the Cloudify Manager management environment. mermaid.initialize({startOnLoad:true}); sequenceDiagram participant X as external participant RMQ as RabbitMQ participant LS as logstash participant PSQL as PostgreSQL participant REST participant Nginx participant UI participant EV as External View X-RMQ: submit event Note over RMQ: queued LS-RMQ: retrieve Note over LS: processed LS-PSQL: index Note over PSQL: stored REST-PSQL: db query Note over REST: proxy query request Nginx-REST: db query Note over Nginx: proxy query request UI-Nginx: db query EV--Nginx: db query RabbitMQ stores messages within a dedicated, durable, non-exclusive topic exchange.