Application Release Automation Guide
Businesses are being pushed to respond to market feedback and deliver new experiences to end users more quickly than ever. In order to adapt to these new market conditions and remain competitive, organizations have turned to application release automation (ARA) solutions to accelerate software delivery. Application release automation tools provide automation and orchestration to package and deploy application code as it transitions from development through to production.
Application release automation tools seek to bring visibility and speed to an otherwise 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. Consequently, there are review and approval processes and sign-offs between steps, and it’s easy for teams to lose sight of the state of the overall application release in these handoffs. Application release automation is necessary for organizations looking to bring visibility into approvals processes while tying together different platforms and technologies to improve the quality and delivery of software.
Key Benefits of Application Release Automation
Application release automation tools are useful in accelerating application deployments. ARA tools provide value 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 eliminate 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. Best of breed ARA solutions manage not just what is deployed (the built and verified application code) but also 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 that 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, given that the end user experience requires both the application and the database, there remains 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 – to 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 because they were built to handle stateless application code and 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 achieve 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.