[Buildbot-devel] [GSoC-14] New Idea: Dynamic scaling and instance metadata configuration for Latent slaves

kuldeep porwal 2591kuldeep at gmail.com
Sun Mar 16 10:59:53 UTC 2014


Hello,
              I am masters student from India. I
have successfully completed  GSoC-2013 with drizzle database. Here is the
link of my work:
http://www.google-melange.com/gsoc/project/google/gsoc2013/kuldeep2591/5997011295797248

As I was involved with my thesis work I didn't pay attention to gsoc'14
earlier but now as I am free I would like to contribute to buildbot , here
is my* work experience *in continuous integration and its tools:

1. I have worked on jenkins as a part of my summer internship.
    There I was supposed to design continuous integration (CI) for one of
their project. And it involves:
    1.1 *merging build request:* I have developed a protocol which merges
multiple build requests for same ticket scheduled across multiple slaves
 . Buildbot already have this feature as mentioned in the
documentation/system-architecture.

    1.2  *Workspace cleanup: *Wrote my own cleanup plugin as desired for
our CI.

   1.3 *Automatic launch of amazon aws slave*:  On demand launching of
slave helps in many ways:
         i) saves money   ii) Load balancing
        I have used amazon slave plugin of Jenkins to serve our purpose
.They had bugs that time so I patched them specifically for the purpose as
desired for  project that time.

*MyIdea **:*

I have a short discussion with Dustin sir about it a day back. Here is the
idea please suggest any changes :

As buildbot already have a support for Amazon slaves and it starts and
kills those slave as per demand (Latent Slaves).  But at the time of load
spike if you want let say X # of slaves then you need to create X #
BuildSlave instances and their bid price (if spot instances).
---> The change I would like to suggest is to make this *Dynamic*.
BuildMaster will  first observe the load present based on user demand (can
be considered as build request priority and total number of build request
present at a time in schedulers). Then  based on that demand and load it
automatically launches the Latent Slave.
It will only launch the # slaves up till the maximum limit (user parameter
, let say 50).

---> The above launch of build slave will be governed by automatic
configuration by instance metadata. As dustin sir suggested:
Currently, the user must set up each instance image with a different
Buildbot slave name and password, and configure the Buildbot slave to start
on boot.  This could be made much easier for users, perhaps with a
pre-built AMI that starts the Buildbot slave on boot and takes all of its
configuration from the instance metadata.

currently I am focusing on Amazon AWS but as the time permits I can look
this for other virtualization  systems.


-- 
Regards,
Kuldeep Porwal
IIIT Hyderabad
09550605256
http://web.iiit.ac.in/~kuldeep.porwal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://buildbot.net/pipermail/devel/attachments/20140316/5cdc60a5/attachment.html>


More information about the devel mailing list