Meego Wiki
Views

Release Infrastructure/BOSS/Design

From MeeGo wiki
< Release Infrastructure | BOSS(Difference between revisions)
Jump to: navigation, search
(Workflow : Ruote)
(fix link)
 
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.

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