Who is a DevOps engineer, what does he do, how much he earns and how to become one

DevOps engineers are multidisciplinary specialists who know how to automate processes and know how developers, QA and managers work. They know how to program, quickly master complex tools and are not lost in an unfamiliar task. DevOps engineers are few - they are willing to pay 200-300 thousand rubles, but there are still many vacancies.

Dmitry Kuzmin tells what exactly DevOps is doing and what needs to be studied in order to apply for such a position. Bonus - important links to books, videos, channels and the professional community.

What does DevOps engineer do?


In a situation with DevOps, it is important not to confuse the terms. The fact is that DevOps is not a specific area of ​​activity, but a professional philosophy. This is a methodology that helps developers, testers and system administrators work faster and more efficiently due to automation and seamlessness.

Accordingly, the DevOps engineer is a specialist who implements this methodology in the work process:

  • At the planning stage, the DevOps engineer helps to decide which architecture the application will use, how it will scale, and choose an orchestration system.
  • Next, it sets up the server, automated verification and code upload, and environment verification.
  • Then it automates testing and solves deployment tasks.
  • . DevOps , , .
  • , , QA, .

, , . , , , , . , , — DevOps-.

There is confusion in the personnel market. Sometimes a business looks for DevOps engineers for the position of a system engineer, build engineer, or someone else. Duties depending on the size of the company and direction also change - somewhere they are looking for a person to consult, somewhere they are asking to automate everything, but somewhere they are required to perform advanced functions of a system administrator who can program.

What you need to start in the profession


Entrance to the profession requires prior training. Just coming to courses from scratch without understanding anything in IT, and learning to the junior level will fail. Need a technical background:

  • , , . , , , . , Linux, .
  • , — , .
  • , — Python Go, (- ), .
  • — , .

It is not necessary to know all of the above thoroughly; a minimum level of training is sufficient to start learning DevOps. If there is such a technical background, try enrolling in courses.

What DevOps Should Know


A good DevOps engineer is a multi-disciplinary specialist with a very broad horizons. For successful work you will have to understand several IT directions at once.

Development


DevOps will write a script that will help developers install code on the server. Will make a program that "on the fly" tests the responsiveness of databases. Will write an application for version control. Finally, he will simply notice a potential development problem that may appear on the server.

A strong DevOps specialist knows several languages ​​suitable for automation. He does not understand them thoroughly, but will quickly write a small program or read someone else's code. If you have not encountered development before, start with Python - it has simple syntax, it is easy to work with cloud technologies on it, there are a lot of documentation and libraries.

Operating Systems


It is impossible to know all the features of each version of each system - thousands of hours can be spent on such training and there will be no sense. Instead, good DevOps understands the general principles of working on any OS. Although, judging by the mentions in the vacancies, most now work on Linux.

A good engineer understands in which system it is better to deploy a project, what tools to use and what potential errors may appear during implementation or operation.

The clouds


The cloud technology market is growing at an average of 20-25% per year - this infrastructure allows you to automate code testing, building applications from components, and delivering updates to users. Good DevOps understands both fully cloudy and hybrid solutions.

The standard requirements for engineers usually include GCP, AWS, and Azure.

This includes ownership of CI / CD tools. Usually Jenkins is used for continuous integration, but analogues are worth a try. There are many of them, for example, Buddy, TeamCity and Gitlab CI. We will study Terraform as a declarative tool that helps to remotely lift and configure infrastructure in the clouds. And Packer, which is needed to automatically create OS images .

Orchestration systems and microservices


The microservice architecture has many advantages - stability, the ability to quickly scale, simplify and reuse. DevOps understands how microservices work, and can prevent potential problems.

Thoroughly knows Docker and Kubernetes. He understands how containers work, how to build a system so that you can disable some of them without consequences for the overall system as a whole. For example, it can build a Kubernetes cluster using Ansible

What else to try for the future DevOps


It is endless to list the tools that may be useful to the DevOps engineer. Someone works on project orchestration, others spend most of their time automating deployment and testing, while others increase efficiency in configuration management. In the process, it will be clear where to dig and which projects will come in handy.

Here is another small minimum that will help at the start:

  • Understand how Git and Github work if you haven’t encountered this before. Install GitLab on your server.
  • Get to know the JSON and YAML markup languages.
  • Install and try to work in databases - not only in MySQL, but also NoSQL. Try MongoDB.
  • Understand how to manage the configuration of multiple servers at once. For example, using Ansible.
  • Immediately configure load monitoring and logs. Try a bunch of Prometheus, Grafana, Alertmanager.
  • Look for the best deployment solutions for different languages ​​- just get to know each other, implement and understand on a training or working draft.

Why you should start learning DevOps now


In the market for DevOps engineers, there is a personnel shortage. This is conditionally confirmed by the quantity and quality of vacancies:

  • In Russia, on HeadHunter alone, more than 2 thousand jobs for this keyword are constantly available.
  • And only 1,900 people posted a resume.

Given that posting a resume does not mean an active job search, it turns out that there are two or even three vacancies per specialist - this situation does not exist even in the popular web development market. Add here more vacancies from Habr and from Telegram channels - the shortage of specialists is huge.


Pay attention to the salary requirements of applicants.

DevOps is no less demanded in the world - if you are going to relocation to the USA or Europe, then only on the Glassdoor portal more than 34 thousand companies are looking for such specialists. Of the frequent requirements - experience 1-3 years, the ability to work with the "clouds" and not be afraid of consulting functions.

There are several times fewer offers on freelance - DevOps engineers are mostly looking for full-time and full-time staff.


Finding a suitable freelance project is difficult, but you

can imagine the conditional career path of a DevOps engineer as follows:

  • For half a year – year he works as a system administrator in a small IT company. In parallel, learning a language suitable for automation.
  • He studies intensively in courses, about six months.
  • Shifts to another job - to a company that sells cloud solutions, a branch of a large corporation, to developers of large projects. Simply put, where there is a need for continuous automation and implementation. At the initial position, this is approximately 100 thousand rubles.
  • He has been actively working and studying for several years, increasing his income several times.
  • Becomes an expert in the professional community and goes into consulting. Or growing to a systems architect or IT director.

DevOps — . . , , IT- - . , .

DevOps


The average median salary according to the data for the second quarter of 2019 for devops is in a fork between 90 and 160 thousand rubles. There are cheaper offers - mostly 60–70 thousand.

There are constantly offers up to 200 thousand, there are vacancies with a salary of up to 330 thousand rubles.


Among the operating professionals, DevOps is paid higher than the rest. Source: Haber . Career

DevOps engineers, including beginners, are now required in large banks, corporations, cloud services, trading systems and other organizations that care about maintaining their IT solutions.

An excellent candidate for a junior vacancy with a salary of 60–90 thousand will be a novice system administrator with experience of about a year and a profile diploma.
 

There are no such statistics, but it feels like people who have experience with Linux are paid more

What to watch and read for growth in the profession


To immerse yourself in the world of DevOps, try several sources of information at once:


Where to study at DevOps


You can get structured knowledge on the course " DevOps-engineer " in Netology. You will learn the full cycle of methodology:

  • Learn how to analyze code and quickly use version control tools.
  • Understand the best practices for continuous integration, testing, and assembly.
  • Learn how to manage changes in applications and automate them.
  • In practice, learn configuration and management tools.
  • Get used to immediately select and configure the necessary services for monitoring.

Get a Python programming course as a bonus - you will solve problems even faster and easier. Everything in practice - we use AWS, GCP or Azure.
This is enough to turn from a novice engineer or system administrator into a popular DevOps and pleasantly raise your price tag on the labor market.


All Articles