[Buildbot-devel] Limitations using buildbot for building a huge amount of projects

Jean-Paul Calderone exarkun at divmod.com
Thu Apr 24 13:51:20 UTC 2008


On Thu, 24 Apr 2008 13:33:41 +0200, Iago Toral Quiroga <itoral at igalia.com> wrote:
>Hi,
>
>we are using buildbot to provide continuous integration of the gnome
>platform (http://buildbot.gnome.org). Basically, we run several Build
>Master instances and provide an html frontend that renders the main page
>getting information from each master.

Can you elaborate on why you have more than one master?

>
>We have some problems with this solution though:
>
>1.- We need a port per master instance that must be accessible to
>external slave machines. We are building a large list of modules (~200)
>so this means we need to open ~200 ports in the firewall.

It'd probably be possible to tunnel all these connections over a single
port going through the firewall and then demultiplex them on the other
side.  This would take a bit of coding, at least, but nothing too
revolutionary.  Only necessary if you stick with multiple masters, of
course.

>2.- We would like the solution to be scalable, being able to add more
>slaves. Unfortunately, adding more slaves implies to multiply the number
>of required connections by the number of slaves, which does not seem to
>be a scalable solution.
>
>A mate of mine, John Carr, has tried to address the first problem by
>using a Socks proxy, so only the socks server proxy port would be
>public. Unfortunately this makes the second problem even worse, for we
>need twice as many connections (slave<->proxy and proxy<->master).


Twisted easily scales to many thousands of connections.  Are you worried
about the ability of the masters to handle all the connections?  The
ability of the firewall to?  Something else?

>He also suggested to implement a custom ITransport so that masters and
>slaves would not open new TCP connections but use a shared one instead,
>which in principle would be good solution to both problems.

One approach here would be to use SSH as the transport and use a channel
for each logical connection.

>I would like to know what buildbot developers think about this... What
>do you think about this ITransport solution? do you have any good/better
>solution? do you have any plans for future buildbot releases that would
>fix this issue or help with it? etc

I'd still like to hear more about the problem. :)

Jean-Paul




More information about the devel mailing list