Developers are an eclectic bunch. They like to make their own decisions, and tend to believe that their decision...
is the right one, no matter what.
IT operations staff are an eclectic bunch. They like to do things their own way, and tend to believe that their method is the right way, no matter what.
Development and operations staff have always demonstrated this obdurate streak, and the advent of free and open source IT management tools facilitated the divide. Look in a sys admin's drawer, and you will find CDs and flash drives loaded with software tools collected over the years: an imaging tool such as Symantec Ghost, network sniffing tool Wireshark and others. Each tool helped with a task that perhaps the organization could not accomplish with its well-vetted and integrated commercial off-the-shelf (COTS) IT tools.
This tension exploded when organizations started building Agile and DevOps tools lists. Incumbent systems management platforms -- IBM Tivoli, CA Unified Infrastructure Management (formerly Unicenter), BMC TrueSight Operations Management (formerly Patrol) and Hewlett Packard Enterprise Operations Manager (formerly OpenView) -- struggled to keep pace with the changes wrought by virtualization, cloud and containers, and many IT organizations failed to take advantage of the newer versions of the systems.
Too many tools? Maybe not
The DevOps tools that create and deliver services and applications must provide the exact capabilities that developers and IT operations and maintenance staff require, and allow for rapid response to business needs at the organization.
IT professionals instead turned to diverse open source systems management tools, among them Subversion and Git to manage code in the development environment, Chef and Ansible for configuration management, Jenkins in the continuous integration space. Each individual within a team can choose the specific tool set that makes their job easier and most effective -- for them. At the team and business level, this jumble of overlapping tools and functionalities can lead to chaos.
Regain control of the DevOps tools list
A sprawling set of coding and IT management tools prevents organizations from maintaining an adequate audit trail, both across the development to operations process, and within the ops and dev teams. Root causes of problems prove difficult to trace: Was it due to poor coding, conflict issues in the operations environment or something else? How can the teams orchestrate an update rollback across a raft of different tools?
Disjointed tool sets and the lack of cohesion from one step to another have created a persistent barrier to effective DevOps. Yet DevOps is still vaunted as the means of enabling continuous software development for an organization.
DevOps groups have three options:
- Do nothing and allow things to carry on as they are. The chances are good that something will go wrong, and the costs of putting things right will be high.
- Choose a single set of DevOps tools and impose these on the people involved. This idea is also flawed: Stubborn and knowledgeable employees will agree with the diktat in theory. They will then get out those thumb drives and CDs of development and/or IT management tools and carry on. The only thing this rule achieves is to push open source coding and implementation tools into the dark, out of audit eyesight, where no one will know to take them away.
- Provide an umbrella system that enables a long, diverse DevOps tools list, pulled together into a cohesive ecosystem at the process, audit, reporting and management level. This is the Holy Grail -- a system that works to everyone's advantage.
There are some COTS IT software vendors providing systems that do a good job creating this umbrella, or shell, for DevOps teams, such as Automic, recently acquired by CA Technologies, and HashiCorp., which offers Terraform. These platforms provide hooks into various other systems that successfully perform diverse tasks, such as script automation, configuration management and code testing. The umbrella tool creates audit logs and process flows that combine the spread of individual tools into an enterprise IT system. Single dashboards allow for full reporting and monitoring of what is going on. The organization gets control; the administrators, developers, testers and other team members get the tools they want.
Some open source tools have also started to provide better enterprise-level capabilities. For example, Cloudify can plug into tools such as Red Hat Ansible, Docker and Google Kubernetes. StackStorm, an open source system with a commercial version via Brocade, has community-provided support for many other tools, such as Chef, Puppet, Salt and Ansible. Jenkins, both through version 2 and via the commercial offerings of CloudBees, provides a set of curated plug-ins to other tools.
Companies form DevOps teams to combine various valuable skills to work together. The DevOps tools list should work in the same way.
Is your DevOps team working together? Communications tools are incorporating more code sharing and IT tool integration, enabling ChatOps. Another major aspect of team communication is a tough one to get right: post-mortems for projects and incidents.