For the last 2 months, we’ve been using ControlTier to automate deployments to our integration and QA environments. Our deployment is a little more complicated that most Java applications because it runs on a pseudo-grid. That is, there are 2 clustered JBoss servers, a database server, and 4+ Linux servers that each run about 8 Java processes.
I was able to get ControlTier up and running in a few days, and defining the jobs was relatively straightforward.
Features I really like include:
- Tagging nodes. This allows me to run, for example, the JBoss startup on all nodes tagged as “jboss”. If I add a new node I don’t have to modify the job.
- Composite jobs. I can define small, single-purpose jobs and combine them into larger jobs. Code re-use, if you will.
There are a few features I’d really like to see:
- A Jenkins plug-in. Deployments to the Integration environment always follow a successful build.
- Simpler parallel job configuration. I can start all Java grid processes simultaneously, but haven’t figured out how to get ControlTier to do it.
- Ability to configure environments and run the same job against multiple environments rather than having to copy the job and change its project or target nodes.
- Synchronous job execution. Although this may not be necessary if there was a Jenkins plug-in.
Overall I’m happy with what ControlTier is doing for us. If I get time, I’d also like to compare it to other deployment frameworks like RunDeck.