Taking Application Release Automation to the Next Level
Whether the driver is Agile, Cloud or DevOps1, or a "plain old" efficiency drive or process improvement initiative, forward-thinking organisations are currently looking for ways to improve their application release processes through automation. In an area where manual activities are still all too common, it's unsurprising that the initial focus has been on automating the deployment execution - moving all the bits to the right places. What early adopters have learnt is that, at the enterprise scale, automating release execution quickly introduces a new bottleneck in today's dynamic IT environments: continuous management of the deployment plan definition. A new generation of application release automation (ARA) tooling avoids this pitfall by leveraging intelligence to automate deployment planning as well as execution.
The State of ARAGiven how strongly our IT industry is dedicated to the automation of processes, it is nothing short of amazing how much of the deployment of our own solutions depends on manual actions coordinated more or less effectively between large groups of people. Indeed, a recent analyst report noted that the majority of large enterprises were still relying on manual application release processes or on in-house scripting understood by only a small number of specialists, operated as a black box that - hopefully - will do its job and will most likely necessitate a painful troubleshooting session if it doesn't. With key IT trends such as Agile, Cloud and DevOps dramatically ramping up the frequency of application releases in order to increase responsiveness to business needs and provide more and better services to customers, it's clear that this situation cannot continue. Thinking of today's common release processes, it is also hardly surprising that the initial drive has been to automate the actual rollout of the application itself: copying the files to the target machines, restarting the servers, running the SQL against the DB etc. Using a defined workflow to organise these activities makes lots of sense: fewer failures, no more missing steps or steps executed in the wrong order, no more typos, better visualization etc.
Lessons from the First Generation
The Next Level of Application Release AutomationA new generation of Application Release Automation includes this intelligence. These advanced tools2 no longer require hand-holding by your power users every step of the way, and encode knowledge of deployment best practices and strategies to automate the planning and execution of deployments.3No pre-provided strategy can be a 100% fit in an enterprise environment, so the strategies must be configurable, of course. Once your power users have fine-tuned them, however, all the individual deployment plans - initial installations, full and partial upgrades, downgrades, undeployments, scale-outs etc...easily hundreds across an application portfolio - are automatically tailored to your scenario. This becomes even more efficient the fewer deployment strategies are in play, so these tools also motivate and reward increased standardisation of deployment procedures, in itself a valuable business goal. In fact, with a suitable interface and integrations into the development pipeline you essentially have an enterprise Platform as a Service, potentially on a private or hybrid cloud.
ConclusionsWith adoption of Application Release Automation rapidly on the increase, a new generation of solutions are appearing that automate deployment planning as well as execution. Based on the challenges experienced in scaling the first generation of ARA tools to enterprise levels, these next generation solutions are designed to eliminate "continuous expert hand-holding", promote standardisation and allow organisations to create a "software factory" that continuously delivers business value.
- My spelling preference is still for "Devops" since the whole point is, after all, that Dev and Ops are no longer regarded as separate, but hey... ;-)
- like XebiaLabs' XL Deploy
- This advance closely mirrors the development of build frameworks from tools like Ant to today's industry standards like Maven and on to the next generation of Gradle, SBT and others.