I have been thinking about DevOps tools a lot, and thoughts about tools often divert from the real problems. But what are the right DevOps tools? Well, I will not go into precise tools, but in its place, I will say what I am looking for in DevOps tools elsewhere the functionality they offer. In my experience, you can build good DevOps toolchains with just about any tool, but some tools might take more effort to integrate than others. I will also provide some regulation on how to accomplish tools at the enterprise level.
Suggested read: DevOps tools and evolving trends survey results
It seems that new DevOps tools appear on the market all month. This is extenuated by the point that it is hard to classify all the tools in the DevOps toolbox. One of the top reference guides is the Xebia Labs periodic table of DevOps tools, which is well value checking out.
In common, in large organizations it makes sense to have a minimal set of tools to support for some reasons:
- Optimize license cost
- Leveraging skills across the organization
- Minimizing the complexity of integration
However, on the other side some tools are much better for precise contexts than others (e.g. your .NET tooling might be very different from your mainframe tooling). And then there are new tools upcoming out all the time. So how do you deal with this? Here is my preferred approach:
- Start with a small set of ordinary tools in your organization.
- Allow a certain percentage of teams to diverge from the standard for a while (3-6 months perhaps).
- By the end of the provisional period gather the proof and select anything to do with the tool in an argument:
O Replace the current standard tool
O Get it added as an additional tool for detailed contexts
O Reject the tool and the team transitions back to the usual tool
DevOps tools should support DevOps practices and encourage the right culture. This means the tools should not be a “fenced garden” and only work within their ecosystem. It is very doubtful anyway that a company uses only tools from one vendor or ecosystem. Later, the most main quality of tools is the skill to integrate it with other tools (and yes probably be able to change it which is vital in such a fast-moving market.)
- So then the first form is how well APIs are supported. Can you trigger entirely functionality that is presented through the UI via an API (command line or programming language created)?
- We should delight our tools just like any other application in the organization, which means we need to version control it. The second check is whether all configurations of the tool can be version controlled in an externalized configuration file (not just in the application itself)?
- Linked to the second fact, does the functionality support multiple environments for the tool (e.g. Dev vs. Prod)? How easy is it to promote configuration? How can you combine the configuration of dissimilar environments (code lines)?
- We need everyone in the company to be able to use the same tool. This has consequences for the license model. Of course, open source works for us in this event, but what about viable tools? They are not necessarily bad. What is important is that they don’t discourage usage. For example, tools that need agents should not price for all agents, as this means people will be tempted to not use it everywhere. Convert an enterprise license or ‘buckets of agents’ so that each practice will not need a business case.
- Visualization and analytics are important features of each DevOps toolchain. To make this work we need easy contact with the original data, and that means we possibly want to export or query data. If your data is stored in a vague data model or you have no way to contact the underlying data and export it for analysis and visualization then you will require additional overhead to get good data. Dashboards and reports within the tool are no unused as you likely need to aggregate and analyze across tools.
Also read: DevOps digital cloud
I hope these criteria are all relatively clear. What is unexpected is how few tools obey these. I hope tool vendors will start to understand that if they want to offer DevOps tools they need to adhere to the cultural values of DevOps to be established in the community.