This post is from the XebiaLabs blog and has not been updated since the original publish date.
Broken DevOps Pipeline? Fix it with ARA
DevOps has brought big changes—and even bigger benefits—to the way applications are developed and deployed: shortened delivery timelines, cleaned up build processes, reduced downtime and risk, and increased likelihood that a release could be performed today if needed. But it hasn’t solved all of IT’s problems.repeatable deployment in production. To be able to say at any time, “set up the environment, install the app, and run tests.” It’s gotten better, but the end-to-end process is anything but smooth. It’s eluded many IT teams simply because it crosses the line between release automation and operations automation. Release automation will get you the application package(s) required, but then most of the time, a hand-off gives it to Operations to install. Even if the teams work very well together, it’s still breaks the flow and speed of the delivery pipeline. Fortunately, Application Release Automation (ARA) keeps the flow going for end-to-end DevOps.
Application Release Automation for End-to-End DevOpsMaybe Application Release Automation (ARA) is a new phrase to you. Or maybe you've been put off by the publicly available descriptions. Yet a clear understanding shows that it’s the next step in DevOps development. Here’s a great definition from XebiaLabs’ CEO, Derek Langone:
“ARA tools…provide the framework required for managing the roll out applications at unprecedented levels of scale and speed. Application release automation frameworks provide hooks into all the products and services that make up the application development and release process. IT operations teams not only gain access to dashboards that enable them to precisely determine the status of any application development project, they can model those processes in a way that drives a desired set of best practices. In effect, application development and operations teams can now orchestrate the entire application development process on an end-to-end basis to drive development of higher-quality applications faster than ever before.”While some ARA tools indirectly take both sides under control (calling on them as needed), and some are a lighter touch on the development side, they all can take a package and build it onto predefined infrastructure resources in a repeatable manner. Changes in specification (open ports, shared disk, etc.,) required of the environment can be entered into the plan for deployment while first making the app work in test. Then the same environment (with any required changes) can be rolled out to production.
By calling on application provisioning tools, these systems can make use of what you’re likely already using today (e.g., Puppet and Chef), while offering another layer of automation. By generating reports on the mapping of application pieces to infrastructure, issues and bottlenecks can quickly be identified, and if there is a blocking error, most Application Release Automation tools will allow rollback for upgrades and generate detailed error information for use in figuring out the discrepancies. No more problems like “You need that port open? No one told us!” since it would be part of the deployment specification that development (or Development with Operations) can generate.