DevOps engineer is one of the most in-demand IT professions. According to a study by HeadHunter, employers’ demand for such specialists has grown by 70% over the past few years.
What is the reason for the popularity of methodology, what responsibilities does a Development Operations expert perform, why is it necessary to master tools from related IT specializations and upgrade soft skills. Let’s know it right now!
DevOps engineer: where did he come from and why is he so good
DevOps is a combination of cultural doctrines, approaches and tools that help companies to accelerate the creation of apps and services. Methodology is based on the idea that the design, testing and operation of digital products is a single, seamless and cyclical process.
There are several reasons why corps are adopting this practise:
- development and maintenance teams are not working well enough;
- releases are issued late with a lot of bugs;
- many changes are rolled out that make it harder to find bugs in production.
All this is reflected in the costs and profits of the business. Moreover, firms, especially startups, want to enter the market quickly. They are interested in spending as little time as possible on creating the initial infrastructure, viable code and, in general, an MVP with which to enter the market. Development Operations, tied into a single system from creating of the code to its release, increases the organizational efficiency of the organization. Because automation allows you to do less manual actions, which in turn minimizes potential errors.
DevOps as a culture includes all stages of an application’s life: testing, building, production, monitoring, collecting feedback.
All this explains why these specialists are becoming in demand all over the world. Thus, the number of open vacancies on HH exceeds the number of job seekers’ resumes.
Due to the specifics of the profession, becoming a great expert in this sphere is not easy. This requires broad technical knowledge, multi-tool skills and well-trained soft skills. It seems that this is a profession where the person must sit on several chairs at the same time and not fall.
Hard Skills: specialist’s responsibilities and tools
Different companies mean different things by the word DevOps, so there is no unambiguous list of related specializations. There are so many areas within methodology that you can study them for a 10-year career. In addition, some companies use cloud services, while others use hardware, either their own or leased. Accordingly, the required knowledge will again depend on which firm to work for.
To understand what knowledge an expert needs, let’s figure out what he does and what tools he interacts with.
Generally speaking, a representative of the profession:
- synchronizes all stages of creating a software product;
- acts as a link between programmers and administration departments;
- automates the execution of their tasks by implementing various software tools.
In particular, such a specialist is engaged in:
- Continuous Integration (CI), where program changes are regularly merged into a central repository, after which the “filling” is automatically built, tested and run. This solves the problem of quickly finding and correcting errors and improving the quality of the product.
- Continuous delivery (CD), where any changes the program is built and tested, is put into a test (or staging) environment before final release.
- Virtualization or infrastructure management using the Infrastructure as code (IaC) approach. All development in the company can be carried out in different languages using different technologies and virtualization layers. Automation, when all steps in the company need to be automated: testing, and delivery of code, and creation of containers, and rollback of it in case of errors, and receiving feedback from end users.
- Monitoring to keep track of everything that happens in all parts of the system. And if a failure occurs, the company will know about it first, and not when the customer informs about it. For this, an alert system is created that notifies the engineers on duty.
If we single out hard skills by technology, then we have for:
- basics of Linux administration, git;
- the ability to write simple scripts for automation in Bash;
- ability to debug (debug);
- knowledge of containerization and orchestration;
- basic monitoring with ready-made tools.
- the ability to understand deeply into the performance of systems (not just install MySQL, but see all the settings, explain slow queries and build indexes);
- Python / Ruby / Go;
- stricter DSLs (like Puppet);
- knowledge of networks, balancing, automatic switching of different components without loss of performance;
- the ability to supplement monitoring to fit your needs.
- all the same skills, only more deeply elaborated. Here the proficiency depend on the company’s tasks: write eBPF for debugging, implement Test-driven-development with good coverage with Rspec / Serverspec tests, be responsible for the infrastructure architecture as a whole – all this refers to DevOps;
- focus on SLA fulfillment, understand SLO, SLI.
Soft skills: what is required and where to get it
Methodology experts are growing in several ways. Sometimes system administrators want to expand their knowledge and influence in the best interests of the company and undergo retraining to a higher position. Sometimes programmers get tired of just writing code and want to understand what will happen next, how to set up processes. Or a person simply studies specific technologies and then becomes a methodologist.
In addition to a good technical outlook and automation skills, these guys desperately need to develop soft skills – personal qualities that help to effectively link the work of all participants and departments into a synchronous unity.
Here we should distinguish:
- Engineer is the link between operations, development and managers. Constant communication with the team, employees of other departments and management synchronizes the work of the company, helps to achieve the overall result. Such a profession is hardly suitable for an introvert. But this does not mean that, if desired, he will not be able to master this art.
- Customer focus. Specialist is actively involved in all development cycles, including designing API services and solving specific customer problems. Therefore, he communicates a lot with technical specialists of clients and solves interaction issues. And here it is important not that the tasks for the project have been completed, but that the client was satisfied with the work performed.
- Emotional intelligence or empathy. Devops team always employs people with different backgrounds. They may have different points of view. And besides that, each team member is a living person with his own personal problems and experiences, which also affect the work process. And the professional needs to understand this and treat colleagues with empathy. It is important to discuss and listen to the person, not ignore or pressure them.
- Calmness in stressful situations. It is necessary to learn to predict stressful situations and to draw up an algorithm of actions in such moments in advance. The skill can also be worked out well in practice: invite the team to deliberately “break” something, that is, create a stressful situation, and start solving it. Record how long it took, how well the team coped, what problems this situation highlighted, how clear and clear your commands were. When you prepare in advance for force majeure, at the right time you will know what to do.
Yes, becoming a Development Operations engineer from scratch is not easy, there is no silver bullet. Nor does it exist in any other area. You always have to study, read, try. But after the 10th iteration, you will get a taste. Whoever says anything, go for it!