(Difference between revisions)
|
|
| Line 43: |
Line 43: |
| | == 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] | | 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] |
Revision as of 12:41, 18 June 2010
TOC
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
OBS event publisher
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
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