Код
#статьи

Константин Бузиков: «Я не настоящий сварщик, просто каску на стройке нашёл»

Как системному администратору перейти в DevOps, какие недостатки у этой работы и что происходит на рынке труда. Рассказывает опытный DevOps-инженер.

Иллюстрация: Mego-studio / Freepik / Cuz.gallery / Rawpixel / Annie для Skillbox Media

Константин Бузиков

об эксперте

В Twitter @raven_oscar. Пять лет в DevOps, любит кататься на велосипеде, играть в видеоигры и читать книги.


Ссылки


У меня нет высшего технического образования — только специальное экономическое. После университета я работал в банках: был менеджером и руководил разными проектами. Потом ушёл в техподдержку и попытал счастья в разработке. На последних двух работах я занимал должность ведущего DevOps-инженера в B2B-МФО — организациях, которые не являются банками, но имеют лицензии на финансовые операции.

В DevOps я попал случайно: знакомые предложили заняться IT-инфраструктурой в их компании. Они устроили небольшое собеседование, на котором мы мило пообщались около 15 минут. Я признался, что почти ничего не понял, потому что ни разу не сталкивался с подобными задачами. Но ребята лишь переглянулись и сказали: «Ты же не обезьяна, научишься». И вот я уже пять лет в профессии.

Словарь DevOps-инженера

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

CI/CD (continuous integration / continuous deployment) — сочетание непрерывной интеграции и развёртывания программного обеспечения.

Пайплайн — процесс быстрой сборки, тестирования и развёртывания программного обеспечения.

Законтрактовать (базу данных, облако и так далее) — составить требования к сервису с учётом технических и юридических ограничений, выбрать тот, который соответствует этим требованиям, и заключить с ним договор.

Репозиторий хранилище кода в GitHub, GitLab и других аналогичных сервисах.

DevOps — это практика

Много копий ломается вокруг того, является DevOps профессией или нет. Я считаю, что DevOps — это не столько профессия, сколько практика, набор инструментов и методов, которые позволяют быстрее доставлять код конечным пользователям.

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

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

Кадр: мультсериал «Гриффины»

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

Из чего состоит работа DevOps-инженера

Когда я только устроился DevOps-инженером, у нас в компании была команда из десяти разработчиков. Но инфраструктуры для них не было. Первое, что я сделал, — развернул нужную инфраструктуру и настроил CI/CD, выбрал и законтрактовал облако, нарезал разработчикам репозитории. И только после этого команда начала работать.

Изображение: KC Green / Gunshow Comics

Потом я поддерживал всю эту инфраструктуру. Следил, чтобы код собирался так, как хотят программисты, и обеспечивал инструменты, которые позволяли им работать быстрее и удобнее.

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

Минусы работы в DevOps

Направление DevOps стало востребованным — на одном только hh.ru почти 2500 вакансий. Но даже у такой модной должности есть свои недостатки. Перечислю некоторые из них.

Работа в режиме нон-стоп. Многие заглядываются на зарплаты DevOps-инженеров, но забывают об одном жирном минусе — нам приходится пахать 24/7. Мне задают вопросы в рабочем чате уже в три утра, и я, как правило, отвечаю на них не позже четырёх.

Можно надеяться только на себя. Если у DevOps-инженера возникли вопросы, то дело плохо: как правило, готового ответа на них нигде нет. Вы оказываетесь с проблемой один на один, и никто не сможет вам помочь — только интернет. В такой ситуации довольно сложно расслабиться: приходится думать о решении целыми днями, пока не родится гениальная идея. А вот с командой есть надежда на коллективный разум.

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

Как сисадмину перейти в DevOps

Кадр: фильм «Звёздные войны. Эпизод III: Месть ситхов»

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

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

DevOps-инженер должен уметь работать с программистами и писать код. Например, в «Тинькофф Банке» и «Яндексе» от таких специалистов требуют знания языков программирования.

Чтобы быстро найти работу, нужно освоить базовый набор тулов:

  • Linux — нужно понимать, как ведёт себя линуксовая операционная система, как её настраивать и дебажить.
  • Kubernetes, GitLab — это минимум, с которым трудоустраиваются DevOps-инженеры.
  • Infrastructure as code — подход к автоматизации инфраструктуры с помощью инструментов разработки.
  • Любой инструмент CI/CD — нужно хотя бы понимать принципы работы.

Также DevOps часто пользуется разнообразными инструментами для автоматизации:

  • Terraform позволяет управлять инфраструктурой с помощью кода.
  • Ansible помогает управлять конфигурациями. Эта система работает и на Linux, и на Windows.
  • Docker упаковывает приложения в контейнеры со всеми зависимостями.
  • Nomad позволяет развёртывать приложения в локальных и облачных средах.
  • Облачные сервисы вроде AWS нужны для удалённого доступа к данным и приложениям.
  • Также я взаимодействую с базами данных и использую весь инструментарий разработчиков.

Современная инфраструктура, по сути, представляет собой код. Программисты пишут свой, а я — свой. Именно для этого нужны Terraform, Ansible или их аналоги вроде SaltStack.

Эти технологии можно изучить самостоятельно — документации хватает. Например, сейчас я делаю тестовое задание — с половиной нужного стека я раньше вообще не работал. Но зато знаю: если освоить инструменты на базовом уровне, то задача решится в несколько шагов.

На рынке — Дикий Запад и кадровый голод

Сколько в среднем платят DevOps-инженерам? Всё очень индивидуально: например, я знаю ребят с десятилетним опытом, которым платили по 150–180 тысяч рублей, и джунов, которые устраивались за 280–300 тысяч рублей. А ещё сеньоров, которые получают 350 тысяч, и даже тех, кому платят 700 тысяч. Но пока это лишь редкие исключения.

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

Кадр: фильм «Властелин колец: Братство Кольца»

Речь идёт о большом синеньком банке, большом зелёненьком банке и ещё одном большом синеньком банке. У них много денег и модные амбициозные цели — например, построить собственную экосистему. Они довольно хорошо почистили рынок, но им всё равно не хватает кадров. Ведь чем больше вы набираете разработчиков, тем больше DevOps-инженеров вам понадобится.

И напоследок: мы работаем не только с машинами, но и с людьми. А раз у них постоянно возникают новые идеи, значит, потребность в новых технологиях растёт. К тому же команды нужно регулярно масштабировать. На рынке сейчас Дикий Запад и кадровый голод — причём не только в России, но и во всём мире. Опытные инженеры уходят с российского рынка и, кажется, не собираются сюда возвращаться.

При этом на рынке джунов в DevOps, как и в других сферах, — бойня. У джунов одна задача: всеми правдами и неправдами найти первую работу. Для этого достаточно изучить техническую документацию, сделать вид, что вы всё знаете, и попытаться обдурить первого работодателя. Это нормально — иначе откуда возьмутся новые джуны. Но лучше не ограничиваться чтением и попрактиковаться. Например, можно развернуть небольшой кластер под свои задачи. Многие так делают — и это работает.


Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия DevOps-инженер Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована