In our 2018 study The automation advantage, we surveyed 415 global IT executives applying automation in their organization at various stages of maturity. From the results, two groups emerged: “Fast Movers” (the 20% most advanced in applying automation) and “Followers.”
For many Fast Movers, automation has led to improved company agility (84%), continuous testing (73%), and more time to redeploy talent on higher value tasks (59%). But that’s not to say that automation has solved all their problems.
For 41% of Fast Movers and 27% of Followers, the desire to automate more has been hamstrung by market confusion. Put simply, the number of automation tools and approaches on offer makes achieving continuous integration and delivery (CI/CD) difficult. But it doesn’t have to be this way.
Evaluate and pursue
For the top five percent of Fast Movers, their IT teams have embraced automation tools to such a degree that they are now able to deploy code continuously. It’s the ultimate endgame – combining DevOps with automation to create a continuous delivery culture across the entire development lifecycle.
But for organizations juggling a mixture of legacy and cloud applications, mitigating defects caused by blanket code changes in a CI/CD model poses a great challenge. The IT industry needs a single automation tool that can flexibly abstract, natively integrate, and seamlessly support a wide range of both cloud and legacy applications.
Until such a product emerges, IT leaders need to evaluate CI/CD tools based on their ability to help them meet their business goals, and the path being taken for application development. As a rule of thumb, the tools need to be able to help you:
- Shorten the development lifecycle
- Maximize code release velocity
- Solve problems quickly and effectively
Before you begin your evaluation, it’s important to get into the right headspace. Firstly, don’t rush and be sure to keep things simple. Don’t aim for full automation of your mission-critical apps; choose those you’re not afraid to risk. And don’t be afraid to leverage the experience of those around you to save time and avoid costly mistakes.
As mentioned before, you’ll need to ask some questions before choosing the path that makes the most sense for the type of applications you are developing. When selecting, be sure to consider:
- Whether you’re looking for commercial only, or open source with optional support
- The tool’s ease of integration with other platforms and tools in your ecosystem
- The availability of developer support
- General market usage trends
- The tool’s release cycle and its flexibility to adapt to new technologies.
Open-source software is free and allows for greater visibility under the hood, while a SaaS approach allows for faster development and third-party integration. You may even consider a self-hosted solution if your developers are particularly conscious about security.
Your needs, your choice
Of course, there’s no one-size-fits-all solution, but with these considerations accounted for, you can begin to explore the best tools available for the capabilities you need. This may include:
- Versioning (e.g., GitHub, GitLab, Bitbucket)
- Configuration (e.g., Chef, Puppet, Ansible)
- Provisioning (e.g., Terraform, Chef, Puppet, Ansible)
- Code repository (e.g., Artifactory, Nexus, Docker Hub)
- Build tools (e.g., Jenkins, Bazel)
- Deployment (e.g., Spinnaker, Jenkins, Bamboo).
This type of automation is complex, so be sure to account for a longer implementation timescale. Start simple and start small to minimize operational risk – once you’re comfortable with what you can achieve, you’ll be better positioned to make CI/CD a reality.
To benchmark your own organization – and find out whether you’re a Fast Mover or a Follower – take our survey