Meego Wiki
Views

Release Infrastructure/BOSS/Design

From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
(clarify AIR picture)
m (moved BOSS/Presentation to BOSS/Design: More meaningful page title)

Revision as of 17:29, 19 July 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
  • JSON messages
  • Language agnostic
  • Active + welcoming upstream

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