6 Ways for Enterprises to Adopt DevOps
Enterprise DevOps: What's the buzz all about?I'm at PULSE, spending lots of time talking with customers, analysts, and colleagues about DevOps. I've been learning about what people are saying and doing to make their IT operations more efficient, what barriers still exist, and why people are excited over this new buzzword which gives hope for a better tomorrow: DevOps. Of course, we just announced that our DevOps offering - SmartCloud Continuous Delivery -- will go into beta later this year, so you know we're very excited about this area. The amount of buzz out there is incredible! So what's it all about?
The idea that development and operations should work more closely together is certainly not new. What is new is a set of emerging practices which make this collaboration a productive reality for companies that are willing to take concrete steps in the right direction.
To set the stage: the root cause of so many fundamental business and IT challenges still lie at the (poorly defined) interface between development and operations. Not surprisingly, the two organizations have very different views of the world.
The view from the Ops side:
The "devs" in many organizations still don't understand production environments. As a result, they don't know what it takes to build an app that installs properly and repeatedly, let alone one one that performs well. This causes a lot of delays due to scrap and re-work. Ops can't trust that new releases will work not the production infrastructure without completely retesting everything -- their responsibility is to keep the systems running, and that takes precedence over releasing new, risky functionality.
The view from the Dev side:
Dev has deadlines and enormous pressure to create better software quicker, but Ops takes forever to produce test environments for them -- and those environments don't support their applications anyhow. They think that Ops doesn't understand how to work quickly -- the Ops processes seem antiquated and cumbersome, acting as a barrier to innovation.
These stereotypes barely scratch the surface. Platitudes about collaboration won't help these organizations -- they need actionable advice. Unfortunately, when many organizations hear about DevOps, they have nightmares of developers running amok, frantically patching live production systems to get the latest build running. This is a sad misunderstanding.
A disciplined approach to DevOps
It reminds me of the days when people misunderstood agile to mean that the developers could hack out whatever they wanted without bothering with frivolities like requirements. Nothing could be further from the truth. Agile development methods require a disciplined approach to ensure that customer feedback, continuous testing, and iterative development actually lead to frequent deliveries of working, valuable, software.
Similarly, DevOps -- especially DevOps at enterprise scale -- requires a disciplined approach, bringing development and operations teams together to ensure frequent, reliable, high quality software deliveries. Quite simply, DevOps means making sure that dev and ops are on the same page, working together on everything, towards a common goal: continuous delivery of working software without handoffs, hand-washing, or finger-pointing. It's at least as much about people, culture, and process as it is about technology. DevOps will require changes to people's roles, responsibilities, and incentives, and that's never easy. Technology can play a key enabling role.
I've been creating a "DevOps prescription" -- a small number of concrete practices that are necessary for an enterprise to fully embrace DevOps:
This prescriptive approach will help ensure that you are ready to adopt DevOps, and the necessary cultural and process changes necessary have a better chance of taking hold.
In the coming days and weeks, my colleagues and I will be blogging about what each of these practices really means in the context of an enterprise IT shop. Hopefully, we'll all learn something about how to transform the software delivery lifecycle.
About the author:
Dr. Steve Abrams is an IBM Distinguished Engineer, working in the IBM Rational Chief Technology Office as Rational's Chief Architect for Cloud Computing. There, he is defining Rational's technical strategy around Cloud Computing and DevOps, and integrating it with IBM's business strategy. As a member of the CTO team, he helped to create the Jazz Integration Architecture and drive its adoption by our products. He also launched the Open Services for Lifecycle Collaboration initiative, an industry-wide initiative to greatly simplify integration across the software delivery lifecycle by openly and collaboratively defining a RESTful integration architecture. Steve also manages Rational's joint projects with IBM's Research division. His diverse background includes work in computer music, robotics, computational geometry, and CAD/CAM and rapid prototyping tools. He studied at Columbia University where he earned B.S., M.S., and Ph.D. degrees in computer science.