For many who work in IT, the term DevOps is difficult to define. This article aims to clarify what DevOps is, how it developed and its use in a modern IT environment.
The term 'DevOps' is a mix of the words 'Development' and 'Operations'. It is seen as a culture, movement, or practice within IT, similar to the Agile methodology. DevOps is a software development method that aims to increase the overall efficiency of release delivery for software projects. It emphasises greater communication, collaboration and integration between operations, quality assurance and development teams. The method is in stark contrast to conventional departmental structures, in which teams are functionally separated ‘silos’.
What makes DevOps unique is its level of cross-departmental integration. Development, Quality Assurance and IT Operations all work as a single entity on projects.
The term first emerged in 2008 at the Agile conference through a discussion of 'Agile infrastructure'. The popularisation of DevOps is due to the need to improve IT service delivery when faced with increasing complexity in software development and business processes. Far greater demands are being placed on IT departments to develop and deploy new software. Other driving forces include the availability of cloud infrastructure (turning infrastructure into code e.g. Puppet tool), big data (data usage and automation), increased focus on test automation and a set of widely available best practices.
The method varies between organisations in its application, so it can be difficult to define. Rather than a single approach, DevOps is more of a "toolchain", with various methods working in tandem: Code, Build, Test, Package, Release, Configure and Monitor.
In terms of business value, adopting a DevOps approach leads to improved deployment frequency for new software, lower failure rates, faster fixes and recovery for issues, and increased efficiency through automation. These results arise from the ongoing maintenance of operational processes at every developmental stage. Successful integration of DevOps requires a commitment to collaborative quality testing, feature development and maintenance throughout a project.
The methods used within DevOps are similar to Agile software development methods, focusing on small, multi-departmental teams, product iterations, working prototypes, and dynamic goals. Similar to Agile, it uses cross-functional teams to optimise its workflow.
DevOps has been widely adopted since its development. As an approach that extends beyond the IT department, it is rather intuitive to learn. However, rather than simply adopting the method, successful appropriation of DevOps requires a significant cultural shift in your organisation.
The Irish Computer Society are currently running a course, in conjunction with the DevOps Institute and Daysha Consulting, which will teach you all about DevOps and how it can benefit your organisation. Learning outcomes include DevOps core objectives, business benefits, workflow analysis, communication and feedback, automation and how to apply all of those features to the enterprise. For more information, please visit the DevOps Foundation Certificate course page.