In a few words, DevOps is a methodology that requires collaboration of developers and IT service specialists, which leads to improvement of a software development process. DevOps has its own philosophy, purposes, models and principles. It is associated with such methods and tools as Agile development practices, configuration management, continuous deployment, continuous integration, data center automation, virtualized infrastructure etc. This innovative approach is acknowledged as incredibly effective, and many companies, including us, claim they benefit a lot from its implementation. IT companies (in case they are success-oriented and tend to keep up with the times) are eager to grasp DevOps methods, but when it comes to put those methods into practice, companies face one problem: most of so called classic admins are extremely bad at functioning in the context of DevOps.
In a long time a well-established system was created, which a team follows during the development process. It’s not perfect, but engineers keep improving procedures the system includes, and nowadays they can boast of not only those procedures improvements but also of their fast completement – from requirements to delivery. But what usually goes unnoticed is that the created system is good for running business applications, but it lacks something for those applications proper development. For example, if a team is asked to quickly deliver some non-production environments aside from production ones (which happens rather often), it is unlikely that they’ll be able to do so, simply because non-production environments get stuck in a particular procedure anyway. Maybe the reason for that is a lack of funding for the resources, or a lack of understanding of the requirements. In any case, developers operate with hours, while classic admins are lucky if they roll out new environments in weeks. Another mistake that classic admins do is neglection to the next stage after launching the environment. They tend to ignore active involvement of developers, while the development platform is no less important.
There are a number of myths about DevOps. Some say that DevOps engineers are intended to destroy the infrastructure as they don’t know how to run it; that usage of a cloud IaaS/PaaS, required by DevOps, provides developers with everything they need; that implementation of DevOps poses threat to jobs of admins. It doesn’t have something to do with the truth. DevOps is a methodology first of all, rather than a set of tools. While classic thinking impedes the development process, DevOps helps developers to facilitate it, that’s why many of them fall back on this approach.
Contrary to a belief popular among classic admins, DevOps is not something that poses a threat. Although switching to DevOps can be difficult to understand, its implementation not only helps to facilitate the process of software development, but also gives the opportunity to improve skills and acquire new knowledge. We would say that this approach brings benefits to each member of the company, from leaders to employees. So there is no reason to reject it. But in order to accept DevOps, it is necessary to change the way you think and leave some classic infrastructure truths behind.