This moved Here.
Continuous Integration existed before CruiseControl. Before Martin Fowler wrote about it. Of course, it always was a primarily a practice, but some don’t know that there was a Continuous Integration server that existed before CruiseContol: Mozilla Tinderbox. Tara Hernandez was instrumental in developing the first version of Tinderbox, and I asked her for a little more info:
Q: Where did you start out?
A: Borland was a great place to start out (first real job out of college), and I learned a lot. However, the CEO was insane and there was a strong personality cult around him that made it hard to reign in his bad ideas. For example, Borland was really really well regarded with regards to its compilers and if had stuck to that we might have been okay. But Phillipe Kahn (CEO) had this idea he could beat Microsoft across all technical verticals and so started acquiring other technologies like databases and stuff. We had so many products that we were competing against ourselves in some instances.
Microsoft finally noticed and squished us like a bug. The team at Borland I was on (Languages) got totally pillaged. Microsoft lured away almost all the top talent, including our VP. They probably spent 10 million dollars on signing bonuses. It was a mess.
Anyway, I got hired at Netscape after about 3 years of Borland. Somebody I had previously known at Borland pinged me and told me of an opportunity at this new startup Netscape. I was the first build/release engineer hired, and I only had 3 years of experience at a very sedate well-established company under my belt. Best analogy I can think of was that it was sort of like jumping out of an 747 without a parachute. There wasn’t a consistent build platform, even within the same general operating systems group.
For example, there were two distinct make systems in play in the unix world. The revision control system (CVS) only worked on unix at the time, so for Windows and Mac platforms we had to run this crazy software to export the local hard drives as mounts readable on the unix network, and then people had to run xterm sessions to do any SCM transactions. It sucked.
Q: What was the problem that caused you to need Continuous Integration?
A: It was the fact that we had 2 version of MacOS (68k and PPC), two versions of Windows (16 and 32 bit) and (initially) 8 versions of Unix. At any given time our ability to successfully generate a set of builds was close to nil. Things would work great on one platform, but not on 6 others.
Tinderbox really evolved out of desperate self-defence, because it was almost impossible for us to do our jobs — mainly, get builds out the door in a timely fashion, and let developers know as soon as possible that they broke something somewhere and to please go figure out how to get it fixed.
Tara Hernandez is a specialist in software engineering infrastructure having developed procedures and tools at assorted Silicon Valley companies. Her most notable stint was at Netscape Communications Corporation where she initially helped develop new tools such as Tinderbox, Bugzilla, and Bonsai, and later helped adapt those tools to a public environment after the creation of mozilla.org and the release of the Netscape web browser as open source. Now at Pixar Animation Studios, Tara and her team are reinventing development infrastructure to handle the challenges of writing software in a film production environment.
Continuous Integration matters. Configuration Management matters. What happens when you mix the two?
Let’s find out. Chris Read and I are speaking at the BCS Configuration Management group meeting on November 1. We’ll be doing our talk from Agile 2011, which I hope will spill over into a massive discussion over nibbles and wine.
The venue will be the BCS offices in Southampton Street, London. You need to register for security and catering purposes. Chris and I will be talking from 18:30. We’ll be preceded by the CMSG AGM, which non-members are welcome to attend (though you can’t vote unless you’re a member)
Atlassian kicked off the Bamboo Task Master Challenge today. I am honoured to be on the judging panel.
What’s it all about? A Continuous Integration server becomes the heart of your development infrastructure. CI servers need to know how to talk to the rest of your systems.
So Atlassian are encouraging you to add to the Bamboo ecosystem by offering the winner of the competition:
The first 10 entries get an Atlassian T-shirt and the Bamboo Keyboard and Mouse.
I think it’s a clever move. Plugins made Hudson/Jenkins more attractive to it’s users, and gave everyone the incentive to encourage more plugin authors (see Crossing the Chasm for more on this)
Here’s an idea to kick things off: I’d like to see someone use face-detection and face-recognition libraries to detect the face of the person who broke the build.
An targeting system for a Nerf Vulcan wouldn’t go amiss, either.
Why? I’ve been working with some nice people who use binary dependencies. In order to scale their CI system past one node, they need a repository manager, to temporarily store built artifacts on.
They actually have a couple of repositories, but not geographically close to where I’m building out their new CI system (on EC2). It’s important to keep the feedback loop fast; so deploying a repository close to(or indeed on) on the CI server is desirable.
Turns out that there’s support for S3 in their build tool (Maven). So it turned out to be easy. In the github repo, I publish and artifact using an S3 client, and then retrieve it using plain HTTP.
As long as your EC2-hosted Continuous Integration server is in the same availability zone as the S3 bucket, you’re not going to be liable for a high traffic bill.
They may want to use a different configuration for the real repository, where they serve artifacts to the other consumers. This approach is all about speeding up and scaling out their build.
Update: Oliver Lamy asks: ‘what is wrong with Archiva’?
Nothing. I’d cheerfully use it. It has a permissive license and cheerful absence of public spats with other repo managers.
In this case I wanted some very fast and robust, which led me to S3. The alternative was to deploy Archiva on an EC2 instance: I could have done that, but then I would have had a dependency on a single host.
IMO, this approach is more suitable for the context (caching intermediate build artifacts, on AWS).
After a great meeting with Gus Power (watch the video) this month, we’re all set for LondonCI on July 20. David Farley from LMAX will be sharing his experiences with Continuous Deployment. Dave knows a thing or two about the topic, having co-written ‘Continuous Delivery’.
This session will take a look at leveraging continuous integration techniques to deploy and operate software all the way to the end user, exploring some of the difficulties and gotchas along the way.
Gus is a great speaker, with great real world experience in delivering software. He has one of the finest bios I’ve seen in a while:
Gus Power is a hairy force of nature who’s always looking for better ways to figure out what the right stuff is and how do get it done.
For July I’m still trying to secure a speaker but in the interim, why don’t we go to the pub? Andrew Bayer of the Jenkins project is in town and wants to hang out with some Jenkins (or to be honest, any Continuous Integration) users. This will be at the Royal Festival Hall so no need to register with Skills Matter – but registering on the meetup group would help me get a handle on numbers.
It’s almost the third Wednesday of the month, the weather is good, and it’s time to do the second monthly London Continuous Integration meetup at SkillsMatter. After a barnstorming talk from Chris Read, I thought it might be nice to do some Lightning talks – especially as I want to hear new voices talking about Continuous Integration.
Here’s the deal:
See you there.
Kohsuke Kawaguchi is doing a talk at Skills Matter, in London, on the 31st of May. You might know that he wrote Jenkins (nee Hudson). This should be a really informative talk, from someone who raised the game in Continuous Integration. I’m going to get there early to get a good seat. You need to register on the Skills Matter site, below. Get in quick.