Application Release Automation
It was Gartner that described Application Release Automation as a key to DevOps and most proponents of the DevOps movement see automation, once the people and process issues have been tackled, as the key tools and technology driver and ARA as the penultimate piece of the DevOps toolchain - followed by Application Performance Management.
As applications have become increasingly critical to organisations' competitive advantage and businesses' push for innovation has seen a massive uptick with the arrival of social and mobile, developers are putting the pressure on operations to deliver the highest volumes of releases ever - a trend that is only forecast to increase exponentially.
No More Scripts
In the past, we have seen highly talented operations and administration resources eliminate manual release tasks by writing a script, and then another script. Many larger organisations have gone a few steps further and written some of their own tooling themselves - building task libraries, creating graphical user interfaces into their scripts and integrations into other tools for build and configuration management. But the scripts still suffer from the same issues around failures, troubleshooting and auditability.
What to Look for in an ARA Tool
The first thing most organisations want when they consider automation tools is a boost in productivity. Those same talented staff who created all the scripts, are heroes when there's a system failure as they are the only ones with the knowledge to fix it, often become the bottleneck in the process (and most of them are bored doing this job too - their talents are much better used elsewhere). An automation tool allows you to:
- Create consistent, repeatable deployments
- Enable self-service so any authorised personnel can perform deployments within a couple of clicks
- Roll back or redeploy instantly in the event of a systems failure
- Have a full audit trail of every action taken in the system
- Troubleshoot and fix at high velocity
- Integrate into your existing DevOps toolchain (Maven, SVN, Git etc)