DevOps (DEVelopment OPeration) is a set of practices for improving the efficiency of development and operation of software (software) through their continuous integration and active interaction of specialized specialists using automation tools. Devops is positioned as an Agile approach to eliminate organizational and time barriers between development teams and other participants in the software life cycle (testers, administrators, technical support), so that they can quickly and more reliably collect, test and release software releases.
History of appearance
The term “DevOps” was popularized by a series of “DevOps Days” held in 2009 in Belgium . One of the most important theoretical works on DevOps is considered the book by Patrick Dubois, Gene Kim, Jez Humble and John Willis “DevOps Guide. How to Achieve World-Class Flexibility, Reliability and Security in Technology Companies ”, first published in English in 2016. The founders of several software companies and independent IT consultants were prompted to this by the accumulated experience of working in large projects.
However, the very concept of DevOps originated in the early 2000s, when in the IT world of large corporations the problem of mismatching work processes arose, in which the normal operation of a software product was disrupted due to the functional and organizational separation of those who write the code and those who perform its deployment and support. Developers and product operators often have different and even conflicting goals, business leaders, and KPIs. The workplaces of diverse participants in the software life cycle are often located in different locations. Such fragmentation and disruption of communication within the company leads to lengthening the time for solving problems, overtime work, disrupted releases and customer dissatisfaction.
The DevOps concept proposes to solve this problem by applying Agile principles not only to development and testing, but also to software operation processes, i.e. to deployment and support. Thus, the popularity of DevOps has arisen, among other things, due to the spread of Agile practices focused on accelerating the delivery of a finished product and increasing the number of released versions. In addition, the microservice architecture became an additional driver for the development of devops, when the system consists of a set of separate loosely coupled modules, the implementation of each of which is in the area of responsibility of one person who develops, tests and deploys software. Due to the small size of each module (service), its architecture can be created through continuous refactoring, which reduces the laboriousness of preliminary design and allows you to constantly release new releases of the software product.