Meego Wiki
Views

Release Infrastructure/BOSS

From MeeGo wiki
< Release Infrastructure
Revision as of 12:32, 10 June 2010 by Informatiq (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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.BR HADRON 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

OBS event publisher

Message Bus

* a collection of proxies
 * each proxy interprets on external system
* a messaging system such as Qpid or DBus and a signal dispatcher

Queue Manager

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)
Personal tools