DevOps: A Definition
Devops is the buzz word on everyone’s lips in the software industry and should be the goal of all IT organisations; but what actually is it?
What Is Devops?
Devops is a set of automated software practices that combine development (Dev) and IT operations (Ops) – see what they did there?
Its aim is to shorten the development life cycle of resilient systems whilst providing continuous and scalable features, fixes and updates with superb software in line with a business’ stated goals.
Or… In plain English it’s a set of practises for delivering the highest possible standard of IT support that reduces the time between committing to a change for a system and that change being implemented.
At its heart Devops is a union of roles, processes and products that enable the continuous delivery of high-quality software solutions.
In times past Development and IT Operation teams tended to be siloed away from each other in an organisation and rarely the twain meet with the ‘Dev’ team being considered the ‘makers’ and the ‘Ops’ team being the people involved after its implementation. But by combining the two into a multidisciplinary approach it meant the various individuals and teams involved in a project could work much more closely and efficiently.
Some of the practises that are essential to Devops can be broken down as:
- Agile Planning
- Continuous Integration
- Continuous Delivery
- Monitoring of Applications
Still with us?
Getting a bit more technical on the Devops definition now; because Devops is a system of working that pulls from different disciplines, those who employ it often need to use different sets of tools rather than a single one.
These are often referred to as Toolchains.
These toolchains will generally fit into one or more activities which support specific Devops functions. Those functions are:
- Version Control
Or to summarise; Devops can be best characterised by Dev staff and IT Ops staff making use of the same techniques for the diffrent systems they both work in.
How Does Devops Fit Into Other Approaches And Methodologies?
- Agile – Agile and Devops should be considered as going together hand in hand, serving complementary roles. Many of todays standard Devops techniques (automated build and test, continuous integration and continuous delivery to name a few) actually came from the Agile world.
It helps to think of Agile as bridging the communication gap between customers and developers whilst Devops bridges the gap between developers and IT organisations.
Indeed, one of Devops main aims is the deployment of high-quality software, usually through an Agile methodology.
- Archops – Rather than as a separate methodology to Devops, Archops should instead be consider more of an extension for standard Devops practices. Instead of starting with the source code, Archops would start with software architecture artefacts instead.
- Testops – An argument could be made that Testops and Devops are almost the same thing but where Devops is involved with software development Testops is involved with hardware development.
- Testops is a toolchain that links design and test operations together in an efficient format.
- Continuous Delivery – Again, to the uninitiated, Continuous Delivery and Devops might look as though they’re one and the same. They both have the same goals and are normally used in conjunction with each other but there are subtle differences if you know where to look.
- Whilst Continuous Delivery focuses exclusively on automating a software delivery process Devops will also focus on the changes needed within an organisation or it’s process to facilitate greater collaboration between all the disparate functions and peoples involved in the delivery process.
- Dataops – If Devops focuses on software and Testops focuses on hardware then Dataops is the process of applying Devop methodologies and solutions to data analytics.
Dataops combines data engineering, integration, quality, security and privacy within an Ops model.
It takes principles from both Devops and Agile Development to improve the cycle time of extracting valuable and actionable data from analytic functions, making it particularly important in cloudThings Big Data projects.
- Winops – Winops is simply the term applied to Devops when working in a Microsoft-centric development platform such as Microsoft Azure.
What’s The Point Of Devops?
Software development should be measured in terms of throughput and stability. Throughput being measured by deployment frequency and stability being measured by the mean time to recover should something go wrong.
It doesn’t take a business genius then to see how improving those two measures are good for a business bottom line profits and that goal completely synergises with the goals of Devops.
- Increased deployment frequency
- Quicker to market
- Decreased (or no) failure rates of new releases
- Decreased lead time when fixes are needed
- A much quicker mean time to recovery (in worst case scenarios)
Deploying Devops within your company makes process a lot more dynamic which then maximises the predictability, efficiency, security and stability of them.
Companies that have used a Devops approach to their software development all report significant benefits including shorter times to market for their product, improved customer satisfaction and customer retention, better quality products with much more reliable releases resulting in increased reputational awareness within their sectors, improved productivity and efficiency and the ability to build the right product by increased experimentation times.
How To Create A Devops Culture
So by now you should have a good understanding of what Devops is and the benefits it can bring to your organisation. You’re fully enthused about the entire concept… But how do you even begin to implement a culture of Devops into an existing corporate culture?
Devops can’t work without critical cultural changes; Operations, Developers and Testers need to change the way they work to become much more collaborative during the entire development and delivery process. Getting those groups to work cohesively is key.
Something cloudThing understands well is that Devops is much more about the culture than the toolchains used. It’s not a process; it’s a way of life.
Team building is a must. Every person involved in the process needs to understand on a basic level that things such as data flow, collaboration, shared responsibility for project success, being able to learn and move on from failures are vital to the success of a Devops culture.