Application Release Automation & ARA Tools
Application release automation (ARA) provides automation and orchestration to package and deploy application code as it transitions from development through to production. Businesses are being pushed to respond to market feedback and deliver new experiences to end users faster than ever. To remain competitive in these new market conditions, teams have turned to application release automation software to speed up delivery.
ARA tools seek to bring visibility and speed to the slow and complex software release process. While there are many build automation, test, and deployment tools available, modern software delivery remains slow and difficult to track. This is because build automation, test, and deployment tools are loosely – if at all – integrated with each other. There are review and approval processes and sign-offs between steps. But, it’s easy for teams to lose sight of the state of the overall application release in these handoffs. ARA is needed for teams looking to bring visibility into approvals processes while tying together different platforms and tech. By using ARA software, it is hoped that teams can improve the quality and delivery of applications and software.
How Can ARA Speed Up My DevOps Team?
DevOps teams need transparency and automation to deliver high quality application code faster. Application Release Automation tools orchestrate the entire software lifecycle to provide all application team stakeholders with the transparency they need. Without an ARA tool, organizations can fall prey to optimizing individual segments of the software lifecycle and ultimately still fail to realize the velocity and quality benefits of DevOps.
Additionally, by orchestrating the steps in each stage, ARA solutions foster greater collaboration between teams and necessitates a clear definition of the inputs and outputs of each stage of the software lifecycle. Effectively, ARA tools bring transparency to otherwise tribal processes and reshapes entire software release process. Teams can no longer keep a myopic perspective of their specific area – be it the build process, automated validation, or something else – but instead start to think in terms of their contribution to the larger pipeline. By helping organizations define a deployment pipeline and orchestrate all the processes that are a part of the pipeline, ARA brings the much-needed structure and visibility required to accelerate release velocity.
Key Benefits of Application Release Automation
Application release automation tools are useful in accelerating application deployments. ARA tools provide value for DevOps teams by addressing the ability to:
- Plan, schedule, and track application code releases
- All stakeholders get visibility across the release lifecycle
- Releases can be done to any target environment, across the globe (both on premise and in the cloud)
- Automate application deployments
- Application release automation tools reduce or get rid of manual deployment efforts to increase stability and reduce risk
- Directly provision infrastructure or orchestrate infrastructure provisioning tools in order to stand up and configure the infrastructure that is required to support an application instance. The best ARA solutions don’t just manage what is deployed (the built and verified application code). It also manages where it is deployed (target environments and configurations)
- Integrate with existing tools and infrastructure
- Works with continuous integration solutions such as Jenkins, source code solutions such as git, SVN, TFS, etc., and artifact systems such as Nexus and Artifactory
- Scale across the enterprise
- Available as a secure enterprise service so all teams can benefit from predictable, safe, automated deployments
- Includes reports to ease audit and compliance needs
Application Release Automation Tools and Vendors
There are many ARA vendors and tools available. Some popular tools include:
|XL Deploy & XL Release||XebiaLabs|
|Visual Studio Release Management||Microsoft|
|Deployment Automation (formerly Serena Deployment Automation)||Micro Focus|
|CA Release Automation and Automic||CA Technologies|
|Hybrid Cloud Management (Premium Edition)||Hewlett-Packard Enterprise|
|Release Lifecycle Management||BMC Software|
To learn more about these tools check out Gartner’s Magic Quadrant for Application Release Automation and the Forrester Wave for Continuous Delivery and Release Automation.
Despite their feature rich capability set ARA tools have a critical gap – they don’t natively handle database releases. Application release automation tools have heavily focused on integrating with and orchestrating the tools that manage the verification, building, testing, packaging, and deployment of application code. However, the end user experience requires both the application and the database. This still leaves a gap in accelerating software releases (application code and database code) without bringing the same advancements to the database release process. This is where database release automation tools shine. They help fill the critical database gap so that delivery of the entire software stack can be accelerated and tracked.
- ARA tools cannot handle database code. This is because they were built to handle stateless application code. ARA tools have primarily focused on integrating with tools that support the promotion of application code from development to production. The database has state, and database code must be handled with a lot more care than application code; the same tools that manage application code cannot be used to manage and deploy database code.
- Application release automation tools rely on other systems which verify and build application code – the ARA tools themselves do not actually build or verify, but instead orchestrate, automate, and provide visibility. Separate database release automation tooling is needed to verify database code and built it into an artifact – just as other tools that are orchestrated by ARA do for application code.
- Given that the database has state, the best database release automation tools simulate the impact of database changes prior to deployment. This is not necessary for application code as it does not have state.
To get more frequent, high quality software releases, organizations will need application release automation and database release automation to ensure that the full software stack and underlying infrastructure is accounted for. To learn more about application release automation, check out our white paper: The Evolution of Application Release Automation.