Meego Wiki
Views

Release Infrastructure/BOSS

From MeeGo wiki
< Release Infrastructure(Difference between revisions)
Jump to: navigation, search
(add git repo)
(BOSS Implementation and Design)
 
(11 intermediate revisions not shown)
Line 1: Line 1:
-
[[TOC]]
+
= BOSS "Build Orchestration Supervision System" =
-
== 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.
-
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 ===
+
MeeGo and the MeeGo Community Edition use BOSS to automate processes and to orchestrate a CI (Continuous Integration) ecosystem around OBS.
 +
 
 +
See also:
 +
* [[/Installation|Installation]]
 +
* [[/Roadmap|Roadmap]]
 +
 
 +
== Overview ==
 +
 
 +
[[File:Boss0.png]]
 +
 
 +
== Why ==
* we need a robust, flexible way of configuring a set of triggers (ex. OBS event or a submit request) and responses
* 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
* OBS is a build system, not a general workflow system
Line 12: Line 20:
* Hermes is there, but it is just taking care of notifications
* Hermes is there, but it is just taking care of notifications
-
=== Requirements ===
+
== Requirements ==
-
* parallel worflows for parallel software programs
+
* parallel workflows 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 ===
+
== BOSS Implementation and Design ==
-
* a message bus to collect all triggers and feedback from the different components of the ecosystem
+
There is a page describing the details of the [[/Design|design]]  
-
* 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 ===
+
-
[[File:BOSS_overview.png]]
+
-
==== OBS event publisher ====
+
-
[[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 ====
+
-
[[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 ==
+
* a workflow framework allowing site-specific workflow definition
-
BOSS uses [http://ruote.rubyforge.org/ Ruote] as the workflow system; there is [http://wiki.github.com/jmettraux/ruote/overview an overview of Ruote]
+
* a message bus and queue-manager to handle delivery of incoming messages from all existing systems to the worklow framework
 +
* a queue-based job distribution system that handles delivery to pools of workers
-
The code will be in [http://meego.gitorious.org/meego-infrastructure-tools/boss a git project]
+
= Resources =
 +
* AMQP: [http://www.amqp.org AMQP.org] has the very readable [http://www.amqp.org/confluence/download/attachments/720900/amqp0-9-1.pdf?version=1&modificationDate=1227526523000 0.9.1 specification (pdf)]
 +
* Ruote: [http://wiki.github.com/jmettraux/ruote/overview An overview of Ruote]
 +
* [[/Performance/Results|Performance tests]]

Latest revision as of 11:19, 3 August 2011

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 and the MeeGo Community Edition use BOSS to automate processes and to orchestrate a CI (Continuous Integration) ecosystem around OBS.

See also:

Overview

Boss0.png

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 workflows 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

BOSS Implementation and Design

There is a page describing the details of the design

  • a workflow framework allowing site-specific workflow definition
  • a message bus and queue-manager to handle delivery of incoming messages from all existing systems to the worklow framework
  • a queue-based job distribution system that handles delivery to pools of workers

Resources

Personal tools