До появления профессии DevOps-инженера в компаниях существовали подразделения, которые отдельно отвечали за разработку и отдельно за обслуживание приложений на сервере. У каждого были свои задачи, и они могли не соприкасаться друг с другом. Совместить их работу помогли DevOps-инженеры.
В статье расскажем о профессии DevOps, какие задачи они решают, какие инструменты и навыки используют, где учиться на DevOps-инженера.
Что такое DevOps
Название профессии произошло от двух английских слов: development — «разработка», operation — «эксплуатация». Это метод работ, который налаживает взаимодействие между разработкой и эксплуатацией. А специалисты, которые пользуются этим методом, называются DevOps-инженерами.
DevOps-инженеры считают, что DevOps это не профессия, а философия, благодаря которой разработчики и администраторы налаживают совместную работу. Из-за этого возрастает скорость разработки и улучшается качество релизов. В выигрыше и клиенты, и специалисты компании.
Кто такой DevOps-специалист
DevOps-инженеры востребованы и получают хорошие зарплаты. Благодаря им компании стали работать быстрее, а клиенты не замечают проблем, когда пользуются продуктами компании.
Представьте, что приложение на вашем смартфоне — это автомобиль.
Разработчик создаёт веб-сервис: кузов, двигатель, подвеску.
Системный администратор заботится о том, чтобы продукт работал как надо. Он как автомеханик: проверяет уровень масла, меняет тормозные колодки и ремонтирует зажигание.
DevOps-специалист делает автомобиль, запускает двигатель и едет. Если что-то сломалось, он не останавливает машину, а меняет детали на ходу. Такой специалист знает, и как собрать автомобиль, и как его обслужить. Если бы он работал с вашим автомобилем каждый день, вы не замечали бы этого.
DevOps-инженеры помогли подружить бизнес, системных администраторов и разработчиков.
Чем DevOps-инженер отличается от системного инженера и билд-инженера
На рынке труда можно встретить профессии системного инженера и билд-инженера. Вот чем они отличаются от DevOps инженера.
Системный инженер работает со схемами сетей, пользуется отвёрткой, пассатижами или тепловизором. Он отвечает за установку серверов и роутеров, проверяет исправность системных блоков, источников бесперебойного питания. Бывает, что он выезжает к клиенту, если оборудование нельзя починить дистанционно.
Билд-инженер занимается стандартизацией процесса сборки ПО и его релизов. Он собирает код, которые написали другие разработчики. Это как инженер на сборочном конвейере. К нему поступают детали от разработчиков, а он из них собирает машины.
DevOps-инженер заменяет этих специалистов, и его компетенции намного шире. В сфере его интересов клиенты, компьютеры, сервера, ПО, процессы в компании, автоматизация. Ниже расскажем об этом подробнее.
Плюсы и минусы профессии
Плюсы
- Заработная плата. Ниже в статье мы расскажем, сколько в среднем в России получают DevOps-инженеры.
- Профессия сложная, а потому востребованная. На момент написания статьи на сайте hh.ru работодатели разместили больше 5nbsp;000 вакансий.
- Возможность работать в любой сфере. DevOps-инженеры много учатся и их знания могут потребоваться не только в IT сфере.
- Возможность работать за рубежом.
Минусы
- Высокий порог входа в профессию. Необходимо иметь опыт и знания из разных сфер. Но это становится преимуществом, когда специалист получает эти знания.
- Ненормированный график. В работе сервисов случаются сбои. Их нужно устранять как можно быстрее, чтобы пользователь сайта или приложения не успел уйти к конкуренту. Когда такое случается, DevOps-инженеру приходится работать даже в ночь.
Что должен знать DevOps-инженер
Посмотрите на периодическую таблицу инструментов DevOps (англ). В ней отмечены навыки, которые должны быть у DevOps-инженера.
Периодическая таблица инструментов DevOps-инженера. Скриншот с сайта digital.ai
Но специалисты не советуют учить всё, а постараться освоить минимум. Ниже поговорим о том, что точно стоит изучить.
Разработка
DevOps-инженеру нужно знать языки Python, Groovy, Bash, Powershell, Ruby, Go. Их не обязательно знать досконально. Достаточно научиться писать скрипты для автоматизации разработки и тестирования.
Операционные системы
DevOps-инженеру нужно знать Linux и его приложение WebServers для развёртывания веб-сервера и уметь писать скрипты bash для работы с командной строкой. В Windows нужно знать Powershell — инструмент для работы с кодом и командной строкой — и IIS — набор серверов.
Облака
На облаках можно размещать приложение и не заботиться о сервере, хранить базы данных, анализировать данные и использовать машинное обучение для разработки.
Профессионалы советуют освоить AWS, GCP, Azure. А ещё выбор сервера зависит от того, в какой стране вы работаете. В России — Amazon, в Европе, США, Израиле — Amazon и Google Cloud, в Китае — Alibaba Cloud. Разберитесь хотя бы в одном.
Системы оркестрации и микросервисы
Давайте снова представим автомобиль. Вы едете на автомобиле, и все его системы работают согласованно вместе. Если выйдет из строя какая-нибудь деталь — это может отразиться на всём автомобиле. Например, если постоянно падает давление в шине, то изнашивается покрышка, могут повредиться диски и подшипники, автомобиль ведет в сторону и может случиться авария.
А теперь представьте, что вы едете вообще без колеса и не замечаете этого. А все детали автомобиля упакованы в специальные контейнеры. Поломка одной детали не вызывает поломки в других. Такое устройство называется микросервисной архитектурой. Разные функции приложения упаковывают в контейнеры. Если что-то ломается, то это не отражается на других функциях.
Чтобы микросервисы работали вместе, DevOps-специалист должен знать, как пользоваться Ansible. Этот сервис позволяет одной командой запустить сразу несколько серверов. DevOps-инженер выполняет работу дирижера оркестра, поэтому эти процессы называются оркестрацией. DevOps-инженер «машет палочкой», а приложения как музыканты работают вместе как по нотам, даже если они находятся на разных серверах.
Инструменты для работы
У DevOps-инженера, как у автомеханика, есть свой ящик с инструментами. Когда появляется задача, он достаёт из ящика инструмент и решает задачу. Вот какие инструменты должны быть у него в ящике.
- GitHub, BitBucket, Gitlab — системы управления виртуальными папками с файлами. Эти папки называются репозиториями. Например, рабочий стол компьютера — это репозиторий. Через репозитории управляют версиями ПО и обновлениями. Есть возможность командной работы.
- Jenkins — для автоматической разработки нового ПО и обновления существующего. Этот инструмент ускоряет работу специалиста.
- Terraform – это сервис, который предоставляет всё нужное оборудование для проекта в виде кода. Как на кухне нужна плита, мойка, блендер, холодильник, так и для DevOps-проекта нужны хосты, сервера, порты. Всё это инфраструктура, только её нельзя потрогать, потому что она существует в виде кода. Вам достаточно описать, какая инфраструктура вам нужна, а сервис всё сделает автоматически.
- CloudFormation — управляет инфраструктурой в облачной среде с помощью текстового файла.
Важные личные качества
- Стрессоустойчивость. Технические системы могут сломаться в любое время и ремонтировать их надо срочно. В такие моменты люди могут испытывать стресс. DevOps-инженер должен научиться спокойно переживать момент, когда «всё пропало».
- Коммуникабельность. Чтобы договариваться с командой и участвовать в обсуждении рабочих задач.
- Эмпатия для дружеской атмосферы в команде.
- Умение фокусировать внимание. Все непростые задачи требуют к себе внимания. Их надо изучать, выдвигать и проверять гипотезы.
- Управление временем. Сочетание труда и отдыха и ведение записей помогают справляться с рабочей нагрузкой на организм и психику.
Что ещё должен знать и уметь DevOps-инженер
Состоявшиеся DevOps-инженеры советуют входить в профессию, если вы умеете минимально администрировать сервера, IT-инфраструктуру компании. Вот что ещё пригодится.
- Понимать, как работает железо.
- Настраивать и устанавливать операционные системы Linux и Windows.
- Работать с сетями и оборудованием.
- Знать технический английский, чтобы читать документацию. Большинство документов по инструментам и языкам написано на английском языке.
Заработная плата
Давайте посмотрим на инфографику ниже. Здесь показана средняя зарплата DevOps-специалистов по крупным городам России.
Заработная плата по вакансии DevOps-инженеров в крупных городах федеральных округов. По данным сайта hh.ru, ноябрь 2021
Зарплата у новичка может начинаться с 70 000–90 000 ₽.
Вакансия DevOps-инженера с минимальной зарплатой во Владивостоке
Максимальная зарплата DevOps-инженера во Владивостоке
Верхняя планка 300 000–450 000 ₽ зависит от уровня специалиста. Как правило, это люди, которые руководят командой DevOps-инженеров.
Вакансия DevOps-инженера в Москве
Если смотреть по регионам, то самая максимальная зарплата у DevOps-инженера в Новосибирске: до 400 000 ₽.
Заработная плата DevOps-инженера в Новосибирске
В основном, средняя зарплата по регионам — 276 000 ₽. При этом многие вакансии удалённые, не нужно переезжать. Встречаются вакансии с требованиями без резюме.
Куда можно устроиться
DevOps-специалистов ищут IT-компании. Но не только. Это ещё и компании, которые заняты цифровой трансформацией бизнеса. Банки, почтовые сервисы, интернет-провайдеры, связь, авиакомпании и т. п.
На день написания статьи на сайте hh.ru было 5 943 вакансии DevOps. Например, такие:
Вакансии для DevOps-инженеров в разных компаниях
Перспективы профессии и карьерный рост
DevOps-инженеры владеют широким набором навыков и инструментов, которые всегда нужны в IT-индустрии. Перечислим некоторые.
- Системное администрирование. С этого советуют начинать путь в профессию. Но всегда можно вернуться обратно.
- Разработка. Когда постоянно занят написанием скриптов по автоматизации, будет не проблемой устроиться в компанию, где знания нескольких языков приветствуется. И изучить дополнительный язык тоже не будет проблемой.
- Навыки системного архитектора. Это специалист, который проектирует IT-системы.
- Аналитика данных. DevOps-инженер сталкивается не только со скриптами, автоматизацией и тестированием. Ему приходится иметь доступ к базам данных. Если к этим знаниям добавить язык Python и команды MySQL, то переход в аналитику данных пройдёт легче.
- Возможность проводить консультации. Не всем компаниям требуются штатные DevOps-инженеры. Кому-то достаточно дорогой консультации или разового визита. Консультации нужны также практикующим DevOps-инженерам.
После нескольких лет работы DevOps может стать руководителем. Во время ведения проектов у него появляются навыки делегирования, переговоров, понимание потребностей клиентов, понимание бизнес-процессов. Всё это способствует карьере руководителя.
Как стать DevOps-инженером
Состоявшиеся DevOps-инженеры советуют входить в профессию, если вы умеете минимально администрировать сервера и IT-инфраструктуру компании.
DevOps-инженеры предлагают изучить две книги по профессии:
1. «Проект “Феникс”. Роман о том, как DevOps меняет бизнес к лучшему», Джин Ким, Джордж Спаффорд, Кевин Бер. Художественная книга о повседневной работе инженера. Выше мы писали, что плюсом профессии является не рутинность. Так вот, авторы книги описывают эту работу, где задачи всегда новые, опасные и неизвестные.
2. «Руководство по DevOps. Как добиться гибкости, надёжности и безопасности мирового уровня в технологических компаниях», Джон Ким. Из этой книги вы узнаете, как создать непрерывный поток разработки IT-продуктов. Ведущие IT-специалисты рассказали о принципе потока, принципе обратной связи и принципе непрерывного обучения.
Курсы для DevOps-специалистов
Чтобы получить необходимые знания и навыки с нуля, можно пройти курсы по DevOps. Там вы получите документ, подтверждающий ваши компетенции, оформите резюме и портфолио/кейсы. Многие онлайн-школы помогают с трудоустройством: добавляют учеников в закрытый чат с вакансиями или напрямую рекомендуют успешных студентов на стажировку к компаниям-партнёрам.
Чтобы стать DevOps-инженером, нужно много учиться и практиковаться. У вас должны быть личные качества, которые помогают решать много незнакомых задач и справляться с нагрузкой. Чтобы обучение прошло легче, необходимо, чтобы у вас была первоначальная подготовка в системном администрировании, а остальному вас научат на онлайн-курсах.