
(c)iStock.com/Adventure_Photo
Few initiatives spark more turmoil within IT organisations than the shift from traditional software development and delivery to a more modern, DevOps-based approach. That’s a shame, because DevOps is a superior approach when compared to yesterday’s waterfall-style methods.
The goal of DevOps is to accelerate the delivery of services and increase software innovation by enhancing collaboration between application development teams and IT operations. Properly applied, this allows organisations to deliver application updates much more often with significantly reduced risk of production failures.
Yet DevOps remains a hard sell for many organisations. That’s understandable: the shift to DevOps is nothing short of transformative, and transformative change is generally both disruptive and difficult.
Because of this, many organisations worry that DevOps as a goal might be beyond their reach. But given the right tools, planning, and partners, even comparatively small organisations can realise significant benefits by implementing a DevOps program.
Why DevOps?
The traditional software development lifecycle is nearly as old as software itself. Developers work on releases containing large numbers of features, bug fixes, and changes on multiple, long-lived branches of the source code management system, then merge all those branches into the main branch, ultimately intending to ship the merged base on quarterly or longer release cadences. The problem is that this style of development just isn’t a good fit for the modern, software-driven enterprise.
The IT operations side of the house faces a steep climb during the DevOps transition
First, this waterfall-style development cycle typically means application teams can only address their customers’ requirements every quarter, which limits business agility. Moreover, shipping lots of changes with each release often results in added risk that those changes are poorly integrated, resulting in low-quality user experience.
DevOps, on the other hand, flips the traditional model on its head by encouraging rapid development via continuous integration and delivery. That may seem counterproductive at first – won’t faster releases result in more bugs? In practice, however, faster release cycles allow defects to be spotted sooner, when they’re easier and cheaper to fix.
According to Puppet Labs’ 2015 State of DevOps Report, organisations that adopt DevOps methods experience 60 percent fewer code deployment failures and they recover from failures 168 times faster, all the while delivering code updates 30 times faster.
Taking the plunge
These gains won’t happen overnight. The transition to DevOps must come in phases, with development teams typically leading the charge by adopting agile development methods and shifting to a continuous integration (CI) model. This means developers will not only need to check code into repositories more frequently, but they must also take more direct responsibility for their code, potentially even supporting code in production.
Successfully implementing CI often also means adopting test-driven development, where individual developers are responsible for writing their own automated test cases before feature implementation begins. This can often be a challenge. Some developers may not feel comfortable testing, or may feel it’s beneath them; if so, they may be a poor fit for DevOps projects. Similarly, in this model the role of dedicated testers is strongly diminished, and testers may be required to transition to developer roles.
The IT operations side of the house faces a steep climb during the DevOps transition. In the past, IT’s main challenge was the large amount of change to the production environment that came with each new release, where change was seen as a source of instability. In the DevOps model, the main challenge is often the manual nature of the release process, particularly in the most dangerous parts of deployment into production. In many cases, the old IT processes simply can’t keep up with the new pace.
New tools and processes
Yet IT needn’t be a stumbling block to implementing a DevOps program. Rather than resisting change, IT operations teams should shift their focus toward partnering with development teams by investing heavily in automation. Automation is itself a development process, which brings IT closer to development by the very nature of that shift.
It’s not uncommon for organisations to successfully make the transition to CI, only to struggle when it comes to continuous deployment (CD). Often, CD is addressed with custom approaches, but these do not scale. Moreover, many organisations lack the resources and skill set to build and maintain custom solutions.
People and process transformation is often overlooked by assuming just tools can make DevOps come alive
Fortunately, commercial release automation systems are now available that can scale to support hundreds or even thousands of projects. The key is to find a solution that integrates with tools that teams are already familiar with, such as Jenkins, Microsoft TFS, git, Puppet, Chef, Saltstack and others. Ideally it should also be able to facilitate orchestration of multiple tools, as many organisations currently use ten or more tools for release.
Ultimately, however, a critically important part of the DevOps transition is the people and process transformation, which is often overlooked by assuming just tools can make DevOps come alive. That’s why, when selecting vendors to help you along your journey, you should choose ones that can not only provide you with software but can also help guide you through the steps of most efficiently using that software via the best processes in the transition. VMware, for example, offers its vRealize suite and vRealize Code Stream, and in 2014 it acquired Momentum SI, one of the leading DevOps consulting companies.
The way ahead
Certainly, a transition of the magnitude of the move to DevOps won’t come without some pain. Job roles will have to shift, processes will have to change, and some resistance from within the organisation is inevitable.
From a business perspective, however, the value of DevOps is undeniable. It enables developers to deliver code of consistently higher quality, introducing less risk to the production environment. At the same time, it allows the IT organisation to be more agile and better able to serve the needs of the business. The sooner your development teams and IT operations teams realise that this is a win-win proposition, the sooner your organisation can begin its DevOps journey.
Interested in hearing industry leaders discuss subjects like this and sharing their use-cases? Attend the co-located IoT Tech Expo, Blockchain Expo, AI & Big Data Expo and Cyber Security & Cloud Expo World Series with upcoming events in Silicon Valley, London and Amsterdam and explore the future of enterprise technology.