Spotlight on: SpringSource
For this week’s user spotlight segment, I’m talking with Doug MacEachern of Hyperic, part of SpringSource, a division of VMware, hoping I got that dependency chain correct. Hyperic builds enterprise systems monitoring and management software and also contributes to a number of open source projects, many of which are built with Hudson.
To date I must say that Doug’s use of Hudson is one of the largest and more impressive installations I’ve seen. I don’t want to spoil the interview, but they’re testing on platforms that don’t even run Java. Madness! If you think you can out-do him, you can find my email information at the bottom of the interview, I’d love to hear about it!
Without further ado, Doug from SpringSource.
The majority of our x86/x64 nodes are virtualized on VMware ESX and VMware Server. We also have a fine collection of PPC, PA-RISC and Sparc hardware in house, with IA-64 and s390x hosted elsewhere by third parties. Some of these systems are too old to support Java 1.5 and/or Git. As a simple work-around, the nodes share an NFS workspace where the agent node takes care of 'SCM' and 'Post-build Actions', but the 'Build' step in between is invoked via ssh.
The SIGAR distribution includes about two dozen native binaries that are compatible with most of the supported platform matrix. There’s a Hudson job for each Git branch that rolls these binaries into a release bundle. Another job flavor uses the Hudson URL SCM plugin to download and unit test the binary releases on the rest of the platform matrix. This is key to testing binary compatibility. Similar for the collectd project, each Git branch has a job that runs automake, autoconf, etc. and 'make dist' into the collectd release flavor tarball. So a push to git.verplant.org by octo in Germany triggers an update of the collectd release artifact, which in turn triggers the URL SCM jobs to download the tarball, unpack and build over here at our west coast locations.
We have four Hudson servers in different locations, three of which are managing most of the jobs behind firewalls. Select jobs use the Build Publisher plugin to post the job and its artifacts to our public Hudson server. This makes it easy for us to provide platform specific bug fixes in binary form, share build logs with external projects and host a central repository of artifacts reachable by all of the URL SCM based jobs. Our public Hudson server also provides CI for the HQApi project and jobs to build HQ plugins, again making it easier to distribute patch fixes in binary form between releases. </td></tr>
</table>
I'd like to thank Doug again for giving us a peek behind the curtains at SpringSource and how they're using Hudson. If you would like to discuss your organization or company's use of Hudson for Continuous Blog, you can contact me at `tyler` at `linux.com`
Editor’s note: Doug was the primary author of mod_perl for many years until he was tricked into "helping out" with a new project. This project turned into Hyperic HQ which shifted his focus to systems and application management for the past ~7 years and counting. He occasionally rambles on Twitter as @dougmaceachern.