< Release Infrastructure | BOSS(Difference between revisions)
|
|
| Line 39: |
Line 39: |
| | * AMQP – Queues and RPC | | * AMQP – Queues and RPC |
| | ** Queues for 'work' | | ** Queues for 'work' |
| - | ** RPC for immediate calls (see [[BOSS/AIR|AIR]]) | + | ** RPC for immediate calls (see [[Release Infrastructure/BOSS/AIR|AIR]]) |
| | | | |
| | * Messages – all JSON | | * Messages – all JSON |
Latest revision as of 13:02, 26 August 2010
This presentation introduces the BOSS system.
BOSS Overview
BOSS is a framework to orchestrate workflow steps around the build system.
Workflow : Ruote
Ruote has been selected as the workflow framework :
- Straightforward
- Concise
- Clean design
- Ruby core (fits with the OBS)
- JSON messages
- Language agnostic
- Active + welcoming upstream
There is an overview of Ruote which explains how it works.
Workflow
- Jobsheet based (not state-machine):
- The workflow passes a 'sheet of paper' between participants
- Each participant looks at the paper, does some work, writes on it and passes it on
- The engine decides who gets the paper next
- Paper = JSON structure
- Multiple independent workflows can co-exist
AMQP
- Reliability
- Performance
- Flexibility
- Simplicity
- Multiple Language Bindings
- Persistence, concurrence and queuing “for free”
Talking to the BOSS
- AMQP – Queues and RPC
- Queues for 'work'
- RPC for immediate calls (see AIR)
- Messages – all JSON
- Workitems
- Service request/response
Communication : Queues
Communication : RPC
This is AIR
Communication : BOSS Participant
- Receive a workitem
- Process it
- Return it
- Control thread using RPC allows cancel/status