Introduction to DevOps.
The question that always comes to me whenever I say that I am a DevOps Engineer is what is DevOps? Before we answer what DevOps is, let's take a look at the history of DevOps.
In 2009 at the Velocity conference, John Allspaw and Paul Hammond gave a famous presentation which is now known as +10 deploys per day- Dev and Ops cooperation at Flickr. He talked about his company rolling out 10+ deployments per day and everyone at the conference was mind blown. Why were they mind-blown? Traditional means of rolling out software or updating features of the software took the waterfall methodology and created no room for changes. This process could take months before the software is released due to a lack of communication between the development team and the operations team. This dysfunctionality made the whole software delivery process seem arduous and so the need for a cross-functional team where communication, collaboration and social coding are the binding principles of the team became pertinent hence DevOps became a solution.
Now, what is DevOps? As John Rofrano rightly defined DevOps is the practice of development and operation engineers working together during the entire development lifecycle, following lean and Agile principles that allow them to deliver software rapidly and continuously. In DevOps, the metrics change. We no longer measure the mean-time-to-failure of our deployments, we now measure the mean-time-to-recovery of our deployments as we anticipate failures.
In conclusion, DevOps is more than getting your Dev and Ops to work together. DevOps is a cultural change to how your software delivery process is carried out. It is not a tool. It is a mindset that has to be imbued in the company or organization.
Next time, we shall look at the roadmap to being a DevOps Engineer.