continuum-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marica Tan" <c...@exist.com>
Subject Distributed builds
Date Wed, 22 Oct 2008 02:07:11 GMT
Hi,

Our team in exist came up with a requirements for distributed builds.

*A. Distribution of work*

     Master and Slave Agent will communicate with each other through
xml-rpc.

   1. Master Agent - controls build via xml-rpc
      1. slaves need to be added to the master server
         - attach the slave to a build environment as a type of
         "installation". Each slave reports a number of available installations.
      2. check availability of slaves
      - slave is available if it's up and has no current build.
         - if slave is available then dispatch build to the slave.
         - if slave is unavailable then enqueue build on the master
         3. distribute work
         - select slave based on build environment (master)
         - build
            - pass current configuration
            - expect result (master)/return result (slave)
            - attach each result returned by the slave to each project in
            the group (add to database)
          2. Slave Agent - is a dumb build agent that will run on another
   build server. It will only build the project and return the result. It also
   has it's own installation.
      - queried for available installations
      - start build, stop build
      - returns build result

*B. UI/Configuration*

   1. Aggregated view of distributed projects
   2. Slave server list (new page)
   3. Build Environment
      - add slave selection
      - modify installations based on slave selection
   4. distributed build configuration stored and editable in XML
   configuration file

Limitations

   - credentials (s.a. svn credentials) are passed along if specified, but
   if server cache is used it will need to be done individually on the slaves
   - slaves can only be configured at the project group level, by a system
   administrator
   - project dependencies are not considered in distribution -
   interdependent projects should target the same slave server

Future Enhancements

   1. Policy-based distribution
      - next available
      - load balanced
      - target environment matching


Comments, suggestions and/or violent reactions are welcome :)


Thanks,
--
Marica

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message