Bamboo Ondemand Experience

19. December 2012. Tagged work, tools.

I just wanted to write a few words about my personal experience with Bamboo Ondemand by Atlassian.

Basically I think that it is a great tool for testing, building and deploying, especially if you are in a small development team and you want to keep your costs low. There are some little traps though, maybe because I did not really understand the docs, so I want to give you a little overview about it here to avoid confusion.

About the tool

At first I want to explain the product itself a little. Bamboo is an alternative to jenkins, which will basically provide you with the ability to run your tests build and deploys based on loads of different criterias. Bamboo Ondemand is basically an instance of bamboo hosted by atlassian for you, so you do not have to take care of that yourself (and hosting java apps is always a pain, because of the high memory footprint).

It also integrates pretty well with Bitbucket, where we host our repositories, because we get unlimited private repositories (as we are a small team).

Traps

JIRA

For starters, Bamboo Ondemand is not everything you need. You will also need an instance of Jira ondemand, which is the requirement for bamboo, which will lead to doubled costs already (which is 20$/month now).

AWS

You will also need a EC2 instance at AWS to actually run your builds. Atlassian will just host the interface and not the build infrastructure for you. On the other hand, if you have not been using AWS before, you will get a micro instance for free for a year. You will have to configure Bamboo to only use a micro instance though.

For us the micro instance has been working pretty well so far. If you are not in the free tier you will have to pay for the micro instance. We are only running a few tests a day that each takes a few minutes, but if you need a lot of tests you might want to consider running something with more CPU power.

You can also let bamboo dynamically handle your instances, based on the need. We have just one static instance that is running all the time, to ensure that the results come out as fast as possible, so we can keep working.

If you let bamboo dynamically handle your instances you might have to consider to set up a custom image or use the startup script. We for example need to install python-devel, virtualenv and pip for our python unittests, so we do that in a startup script.

Nosetests

We use nosetests to run our tests and as long as we put out the test data in the right format (there is a switch to put it out in a compatible way) and let bamboo read it, that works perfectly fine!

Resumee

We have been using Bamboo for about a month now and we decided to use it in the future. Especially in combination with the great JIRA it is really an amazing tool. It raises our productivity and our unittests ensure that we do not break anything, which also improves code quality and uptime.

I would recommend Bamboo to any small or mid-size business, that wants online tests and building without spending too much time. The setup aside, it’s more than only helpful.

With a 20$/month you can run a lot of tests and stuff and get unlimited private repositories at Bitbucket, as long as you do not have more than 7 users.

If you have any further questions or need help with your setup, feel free to ask in the comments (below) or send me an email.