Innovate ITIL: A DevOps Approach to the ITIL Framework
Innovate ITIL: A DevOps Approach to the ITIL Framework
Learn how DevOps and ITIL, a.k.a. the IT Infrastructure Library, can work together to benefit software development businesses.
Join the DZone community and get the full member experience.Join For Free
DevOps involves integrating development, testing, deployment and release cycles into a collaborative process. Learn more about the 4 steps to an effective DevSecOps infrastructure.
Overview — Working Together
There is a prevalent myth that DevOps and IT Service Management (ITSM) and the IT Infrastructure Library (ITIL) are incompatible. However, this supposition has very little basis. ITIL is a framework from which you can take or leave portions you like and, in fact, this framework provides many useful paradigms for DevOps implementations.
There’s actually a lot of synergy between ITIL and DevOps. If we understand ITIL as a process framework and see DevOps as, primarily, a culture of collaboration, there is no reason we cannot have a process framework integrate very well with a culture of collaboration.
Many others have noted the synergies between DevOps and ITIL. On the Atlassian website, Barclay Rae writes, “We need the key elements that are found in both ITSM and DevOps, whether we use these explicitly or not. DevOps is much more than just automated development; it involves collaboration and a blame-free culture. As well, ITSM/ITIL shouldn't be pigeonholed as an administrative burden, but rather used in an agile way. ITIL, in particular, isn’t perfect and needs a more modern veneer, but the core practices are sound and proven.”
This article outlines some practical key ways in which the DevOps philosophy can be applied to ITIL and operations process management.
DevOps and ITIL Help Companies Scale
The size of the organization does matter when applying DevOps to ITIL. When an enterprise is moving faster, they actually need to have the process framework in place, otherwise, you're going to get lost. In a 5 or 10 person shop, it is much easier for everyone to know what everyone else is doing at any given time. With smaller companies, there is less need to track everything in details. As companies grow it becomes imperative that they have the processes to track what's going on and react when problems arise.
When shops are doing 15 to 30 releases a day they need to have a record of releases, so when something breaks, they can quickly and easily go back. For mid to large sized companies we need to know what's been changing, what the process is, who needs to get involved so that we're engaging the right people but not all the people, and we're responding quickly to get services restored. Advances in operational telemetry advocated by DevOps evangelists goes beyond this to capture all events, including deployments, auto-scaling activities, etc. We make capturing all of those parts of the data flow, so there is a lot of data.
Incident management is another great example of the importance of process frameworks at scale. When you've got millions of moving pieces, when something breaks, it is significantly more important that you have a framework for responding appropriately to that incident. Because at small scale, everyone knows who wrote the code – it’s may even be the same engineer that set up the server on which the code runs. At a large scale, we must have a process in place to coordinate across different systems, different teams and different geographies.
Problem management becomes critically important too. Because, to be good at collaboration and DevOps, engineers are also constantly doing some introspection and looking at the underlying causes of problems to learn from them. The best DevOps shops are the ones that are not just reacting when a problem occurs, but actually being proactive and making sure problems don't occur in the first place.
Change Management, another key ITSM process, can often be an impediment to rapid release cycles that serve as a cornerstone of great DevOps practices. However, by implementing Change Management, with DevOps principles in mind we can use the ITIL Change Management process to enable rapid releases, encourage DevOps practices, and improve stability. One way to do this is by taking an adaptive approach to change management to balance risk with business agility. An adaptive approach can account for the level of automation and resilience built into the software and release process to allow for rapid releases while automatically tracking all changes to the system. This same adaptive approach can also ensure that higher risk releases do get the appropriate level of scrutiny and that dependencies across organizations are appropriately managed. In this way, a DevOps approach to the ITIL Change Management process can actually enhance collaboration and improve stability while enabling rapid release cycles.
The ITIL process framework is just that, a framework. It is not a mandate that “thou must fill out twenty pages of documents to release software” although, some overly bureaucratic implementations certainly make it feel that way. When we understand the IT Infrastructure Library as a framework it becomes evident that there is no reason we cannot apply DevOps principles within this framework to make our technology operations even better. By taking a DevOps approach to our process definition and implementation we can drive safer releases rapidly, we can ensure better communication between our teams, drive quicker resolution to incidents, and we can ensure we keep our focus keenly on delivering value to our customers quickly.
In this article, we provided a high-level view of the how the ITIL framework and DevOps can be used together to run your technology more effectively. In future installments, we will get into more detail on how to apply the DevOps principles to key processes such as Change Management, Incident Management, and Problem Management.
Opinions expressed by DZone contributors are their own.