Every single person in the IT (and beyond IT) world knows that DevOps is a new-fashioned and super popular thing but only a few are aware of its true nature. As a matter of fact, DevOps has its own philosophy, purposes and methods, and all of them are so effective that are really worth implementing. Currently, with the help of DevOps engineers, Andersen takes steps to switch to this innovational approach in order to ensure its further development.
So what is DevOps? Let’s get the facts straight.
DevOps (development and operations) that appeared in 2009 can be defined as a software engineering culture and practice that aims at unifying software development and software operations, which means integration of developers and IT service specialists’ working processes. The result of such cooperation is a faster and more effective work delivery as well as more reliable software and secure production environment. The cooperation between an IT department and developers is necessary due to the fact that a value stream (all operations with a product from its development to delivery) lies between a party that establishes requirements (a company) and a party that receives a final product (a customer).
DevOps has some features in common with Agile. The main difference between these two approaches is in the fact that Agile focuses on fast deployment, and DevOps ensures its reliability. Because of the rapid pace of deployment, an IT department is often snowed under with work, while DevOps provides operations to an IT-department constantly, preventing their accumulation. So we can say that, if implemented together, DevOps can supplement the Agile methodology.
Although DevOps is considered to appear in response to ITIL and ITSM, it is not the case. In fact, both ITIL and ITSM are really good things as they provide everything that is needed for an IT team to work in the DevOps format. As the pace of releases in DevOps is rather fast, there is a need to automate some ITIL processes. Still, DevOps focuses not so much on fast delivery as on effective deployment without errors or, if any, their fast correction.
A philosophy and core values that underpin the DevOps methodology can be formulated in the next 3 principles:
Principle 1: A performance of a whole system is more important than a performance of its single element. As improvements of one sector can lead to an overload of another sector, thus impeding the whole process, it is necessary to organize the work process in such a way that local optimization doesn’t cause a global deсline.
Principle 2: Creation of a backlink is vital for the process improvement. With the help of a well-established backlink, it is possible to prevent some potential problems and fix bugs at early stages. Feedback from every single client (both external and internal) is important and must be taken into account, that’s why feedback loops should be gained and reduced.
Principle 3: Experimentation, risky decisions, learning new methods, drawing conclusions from experience are the keys to success. It is necessary to create a culture that encourages risk-taking and making improvements, no matter how dangerous they are.
Speaking about DevOps, we can distinguish 4 models of implementation.
Model 1: Integration of development processes into production. This model comprises integration expansion, its implementation on production servers, as well as the combination of testing and information security with work processes, which results in shippable code, tailored environment, etc.
Model 2: Backlink from a production server to development. It comprises of the creation of a timeline for both development and administration, access to problem analysis for a development team, creation of self-services by developers and creation of informational radiators to monitor a reaction of a system on changes.
Model 3: Administration and development cooperation. It includes developers participating in solving problems (including problems on a production server) and cooperation between administrators and developers.
Model 4: Participation of an IT team in a development process. This model requires a close connection between development and IT processes, as well as the creation of multiple-stage user stories and determination of non-functional requirements.
Switching to DevOps gives a company a lot of benefits, but 3 main ones are a rapid market entry (due to faster deployment and shorter cycle time), higher quality and the increase of organizational effectiveness (less amount of errors leaves more time for the increase of quality of the product). A research shows that companies that switched to DevOps are more productive: they make more changes, correct errors faster, meet deadlines better and have many other advantages over companies that don’t follow the DevOps methodology. And although the fundamental principles of DevOps may seem difficult for understanding, their implementation helps to achieve better results.