Программирование  •  27 апреля 2023  •  5 мин чтения

Кто такой DevOps-инженер: профессия на стыке программиста и сисадмина

Программистов раздражают просьбами переустановить Windows, а сисадминов — написать какую-нибудь программу. Но есть профессия, представители которой могут и то, и другое. Расскажем, кто же такой DevOps-инженер и что он умеет.

Кто такой DevOps-инженер и чем он занимается

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

Чтобы разрабатывать программы и сервисы, программистам нужна инфраструктура: среды для разработки, инструменты для тестирования, серверы для запуска готовых версий приложений. Всю эту инфраструктуру поддерживают системные администраторы. Ещё в этой схеме есть тестировщики, которые с помощью инфраструктуры, построенной сисадминами, проверяют код, который прислали разработчики.

Раньше эти три лагеря были «разделены стенами». Разработчики что-то писали и отправляли пачки кода тестировщикам. Те тестировали, находили ошибки и отправляли назад. Сисадмины пытались следить, чтобы всё работало нормально, но обратная связь от разработчиков и тестировщиков часто приходила слишком поздно, а сам код задерживался и не был готов в срок. Практически всё приходилось делать вручную, так как никакой связи между программистами, тестировщиками и сисадминами не было.

Эта схема работала, когда программы в основном писали для ПК, всё работало офлайн и обновлялось редко. Но когда мир перешёл на веб-сервисы, так продолжать было нельзя. Рынок требовал выпускать обновления быстро, часто и непрерывно. Вместо того чтобы просто «перебрасывать код через стены», нужно было наладить непрерывный конвейер разработки, тестирования и запуска.

Чтобы превратить разработку в единый цикл, создали целую культуру — DevOps. Термин появился из слияния двух слов: development и operations, то есть «разработка» и «администрирование». DevOps подразумевает прямое общение разработчиков, тестировщиков и сисадминов, общую ответственность, единые показатели успешности разработки и максимальную автоматизацию с помощью новых инструментов и особых подходов к работе.

DevOps объединяет всю разработку в непрерывный цикл, когда по результатам тестирования программисты сразу получают новые задачи на разработку

Для работы в этой новой культуре понадобился человек, который будет объединять разработку, тестирование и администрирование, налаживать общение команд, строить единую инфраструктуру, автоматизировать процессы. Так и появилась новая профессия — DevOps-инженер (англ. DevOps engineer).

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

Материал по теме:
Что такое облачные технологии и как они устроены

Где нужен DevOps-инженер

DevOps-специалист нужен компаниям, которые разрабатывают IT-продукты для себя или на заказ, в тех случаях, когда:

● На рынке большая конкуренция и выпускать обновления своих продуктов нужно максимально быстро.

● Штат разработчиков, сисадминов и тестировщиков большой и наладить между ними коммуникацию сложно.

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

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

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

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

Что нужно знать, чтобы стать DevOps-инженером

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

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

Чтобы работать DevOps-инженером, нужно:

● Разбираться в системном администрировании Linux.

● Уметь настраивать локальные сети и управлять ими, разбираться в сетевых технологиях.

● Владеть базовыми навыками программирования, понимать общие принципы, разбираться в цикле разработки продукта. Уметь писать скрипты, например, на Python.

● Знать технический английский, чтобы искать ответы на вопросы в зарубежном интернете: поскольку сфера новая, найти их на русском не получится.

● Уметь строить инфраструктуру в облаке и знать, как её настраивать и работать с ней.

● Разбираться в Kubernetes — инструменте для контейнеризации приложений.
Контейнеризация нужна для быстрой доставки кода и масштабирования.

● Уметь строить инфраструктуру как код, например с помощью Ansible.

● Уметь настраивать непрерывный конвейер доставки кода с помощью инструментов CI/CD, например Jenkins.

● Разбираться в управлении версиями кода с помощью GitLab.

● Знать языки разметки JSON и YAML.

● Уметь настраивать мониторинг системы для обнаружения ошибок, например с помощью Prometheus.

Курс «DevOps для эксплуатации и разработки» предназначен для тех, кто уже имеет опыт работы в IT. Разработчиков и сисадминов учат технологиям и инструментам, необходимым именно DevOps-инженеру: контейнеризации, гибким методологиям, Linux и другим.

Сколько зарабатывает DevOps-инженер

DevOps-инженер — одна из самых высокооплачиваемых в IT профессий. Это связано с тем, что в ней даже начинающему специалисту нужно знать много: обычно Junior DevOps Engineer — это уже опытный разработчик или сисадмин.

В среднем зарплаты DevOps-инженеров начинаются от 200 000 ₽ и могут доходить до 500 000 ₽, и это не предел. Джунам обычно готовы платить от 120 000 ₽.

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

● Если небольшая компания ищет DevOps-инженера за 50 000 ₽ в месяц, чтобы настроить сервер на Linux, к DevOps это явно отношения не имеет.

● Если в компанию ищут системного администратора, но с требованиями Kubernetes, Jenkins и Ansible — работа наверняка будет связана с DevOps.

Средняя зарплата DevOps-инженера составляет 227 тыс. рублей. Источник

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

Плюсы и минусы профессии

Плюсы

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

Высокий доход. Выше, чем у многих смежных специалистов.

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

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

Способ релокейта. За границей эта профессия востребована даже больше, так что переехать будет относительно просто.

Минусы

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

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

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

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

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

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

Совет эксперта

Артём Тельнов

«Каждый разработчик или системный администратор, погрязая в рутине, задумывался: а что делать дальше, куда развиваться? Есть два варианта:

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

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

Статью подготовили:

Артём Тельнов
Яндекс
Отдел FinOps,
подразделение надежности
Яндекс Практикум
Редактор

Дайджест блога: ежемесячная подборка лучших статей от редакции

Поделиться

Успейте начать учебу в Практикуме до конца ноября со скидкой 20%

Tue Nov 12 2024 13:48:26 GMT+0300 (Moscow Standard Time)