Devops has only been around for a brief few years, and it is already having a significant impact throughout the development community. While there are those who might view the integration of development and operations as a useful fad that serves a limited number of situations, evidence suggests that there are serious advantages to this approach. One reason is that devops represents a convergence plateau in the state of the “software development” art, where development, operations, and the surrounding processes of QA are brought together in an efficient, converged process that provides important benefits (see Figure 1).
Through integration development and operations, devops seeks to create an environment in which software can be immediately and continuously deployed according to the highest-priority needs of users. This is essentially the scenario envisioned by agile development, bolstered by experience, expanded through best practices, and energized by the cloud. As with many developments in technology today, devops is an evolutionary plateau on the route to an agile software structure that is capable of supporting a vast increase in business velocity and a need to respond rapidly to change.
While devops provides a range of advantages and has been increasingly accepted in the enterprise, it is also a potentially disruptive influence. There are important consequences to adoption that enterprises may easily overlook, and there is a requirement for support at many levels. It is vital that the consequences and support issues be understood. In this Advisor, we look at the goals of devops implementation.
Development and operations separated from each other in the early days of computing, as operations became more complex and the work of developers became more abstracted from the machinery. With devops, we return to a vision of a single-software provisioning process. Enterprises must increasingly integrate development, deployment, and oversight to ensure the most efficient use of resources and the greatest likelihood of useful and valuable results. To support this idea, it is essential to break down traditional silos and discard barriers between disciplines that no longer serve a useful purpose.
Among the key characteristics of the final state are:
- Continuous release of software in easily accessed chunks that provide capability for meeting the user’s most urgent requirements
- Automatic integration and testing of applets, ensuring that they work together, access the correct version of the data, and do not make unregulated changes to data files or databases
- Minimal user training requirements through use of a commonly understood interface and simple access to needed features
- Support for a heterogeneous environment comprised of different types of devices, different operating systems, and different critical platforms
- A high degree of resilience due to the ability to make changes easily, as well as through distributed access as provided by the cloud
Devops is another step toward building an agile enterprise that provides an improved customer focus, better communications, collaboration, transparency, and an emphasis on leadership over direction. It supports a lean and efficient deployment of software resources in a manner that makes best use of available resources and personnel and fosters continuous adaptation, local empowerment, collaboration, and transparency.