Genie in a Network (GIN) – Workflow Engine

Workflow Engine

The GIN workflow engine generates and executes the workflow steps generated by the orchestrator from a service model.  The workflow engine is a simple engine that executes the workflow steps in the correct order.  It is triggered from events published to the event bus.

GIN has also incorporated an opensource cloud native workflow engine called Argo to execute the workflow steps in a container. Although we believe, for most instances the Argo workflow or the simple workflow engine will suffice, we can also plugin the open source Camunda workflow engine if a more robust and distributed workflow engine is preferred. In all cases the workflow steps are either derived and generated from the model or explicitly specified in the model.

  1. GWAPGin Argo Workflow Plugin – microservice is responsible for generating the workflow template, which is compatible with the Argo workflow engine, from the model. It listens on the event bus for an event that acts as a signal for it to start generating the workflow.  It fetches the service instance of a model from Dgraph database and generates the Argo workflow template which it subsequently submits to the Argo workflow engine.  One of the key features of Argo Workflow Engine is that it executes each workflow step in a separate container.  The workflow steps can therefore leverage the full scalability and reliability of the cloud infrastructure.  It also allows the workflow steps to be executed in containers hosted within a single pod.  This can be used to efficiently execute workflow steps that are closely knit together and share a lot of common resources between them.
  2. GWECGin Workflow Execution Component – microservice is used to execute each workflow step in an Argo workflow template.  It is a microservice with all the tooling necessary (e.g., an appropriate operating environment like Centos, Ubuntu, Windows, etc., Kubernetes deployers like Helm, scripting tools like Python and bash, etc.) to support the artifacts accompanying a TOSCA service model archive (.CSAR). The Argo workflow engine deploys the GWEC container for each workflow step, executes the step, and destroys the instance after completion of the workflow step.
  3. Argo Workflow Engine – works with the workflow template generated by the GWAP microservice and executes each workflow step in the GWEC container.  It is setup to listen for workflow execution events on the event bus. On receiving the appropriate event it begins executing the workflow steps in a cloud native way.  It publishes an appropriate event on the bus upon success or failure of the workflow execution.  The subscribing components can react accordingly to the published event.