(Difference between revisions)
|
|
| Line 4: |
Line 4: |
| | | | |
| | MeeGo will use BOSS to orchestrate a CI (Continuous Integration) ecosystem around OBS. | | MeeGo will use BOSS to orchestrate a CI (Continuous Integration) ecosystem around OBS. |
| | + | |
| | + | [[File:Boss0.png]] |
| | | | |
| | === Why === | | === Why === |
| Line 20: |
Line 22: |
| | | | |
| | === What is BOSS === | | === What is BOSS === |
| - | * a workflow framework allowing site-specific workflow definition
| + | There is a page describing the details of the [/Design design] |
| - | * 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 ====
| + | * a workflow framework allowing site-specific workflow definition |
| - | Boss uses [http://ruote.rubyforge.org/ Ruote] as the workflow system which
| + | * a message bus and queue-manager to handle delivery of incoming messages from all existing systems to the worklow framework |
| - | There is [http://wiki.github.com/jmettraux/ruote/overview an overview of Ruote] which explains how it
| + | * a queue-based job distribution system that handles delivery to pools of workers |
| - | * 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 ===
| + | === OBS event publisher === |
| - | [[File:BOSS_overview.png]]
| + | One important part of BOSS integration will be the connectivity with the OBS. |
| - | ==== OBS event publisher ====
| + | |
| | [[File:obs_events.png]] | | [[File:obs_events.png]] |
| - | ==== Queue Manager ====
| |
| - | [[File:BOSS_arch.png]]
| |
| | | | |
| | == Resources == | | == Resources == |
| - | The code will be in [http://meego.gitorious.org/meego-infrastructure-tools/boss a git project] | + | * Code: The [/Code BOSS code] is available |
| | + | * 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] |
Revision as of 11:16, 28 July 2010
TOC
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
There is a page describing the details of the [/Design 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
OBS event publisher
One important part of BOSS integration will be the connectivity with the OBS.
Resources