Defining DevOps
One of the speakers at re:invent this year asked the audience to help define DevOps... He was answered with laughter. I was heartened to learn that my organization isn't the only one that doesn't collectively understand what DevOps means, but personally I think the definition is very straight forward:
Operate what you develop. Develop what you operate.
It's that simple. It's not prescriptive. It doesn't require automation or anything-as-code or any specific architecture, BUT there's a difference between doing DevOps and doing DevOps well. Shallowly buried under the surface of that definition are the pillars of DevOps [as proposed by me]. If those pillars are weak, your team will spend a lot of time operating and not much time developing.
DevOps Pillars:
- Practice Agility
- Autonomous Teams with End-to-End Responsibility *
- Automate Everything
- Monitor Everything
If these pillars are strong, it will not only save your team time and resources, but it will exponentially improve the quality of your product.
Each pillar has several additional levels of maturity in their implementation. The details of that implementation are a little more prescriptive and depend on what you're developing, which is why they live outside the definition of DevOps. I'll follow up shortly with more about what each pillar means and techniques to implement it.
* I struggled with whether to include this one as a pillar since it is implicit within the definition of DevOps, but I think it's important enough to call out on its own.
Enterprise Account Executive, Sysdig
6yNice. Geoffrey created one of the easiest definitions of Dev/Ops I've ever heard. The "pillars" he talks about should resonate with any organization trying to figure out what core values they should rest on.