Meego Wiki
Views

Release Infrastructure/BOSS/Design

From MeeGo wiki
< Release Infrastructure | BOSS(Difference between revisions)
Jump to: navigation, search
(Introduce BOSS)
(fix link)
 
(5 intermediate revisions not shown)
Line 9: Line 9:
== Workflow : Ruote ==
== Workflow : Ruote ==
-
Ruote has been selected as the workflow framework :
+
[http://ruote.rubyforge.org/ Ruote] has been selected as the workflow framework :
* Straightforward
* Straightforward
* Concise
* Concise
* Clean design
* Clean design
-
* Ruby core
+
* Ruby core (fits with the OBS)
* JSON messages
* JSON messages
* Language agnostic
* Language agnostic
* Active + welcoming upstream
* Active + welcoming upstream
 +
 +
There is [http://wiki.github.com/jmettraux/ruote/overview an overview of Ruote] which explains how it works.
== Workflow ==
== Workflow ==
Line 37: Line 39:
* AMQP – Queues and RPC
* AMQP – Queues and RPC
** Queues for 'work'
** Queues for 'work'
-
** RPC for immediate calls (see [[BOSS/AIR]])
+
** RPC for immediate calls (see [[Release Infrastructure/BOSS/AIR|AIR]])
* Messages – all JSON
* Messages – all JSON
Line 49: Line 51:
[[File:Boss7.png]]
[[File:Boss7.png]]
 +
This is [[BOSS/AIR|AIR]]
== Communication : BOSS Participant ==
== Communication : BOSS Participant ==
[[File:Boss9.png]]
[[File:Boss9.png]]

Latest revision as of 13:02, 26 August 2010

This presentation introduces the BOSS system.

Contents

BOSS Overview

Boss0.png

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

Boss6.png

Communication : RPC

Boss7.png

This is AIR

Communication : BOSS Participant

Boss9.png

  • Receive a workitem
  • Process it
  • Return it
  • Control thread using RPC allows cancel/status
Personal tools