Кто такой DevOps-инженер простыми словами: чем занимается, инструменты, зарплата и как войти в профессию

Кто такой DevOps-инженер простыми словами: чем занимается, инструменты, зарплата и как войти в профессию Полезное

DevOps-инженер (в разговорной речи — «девопс») — это специалист, который строит и поддерживает путь кода от коммита разработчика до работающего сервиса у пользователя: автоматическую сборку и проверку, упаковку в контейнеры, выкладку на серверы, мониторинг и восстановление после сбоев. Проще говоря, он делает так, чтобы новая версия программы попадала в продакшен быстро, повторяемо и без ручной возни.

Важно различать два слова. DevOps — это подход к работе, при котором разработка и эксплуатация отвечают за продукт вместе. DevOps-инженер — это должность, которую компании придумали под часть этой работы. Ниже — чем такой инженер занят на практике, чем он отличается от сисадмина и SRE, какие инструменты нужны, от чего зависит зарплата и по какой дорожной карте в профессию входят.

Мини-словарь: кого путают с девопсами

  • Системный администратор — поддерживает серверы, сети, учетные записи и рабочие места. Часто делает это руками, по заявкам.
  • DevOps-инженер — автоматизирует доставку и эксплуатацию приложений: пайплайны, контейнеры, инфраструктура как код, мониторинг.
  • SRE (Site Reliability Engineer) — отвечает за надежность сервиса в цифрах: цели доступности (SLO), бюджет ошибок, разбор инцидентов. Подход сформулирован в Google.
  • Платформенный инженер — строит внутреннюю платформу, через которую разработчики сами выкатывают сервисы (шаблоны, портал, самообслуживание).

Это упрощение: в небольшой компании все четыре роли может совмещать один человек, а в крупной одна роль делится на несколько команд. Поэтому в вакансии смотрите на задачи, а не на название.

Роль Главный вопрос Типичный результат работы
Сисадмин Работает ли инфраструктура сейчас? Настроенный сервер, сеть, доступы
DevOps-инженер Как изменение быстро и безопасно попадет в прод? Пайплайн, образ, скрипт развертывания
SRE Насколько сервис надежен и где он сломается? SLO, алерты, разбор инцидента
Разработчик Что делает программа? Код продукта и тесты к нему

Чем занимается DevOps-инженер: путь одного коммита

Лучше всего работу девопса видно на одном изменении. Разработчик исправил ошибку и отправил коммит в Git. Дальше включается то, что построил DevOps-инженер:

  1. CI-система (GitLab CI, GitHub Actions, Jenkins) замечает коммит и запускает пайплайн: сборку, тесты, проверку стиля и уязвимостей зависимостей.
  2. Если все прошло, собирается Docker-образ с приложением и кладется в реестр образов с номером версии.
  3. Система развертывания выкатывает новую версию: в Kubernetes, на виртуальные машины или в облачный сервис. Хорошая выкладка идет постепенно и умеет откатываться.
  4. Мониторинг (Prometheus, Grafana, сбор логов) показывает, не выросли ли ошибки и задержки после релиза. Если выросли — срабатывает алерт, дежурный откатывает версию.
  5. Серверы, сети и базы, на которых все это работает, описаны кодом (Infrastructure as Code: Terraform или OpenTofu, Ansible) и лежат в том же Git.

Отсюда типичные задачи в вакансиях: пайплайны, контейнеры и Kubernetes, инфраструктура кодом, мониторинг, дежурства и безопасность (секреты, доступы, обновления). Точный набор зависит от компании.

Инструменты DevOps-инженера по слоям

Учить инструменты стоит слой за слоем, а не «все сразу».

Слой Зачем нужен Примеры
Основа Понимать, где и как работает сервис Linux, сети (DNS, TCP, HTTP, TLS), Git
Скрипты Автоматизировать рутину Bash, Python, иногда Go
Контейнеры Упаковать приложение с зависимостями Docker, Podman
Оркестрация Запускать много контейнеров и следить за ними Kubernetes, Helm
CI/CD Собирать, проверять и выкатывать автоматически GitLab CI, GitHub Actions, Jenkins, Argo CD
Инфраструктура как код Создавать серверы и сети повторяемо Terraform, OpenTofu, Ansible
Наблюдаемость Видеть состояние сервиса и получать алерты Prometheus, Grafana, Loki, OpenTelemetry
Облака Арендовать ресурсы вместо своего железа Yandex Cloud, VK Cloud, AWS и другие

Инструмент внутри слоя обычно выбирает компания. Переучиться с одной CI-системы на другую проще, чем догнать пробел в Linux и сетях.

Первый артефакт: сервис в контейнере с проверкой здоровья

Чтобы почувствовать профессию руками, соберите минимальный сервис с эндпоинтом /health, упакуйте его в образ и запустите. Это же — первый пункт в портфолио. Проверено 24.09.2026: Docker Engine 29.5 (colima на macOS), образ python:3.14-slim (Python 3.14.7).

Файл app.py:

import json
import os
import signal
import sys
from http.server import BaseHTTPRequestHandler, HTTPServer


class Handler(BaseHTTPRequestHandler):
    def do_GET(self):
        if self.path == "/health":
            body = json.dumps({"status": "ok"}).encode()
            self.send_response(200)
            self.send_header("Content-Type", "application/json")
            self.send_header("Content-Length", str(len(body)))
            self.end_headers()
            self.wfile.write(body)
        else:
            self.send_error(404)


# docker stop шлет SIGTERM: завершаемся сразу, а не ждем SIGKILL через 10 секунд
signal.signal(signal.SIGTERM, lambda *_: sys.exit(0))

host = os.environ.get("HOST", "0.0.0.0")
port = int(os.environ.get("PORT", "8080"))
print(f"listening on {host}:{port}", flush=True)
HTTPServer((host, port), Handler).serve_forever()

Файл Dockerfile рядом с ним:

FROM python:3.14-slim
WORKDIR /app
COPY app.py .
RUN useradd --system --no-create-home appuser
USER appuser
EXPOSE 8080
HEALTHCHECK --interval=10s --timeout=3s \
  CMD python -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8080/health', timeout=2)"
CMD ["python", "app.py"]

Сборка, запуск и проверка:

docker build -t devops-demo:0.1 .
docker run -d --name devops-demo -p 127.0.0.1:8080:8080 devops-demo:0.1
curl -s -i http://127.0.0.1:8080/health; echo
docker exec devops-demo id
docker inspect --format '{{.State.Health.Status}}' devops-demo

Результат прогона (вывод сборки, ID контейнера и строка Date опущены; последнюю команду запускали через 12 секунд после старта, чтобы прошла первая проверка здоровья):

HTTP/1.0 200 OK
Server: BaseHTTP/0.6 Python/3.14.7
Content-Type: application/json
Content-Length: 16

{"status": "ok"}
uid=999(appuser) gid=999(appuser) groups=999(appuser)
healthy

Что здесь от DevOps, а не от программирования. Сервис работает не от root (USER appuser), поэтому взлом приложения не дает сразу прав суперпользователя в контейнере. Порт опубликован только на 127.0.0.1 хоста, а не на всех интерфейсах. Обработчик SIGTERM дает docker stop завершить контейнер за доли секунды: без него в нашем прогоне остановка занимала 10,07 секунды, потому что Docker ждал и добивал процесс SIGKILL.

Типичная ошибка: сервис слушает 127.0.0.1 внутри контейнера

Удалим первый контейнер и запустим тот же образ, но попросим сервис слушать только локальный адрес:

docker rm -f devops-demo
docker run -d --name devops-demo -e HOST=127.0.0.1 -p 127.0.0.1:8080:8080 devops-demo:0.1
curl -sS http://127.0.0.1:8080/health

Фактический результат:

curl: (52) Empty reply from server

При этом docker inspect показывает healthy, а в логах контейнера — listening on 127.0.0.1:8080. Причина: 127.0.0.1 внутри контейнера — это адрес самого контейнера, и проброшенный с хоста трафик до такого сокета не доходит. Проверка здоровья запускается изнутри, поэтому ее это не беспокоит. Исправление — слушать 0.0.0.0 внутри контейнера (как в нашем app.py по умолчанию), а ограничивать доступ снаружи публикацией порта и файрволом.

Здесь важный урок профессии: HEALTHCHECK проверяет только то, что в нем написано, — ответ процесса изнутри контейнера. Доступность сервиса для пользователей он не гарантирует, для этого нужна внешняя проверка из мониторинга. Текст ошибки curl зависит от среды: в нашем прогоне через colima это код 52, на других установках Docker встречается Connection reset by peer (код 56).

Зарплата DevOps-инженера: от чего зависит

Чтобы было от чего оттолкнуться: в калькуляторе зарплат Хабр Карьеры на 24.09.2026 медиана по специальности «DevOps-инженер» — 225 тыс. рублей в месяц (по 1224 анкетам, суммы с учетом премий). По грейдам: стажер — около 67 тыс., junior — около 113 тыс., middle — около 221 тыс., senior — около 363 тыс., lead — около 454 тыс. Для сравнения, медиана по всему IT в отчете Хабр Карьеры за первое полугодие 2026 года — 191 тыс. рублей.

Это суммы, которые сообщили сами специалисты, по всем городам и форматам вместе, а не обещание оффера: разброс внутри грейда большой (у middle половина ответов лежит между 163 и 288 тыс.), а junior-анкет почти в три раза меньше, чем middle, — первых вакансий в DevOps мало. Цифры меняются каждые полгода, поэтому перед поиском работы сверьте ориентир со свежими вакансиями на hh.ru и Хабр Карьере по своему городу, грейду и формату.

Что сильнее всего двигает цифру:

  • Грейд и зона ответственности. Поддерживать чужой пайплайн и проектировать платформу для десятков команд — разные уровни.
  • Kubernetes и облака в продакшене. Опыт эксплуатации под нагрузкой ценится выше, чем учебные кластеры.
  • Дежурства. On-call часто оплачивается отдельно, но это и нагрузка на выходные и ночи.
  • Город, формат и отрасль. Финтех и крупные продуктовые компании обычно платят больше небольших интеграторов.

Как стать DevOps-инженером: дорожная карта до артефактов

Честный факт: DevOps редко бывает первой профессией в IT. Чаще сюда приходят сисадмины, которые начали автоматизировать, разработчики, которые настраивали CI своей команды, и тестировщики-автоматизаторы. С нуля путь длиннее, и срок сильно зависит от стартовой базы и часов в неделю. Каждый шаг ниже заканчивается артефактом, который можно показать.

  1. Linux и сети. Артефакт: виртуальная машина, куда вы заходите по SSH-ключу (вход по паролю выключен), с настроенным файрволом и объяснением, что делает каждое правило.
  2. Git и скрипты. Артефакт: репозиторий с Bash- или Python-скриптом, который проверяет свободное место и доступность сайта и пишет понятный лог.
  3. Контейнеры. Артефакт: образ вроде показанного выше — не от root, с проверкой здоровья, с README о запуске.
  4. CI/CD. Артефакт: пайплайн, который на каждый коммит запускает тесты, собирает образ с тегом версии и кладет его в реестр.
  5. Инфраструктура как код. Артефакт: конфигурация Terraform или OpenTofu, которая создает и удаляет тестовую машину в облаке одной командой, плюс роль Ansible для ее настройки. Секреты — не в Git.
  6. Kubernetes и мониторинг. Артефакт: сервис в учебном кластере (minikube или kind) с метриками в Prometheus, дашбордом в Grafana и одним осмысленным алертом.

Если не получилось

Симптом Частая причина Что сделать
curl к контейнеру: пустой ответ или сброс соединения Приложение слушает 127.0.0.1 внутри контейнера Слушать 0.0.0.0, проверить docker logs
docker stop висит около 10 секунд Процесс не обрабатывает SIGTERM Добавить обработчик или запускать с --init
На собеседованиях отказывают без обратной связи Резюме — перечень инструментов без результатов Описать 2-3 артефакта: что сделали, какая проблема, как проверили
Нет откликов на junior-вакансии Их мало, конкуренция высокая Искать вход через смежную роль: админ, QA-автоматизация, поддержка

Выводы

  • DevOps — подход, DevOps-инженер — должность: он автоматизирует путь кода от коммита до работающего сервиса и следит за его состоянием.
  • От сисадмина девопса отличает автоматизация и работа с кодом, от SRE — фокус на доставке, а не на цифрах надежности; границы ролей в разных компаниях свои.
  • Инструменты учат слоями: Linux и сети, скрипты, контейнеры, CI/CD, инфраструктура как код, Kubernetes и мониторинг.
  • Ориентир по зарплате (калькулятор Хабр Карьеры, 24.09.2026): медиана DevOps-инженера 225 тыс. рублей, junior около 113 тыс., middle около 221 тыс.; цифру сильнее всего двигают грейд, опыт с Kubernetes и облаками и дежурства, а перед поиском ее сверяют со свежими вакансиями.
  • В профессию чаще входят из смежных ролей; портфолио из артефактов по дорожной карте убеждает лучше списка технологий.

Где применяется / связь с практикой

Освойте тему на практике

Показанный контейнер с проверкой здоровья — первый шаг цепочки, которую DevOps-инженер собирает на работе: дальше к нему добавляются пайплайн, описание инфраструктуры кодом, выкладка в Kubernetes и мониторинг. Если хочется пройти эту цепочку на практических заданиях с проверкой, посмотрите программу курса «DevOps практики и инструменты». Чтобы сначала познакомиться с темой и преподавателями, подойдут бесплатные открытые уроки Otus.

FAQ

Нужно ли DevOps-инженеру уметь программировать?
Писать продуктовый код каждый день не нужно, но читать чужой код и писать скрипты на Bash или Python нужно обязательно. Без этого не получится автоматизировать задачи и разбираться, почему упала сборка.

Обязательно ли знать Kubernetes на старте?
Для первой работы чаще важнее уверенный Linux, сети, Docker и CI. Kubernetes встречается в большинстве вакансий уровня middle, поэтому его стоит освоить следующим шагом.

Можно ли стать DevOps-инженером без высшего образования?
В большинстве коммерческих компаний на первом отборе решают навыки и портфолио из артефактов. Диплом чаще влияет на отбор в крупных компаниях, госсекторе и при работе за рубежом.

OTUS Журнал