Skip to content

Workflow Orchestrator programme

Welcome to the Workflow Orchestrator programme homepage. This open-source collaboration develops software, tools and best practices for automating and orchestrating networks. Our vision is to create an ecosystem of Software that enables users to Automate and Orchestrate their network.

Production ready Workflow Orchestration to manage product lifecycle and workflows. Easy to use, built on open source software.

Discord GitHub

The Workflow Orchestrator software ecosystem is maintained by its Members and all individual code contributors.

Orchestration

When do you orchestrate and when do you automate? The answer is you probably need both. Automation helps you execute repetitive tasks reliably and easily. Orchestration adds a layer and allows you to add more intelligence to the tasks you need to automate and to have a complete audit log of changes.

Orchestrate* - Transitive Verb

/ˈôrkəˌstrāt/ /ˈɔrkəˌstreɪt/

1: Arrange or score (music) for orchestral performance. ‘the song cycle was stunningly arranged and orchestrated’

2: Arrange or direct the elements of (a situation) to produce a desired effect, especially surreptitiously. ‘the developers were able to orchestrate a favorable media campaign’

Project Goal

The Workflow Orchestrator provides a framework through which you can manage service orchestration for your end-users. The framework helps and guides you, the person who needs to get things done, through the steps from automation to orchestration. With an easy to use set of API’s and examples, you should be up and running and seeing results, before you completely understand all ins and outs of the project. The Workflow Orchestrator enables you to define products to which users can subscribe, and helps you intelligently manage the lifecycle, with the use of Creation, Modification, Termination and Validation workflows, of resources that you provide to your users.

What does a workflow look like? It must be pretty complex!

Programming a new workflow should be really easy, and at its core it is. By defining workflows as Python functions, all you need to do is understand how to write basic python code, the framework will help take care of the rest.

@workflow("Name of the workflow", initial_input_form=input_form_generator)
def workflow():
    return (
        init
        >> arbitrary_step_func_1
        >> arbitrary_step_func_2
        >> arbitrary_step_func_3
        >> done
    )

If this has sparked your interest, read more about the framework or jump into Getting Started.

Tooling

The WFO programme maintains an entire ecosystem of tooling, a non-comprehensive list in no particular order:

  • Orchestrator-Core: This Python program leverages the power of FastAPI, Pydantic and SQLAlchemy to create an orchestration engine. Downloads: pypi-downloads.
  • Orchestrator-UI: Component library for a modern and flexible NextJS app on top of the Orchestrator-core. Downloads: npm-downloads.
  • Orchestrator Example UI: Example UI with a NextJS implementation of our component library.
  • LSO: This application provides an API layer on top of Ansible playbooks. Downloads: pypi-downloads.
  • Example Orchestrator: This repository houses a Docker-compose running a full stack of the Orchestrator, UI and Netbox. It includes examples our best (coding) practices and an example integration with Netbox.
  • PyNSO-Restconf: A thin client for interfacing with Cisco NSO using RESTCONF.
  • Pydantic-Forms: A library that includes standardized Python Form classes that can be used when generating form components from JSON-schema.
  • SuPA: An NSI Ultimate provider agent with a gRPC API.
  • PolyNSI: A bidirectional SOAP to gRPC translating proxy server for the NSI protocol.

Which organizations are using Workflow Orchestrator?

SURF ESnet GÉANT HEAnet Nomios ShopVirge CANARIE GARR REANNZ Internet2