DevOps is one of the hot topics, with Gartner predicting it will evolve from a niche strategy into the mainstream by next year, with around a quarter of the world’s top 2,000 organisations adopting this practice.
The reality is that DevOps isn’t new, but its moment in the sun finally seems to have arrived, partly prompted by the advent of new technologies (such as Docker, Vagrant and others), plus a dawning realisation in the IT profession that it could be the key to future survival.
>See also:;The future of DevOps
If the IT department is to evolve, the boundaries are blurring and there is a growing demand for people who can see life from both sides of the fence – not view development and operations as two warring factions.
However, there are still some big hurdles to address before achieving DevOps nirvana, not least of which is the cultural shift in getting diverse practices, namely the software development and IT operations teams, to work together.
Applying DevOps methodology is not going to work if the key participants don’t even have a common understanding of what is being developed and entering production, because they’re using completely different tools and even different language.
This is why increasing numbers of organisations (around two thirds in the UK and US, according to Evans Data Research last year) are turning to continuous delivery to create a more collaborate, cohesive and timely way to take software projects from inception to deployment.
Continuous delivery enables software to be released into production at any time. It centres on building a development pipeline where early feedback, automated build and test, and incremental deployments can dramatically speed up product and application release cycles. This ‘softly softly’ approach – as opposed to a big bang – can be pretty scary in itself.
So, for the organisation that is trying to successfully adopt both DevOps and continuous delivery, what does success look like? Of course, adopting the right culture (people, processes and attitude) is fundamental to successful DevOps, but it also needs the right technology tools to make it all possible.
Without that foundation, does that ongoing dialogue between the development and the operations team take place? At a weekly or daily meeting? Not enough: everyone needs real-time visibility of who is doing what, and then amend their own actions accordingly. Here are five steps to achieving that.
>See also: DevOps will become mainstream among the Global 2000 by 2016 – Gartner
1. Think beyond the code
Consider all assets, including documentation, configuration scripts, binaries etc. If these artifacts are not controlled alongside the rest of the project, there is the risk of releasing incomplete or inconsistent applications, leading to a poor customer experience.
2. Automate and test
The goal is the ability to make changes, updates or adjustments very quickly and safely, while minimising introduction of errors. A unified continuous pipeline enables automation at every step of the process, so that failures can be sent back to the development team for correction rapidly and efficiently.
It is always faster, easier and cheaper to fix an issue on the developer’s desktop than after it’s been handed off for late stage QA testing (or worse, to a customer). Automating processes also supports predictability and repeatability, and while not every activity can be automated, the more automation that can be introduced over time, the more rapidly and productively the release pipeline becomes.
3. A single source of truth
DevOps is not going to work without having a single centralised repository for everything and one that connects everyone, without forcing them to work in unnatural ways or to abandon their beloved tools.
A key part of the solution is to create a usable, transparent view of all the ‘artifacts’, from creation through to deployment, with clear accountability, historic information and the ability to ‘roll back’ to previous versions should any roadblocks occur.
Importantly, this approach to version management must be scalable, able to support distributed development environments and secure.
>See also: Survival of the fittest: Will DevOps save IT from going the way of the dodo?
4. Track every change
Traceability encourages best practices in development and deployment. Best-practice tracking ensures that all changes and interdependencies that are delivered as a complete release, making debugging easier and that the software actually running in production is exactly what it should be.
5.But it still comes back to culture, not just technology
Yes, the tools do matter, but DevOps – and continuous delivery – require top-down and individual appreciation and support. This may mean identifying different ‘champions’ in different job functions and getting them to lead workshops to improve understanding and adoption.
DevOps and continuous delivery take some effort, but they could be crucial for many companies – not to mention their IT department’s staff – future. The potential benefits are huge: after all, who doesn’t want better products, rolled out more quickly, with the ability to respond more efficiently to market demand?
Mark Warren, Perforce Software