Four years ago I sat in a conference room in Barcelona and listened to a Gartner analyst talk about the emerging practice of DevOps. I was excited because the conflict between developers and the infrastructure\operations guys was not new to me. I was sitting next to my manager, the Group IT Manager, and fully expected to have a really positive discussion about it after. We both walked away scratching our heads.
The problem with paradigm shifts in IT is that the success or uptake of the change really depends on who delivers the message. If it couched in too much highfalutin mumbo-jumbo then the people who really make it happen (the folks doing the daily grind) just miss it and carry on as normal, or they get it wrong.
Today I believe I understand what DevOps is (at least from one perspective) and the thing that has helped me to understand it, is Powershell Desired State Configuration. DSC is the embodiment of declarative configuration automation for IT infrastructure. In learning how to build upon this simple, yet powerful framework I have learnt the reason to embrace DevOps.
DevOps, from the infrastructure dudes perspective, is the practice and discipline of delivering Infrastructure as Code and it is made possible by the codification of infrastructure interfaces, which in the Microsoft world means PowerShell. By enabling infrastructure such as servers and virtual machines, databases and web services etc to be installed and configured through code, rather than by a mouse, IT professionals (deliberately generic) are able to write re-usable, scale-able, robust code to manage their environments that is orders of magnitude more efficient and less error prone than the manual approach. This practice then transforms infrastructure and operations people into 'developers' that gather requirements, design and develop code based solutions, use source control and unit testing frameworks, and deploy their infrastructure in the same way that app developers do...hence the paradigm shift.
So, I think I get it...what now? Well, there is inevitably a learning curve involved here and I have started with the guy who invented PowerShell, Jeffrey Snover (@jsnover):
The 2 day DSC course on Microsoft Virtual Academy is a great place to start: