Tips to Ensure DevOps Success
In looking at definitions of DevOps, I found a general consensus that DevOps is primarily about enabling “cultural shifts” and increasing “collaboration” among technology development and operations/infrastructure teams. A much smaller emphasis is placed on the automation processes around delivering software and infrastructure changes. While I know I’m going to ruffle some feathers with this view, I am going to say it: we need to stop confusing the process efficiencies needed to reach DevOps excellence with the need for broader (and important!) organizational change.
Why does this distinction matter? Because organizational restructuring can take lots of time and requires lots of buy in. In observing and working in IT over several decades, I can honestly say that having development and operations groups working together has always been a goal in IT, albeit a very difficult one to achieve. If we reframe some of the push for DevOps around automating IT processes to increase consistency, improving collaboration and decreasing time to delivery, we still have a big goal to meet. But, it is one that I believe is more manageable and achievable than the decades-old dream of restructuring IT so development and operations are in lockstep.
Old Concept, New Opportunity
So, if the concept of development and operations working together is an old concept, what’s the new opportunity for IT? It’s the seismic changes in efficiency due to the automation of infrastructure.
Seismic is no small adjective and the following demonstrates why I believe it is an accurate one when discussing infrastructure automation. Think back to the point in time when software development made the shift from physical media to digital media. If you’re doing it right, you have gone back to a time when punch cards were of regular use—over 35 years ago. Now consider how impossible it would have been to develop software on punch cards and how much more efficient we are now. That level of change is exactly what we are observing today with the automation of infrastructure, which began in earnest with the virtualization of servers and has been tremendously accelerated by the introduction of the public cloud. Just consider some of the many operational, performance and bottom-line benefits we are observing with infrastructure automation:
- Increased consistency in environment creation leading to reduced defects and the resulting cost savings
- Quicker application deployment and infrastructure changes which leads to faster time to ROI and higher profitability
- Reduced resources required for application and infrastructure changes, increasing both productivity and profitability
- Faster integration of new technology and processes which leads to greater efficiency, productivity and innovation opportunities
At this point, the question for business leaders to consider is: With all of these benefits, shouldn’t we see organizations that utilize the cloud achieving higher profitability than organizations that don’t? The answer: Yes. And that is exactly what we are seeing. According to the 2016 “Trust in Cloud Technology and Business Performance” survey by The Economist Intelligence Unit, organizations with a high trust/use of the cloud reported achieving the following business benefits:
- 7% increase in revenue
- 9% increase in profit
- 9% increase in share price
These results in leveraging cloud infrastructure and their automation opportunities are why enthusiasm for DevOps is on the rise. If your business is eager to take advantage and gain serious ground in DevOps, consider these tips based on what I have seen with successful, and some not so successful, recent projects.
- Start Small, Think Tactically, Be Smart: Most mistakes in implementing DevOps are due to having too grand a vision and creating an DevOps initiative for the sake of DevOps rather than to create efficiencies. There are many examples of projects that cost organizations hundreds of thousands of dollars only to produce a monolithic Chef script that could have been achieve with a few lines of PowerShell. It has been my experience that starting with a focused set of tactical scripts that can be later integrated into a larger orchestration framework has a much better long-term success rate. Starting with a tactical approach will also make it easier to get buy-in from the diverse groups that need to be involved to build a DevOps environment that will be effective and lasting.
- Understand Your Processes Before Automating: It’s important to fully understand the processes you are automating and look for ways to streamline the process before you automate the process. Automating a bad process is just making a bad process faster, not better.
- Utilize Flexible Orchestration: Even a midsized organization utilizes a fair number of technologies and these technologies often have different scripting languages and tools. It’s important to have a flexible orchestration toolset that will support various automation scripting languages and environments.
The bottom line is that the integration and automation of development and infrastructure is becoming a must for all organizations in order for the business to gain more value from IT. Whether calling it DevOps, cloud computing or infrastructure automation, it’s all about moving away from the punch cards of today (traditional infrastructure and manual engagement) and further into the digital transformation that will continue to make IT and the business more efficient, more collaborative and more successful.