There are a lot of DevOps tools out there – see for yourself. It just so happens that every single one of these tools say the same thing, they will save your company time while increasing your return on investment… amazing! Except they aren’t all the same. Some tools are innovating ahead of the curve and some are trying to catch up.
Evaluating release automation tools is no simple task. In addition to the tool, you need to consider time, money, culture, not to mention the countless moving parts and processes that all have to be taken into consideration when assessing this software. There are, however, standard features that every release automation tool should include. You wouldn’t rent an apartment that didn’t have windows, a stove, or smoke detectors, just like you shouldn’t buy a release automation tool without these standards:
1. Release Dashboards
Let your teams see the status indicators and metrics that are most useful for your organization, such as overall release progress, compliance information, features delivered, issues found, and open tickets resolved.
2. Automated Rollbacks
Automated Rollbacks keep track of all changes made to your environment, so you can automatically roll back or un-deploy at any point: just a few simple clicks to execute fully-automated recovery and rollback policies.
3. Agentless Architecture
You need a tool that doesn’t require installation of proprietary agents in order to automate deployments. With an agent less architecture, you can easily configure firewalls and security appliances, routers, mobile devices and even target systems you could not normally reach.
4. Artifact Staging
To ensure that the downtime of your application is limited, your tool should be able to stage artifacts (files) to target hosts before deploying the application.
5. Out-of-Box Analytics
Your release automation tool should capture metrics, generate reports and analyze the deployment process, so you can continuously improve.
6. Dependency Management
Managing dependencies can be painful and error-prone if you don’t have an automated process to support your efforts. Moving to Microservices, SOA and cloud architectures amplifies these challenges beyond what manual processes can effectively manage. If you have a tool in place to handle dependency management, you don’t need to develop one supreme model that understands every component’s dependency on everything. You only need to understand each app’s local dependencies and configure them in your tool.
7. Middleware and Cloud Provisioning
On its way from development to production, an application will need to be deployed to many different environments for functional testing, performance testing, regression testing and more. Waiting for environments to become available, and fixing environment configuration problems, is one of the most common causes of project delays. Your ARA tool should allow you to define, provision and scale entire cloud environments as part of your deployment flow. Leverage your existing investment in system configuration tools such as Puppet or Chef, accelerate your delivery process and free up your teams to get on with creating business value.
8. Support for Manual and Automated Steps
It takes time to automate your complex release process – it sure won’t happen overnight. You’ll automate some steps right away, and others will stay manual for a while. And some steps should stay manual forever. Your tool needs to support both manual and automated steps and keep you up to date on the status of both, across the release pipeline.
9. Model Based Structure That Helps You Scale
Maintaining complicated scripts or workflows for each deployment instance just doesn’t scale. Your tool should provide a model based structure that allows changes to be made easily and propagates them to all deployment environments, so your deployment process automatically scales to meet your growth demands. The ability to model your deployments instead of writing custom scripts for new changes will allow your enterprise to scale without any of the hassle.
10. Controls: Audit-friendly Artifacts and Role-based Privileges
Any tool should provide collaboration infrastructure that provides complete auditability, enforces controls, and ensures the right access for the right people for the right tasks… across all teams in the enterprise.
11. Extensible Plugin Architecture
Tools should include a substantial and growing list plugins to support a rich ecosystem of DevOps tools.
Knowing which features to look for when evaluating tools is a key factor in the future success of your deployment pipeline. We hope this list of standard features will help your teams when evaluating your release automation tooling options.