Кто такой DevOps-инженер и как им стать

профессии будущегоIT-индустрияIT-разработчикипрограммисты
Главная картинка статьи Кто такой DevOps-инженер и как им стать
Designed by senivpetro/freepik

Термин DevOps происходит от английского Development & Operations (разработка и операции). Это особая методология, которая позволяет автоматически разворачивать и настраивать программное обеспечение. Соответственно, не могла не появиться специальность DevOps-инженера, и в данный момент это чуть ли не самое передовое и перспективное направление в IT-среде.

Чем конкретно занимаются девопс-инженеры

Девопс инженеры что делают

Designed by yanalya/freepik

На самом деле под термином DevOps скрывается целая когорта разнородных специалистов. На западе их вообще принято называть DevOps Managers (в России как-то привычнее инженеры).

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

Ключевые затраты в IT – это время на создание кода, тестирование, настройку и прочие операции. Методика DevOps помогает упростить все эти манипуляции:

  1. Сократить время от релиза до выхода на рынок;

  2. Снизить количество багов, ошибок и «заплаток» в коде;

  3. Сократить время на внесение исправлений и тестирование;

  4. Уменьшить трудозатраты и время на восстановление системы при возможных сбоях (например, когда накатывают новую версию продукта).

Как это достигается? Да очень просто: к команде разработчиков приставляют специально обученного человека, который отслеживает все процессы на каждом этапе. Это и есть DevOps-инженер в широком понимании. В чем его задача? Опять-таки, если упрощать: задача девопса «подружить» группу разработки, которая пишет код, с группой инфраструктуры, которые занимаются серверной поддержкой.

Представим, что перед нами сборочный автомобильный конвейер. Одна группа работников прикручивает колеса, другая ставит двигатель и трансмиссию, третья навешивает двери, вклеивает окна и так далее. Теоретически можно заставить первых выполнять работу вторых, а вторых - присматривать за работой третьих. Но так быстро начнется бардак и неразбериха. К тому же у работников разная специализация и вряд ли хватит опыта, чтобы полноценно заменять друг друга.

Вот и при разработке ПО та же самая ситуация: одни пишут код, другие отвечают за деплой - то есть разворачивание программы на сервере, третьи всё это тестируют. И между этими группами неизбежно будут противоречия: в задачи программиста не входит тестирование продукта на сервере, а перед сисадмином нет цели проверять, чего там наворотили в коде айтишники и почему всё не работает, как надо. Притом, что пишут код зачастую не один, а десяток человек. Без должного контроля конечный продукт получается сырым, а иногда вообще неработоспособным, сроки разработки затягиваются, производство становится дорогим и неэффективным.

Вот с этой-то проблемой и борется DevOps-инженер. Можно назвать его этаким куратором и тестировщиком в одном лице.

DevOps и Agile: в чем различия?

Помимо Development & Operations существует также технология гибкой разработки ПО под названием Agile. Но между ними есть существенная разница: DevOps предназначен для устранения противоречий в команде IT-разработчиков, а Agile помогает устранить пробелы в коммуникациях между клиентом (заказчиком) и командой специалистов.

Для чего конкретно нужен Agile:

  1. Налаживание обратной связи между пользователями и командой;

  2. Оперативное внесение изменений по пожеланию заказчиков;

  3. Организация работы в маленьких группах разработчиков;

  4. Разделение процесса разработки на мелкие циклы с решением конкретных задач. Итог каждого цикла выглядит как конечный проект.

В чем коренное отличие DevOps от Agile: первый подход позволяет оптимизировать и автоматизировать выполнение типовых задач, в то время как Agile направлен на создание практик гибкой разработки. Это важно для команд программистов, которые трудятся над небольшими, но разнообразными проектами.

Что делает DevOps-инженер конкретно?

Если перечислить по пунктам, то в его задачи входит:

  1. Выбор подходящей архитектуры для приложения или программы на стадии проектирования, аналитика и прогнозирование процессов. Специалист должен дать четкое представление, как будет развиваться продукт и как он будет масштабироваться;

  2. Составление аналитических отчетов и технических заданий;

  3. Мониторинг сред и инструментов разработки на предмет их работоспособности. Если есть необходимость, DevOps-инженер подбирает альтернативу или иные версии инструментов;

  4. Автоматизация производства. В идеале, на всех стадиях разработки должны быть развернуты автоматические процессы, чтобы удешевить и упростить создание продукта. Типичный пример – тестирование программного кода и вылавливание системных ошибок;

  5. Организационная работа. DevOps-инженеру нужно наладить взаимодействие в коллективе, устойчивую связь между IT-отделом, сисадминами, менеджерами, тестировщиками и прочими специалистами, чтобы оперативно исправлять ошибки и разрешать рабочие конфликты.

Что должен знать DevOps-инженер

Hard Skills

Безусловно, требования к компетенциям на такой должности самые жесткие. В первую очередь на позиции DevOps-инженера нужен опытный системный администратор на уровне хотя бы middle, а лучше senior. По умолчанию предполагается, что девопс инженер от и до знает Linux.

Networking, он же знания об устройстве интернета: что такое TCP/IP/UDP, как работает HTTP(s), уровни OSI – вот это всё.

Владение языками программирования хотя бы на уровне junior – ещё одно обязательное условие. Примеры:

  1. Java;

  2. Go;

  3. Python;

  4. C/C++, C#.

Также DevOps разбирается в устройстве баз данных и умеет писать запросы в SQL. Тут нужно либо крепко знать, либо хотя бы уметь читать документацию по какому-нибудь PostgreSQL или схожей системе.

Навыки работы с системой версий Git также обязательное требование к hard skills. В последние годы к этому перечню ещё прибавилось знание работы облачных систем, таких как AWS, Azure или Google Cloud.

Ну и знание английского языка по крайней мере на уровне Intermideate, умение читать документацию на английском без переводчика – куда без этого?

Soft Skills

Хорошая техническая подготовка, как мы понимаем, ещё далеко не всё. DevOps-инженер плотно взаимодействует с коллегами, более того – вынужден регулярно разруливать конфликты и противоречия. Отсюда базовое и самое ценное умение – искать и находить компромиссы между IT-отделом, командой тестировщиков и системными администраторами.

От хорошего DevOps-инженера также требуются системное мышление и навыки стратегического планирования. Он всегда должен знать, какой инструментарий нужен в конкретном проекте, а от чего лучше отказаться, какой язык взять за базу, а какой будет бесполезен. И не просто знать, а уметь обосновать свое решение.

Как стать DevOps-инженером

Как стать devops инженером с нуля

Designed by senivpetro/freepik

DevOps – это больше про навыки, а не про знания. Поэтому к цели стать DevOps-инженером обычно идут месяцами, а то и годами. Лучше начинать с системного администратора, а уже затем постепенно расширять свой функционал на практике. Главное, что у хорошего DevOps’а должен быть на самом деле хороший кругозор и реальные навыки, оттачиваемые в ходе практической работы.

Курсы для DevOps-инженеров с нуля

Безусловно, вы встретите предложения о подготовке DevOps-инженеров, но их следует воспринимать как курсы повышения квалификации для сисадминов или разработчиков. Это скорее вектор развития, а получение знания всё равно придется оттачивать на практике.

Чему конкретно учат на курсах для DevOps-инженеров:

  1. Инструменты создания ПО (Docker, Kubernetes, Ansible, Terraform, Jenkins, TeamCity и т.д.);

  2. Работа с облачными вычислениями, средствами автоматизации, микросервисами и т.п.;

  3. Процессы отладки DevOps;

  4. Углубленное изучение средств и способов тестирования.

Зарплата DevOps-инженера в 2022 году

Исходя из анализа Хабр, позиция DevOps-инженера должна стать одной из самых востребованных в России в 2022 году. Спрос на таких специалистов не снижается уже несколько лет подряд, что подтверждается и количеством вакансий на известных ресурсах-агрегаторах по поиску работы. Так, на HeadHunter в данный момент насчитывается свыше 4000 незакрытых позиций.

К сожалению, наибольший спрос на DevOps-инженеров в столице (более половины вакансий), в провинции они не так востребованы. Впрочем, это относится почти ко всем IT-специальностям.

Что касается зарплаты DevOps-инженера в 2022 году, то она в среднем выше, чем у программиста. Медианное значение по России составляет около 250 тысяч рублей.

Junior

Middle

Senior

От 50 до 100 тысяч рублей

От 100 до 300 тысяч рублей

От 400 тысяч рублей и выше

Плюсы и минусы работы DevOps-инженера

Плюсы:

  1. Востребованность, которая постоянно возрастает;

  2. Высокая оплата труда;

  3. Возможность всестороннего развития и решение самых разных задач;

  4. Карьерный рост.

Минусы:

  1. Большие требования к квалификации и компетенциям;

  2. Требуются организаторские способности;

  3. Невозможно выучиться с нуля, требуется опыт работы при трудоустройстве;

  4. Малое количество вакансий в провинции;

  5. Часто ненормированный график работы.


Написать комментарий
Для того чтобы оставлять комментарии, авторизуйтесь на сайте.