Getting started with FRINX Machine

FRINX Machine is a dockerized deployment of multiple elements. Each one of them has specific responsibilities.

For installation, please refer to: FRINX Machine repository

Introduction

FRINX Opendaylight (network automation solution)

  • Connects to the devices in network
  • Keeps connections between devices alive
  • Pushes configuration data to devices
  • Pulls configuration and operational data from devices

Netflix Conductor (workflow engine)

  • Chains atomic tasks into complex workflows
  • Defines, executes and monitors workflows (via REST or UI)

Elasticsearch (inventory and log data)

  • Storing inventory data
  • Storing log data

The goal is to provide a platform enabling easy definition, execution and monitoring of complex workflows using FRINX Opendaylight.

An example workflow could consist of:

  1. Pulling device IP and mgmt credentials from an external IPAM system
  2. Mounting a device
  3. Verifying the device is connected
  4. Executing a configuration template
  5. Unmounting a device

Uniconfig UI (user interface)

  • This is the primary user interface for all things related to FRINX Machine

We chose Netflix’s conductor workflow engine since it has been proven to be highly scalable open-source technology that integrates very well with FRINX Opendaylight. Further information about conductor can be found at:

High Level Architecture

Following diagram outlines main functional components in the FRINX Machine solution:

../../_images/components.png

FRINX Machine repository is available at: https://github.com/FRINXio/FRINX-machine

Frinx-conductor repository is available at: https://github.com/FRINXio/frinx-conductor

Specialized ODL tasks are available at: https://github.com/FRINXio/FRINX-machine/tree/master/microservices/netinfra_utils

Defining a workflow

Workflows are defined using a JSON based domain specific language (DSL) by wiring a set of tasks together. The tasks are either control tasks (fork, conditional etc) or application tasks (e.g. encode a file) that are executed on a remote machine.

FRINX Machine distribution comes in with number of pre-packaged workflows.

Detailed description of workflow and task definitions along with examples can be found at official Netflix Conductor documentation

Operating FRINX Machine

To find out more about how to run the pre-packaged workflows, continue to Use Cases