The technology industry suffers from fad and fashion just like other industries. I remember PointCast and how “push” technology was going to be the next big thing. It wasn’t. Neither were CORBA, the “object web”, the WS-X SOAP standards, and so many others. A few make it and fundamentally change the way we interact with technology. I think DevOps is one of them. I think it will become the norm for IT service management in the future.
The reason is simple: DevOps means automating IT, and automating services has been one of the most successful areas of technology. Travel agencies are an obvious example of a service that has been successfully automated. Most people now use the web to arrange travel. Tools like Cobbler, Spacewalk, Chef, and Ansible will automate IT in a similar way. Not all of it of course, but a large part of it.
Automating IT service management benefits businesses in four keys ways:
- Greater IT reliability
- More responsiveness
- Less expensive
- More control
My definitions may be unintentionally unique so to clarify I will define IT and DevOps. Under IT I include computers, networking, software, and telecommunications. I define DevOps as automating IT service management using Agile software development best practices. I might better say that I view DevOps as treating IT service management as Agile software development.
I do not see any conflict between DevOps and IT service management frameworks such as ITIL and COBIT. On the contrary, DevOps will make it possible to follow them more rigorously because they will be automated. Best practices and policy (for audits) will be implemented in code rather than as often-ignored processes.
Implementing best practices in code will make IT more reliable. With DevOps, manual intervention is extremely limited. The IT infrastructure is not changed by hand. It is only changed via scripts (code). Likewise the process by which these changes are developed and tested is also automated. Nothing is put into production that hasn’t been fully tested. Nothing. Not even a single change to a single configuration file on a single host. Every change is tested and every change is automated.
A single untested change to an application can bring down the entire network. This happens all the time. An administrator makes one, seemingly innocuous change to the
/etc/hosts file and bam! everything just went down. The testing process used in Agile development and hence in DevOps is designed to prevent this type of problem. The result of testing is enhanced reliability and fewer outages. It also results in greater control and audit-ability—all changes can be seen in the code and in the version control system. This means more successful audits.
Automation also makes the process of delivering new capability faster and more responsive. DevOps automates what was formally done by hand. It uses the “continuous integration” method of software development for IT. All changes, including new capabilities, software upgrades, and new applications, go through the continuous integration process. This process is fast and reliable. It delivers small increments of value-added capability quickly and often.
DevOps will also help businesses cut costs. Automating IT means fewer administrators are required or, preferably, that these resources are moved to value producing projects. Every business wants to spend less on maintenance and more on things which enhance value. The IT strategy must align with this goal. The DevOps approach, backed by an IT service management framework, is best able to deliver that value.
There are of course many challenges to implementing DevOps in an established IT department. Moving to a fully automated process will take time and it will take senior management support. DevOps fundamentally changes the way people work and they will naturally resist it. Many will fear it. And, there will always be pressure to spend time on fighting fires (the urgent problems) rather than building the new process.
An IT manager that wants to implement DevOps should be ready to apply slow and constant pressure to make it happen. Migration to DevOps is a strategic IT initiative. It will take time before the full ROI is realized. However, the good news is that the process, especially the automated testing, will bring immediate benefits. These immediate benefits will be enough to maintain the momentum towards a full DevOps implementation. It is import to apply DevOps methods to the highest payoff areas first.
In addition to support from senior management, IT managers need support from key technical staff. Technical staff need to be convinced that this is also in their best interest. Sharp ones will see the value in learning these techniques for the company and for themselves. DevOps experience will make them more valuable and improve their options on the job market. If I am correct in my prediction, DevOps experience will be critical to future employability. Now it is a bonus, in the future it will be a requirement.