What is application release automation (ARA)?
Application release automation (ARA) is a process that automatically packages and deploys an application, or application updates, through the stages of development to production. To do this, ARA software features include deployment automation, release coordination, and environment management and modeling tools.
ARA is commonly used by Agile software development teams, and especially by DevOps teams, to practice continuous integration/continuous delivery (CI/CD). CI/CD pipelines facilitate quick and steady software delivery by enabling an organization to put more changes into production. In a way, CD can be thought of as a process, while ARA can be thought of as the CD tool chain -- or the set of programming tools that enable continuous deployments.
ARA speeds up the software development and application delivery process with code testing and security features. ARA supports a model-driven continuous deployment process. A goal of ARA is to enable multiple IT teams to use the same release process without deploying scripts. For example, an organization can use an ARA so that development, test and production teams can work in one environment.
ARA tools should facilitate deployment packaging, versioning, server configuration management, database updates, rollback and security access. But most tools focus on deployment packaging, associated configurations and continuous release deployment.
Benefits of application release automation
Benefits of ARA include the following:
- Deployment automation. ARA does the heavy lifting for CD by automating deployments.
- Centralized management. IT teams, from development through production, can view and update configurations without needing to execute specific scripts.
- Pairs with CD pipelines. It deploys whatever comes through CI/CD pipelines automatically.
- Easy to update. It is relatively easy to push updates or version launches. Container-based applications can also be updated without going offline.
- Facilitates DevOps. Most ARA platforms support and enable DevOps best practices.
How does application release automation work?
ARA deploys applications using a structured release automation process. ARA tools package the application with any additional components or dependencies, then install it to the target environment. Most tools will first define the application, which will include any configuration items necessary to run it. The environment then must be specified. Before deployment, an ARA tool might have the code go through validation. After validation, an orchestrator might then push the application to deploy.
If the application is deployed in the cloud, a model-based ARA tool will decouple the application from target environments, which should free users from needing to write scripts manually for each deployment step. The needed components and designated destination must be specified. Once that's done, the ARA tool should determine the steps to deploy the application.
ARA tools also commonly include workload automation and release management tools. However, the amount of integrated support will differ between ARA platforms.
Components of application release automation
As support differs per ARA platform, each tool's components might be different. However, common components include the following:
- Packaging. These are the necessary parts of an application grouped together. This component is critical to the ARA process.
- Dependencies. These are additional components necessary to run the other application parts being packaged. Charting these dependencies is useful to learn how updates will affect an application.
- Deployment. This is the process of launching the application or update to its intended location. In ARA, this is model-driven instead of scripted.
Additional components might include versioning, code testing, monitoring tools, dashboard analytics and scheduled deployments, which also require network monitoring.
Application release automation and DevOps
Many DevOps teams rely on ARA to enable practices such as CD. Hastening the release process while ensuring quality and monitoring enables development teams to focus on other tasks.
ARA also provides more transparency and automation to application code. This enables collaboration across different IT teams, which is a staple of DevOps. ARA also promotes common DevOps goals such as automation, workflow management and environment modeling for faster and more lean development times. Automation tools in ARA can help orchestrate the software lifecycle as well.
ARA tools and vendors
Most large public cloud hosts have their own ARA tools. Normally, they will also have some form of code testing, scheduled deployments, automated web server configuration and debugging tools.
Some example ARA tools include the following:
- Inedo's BuildMaster.
- Electric Cloud's ElectricFlow.
- IBM UrbanCode Deploy.
- Puppet Enterprise.
- Digital.ai's Deploy.
- Micro Focus' Deployment Automation.
- Microsoft's Release Management.
- BMC Release Lifecycle Management.
As an example, IBM UrbanCode Deploy enables users to deploy applications to distributed data centers, the cloud and virtualized environments. Its plugin ecosystem also eliminates scripting needs and aids in building DevOps tool chains.