Define DevOps: What is DevOps?
Author: Rob England
A reader asked me to define DevOps. It’s not easy to find definitions. Here’s mine.
I looked around:
- The Godfather of DevOps himself, Patrick Debois, isn’t telling.
- Gene Kim’s upcoming DevOps CookBook* looks like it will be awesome, but his definition in an early draft of the book
we refer to “DevOps” as the outcome of applying Lean principles to the IT value stream
doesn’t really do it for me. it’s like the ITIL definition of a service: accurate, insightful, but not something a layman can engage with.
Gene can even organise the definitive DevOps conference without defining the term.
In Gene Kim’s paper ‘The top 11 things you need to know about DevOps’ [thanks Mark Smalley], Gene refers to DevOps as
the emerging professional movement that advocates a collaborative working relationship between Development and IT Operations, resulting in the fast flow of planned work (i.e., high deploy rates), while simultaneously increasing the reliability, stability, resilience and security of the production environment.
which I do like.
- On Wikipedia:
DevOps (a portmanteau of “development” and “operations”) is a software development method that stresses communication, collaboration and integration between software developers and Information Technology(IT) professionals. DevOps is a response to the interdependence of software development and IT operations.
Nope. “software development method” doesn’t do DevOps justice. Like this one
DevOps is the blending of tasks performed by a company’s application development and systems operations teams.
The term DevOps is being used in several ways. In its most broad meaning, DevOps is a philosophy or cultural approach that promotes better communication between the two teams as more elements of operations become programmable. In its most narrow interpretation, DevOp is a job description for an employee who possesses the skills to work as a both a developer and a systems engineer.
many definitions neglect the technology automation aspects of DevOps. Culture is primary but its not everything.
- Gartner bolt culture and technology together
Underpinning DevOps is the philosophy found in the Agile Manifesto, which emphasizes people (and culture) and seeks to improve collaboration between operations and development teams. DevOps implementers also attempt to better utilize technology—especially automation tools that can leverage an increasingly programmable and dynamic infrastructure from a life cycle perspective.
but it is cumbersome and not satisfying.
- John Willis said:
many will quote Adam Jacobs, saying “DevOps is a cultural and professional movement. The best way to describe devops is in terms of patterns and anti-patterns.”
- From Damon Edwards
DevOps is… an umbrella concept that refers to anything that smoothes out the interaction between development and operations.
…which I like.
- From The Agile Admin
One definition Jez Humble explained to me is that DevOps is “a cross-disciplinary community of practice dedicated to the study of building, evolving and operating rapidly-changing resilient systems at scale.”
That’s good and meaty, but it may be a little too esoteric and specific to Internet startup types. I believe that you can define DevOps more practically as DevOps is the practice of operations and development engineers participating together in the entire service lifecycle, from design through the development process to production support.
That doesn’t work for me either. Arguably an organisation has ceased to function if Dev and Ops are not “participating together”. What’s important is how, and how well.
(I loaned Jez’s book Continuous Delivery to a client so I can’t check if there is a definition of DevOps in there. Anyone?)
…and so on.
Lots of talk and stories (especially stories) about what DevOps does and why we need it and what it is not, and what it is “about”, but actual definitions of the term are hard to find.
This is deliberate, as many DevOps proponents will tell you, e.g. Jez again:
DevOps, a movement of people who care about developing and operating reliable, secure, high performance systems at scale, has always — intentionally — lacked a definition or manifesto.
Full article: itskeptic.org/content/define-devops