The environment part can be divided into two parts
1) Master – Slave Architecture
2) Raw Data API (which depends on the execution project)
My last week went researching on Master – Slave Architecture .
I had looked upon two projects : one is Bitten and another is Condor both for their Master Slave Architecture and thought I should jot down some of the points which might be
helpful while designing PyTI.
Bitten is a Python based CI for collecting various software metrics. It builds on Trac . It uses a distributed build model having a master and slave architecture where in one or more
slaves run the actual tests , and a master gathers the results .
Bitten uses a build recipe ( a configuration file which determines what commands to execute, and where certain artifacts and reports can be found after a command is executed)
Build recipes are used for communication between the master and the slave. It is written in XML format for giving commands to the slave.
Bitten’s master slave protocol is just a simple peer to peer communication protocol where in either the master or slave can initiate exchanges.
Condor is a project which is aimed at utilizing idle cpu cycles. It works on distributed systems. Any job which needs to be done is given to condor and condor finds an idle machine and executes the job there and if the user of the machine wants his machine back , it can preempt the job and move to another machine.
Now a job can be given to condor , by giving a job ad with parameters and preferences for the job and the tasks to be executed. Also machines which volunteer for using their resources also communicate with Condor with their preferences. So condor sets up the job by matching each others’ preferences. The machines communicate with condor by providing a configuration file to Condor .