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.
Many organizations, for example, still struggle with structural changes longer than they do with tool implementations. And the scripting required to achieve many of the benefits that these tools offer imposes its own form of technical debt.
The thing that many companies have not yet significantly improved is the process of going all the way from first build to 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 DevOps
Maybe 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.
Nailing Down the Process
If you’re planning to provide an end-to-end DevOps experience for the business, Application Release Automation is a necessary step to achieving that goal. By covering the space between development operations (DEVops) and operational development (devOPS), the entire ecosystem, from first build to final deployment, can be taken in hand and placed into repeatable patterns. That makes updates far more predictable and applications far more stable as they are tested in environments similar to production. Deployment is standardized, and the process is nailed down early, while allowing for changes as the needs of the application change and grow.
Reducing or eliminating the problems associated with marathon deployment exercises of big new applications is also a benefit. The core, however, comes from the ability to deploy production-ready code as needed without disrupting a large portion of IT to make the system functional in a production environment.
If your organization is already using DevOps in both Development and Operations, ARA increases DevOps coverage to 100%, and is well worth some research to see if it will solve some of your problems. As is often the case with automation, the other side benefit is immeasurable—a good night’s sleep for Operations and application owners soon after a new rollout.