DevOps tools: which to choose?

DevOps may be mostly about changing culture and management but tools also play a vital role

There are certain key elements that must be in place if DevOps is to work. First and foremost is strong leadership, probably from the CIO or another senior IT leader. This individual must be able to count on backing from the board to see the team through the testing times that are likely to follow the unifying of the software development and operations functions. Within the respective Devs and Ops teams there must be sufficient aptitude, cross-functional skills and willingness to learn, so that the business objectives can be met without a huge amount of retraining. And the right tools need to be in place.

"If you don't have board backing, and/or a champion, and/or a business objective and the right tools then it's not going to work, full stop. You lose any one of those, it's not going to work," the CTO of software house told us during the course our recent research into the subject.

DevOps may be more about culture and management than it is about tools, but since automation is an integral part of what it's about tools are a necessary part of the equation. In fact some of our interviewees gave tools the highest priority of all, suggesting that the DevOps strategy will flow from the tools available.

"I think tools I think are number one because if you don't have the tools you can't make the change, and if you can create the automation and it's a workable environment everything else will be able to follow..." said a support analyst in the research sector.

Automation tools in particular were deemed a key element for the success of any DevOps project by our focus groups and interviewees, although our survey respondents ranked these less highly with only 14 per cent picking them as a must-have.

"I would want it to grow out of an automation piece of work. I would look to get a layer of automation out across a range of projects and then drive it deeper into those that are more strategically shaped..." said an infrastructure strategy architect at a large retail organisation.

Which tools?

In the quantitative part of the research, Computing asked respondents about their tools of choice. The results can be seen below.

* This question was completed by 326 respondents, 33% of whom replied "none".

These tools can be roughly divided into four types: development environments, development collaboration and management tools, software deployment automation on the Ops side and continuous integration and continuous delivery on the Dev side.

At the top of the list came Microsoft's Visual Studio integrated development environment (IDE), which is surely a centrepiece of many organisations' development efforts. We didn't ask about other IDEs but it is likely they would feature strongly too.

Next came the development collaboration platforms Github and JIRA, again the staples of many open-source development projects, allowing multiple developers to work on and manage a project while providing for version control (GitHub), bug checking (JIRA) and project management.

After that came the automation tools, led by Jenkins the continuous integration platform.

Then there were a whole bunch of application deployment tools used by the Ops side to automate the deployment of software. These include Docker, the containerisation project, and configuration management tools by Puppet and Chef, among others.

Proprietary deployment and code control tools from Amazon and Microsoft (TFS) also featured, and there was a long tail of alternative development environments and automation tools in use including JetBrains, Selenium and Vagrant.

Clearly there is a lot of choice and our panellists were generally opting for a pick'n'mix approach, with some even developing their own DevOps tools in-house.

"We spent a lot of time looking for an off-the-shelf product and we didn't find one!" complained the CTO at a software company.

Others saw merit in the wide range of disparate tools available.

"There are many things out there branded as what the DevOps should have, but what you have, in practical terms, is choice. A wide range of tools, for automation, for configuration management, for infrastructure management - for all those things. And you can pick and choose and whatever makes sense for you..." said the platform automation lead at a software house.

This is an edited extract from the Computing DevOps Review 2015 which is free to download.