Общество  •   7 апреля 2024, 10:11, последнее обновление 11 апреля 2024, 13:44

Уставшие от рутинных задач программисты. Рассказываем, кто такие DevOps-инженеры и зачем они нужны в IT

DevOps - достаточно молодое направление в IT, строящее мост, по которому продукт "бежит" от самого первого кода до конечного пользователя. Мы узнали, чем живут эти инженеры, чем интересна их работа и сколько денег они за неё получают.

Профессия, о которой сегодня пойдёт речь в нашей рубрике "Войти в IT", находится на стыке программирования и системного администрирования и считается достаточно молодой по отношению к другим направлениям в сфере информационных технологий. Да, как вы уже могли догадаться, речь пойдёт о DevOps-инженерах. С нашими экспертами мы разберёмся, чем же занимаются эти специалисты, какой у них функционал, какими качествами должны обладать. Узнаем, кто может занять эту должность, где обучиться этой профессии и что изменится в работе IT-компании, если в ней не будет DevOps-сотрудника.

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

- Чтобы этого достичь, девопс, первое, - автоматизирует сборку. Настраивает систему непрерывной сборки/доставки кода. Второе - автоматизирует доставку, используя разнообразные инструменты (виртуальные машины, Kubernetes (k8s), bare-metal серверы), чтобы написанный код попал в тестовую среду. Третье - автоматизирует тестирование. Он использует автотесты и подключает их к установленной версии проекта, полученной на предыдущем шаге. Четвёртое - автоматизирует сбор, визуализацию метрик и результаты тестирования. И, наконец, пятое - оптимизирует и автоматизирует процесс переноса готового продукта из тестовой версии в продуктивную, - пояснил руководитель группы разработки программных продуктов ООО "Промобит" (BITBLAZE) Михаил Кошель.

Ведущий HR-менеджер компании "Лайв Тайпинг" Кристина Попова уточнила, что DevOps-инженер занимается настройкой и развёртыванием приложений, таким образом автоматизируя процесс разработки. По сути, DevOps совмещает в себе такие роли, как админ, разработчик и тестировщик.

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

- Основные задачи - это настройка CI/CD, что позволяет приносить клиентам новые фичи от разрабов, минуя время простоя приложения. Также в зоне ответственности установки всевозможных метрик и алертов, которые в режиме реального времени следят за поведением инфраструктуры и в случае отклонения от нормы всячески уведомляют о проблемных местах, - подметил backend teamlead компании Addamant Егор Карпачев.

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

- Для этих специалистов важны такие умения, как писать и читать код минимум на одном из скриптовых языков. Например, Bash/Python/Go. Надо уметь работать с автотестами, с различными операционными системами, серверами и сетями. Также уметь анализировать работу смежных отделов, налаживать их взаимодействие между собой, производя поиск узких мест, которые можно автоматизировать, - пояснила Кристина Попова.

Также обязательны навыки работы с IDE (среда разработки, VSCode\Idea и аналоги), git - эти навыки нужны как для девопса, так и для программиста. Михаил Кошель говорит, что есть такая ветвь развития, как cloud devops (специалист по облачной инфраструктуре):

- Такой профи должен помимо перечисленных инструментов знать облачные концепции, особенности и встроенный инструментарий таких поставщиков облачных услуг, как Aws, Google, Yandex и прочих Alibaba.

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

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

Middle DevOps-инженер из компании Deeplay Дмитрий Братухин признаётся, что задачи перед этими специалистами ставятся весьма интересные.

- Сегодня тебя просят написать скрипт, который автоматизирует какую либо ручную работу, а завтра ты уже обвязываешь его мониторингом, который, в случае неправильного выполнения, шлёт тебе в телеграмм сообщения. Управляешь конфигурациями серверов и приложений. Настраиваешь систему мониторинга и сбора логов, - добавил Дмитрий Братухин.

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

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

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

- Можно обучиться на курсах, но найти хорошие - это проблема. Либо, если начинать как сисадмин и интересоваться чуть шире своих обязанностей, то в определённый момент тебя может взять в подмастерья опытный специалист. Это позволит в короткие сроки освоить основные азы специализации, к этому нужно добавлять самообучение и много практики, - отметил Михаил Кошель.

Егор Карпачев не верит в действенность онлайн-курсов. Он убеждён, что необходимые для качественной работы знания можно почерпнуть только в документации: "Берём документацию куба/миникуба, и вперёд!".

Другой наш эксперт не столь категоричен в отношении курсов и обучающих роликов в интернете.

- Тут, наверное, совокупность. Взял информацию из интернета: посмотрел видео про тот или иной инструмент - понял базу, что это из себя представляет и как работает. А далее пошёл, посмотрел и изучил документацию этого продукта для более углублённого знания, - советует Дмитрий Братухин.

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

- Действительно, soft skills наравне с hard skills играют важную роль для DevOps-специалиста. Необходимы хорошие коммуникативные навыки. Ведь этот специалист общается с различными командами, участвующими в процессе разработки и сопровождения программного продукта. Он должен уметь быстро адаптироваться к изменяющейся ситуации, быть гибким, потому что DevOps, быстро развивающаяся область информационных технологий. Ещё важны инициативность и вовлечённость, - заключила Кристина Попова.

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

- На сегодняшний день такими инструментами являются Kubernetes\Helm, Terraform, Ansible\Puppet\Chef, Openstack, Docker, Prometheus + Grafana. Дополнительно к инструментарию обязательно следует упомянуть знание языков программирования Go, Python, Bash. Также язык разметки Yaml - для хранения конфигураций. Yaml - это удобный для чтения формат, в котором хранятся конфигурации большинства современных приложений и devops-инструментов. Девопсы значительную часть рабочего времени проводят за редактированием yaml-конфигов сборки. Поэтому их шутливо называют YAML-developer, yaml-программист. Шутка в том, что YAML - это не язык программирования, и человек, работающий с ним, НЕ является программистом в истинном смысле, - пояснил Михаил Кошель.

- Для меня это новая область, я сюда пришёл из разработки, в которой коммерческого опыта уже больше 10 лет, и большинство задач казались пресными и однотипными. Тут же, в сфере DevOps, я первое время чувствовал себя ребёнком в магазине игрушек: всё интересно и хочется уже поскорее попробовать на практике. Непередаваемое ощущение. Всем советую, - поделился личными впечатлениями Егор Карпачев.

Неплохой мотивацией (наравне с решением новых задач) развиваться в этом направлении может быть зарплатная вилка этих специалистов. Конечно, пока ты студент и совмещаешь работу с учёбой, набираешься опыта, она будет невысокой - всего 15-25 тысяч рублей в месяц. Но с опытом будет расти и зарплата. В среднем в Омской области DevOps-инженер получает 100-180 тысяч рублей в месяц. По стране - 200-350 тысяч рублей. Если специалист работает на московскую компанию удалённо, то его зарплата может варьироваться в сетке до 250-300 тысяч рублей. При этом в самой Москве зарплаты примерно в полтора раза выше. Опять же много зависит от уровня компании и непосредственных задач, которые стоят перед DevOps-инженером.


В нашей рубрике "Войти в IT" вы найдёте много материалов, посвящённых разным направлениям сферы. А также интервью, в которых спикеры рассказывают о своём развитии в мире информационных технологий.

Изображения созданы с помощью Midjourney

Читайте также