Wednesday, March 18, 2015

#DevOps – defining Devops – it’s a Recipe not a Blueprint [feedly]



----
#DevOps – defining Devops – it's a Recipe not a Blueprint
// Dev Ops Guys

There have been some great posts recently regarding the difficulting in defining DevOps e.g https://www.jumpcloud.com/what-is-devops-blog/ and following on from that http://www.scriptrock.com/blog/the-problem-with-defining-devops.

My view is that some of the confusion, and the multiplicity of opinions about what DevOps is, comes about because people are using the wrong cognitive frame when looking at DevOps, and maybe a bit of re-framing is in order.

Firstly, a bit of background. In The Blind Watchmaker (1986, pp. 295-296) Richard Dawkins explains that DNA is like a recipe, not a blueprint. You can't take a slice of cake and then pull up the "cake engineering blueprint" and point to the section that specifies that part of the cake (as opposed to comparing a car or plane part to a blueprint, for example). You have a recipe… but there isn't a one-to-one correspondence between the recipe and the cake.

"A recipe in a cookery book is not, in any sense, a blueprint for the cake that will finally emerge from the oven…. a recipe is not a scale model, not a description of a finished cake, not in any sense a point-for-point representation. It is a set of instructions which, if obeyed in the right order, will result in a cake…

The genes, taken together, can be seen as a set of instructions for carrying out a process, just as the words of a recipe, taken together, are a set of instructions for carrying out a process." – Richard Dawkins

DevOps is a recipe, not a blueprint. And it's a recipe that still evolving to meet the needs of different organisations, in the same way that bread recipes have evolved to meet different cultural and personal preferences.

breads_w725_h481

There are 4 basic ingredients in any bread recipe – water, flour, yeast, salt – and there are core techniques – Kneading, Fermenting, Proofing, Baking etc – but by combining these techniques, adding extra ingredients etc you can have widely different outcomes.

Ingredients Techniques
Flour Mixing
Water Fermenting
Yeast Punching
Salt Dividing
Butter Rounding
Eggs Kneading
Milk Panning
Sugar Proofing
  Baking

 

Similarly, DevOps has some core ingredients and techniques (I've listed a few in the table below but I am sure you might want to add your own) but how you choose to combine them and what extra ingredients you add will determine if you end up with a crusty white cob, a baguette or a ciabatta.

Ingredients Techniques
"Infrastructure as Code" Agile
Continuous Integration Kanban
Continuous Delivery Lean
Application Performance Management Theory of Constraints
Virtual/Cloud Hosting Systems Thinking

 

But they are all "DevOps" in the same way that all the loaves in the image above are all bread – they share common ingredients, common techniques – but the exact recipe you follow and the end result depending on your organisational needs and preferences.

-TheOpsMgr



----

Shared via my feedly reader


Sent from my iPhone