The results of the joint Gleanster Research and Delphix Corp State of DevOps report show that DevOps tools and concepts are becoming more and more popular. Ironically, despite the overwhelming embrace of DevOps methodology, there remains major disagreement as to what DevOps even means.
More perplexing, this disagreement somehow coexists with the fact that 75% of respondents to the survey that the report was built on say that DevOps is either strongly or somewhat defined. The question then is what are these divergent but well-defined views of DevOps?
Digging a little deeper, you’ll find that these divergent definitions are more a matter of nuance than they are of contradiction. Here’s the breakdown of the report in terms of how respondents understand the meaning of DevOps:
- 84% of participants picked the generally defined description that DevOps is developers and system administrators working together to ease the transition between development and production.
- 69% believe it is using infrastructure automation to enable self-service provisioning of infrastructure by development teams.
- 60% believe it is changing operations to meet the demands of agile software development teams.
- 42% surprisingly say it is developers taking full responsibility for all operations tasks.
- 35% say it is increasing frequency of deployments to uncover defects earlier in the development lifecycle.
So where does this leave us? The report itself of course also suggested a broad definition of DevOps as follows:
“DevOps is more than just the close collaboration of two departments (development and operations) within IT, it is more than just managing infrastructure with Chef or Puppet, and DevOps is much more than a specific collection of tools and techniques used to automate deployments and manage infrastructure.”
With this big tent approach, we can introduce some order and begin synthesizing the different perception of DevOps into one comprehensive definition. The term “DevOps” then refers to the transformation IT experiences when cross-functional teams develop and deliver software across the full spectrum of IT systems.
From software architecture and database design tools to system administration and production support, the term “DevOps” refers to a style of IT management and implementation that places an emphasis on automation and iterative delivery of software. This structure is deliberately designed in a way that also empowers developers to manage portions of the software delivery process that were previously inaccessible due to specialization within IT.
Thus, all DevOps tools and practices have one thing in common: they focus on reducing time to market and making it possible to extend the frequent iterations of Agile into infrastructure and data environments.
Overall, DevOps is inseparable from both agile software development and cloud computing. Distilled to its purest expression, “DevOps” stands for “infrastructure that moves as quickly as developers need it to.”