Introduction
The history of DevOps goes back over 10 years. And different experts, IT companies and client companies can evaluate the first results of its application. Almost everyone agrees that this concept, which started as an idea, gradually develops into a kind of culture for the development and operations of software (SW) projects. And even now we can confidently say that the DevOps culture has not stopped at its first successes, but continues to constantly improve.
Today, DevOps uses such useful tools as Continuous integration & Continuous delivery (CI / CD), Docker, Kubernetes, GitLab, etc. No one can predict how the development will go further. There is a constant updating and development of IT technologies and practices. And this means that companies must be mobile and ready to respond to new requests and challenges. At the same time, companies do not always have the opportunity to have qualified DevOps specialists on their staff, so there is a risk of obtaining ineffective results from the application of the DevOps concept. To avoid this situation, it is enough to consider outsourcing companies that can provide you with devops as a service.
Reasons for DevOps
We remember that the main reason for the emergence of the DevOps concept was an idea that had been in the air for a long time – to create a single team of multifunctional specialists: developers and operations engineers. The purpose of such an idea is to destroy the so-called “Wall of confusion” that is constantly presents in the traditional SW project development system.
Let’s imagine that, on one side of this wall, there are development specialists whose main slogan is: “I want change!”. On the another side of the wall there are operations specialists with their main slogan: “I want stability!”. It is obvious that such an approach constantly gives rise to conflicts and misunderstandings, and what is most importantly, a lack of focus on a single result. Therefore, the most important task of DevOps has become to ensure, not just interaction, but the constant interpenetration of the development and operations processes throughout the life cycle of each SW project (PLC).
Economics of DevOps
It is no secret that most innovations in various fields of human activity are based on the simple principle of saving, or, by another words, to obtain the desired result at a lower cost. And the IT sector is no exception, as its processes are also subject to a common approach to savings. Therefore, the mutual integration of development and operations processes is a direct way to reduce costs, as it allows company to detect various errors/problems in SW projects at an early stage, before the project goes into “product” status. Such a statement is clearly supported by the results of a study conducted by NIST (USA) regarding the cost of eliminating errors/problems at different stages of the PLC. So, if we denote by the symbol “C” a certain conventional unit of the cost of eliminating errors/problems (in money or in man-hours), then the results of the study show the following costs:
– stage of design and architecture – 1C
– development stage – 5C
– stage of integration testing – 10С
– user beta testing stage – 15C
– product post-release stage – 30С
The role of specialists in DevOps
So, it becomes obvious that it is vital for many IT companies to correctly and quickly adapt the DevOps concept. This will allow them to respond to market challenges quickly and efficiently, to develop their business successfully and to reduce the cost of eliminating errors/problems significantly. Adaptation of DevOps practices to the company’s processes should be carried out by qualified specialists – DevOps engineers (devopsers). They can be both trained employees of the company itself, and invited from the outside as part of the outsourcing service.
Since the effectiveness of the functioning of the DevOps concept in the company depends on the work of the devopsers, the competence of the devopsers, their knowledge and skills are of fundamental importance. Here we list only the basic knowledge and skills that a any devopser should have. So, a DevOps engineer, at a minimum, should know:
– principles of operation of the main operating systems,
– the basis of programming and its basic concepts,
– at least one, and preferably several scripting languages,
– cloud services.
A DevOps engineer, at a minimum, must demonstrate an understanding of:
– principles of operation of computer networks,
– technologies of containerization and virtualization, their differences from each other and the principles of their application.
And, of course, the most valuable skill for a devopser is his ability to quickly navigate the whole variety of different systems and their components and be able to troubleshoot various problems. But this is already “aerobatics”, which is acquired with work experience.