If you're a CIO who cares about IT operations and wants things to run smoothly, it's time to look into DevOps. At the simplest level, DevOps brings together the development and operations mindsets and organizes them around highly motivated teams, trained and well versed in both disciplines. The benefits are substantial and seen in the form of lower operational costs (cut by as much as 2/3rds), faster deployment and much greater flexibility to respond to business needs.
This was the premise put forth at the March 6, 2012 Wikibon Peer Incite by J. Wolfgang Goerlich, an IT practitioner in the financial services sector.
DevOps is a concept and IT management methodology that is designed to address the disconnects between operations and development. The problem is that operations people are focused on making sure IT infrastructure doesn't go down. Indeed most system failures come from human error, not faulty machines-- leading to a "don't touch my storage network" mentality. Development people on the other hand are motivated and paid to push code, change with business needs and develop new function that helps differentiate their organizations and provide competitive advantage. To a development professional, change is good. To an operations person, change is scary bad.
The schism between development and operations becomes obvious when a new code release is ready to go into production. Development will "toss" the code over the fence to operations folks, who then are responsible for getting it deployed. In doing so they must configure the code to match the operational environment, which is designed never to go down and is almost certainly different than the development infrastructure. So even though the code release is "finished", operations people must change it to really be ready for prime time. In doing so, they invariably uncover other bugs or change the code, which breaks something else. The operations people then have to call in the developers, who often get blamed for shipping faulty code. Of course the developers are frustrated, because it worked fine on their laptops. This process is duplicative and adds significant time to the deployment, increasing costs and decreasing business value.
DevOps is an organizational approach to break down the silos that have built up between development and operational teams. Key aspects of DevOps are:
- IT staff are cross trained in both development and operations,
- Teams are organized under the same structure, breaking down the barriers between development and operations,
- Teams are measured and incentivized in a much more similar, if not identical manner,
- The lifecycle of development and operations is unified,
- Tool sets between development and operations are much more common if not identical.
A key outcome of DevOps is to automate as much as possible. Think "programmable infrastructure."
What we heard on the Peer Incite call with Goerlich is that DevOps has completely transformed his IT organization by:
- Accelerating application rationalization,
- Speeding the consolidation of infrastructure,
- Reducing FTE counts by 2/3rds,
- Improving quality and speed of deployment,
- Increasing morale.
The key challenges to successfully implementing DevOps are organizational and process, as these must change, and change is typically difficult. But the results of DevOps appear promising, and in these days of "do more faster with less", the DevOps mindset is a trend that is your friend.
Action Item: DevOps is becoming a proven approach to creating hyper-productivity and forming highly motivated IT teams. It is not only the next step beyond agile development; it is the future of IT operations management for IT-as-a-Service and cloud scale environments. DevOps successes at global giants like Google and Amazon have begun to trickle down to other organizations, and CIOs must investigate this new approach as a means of streamlining operations and delivering greater value to the business.
Footnotes: