Meego Wiki
Views

Release Infrastructure/BOSS

From MeeGo wiki
Jump to: navigation, search

TOC

Contents

BOSS "Build Orchestration Supervision System"

BOSS is a workflow orchestrator, a system that is configured to your workflow requirements and interacts with OBS as well as with external systems to apply the required actions by your workflow. BOSS is a system to orchestrate a CI (Continuous Integration) ecosystem around OBS.

Why

  • we need a robust, flexible way of configuring a set of triggers (ex. OBS event or a submit request) and responses
  • OBS is a build system, not a general workflow system
  • there is need for automation of responses to OBS actions results
  • OBS requests are good but not flexible nor extensible
  • there's fear of OBS becoming a big black box doing all the magic (maintainability)
  • Hermes is there, but it is just taking care of notifications

Requirements

  • parallel worflows for parallel software programs
  • allows for parallel implementation of the system
  • plugins are usable independently
  • take away the productization process/logic from the build infrastructure

What is BOSS

  • a message bus to collect all triggers and feedback from the different components of the ecosystem
  • A queue-manager to handle delivery of incoming messages from all existing systems to the worklow framework
  • a work flow framework allowing site-specific workflow definition

Architectecture

BOSS overview.png

OBS event publisher

Obs events.png

Message Bus

  • a collection of proxies
    • each proxy interprets on external system
  • a messaging system (such as RabbitMQ or other similar) and a signal dispatcher

Queue Manager

BOSS arch.png

Work Flow System

  • a set of definitions(classes) {objects, conditions, transitions, states} to define the components of the productization process
  • separate workflow scripts for the product (can be multiple)
  • a collection of plugins
    • one plugin per external system
    • possible plugins to handle transitions (parsing the requests)

Resources

BOSS uses Ruote as the workflow system; there is an overview of Ruote

The code will be in a git project

Personal tools