Defining DevOps
Developer Operations, DevOps for short, is fundamentally one of many ways to approach the Operational Engineering business problem. How do you consistently deliver stability, reliability, and visibility to the business? How do you prevent and respond to failures of communication, dependent systems, and the product itself?
DevOps, much like the disciplines of mechanical or civil engineering, strives to provide a stable paradigm in which team members work together to solve those operational problems in a consistent, documented, and reliable way.
DevOps is not and will never be yet another methodology. DevOps is not a panacea. DevOps is not complete. DevOps will never be finished. DevOps is not smarter than you and doesn't try to be. DevOps is not just a set of procedures. DevOps is not about the title.
DevOps is descriptive. DevOps is a living document. It grows and changes with the organisation.
DevOps provides flexibility and eschews concrete procedure in favour of a framework for fast, explicit, asynchronous communication and parallel iteration between colleagues, teams, and different business units. Everyone speaks the same language, uses common conventions, and helps to provide and maintain stable, reliable, and visible interfaces.
DevOps is not about building walls. DevOps is about building a foundation for reliable communication. DevOps is redressable -- it explicitly provides means for all members of the organisation to modify any concept within it.
Not so much rules as guidelines.
Not so much an anchor as a jet pack.
DevOps is known as DevOps because it was grown from concepts utilised by Operations, some of which were in turn built on concepts and techniques from the discipline of Software Engineering. We engineer the software delivery platform. We are an engineering organisation within an engineering organisation.
Operations takes the lead in the practice of DevOps, but does not control or own its specification. We centralise visibility into infrastructural change while decentralising control and pushing it where it is most effective.
We are not Systems Administrators.
We are Systems Engineers.
We don't baby-sit.
We build.
DevOps is about translating knowledge from similar fields. DevOps is a way of doing things. DevOps is trusting the competence of your fellow engineers, and providing yourself and your organisation a safety net when that trust is violated. DevOps is learning what works and what doesn't from the people who know it and can prove it. DevOps is an approach to solving a problem.
DevOps may be a buzzword which, to your Hiring Manager, just means using chef or some other systems configuration API but, for me, it's a way of life. To do DevOps, you have to do DevOps.