Go: Agile Release Management
At my current company we are moving towards a much more automated continuous delivery model. This reflects more of what some companies such as Facebook are doing to allow a very rapid deployment and integration cycle, such as rolling code on a daily basis to production.
But before you can do this, you need a few things in place from the infrastruture side of things. One of those in my opinion needs to be a good and efficient release model, which allows you to hook in your integration gates through some sort of pipeline flow. For this we use Go by ThoughtWorks.
One really awesome feature about Go is it’s purely driven by a pipieline workflow system. So this allows you to configure each pipeline stage within your environments, and push a batch of code from one end down to the other. Usually the latter is a production system which makes this automated process very easy to use.
Another great feature is the interface is very easy to use and realtime. So as your pipeline is running, you can see what the progress is at each state within the pipeline. This is handy to quickly catch errors or stages that are not passing acceptance.
As your organization grows and more users begin using the system to automate more deployments, the use of agents is what drives the parallel processing of each pipeline job. So everything is distributed so you do not get queued in waiting for your deployment to run. This is very nice, as you can scale these to your needs. Also, you can configure different agents for different purposes, so if you have pipelines that need Windows and some with Linux, you can configure appropriately.
Another very helpful feature is that each job can be configured to run an nAnt script. So you can configure each process within your pipeline to fire a seperate nAnt task that can be implemented at your own discretion. For example, a task to run unit tests against your solution or another to automate a xcopy process. This is extremely powerful.
Overall, this is an extremely powerful system not to mention done by some of the industry leaders in the agile space. You can download it now and give it a try, I highly recommend this software and will continue to find uses for it going forward in my own time.