Meego Wiki
Views

Release Infrastructure/BOSS

From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
(add git repo)
(begin to restructure)
Line 1: Line 1:
[[TOC]]
[[TOC]]
== BOSS "Build Orchestration Supervision System" ==
== 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 workflow orchestrator, a system that can be configured to automate your workflow requirements; it interacts with the OBS and with people and systems around it to apply your workflow steps.
-
BOSS is a system to orchestrate a CI (Continuous Integration) ecosystem around OBS.
+
 
 +
MeeGo will use BOSS to orchestrate a CI (Continuous Integration) ecosystem around OBS.
=== Why ===
=== Why ===
Line 13: Line 14:
=== Requirements ===
=== Requirements ===
-
* parallel worflows for parallel software programs
+
* parallel worflows for parallel software programmes
-
* allows for parallel implementation of the system  
+
* allows for parallel implementation of the system
-
* plugins are usable independently  
+
* plugins are usable independently
* take away the productization process/logic from the build infrastructure
* take away the productization process/logic from the build infrastructure
=== What is BOSS ===
=== What is BOSS ===
 +
* a workflow framework allowing site-specific workflow definition
* a message bus to collect all triggers and feedback from the different components of the ecosystem
* 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 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
+
 
 +
==== Work Flow System ====
 +
Boss uses [http://ruote.rubyforge.org/ Ruote] as the workflow system which
 +
There is [http://wiki.github.com/jmettraux/ruote/overview an overview of Ruote] which explains how it
 +
* a set of Pa {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)
 +
 
 +
==== Message Bus ====
 +
* a collection of proxies representing external systems
 +
* the RabbitMQ messaging system (or other similar) and a signal dispatcher
=== Architectecture ===
=== Architectecture ===
Line 27: Line 41:
==== OBS event publisher ====
==== OBS event publisher ====
[[File:obs_events.png]]
[[File: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 ====
==== Queue Manager ====
[[File:BOSS_arch.png]]
[[File: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 ==
== Resources ==
-
BOSS uses [http://ruote.rubyforge.org/ Ruote] as the workflow system; there is [http://wiki.github.com/jmettraux/ruote/overview an overview of Ruote]
 
-
 
The code will be in [http://meego.gitorious.org/meego-infrastructure-tools/boss a git project]
The code will be in [http://meego.gitorious.org/meego-infrastructure-tools/boss a git project]

Revision as of 10:58, 24 June 2010

TOC

Contents

BOSS "Build Orchestration Supervision System"

BOSS is a workflow orchestrator, a system that can be configured to automate your workflow requirements; it interacts with the OBS and with people and systems around it to apply your workflow steps.

MeeGo will use BOSS 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 programmes
  • 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 workflow framework allowing site-specific workflow definition
  • 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

Work Flow System

Boss uses Ruote as the workflow system which There is an overview of Ruote which explains how it

  • a set of Pa {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)

Message Bus

  • a collection of proxies representing external systems
  • the RabbitMQ messaging system (or other similar) and a signal dispatcher

Architectecture

BOSS overview.png

OBS event publisher

Obs events.png

Queue Manager

BOSS arch.png

Resources

The code will be in a git project

Personal tools